基於AT91SAM9260工控機平臺的SNMP協議實現

2021-01-10 電子產品世界

網際網路技術成本低廉、靈活性強,在很多領域都有著廣泛的應用前景。其在工業自動化領域的應用一直是一個研究熱點。SNMP(簡單網絡管理)協議是一種被廣泛應用的網際網路設備管理協議,其最大的特點就是成本低廉,容易實現。SNMP協議可以管理大部分符合Internet標準的設備。通過添加新的被管對象,可以非常方便地擴展其管理能力。即使在被管設備發生嚴重的錯誤時,協議本身的特點也促使其不會影響管理者的正常工作。

本文引用地址:http://www.eepw.com.cn/article/201610/306723.htm

本文介紹一種基於AT91SAM9260工控機平臺的SNMP協議實現方法,通過開發能在AT91SAM9260工控機平臺上運行的SNMP Agent(SNMP代理),並擴展其MIB(管理信息)庫,實現在網際網路上管理工控機本身和與工控機通過其他通信協議連接的設備資源。

1 SNMP(簡單網絡管理)協議介紹

1.1 SNMP協議概述

SNMP協議是一種基於TCP/IP協議的應用層網絡管理標準,被廣泛應用於管理網際網路上眾多廠家的軟硬體平臺。SNMP協議的模型如圖1所示,其中管理應用通過發送Get、Set、GetNext、GetResponse和Event這五種類型的消息來讀取或設置被管設備的MIB庫,實現對被管設備的管理。

SNMP協議作為應用層協議,通過用戶數據報協議(UDP)來實現管理信息在網際網路上的傳輸,相對於TCP協議,UDP這種無連接的通信方式,不但加強了SNMP協議的穩定性,而且提高了SNMP協議的運行效率。

1.2 MIB(管理信息)庫

MIB庫是管理站可以通過SNMP協議訪問的被管理對象的集合。MIB描述了被管理對象能夠為管理者提供哪些管理信息以及這些信息之間的關係。MIB使用ASN.1描述語言對對象進行描述。ASN.1使被描述對象在邏輯上形成樹形結構(如圖2),這樣管理站就可以很方便地訪問到MIB庫中各個節點的信息。ASN.1描述語言也提供了基本編碼規則(BER),使MIB庫中數據按規則轉換為串行字節流在網絡上傳輸。

2 開發環境介紹

2.1 AT91SAM9260工控機

本文使用的AT91SAM9260工控機是一套基於ARM926EJ-S核心的嵌入式工控機系統,處理器採用ATMEL公司的AT91SAM9260,210 MHz,230MIPs。存儲器包括64MB NandFlash,64MB SDRAM,2MB NorFlash。網絡(Ether-net)單元為一個10/100M網絡。作業系統為2.6.19內核的嵌入式linux。該設備的軟硬體平臺是完全滿足SNMP協議的開發需求的。

2.2 net-snmp開發包

net-snmp開發包是由加州大學戴維斯分校(University ofCalifonia,Davis)開發並維護的可在linux系統下使用的SNMP協議開發程序。本文使用的是net-snmp-5.4.4版本,其組成內容主要包括:

1)可擴展SNMP Agent程序(snmpd)開發庫;

2)幾個用於設置SNMP代理變量的管理端命令(snmpget,snmpset,snmpwalk等);

3)將MIB文件轉換成C語言程序用於MIB庫擴展的mib2c工具;等等。

3 SNMP協議實現

3.1 交叉編譯環境搭建

由於AT91SAM9260工控機平臺上的嵌入式linux系統運行能力有限,需要在電腦上搭建net-snmp的交叉編譯環境。電腦的作業系統選用的是fedora 8,交叉編譯工具選用的是AT91SAM9260工控機開發包自帶的armv51-linux-gcc.tar.bz2交叉編譯器。

交叉編譯環境搭建好以後,將net-snmp-5.4.4.tar.gz開發包拷貝到fedora 8系統的/usr/local/src文件夾下,打開fedora 8下終端(terminal)程序,運行「tar-zxvf net-snmp-5.4.4.tar.gz/work」、「cob/work/net-snmp-5.4.4」,就到達net-snmp-5.4.4的源碼所在的文件夾「/work/net-snmp-5.4.4」中了。

交叉開發環境搭建好以後,就可以開始在工控機上實現SNMP協議的開發了。開發過程主要分為以下兩個部分:

1)開發出能在AT91SAM9260工控機上運行的SNMPAgent程序(即snmpd程序);

2)通過net-snmp開發包提供的工具,擴展MIB庫。

3.2 SNMP Agent開發

在使用net-snmp開發包編譯smnpd程序之前,要對編譯選項進行配置。繼續在fedora 8下運行「./configure-with-cc=armv51-linux-gcc-with-ar=armv51-linux-ar-enable-mini-agent-with-endianness=little-enable-mini-agent-disable-ipv6-disable-snmptrapd-subagent」,此命令主要是對交叉編譯器,目標機大小端,代理的編譯模式進行配置。各配置選項的具體含義可以運行「./configure-help」查看。

配置完net-snmp編譯選項後可以進行靜態編譯,運行「make LDFLAGS=」-static」」,編譯得到snmpd。將snmpd拷貝到工控機作業系統的/usr/sbin目錄下,並在工控機作業系統終端下運行「ehmod u+x snmpd」,更改snmpd的權限。

要在工控機作業系統下運行SNMP Agent程序,還需要配置snmpd.conf文件。使用電腦上路徑「/work/net-snmp-5.4.4/EXAMPLE.conf」的文件作為測試範本,將其拷貝成工控機「/usr/loeal/share/snmp/snmpd.cord」文件,將其中的community設置修改為以下內容:

#sec.name source community

com2sec local loealhost public

com2sec net 192.168.0.135/24 public

其中工控機所在的測試網段為192.168.0.xxx。將組設置改為可讀寫(group MyRWGroup v2c net),以方便測試使用。

移植完snmpd和snmpd.eonf文件後,在工控機作業系統終端下運行「snmpd-f-Le-d」命令,如果正常啟動,則snmpd移植成功。

3.3 MIB庫擴展

進入fedora 8的「/work/net-snmp-5.4.4/share/snmp/mibs」路徑下,可以看到net-snmp包涵了很多公有MIB文件。這些文件都是按照規範格式開發出來的。管理信息庫的擴展就是將按照這種規範格式開發出來的私有MIB文件移植到net-snmp中。以實現管理端通過SNMP協議對私有對象進行管理。擴展MIB庫主要分為以下三個步驟:

首先,將待擴展的私有MIB文件拷貝到fedora 8的「/work/net-snmp-5.4.4/share/snmp/mibs」路徑下,並將該MIB文件添加到環境變量MIBS中去(fedora下運行「ex port MIBS=ALL」)。添加完可以用net-snmp自帶的snmptranslate命令檢測代理是否能夠正確找到待擴展的私有MIB。

然後,使用mib2c工具生成C文件,例如fedora下運行「mib2 netSnmpExampleScalars」命令,就會生成MIB文件中定義的netSnmpExampleScalars對象的.h文件和.c文件。其中.h文件對節點進行函數聲明和宏定義。.c文件分為初始化函數和響應函數兩大塊。其中初始化函數用來對變量進行註冊,響應函數用來響應管理端的操作命令,響應函數的返回值需要手工填充。

最後,將私有MIB生成的C文件拷貝到「/work/net-snmp-5.4.4/agent/mibgroup」目錄下,重新配置net-snmp,在./configure後面添加「-with-mib-modules=「XXX 」」(其中XXX為生成的C文件名),編譯生成新的snmpd程序,移植到工控機系統中。

連接好工控機到電腦的網絡,使用net-snmp開發包自帶的snmpget,snmpset等命令測試snmpd的運行情況,如果得到正確的結果測試,就證明在AT91SAM9260工控機上實現SN MP協議成功。

4 結束語

net-snmp開發包提供了強大的開發和測試工具,使開發者能方便地完成各種嵌入式工控機平臺下的SNMP協議開發。本文實現的基於AT91SAM9260工控機平臺的SNMP協議,在工業級網際網路管理設備的開發上有著很大的應用前景。

相關焦點

  • 通過ucd-snmp完成SNMP Agent的源碼
    那麼接下來我們主要介紹了一下相關協議的開源開發內容,並且討論採用開放源碼的ucd-snmp 4.2.1軟體包開發自己的SNMP Agent,不涉及SNMP協議包的組包、解析等問題。本文從以下部分進行介紹:一:ucd-snmp 4.2.1簡介及SNMP Agent開發步驟二:MIB庫模塊設計及代碼轉換三:SNMP Agent功能擴展方式四:uCLinux
  • 盤點:都哪些國內大佬盤踞工控機市場
    工控機不僅具有重要的商業和個人計算機屬性和特徵如計算機CPU、硬碟、內存、外設及接口;還有專業的作業系統、控制網絡和協議、計算能力、友好的人機界面等等。工控行業的產品和技術非常特殊,屬於中間產品,是為其他各行業提供可靠、嵌入式、智能化的工業計算機。
  • 觸想智能:中小尺寸工業一體機、安卓一體機、工控機有何區別?
    工控機工控機即工業控制計算機 ,但現在一般叫法是產業電腦或工業電腦 ,英文簡稱IPC,全稱Industrial Personal Computer。工控機通俗來說就是專門為工業現場而設計的計算機。目前工控機的主要類別有:IPC(PC總線工業電腦)、PLC(可編程控制系統)、DCS(分散型控制系統)、FCS(現場總線系統)及CNC(數控系統)五種。
  • 基於和欣嵌入式作業系統實現的一個構件化的網絡協議棧設計淺析
    基於和欣嵌入式作業系統實現的一個構件化的網絡協議棧設計淺析 電子發燒友 發表於 2019-02-20 14:59:23 嵌入式Internet是隨著嵌入式系統的廣泛應用和計算機網絡技術的發展而產生的一種新概念和技術
  • 觸想智能:中國製造2025「利好」,將給工控機行業帶「質」的轉變
    隨著工業的不斷發展,工控機因其專門為工業現場而設計的屬性,在應對工業現場具有強震動、灰塵多、高電磁場力幹擾等具有良好性能的特點,可以說以工控機為基礎的工業自動化正在成為市場主流,這也使得工控機的應用場景在不斷拓寬。
  • 基於IoT+AI技術融合的智能貨櫃核心系統方案 助力企業快速轉型升級
    ,基於Android、Linux平臺設計,集工控機、4G路由器、控制器為一體,具備集成度高、成本低、可擴展性強等特點,是各類自助終端的核心大腦 (4)屏工控一體機——售貨機快速升級改造,即插即用 將觸摸顯示屏和工控機集成一體化,解決日常售貨機維護中屏和工控機繁瑣調試問題,適合當下各種帶屏售貨機以及傳統售貨機改造,無需整機替換,只需接入屏工控一體機設備,即可實現觸屏選貨,同時通過顯示屏進行微信、支付寶掃碼支付,極大提高項目部署效率,降低應用成本
  • 研華掌上型嵌入式工控機EPC-C301,專注高性能機器視覺應用
    本文引用地址:http://www.eepw.com.cn/article/202009/418037.htm研華EPC-C301嵌入式工控機搭載Intel®第八代 Core™ i7 - 8665UE/i5-8365UE低功耗CPU,可為攝像頭、門控、讀卡器、鍵盤和收據印表機等外圍設備提供豐富的I/O接口。
  • SSH和SSL的區別—基於原理和協議
    SSL證書主要是部署在網站伺服器中,通過SSL協議實現瀏覽器客戶端與網站伺服器通信鏈路上的數據加密,並認證網站伺服器身份,防止釣魚網站。它用來保障你的瀏覽器和網站伺服器之間安全通信,免受網絡「中間人」竊取信息。傳統的HTTP協議採用明文傳輸數據,用戶數據存在被竊取和篡改的風險。而部署了SSL證書的網站,可以採用安全的HTTPS協議進行訪問。
  • NSQ:基於Go語言的分布式實時消息平臺
    如果你希望更多的在朋友圈見到極客邦,看到InfoQ的精彩內容,尋找我們主辦與支持的給力活動;如果你希望能更經常地與我們聯繫,隔三差五調戲我們一下,那就複製微信號:HelloStuQ ,加Q妹的個人微信吧~NSQ是一個基於Go語言的分布式實時消息平臺,它基於MIT開源協議發布,代碼託管在GitHub,其當前最新版本是0.3.1
  • 中科大首次在國際上實現基於遠距離自由空間信道的測量設備無關...
    打開APP 中科大首次在國際上實現基於遠距離自由空間信道的測量設備無關量子密鑰分發 新華網 發表於 2020-12-27 11:01:16
  • 基於 FPGA 的模擬 I²C協議設計(中)
    今天給大俠帶來基於FPGA的 模擬 I²C 協議設計,由於篇幅較長,分三篇。今天帶來第二篇,中篇,I²C 協議的具體實現。話不多說,上貨。之前也有相關文章介紹,這裡超連結一下,僅供各位大俠參考。自2006年10月1日起,使用 I²C 協議已經不需要支付專利費,但製造商仍然需要付費以獲取 I²C 從屬設備地址。I²C 簡單來說,就是一種串行通信協議,I²C的通信協議和通信接口在很多工程中有廣泛的應用,如數據採集領域的串行 AD,圖像處理領域的攝像頭配置,工業控制領域的 X 射線管配置等等。
  • 基於雲計算技術實現教育三通兩平臺的應用解決方案
    基於雲計算技術實現教育三通兩平臺的應用解決方案 佚名 發表於 2020-12-24 11:37:50 一、背景概述 教育信息化是衡量一個國家和地區教育發展水平的重要標誌
  • SNMP MIB完整手冊
    , 目前已實現了bind9 mysql bind等數據流量的分析(其實也就是用腳本取數據,最後用rrdtool畫圖出來), 但學習的過程中, 發現不大了解SNMP MIB概念, google了一下,下面的文章應該能解答一部分與我有同樣問題的朋友們(我簡單進行了排版整理)SNMP協議詳解簡單網絡管理協議(SNMP:Simple Network
  • 基於蜂窩通信技術實現的物聯網(IoT)M2M通信概述
    基於諸如3GPP開發的技術的解決方案更適合於需要移動性和通信範圍更廣的M2M服務。另一個挑戰是通過API(一種允許實時數據交換的基於標準的接口)來滿足M2M網絡和核心企業系統之間的關鍵鏈路需求。對其的標準化將為實現輕便,大規模,持續可用的實時接口鋪平道路。當前行業正在制定協調一致的API標準以鍛造實現價值鏈。以上所有特性都是為M2M通信提供最佳解決方案的基礎。
  • 高新興:GM552A模組是基於高通平臺
    同花順金融研究中心7月10日訊,有投資者向高新興提問, 您好,請介紹一下貴公司的GM552A模組是基於什麼平臺等等資料。謝謝!公司回答表示,GM552A模組是基於高通平臺,該系列無線通訊模組支持LTE Cat.4,可以提供最大50Mbps上行速率和150Mbps下行速率,並支持切換到3G或2G網絡。該模組支持分集接收。分集接收能夠通過雙天線提高無線連接通訊質量和通訊可靠性。
  • 直播平臺如何使用RTMP實現視頻直播低延遲
    選擇協議傳輸協議的選擇十分重要。傳輸協議一定程度上就決定了延遲的範圍。選擇傳輸協議的時候要考慮是推流端還是拉流端。推流端的協議有RTMP, WebRTC和基於UDP的私有協議。1) RTMP是基於TCP的標準協議,CDN網絡普遍支持,也能做到相對比較低的延遲。
  • 基於ADAM5510-E/TCP實現動力系統訓練模擬器的設計
    基於ADAM5510-E/TCP實現動力系統訓練模擬器的設計 楊佔錄;王宗亮; 發表於 2020-12-16 18:05:00   作者:楊佔錄;王宗亮;劉海光
  • 基於ARM嵌入式開發平臺和GPRS無線傳輸網絡的遠程圖像監控設計方案
    打開APP 基於ARM嵌入式開發平臺和GPRS無線傳輸網絡的遠程圖像監控設計方案 電子發燒友 發表於 2019-04-27 10:06:00
  • 幣安新幣挖礦第三期項目Flamingo:基於Neo的互操作性全棧DeFi協議
    Flamingo是基於Neo的互操作性全棧DeFi協議。Flamingo主要由5個模塊組成,包括跨鏈資產網關——Wrapper,鏈上資產流動性交易所——Swap,一站式資管中心——Vault,基於AMM的永續合約交易平臺——Perp,以及去中心化治理機制DAO。FLM是Flamingo的治理通證,將基於Flamingo項目參與者的貢獻度進行100%分配。