<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于A(yíng)T91SAM9260工控機平臺的SNMP協(xié)議實(shí)現

基于A(yíng)T91SAM9260工控機平臺的SNMP協(xié)議實(shí)現

作者: 時(shí)間:2016-10-29 來(lái)源:網(wǎng)絡(luò ) 收藏

互聯(lián)網(wǎng)技術(shù)成本低廉、靈活性強,在很多領(lǐng)域都有著(zhù)廣泛的應用前景。其在工業(yè)自動(dòng)化領(lǐng)域的應用一直是一個(gè)研究熱點(diǎn)。(簡(jiǎn)單網(wǎng)絡(luò )管理)協(xié)議是一種被廣泛應用的互聯(lián)網(wǎng)設備管理協(xié)議,其最大的特點(diǎn)就是成本低廉,容易實(shí)現。協(xié)議可以管理大部分符合Internet標準的設備。通過(guò)添加新的被管對象,可以非常方便地擴展其管理能力。即使在被管設備發(fā)生嚴重的錯誤時(shí),協(xié)議本身的特點(diǎn)也促使其不會(huì )影響管理者的正常工作。

本文引用地址:http://dyxdggzs.com/article/201610/306723.htm

本文介紹一種基于平臺的協(xié)議實(shí)現方法,通過(guò)開(kāi)發(fā)能在平臺上運行的SNMP Agent(SNMP代理),并擴展其(管理信息)庫,實(shí)現在互聯(lián)網(wǎng)上管理本身和與工控機通過(guò)其他通信協(xié)議連接的設備資源。

1 SNMP(簡(jiǎn)單網(wǎng)絡(luò )管理)協(xié)議介紹

1.1 SNMP協(xié)議概述

SNMP協(xié)議是一種基于TCP/IP協(xié)議的應用層網(wǎng)絡(luò )管理標準,被廣泛應用于管理互聯(lián)網(wǎng)上眾多廠(chǎng)家的軟硬件平臺。SNMP協(xié)議的模型如圖1所示,其中管理應用通過(guò)發(fā)送Get、Set、GetNext、GetResponse和Event這五種類(lèi)型的消息來(lái)讀取或設置被管設備的庫,實(shí)現對被管設備的管理。

基于A(yíng)T91SAM9260工控機平臺的SNMP協(xié)議實(shí)現

SNMP協(xié)議作為應用層協(xié)議,通過(guò)用戶(hù)數據報協(xié)議(UDP)來(lái)實(shí)現管理信息在互聯(lián)網(wǎng)上的傳輸,相對于TCP協(xié)議,UDP這種無(wú)連接的通信方式,不但加強了SNMP協(xié)議的穩定性,而且提高了SNMP協(xié)議的運行效率。

1.2 (管理信息)庫

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

基于A(yíng)T91SAM9260工控機平臺的SNMP協(xié)議實(shí)現

2 開(kāi)發(fā)環(huán)境介紹

2.1 工控機

本文使用的AT91SAM9260工控機是一套基于A(yíng)RM926EJ-S核心的嵌入式工控機系統,處理器采用ATMEL公司的AT91SAM9260,210 MHz,230MIPs。存儲器包括64MB NandFlash,64MB SDRAM,2MB NorFlash。網(wǎng)絡(luò )(Ether-net)單元為一個(gè)10/100M網(wǎng)絡(luò )。操作系統為2.6.19內核的嵌入式linux。該設備的軟硬件平臺是完全滿(mǎn)足SNMP協(xié)議的開(kāi)發(fā)需求的。

2.2 net-snmp開(kāi)發(fā)包

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

1)可擴展程序(snmpd)開(kāi)發(fā)庫;

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

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

3 SNMP協(xié)議實(shí)現

3.1 交叉編譯環(huán)境搭建

由于A(yíng)T91SAM9260工控機平臺上的嵌入式linux系統運行能力有限,需要在電腦上搭建net-snmp的交叉編譯環(huán)境。電腦的操作系統選用的是fedora 8,交叉編譯工具選用的是AT91SAM9260工控機開(kāi)發(fā)包自帶的armv51-linux-gcc.tar.bz2交叉編譯器。

交叉編譯環(huán)境搭建好以后,將net-snmp-5.4.4.tar.gz開(kāi)發(fā)包拷貝到fedora 8系統的/usr/local/src文件夾下,打開(kāi)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”中了。

交叉開(kāi)發(fā)環(huán)境搭建好以后,就可以開(kāi)始在工控機上實(shí)現SNMP協(xié)議的開(kāi)發(fā)了。開(kāi)發(fā)過(guò)程主要分為以下兩個(gè)部分:

1)開(kāi)發(fā)出能在A(yíng)T91SAM9260工控機上運行的SNMPAgent程序(即snmpd程序);

2)通過(guò)net-snmp開(kāi)發(fā)包提供的工具,擴展MIB庫。

3.2 開(kāi)發(fā)

在使用net-snmp開(kāi)發(fā)包編譯smnpd程序之前,要對編譯選項進(jìn)行配置。繼續在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”,此命令主要是對交叉編譯器,目標機大小端,代理的編譯模式進(jìn)行配置。各配置選項的具體含義可以運行“./configure-help”查看。

配置完net-snmp編譯選項后可以進(jìn)行靜態(tài)編譯,運行“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

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

移植完snmpd和snmpd.eonf文件后,在工控機操作系統終端下運行“snmpd-f-Le-d”命令,如果正常啟動(dòng),則snmpd移植成功。

3.3 MIB庫擴展

進(jìn)入fedora 8的“/work/net-snmp-5.4.4/share/snmp/mibs”路徑下,可以看到net-snmp包涵了很多公有MIB文件。這些文件都是按照規范格式開(kāi)發(fā)出來(lái)的。管理信息庫的擴展就是將按照這種規范格式開(kāi)發(fā)出來(lái)的私有MIB文件移植到net-snmp中。以實(shí)現管理端通過(guò)SNMP協(xié)議對私有對象進(jìn)行管理。擴展MIB庫主要分為以下三個(gè)步驟:

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

然后,使用mib2c工具生成C文件,例如fedora下運行“mib2 netSnmpExampleScalars”命令,就會(huì )生成MIB文件中定義的netSnmpExampleScalars對象的.h文件和.c文件。其中.h文件對節點(diǎn)進(jìn)行函數聲明和宏定義。.c文件分為初始化函數和響應函數兩大塊。其中初始化函數用來(lái)對變量進(jìn)行注冊,響應函數用來(lái)響應管理端的操作命令,響應函數的返回值需要手工填充。

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

連接好工控機到電腦的網(wǎng)絡(luò ),使用net-snmp開(kāi)發(fā)包自帶的snmpget,snmpset等命令測試snmpd的運行情況,如果得到正確的結果測試,就證明在A(yíng)T91SAM9260工控機上實(shí)現SN MP協(xié)議成功。

4 結束語(yǔ)

net-snmp開(kāi)發(fā)包提供了強大的開(kāi)發(fā)和測試工具,使開(kāi)發(fā)者能方便地完成各種嵌入式工控機平臺下的SNMP協(xié)議開(kāi)發(fā)。本文實(shí)現的基于A(yíng)T91SAM9260工控機平臺的SNMP協(xié)議,在工業(yè)級互聯(lián)網(wǎng)管理設備的開(kāi)發(fā)上有著(zhù)很大的應用前景。



關(guān)鍵詞: SNMP MIB AT91SAM9260 SNMP Agent 工控機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>