摘要:將IEEE 802.11b技術(shù)應(yīng)用于工控網(wǎng)絡(luò),必須對(duì)無線網(wǎng)關(guān)進(jìn)行有效監(jiān)控。文章介紹了無線網(wǎng)關(guān)接入工業(yè)以太網(wǎng)的原理和的功能,對(duì)SNMP(SimpleNetworkManagementProtocol)管理模型及協(xié)議體系結(jié)構(gòu)進(jìn)行了分析,詳細(xì)闡述了SNMP在嵌入式無線網(wǎng)關(guān)系統(tǒng)上的實(shí)現(xiàn)過程,并給出了測試結(jié)果。
關(guān)鍵詞:嵌入式Linux;SNMP;無線網(wǎng)關(guān);管理模型
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)23-927-03
The Realization of SNMP on Embedded Wireless Gateway
ZHU Bin, TAN Yong
(Physics and Electronic Information Department of Yangtze Normal University, Chongqing 408100, China)
Abstract: IEEE 802.11b technology is being used in industrial control networks, the need for effective monitoring and control of wireless gateways is necessary. This paper introduces the function of the wireless gateway and the principle that the wireless gateway access to industrial ethernet, it analysisess the management model and the architecture of protocol system of SNMP, and also gives a particular description of the realization process of SNMP on embedded wireless gateway. At last, it presents the experiment results.
Key words: embedded linux; SNMP; wireless Gateway; management model
1 引言
將IEEE 802.11b技術(shù)應(yīng)用于工控網(wǎng)絡(luò),工控網(wǎng)絡(luò)就在現(xiàn)場總線體系結(jié)構(gòu)的基礎(chǔ)上兼有了無線通信的優(yōu)點(diǎn)。與此同時(shí),工控網(wǎng)絡(luò)規(guī)模的擴(kuò)大,使其結(jié)構(gòu)日趨復(fù)雜,如何對(duì)工控網(wǎng)絡(luò)進(jìn)行有效監(jiān)控,及時(shí)發(fā)現(xiàn)存在的故障和不安全因素,盡可能提高設(shè)備的利用率和運(yùn)行效率,逐漸成為工控網(wǎng)絡(luò)管理者面臨的問題。
2 嵌入式無線網(wǎng)關(guān)
2.1 嵌入式無線網(wǎng)關(guān)接入工控網(wǎng)絡(luò)的模型
基于802.11b的工業(yè)現(xiàn)場設(shè)備接入工業(yè)以太網(wǎng)的協(xié)議模型如圖1所示,無線網(wǎng)關(guān)接入采用主從接入方式,所有基于802.11b的工業(yè)現(xiàn)場設(shè)備與 802.11b 無線網(wǎng)關(guān)連接,由802.11b無線網(wǎng)關(guān)負(fù)責(zé)無線通信管理和與有線網(wǎng)絡(luò)的連接。
協(xié)議模型中,RF物理層是802.11b協(xié)議模型的第1層,具有載波監(jiān)聽,傳送和接收等功能。802.11b MAC,802.1d和802.2LLC(Logic Link Control)是802.11b協(xié)議模型第2層(數(shù)據(jù)鏈路層)。MAC 層具有無線介質(zhì)訪問,網(wǎng)絡(luò)連接以及提供數(shù)據(jù)驗(yàn)證和保密等功能。邏輯鏈路控制LLC 層定義了所有 802LAN 類型的差錯(cuò)控制,包括 802.11b 的差錯(cuò)控制。LLC具有傳統(tǒng)數(shù)據(jù)鏈路控制協(xié)議:高級(jí)數(shù)據(jù)鏈路控制(HDLC:High_ Level Data Link Control)的相似功能,提供尋址和數(shù)據(jù)鏈路控制服務(wù)。
2.2 通信原理
基于802.11b的無線終端工業(yè)現(xiàn)場設(shè)備→工業(yè)控制網(wǎng)絡(luò)通信時(shí),基于802.11b的無線網(wǎng)關(guān)按照802.11b協(xié)議接收無線終端現(xiàn)場設(shè)備的數(shù)據(jù)包并按IEEE802.3協(xié)議進(jìn)行封裝后,轉(zhuǎn)發(fā)到工控網(wǎng)絡(luò);工控網(wǎng)絡(luò)→無線終端工業(yè)現(xiàn)場設(shè)備通信時(shí),基于802.11b的無線網(wǎng)關(guān)將工控網(wǎng)絡(luò)傳來的數(shù)據(jù)包按802.11b協(xié)議進(jìn)行封裝后,發(fā)送到無線終端現(xiàn)場設(shè)備;無線終端現(xiàn)場設(shè)備→無線終端現(xiàn)場設(shè)備通信時(shí),若通信雙方相互同時(shí)處于對(duì)方的無線覆蓋區(qū)域,則可直接進(jìn)行通信;若通信雙方處于不同無線基本服務(wù)區(qū)域BSS(Basic Service Set),可以先通過某一無線網(wǎng)關(guān)進(jìn)入工控網(wǎng)絡(luò)(無線→有線),再由別的無線網(wǎng)關(guān)發(fā)送給相應(yīng)的無線終端現(xiàn)場設(shè)備(有線→無線)。
3 SNMP體系結(jié)構(gòu)
從上面的分析可以看出,對(duì)無線網(wǎng)關(guān)進(jìn)行有效監(jiān)控非常必要,這是無線工控網(wǎng)絡(luò)健康、高效運(yùn)作的保證,而簡單網(wǎng)絡(luò)管理協(xié)議 SNMP (Simple Network Management Protocol)為實(shí)現(xiàn)這一目標(biāo)提供了可能。
SNMP 管理模型包括四個(gè)部分:管理器(Manager)、管理代理(Agent)、管理信息庫(MIB:Management Information Base)、SNMP協(xié)議。管理器和被管代理之間的信息交換以類客戶/服務(wù)器的方式進(jìn)行。管理器從管理代理處取得網(wǎng)絡(luò)結(jié)點(diǎn)的狀態(tài)數(shù)據(jù),接收代理發(fā)來的Trap,將網(wǎng)絡(luò)的狀態(tài)及時(shí)反映給管理員,管理器在C/S結(jié)構(gòu)中處于Client的地位。管理代理Agent在被管理的網(wǎng)絡(luò)設(shè)備中運(yùn)行,在網(wǎng)絡(luò)管理中代表被管對(duì)象工作。代理收集所代表對(duì)象的狀態(tài)數(shù)據(jù),在C/S結(jié)構(gòu)中處于Server的地位,它對(duì)到來的數(shù)據(jù)請(qǐng)求做出響應(yīng),維護(hù)和報(bào)告被管理設(shè)備的有關(guān)信息。SNMP 管理信息庫 MIB(Management Information Base)是一個(gè)面向?qū)ο蟮臄?shù)據(jù)庫,由 MIB 對(duì)象的信息單元組成。MIB 對(duì)象記錄管理設(shè)備的管理信息,每個(gè)對(duì)象用來代表一個(gè)網(wǎng)絡(luò)資源,代理通過 MIB 來表示所代表對(duì)象的各個(gè)方面的參數(shù)。SNMP 協(xié)議是一個(gè)應(yīng)用層協(xié)議,在一個(gè) SNMP 管理器和一個(gè)或多個(gè)分布式代理(Agent)之間進(jìn)行雙向的數(shù)據(jù)交換。管理器通過SNMP協(xié)議,請(qǐng)求管理代理檢索和改變網(wǎng)絡(luò)設(shè)備的 MIB 信息,管理代理用 SNMP 協(xié)議向管理器主動(dòng)報(bào)告網(wǎng)絡(luò)設(shè)備的狀態(tài)變化。
SNMP 協(xié)議體系結(jié)構(gòu)由管理信息結(jié)構(gòu)(SMI)、管理信息庫(MIB)和 SNMP 本身三部分組成。其中,SMI 和 MIB 兩個(gè)協(xié)議是關(guān)于管理信息的標(biāo)準(zhǔn)。SMI 是表示被管對(duì)象的描述工具,是 ISO 的抽象句法表示 ASN.1 的一個(gè)子集,其中詳細(xì)定義了 MIB 庫的組成結(jié)構(gòu)。SNMP 組織體系結(jié)構(gòu)如圖2所示。
4SNMP在嵌入式Linux上的實(shí)現(xiàn)
4.1 開發(fā)平臺(tái)構(gòu)建
為便于調(diào)試,選擇直接在目標(biāo)板上進(jìn)行的開發(fā)模式,連線如圖3所示。在宿主機(jī)上運(yùn)行 minicom 作為目標(biāo)板的顯示終端,mount 宿主機(jī)硬盤,直接在目標(biāo)板上調(diào)試應(yīng)用。目標(biāo)板上處理器為 MPC852T,操作系統(tǒng)是嵌入式 Linux ,編譯器則選擇 powerpc-linux-gcc。
4.2SNMP 代理的實(shí)現(xiàn)
MIB 是委托代理的關(guān)鍵,定義了可通過網(wǎng)絡(luò)管理協(xié)議進(jìn)行訪問的管理對(duì)象的集合,是被管理對(duì)象的虛擬數(shù)據(jù)庫。MIB 可描述為一棵樹,各數(shù)據(jù)項(xiàng)構(gòu)成樹的葉結(jié)點(diǎn)。每個(gè) MIB 對(duì)象都有一個(gè)惟一的對(duì)象標(biāo)識(shí)符(OID)來標(biāo)識(shí)和命名,這個(gè)標(biāo)識(shí)符取決于 MIB 對(duì)象在樹中的位置,對(duì)象的實(shí)例也有標(biāo)識(shí)符,由對(duì)象類的對(duì)象標(biāo)識(shí)符加上實(shí)例標(biāo)識(shí)符構(gòu)成的。
對(duì)默認(rèn)的 SNMP 配置,代理已經(jīng)包含了基本的 MIB 庫,但基本設(shè)備和廠家的私有MIB 需要加入,所以需要對(duì) MIB 進(jìn)行擴(kuò)展。擴(kuò)展 SNMP 代理程序有多種方法:靜態(tài)加載、動(dòng)態(tài)加載共享鏈接庫和 AgentX 子代理協(xié)議擴(kuò)展 [4],這里采用靜態(tài)加載方式。
編寫需加入的 MIB 庫文件。根據(jù) ASN.1 標(biāo)準(zhǔn)語法創(chuàng)建MIB,MIB 庫文件的編寫是根據(jù) SNMP 協(xié)議中 SMI 部分描述,SMI 所采用的是ASN.1 的一個(gè)子集。ASN.1 是一種可用來定義數(shù)據(jù)結(jié)構(gòu)的語言,他的基本組成單元是模塊;結(jié)構(gòu)定義以命名模塊的形式進(jìn)行,然后模塊的名稱就可以被用來引用該結(jié)構(gòu),模塊的基本形式為:
DEFINITIONS : : =BEGIN
EXPORTS
IMPORTS
AssignmentList
END
EXPORTS結(jié)構(gòu)表示該模塊中的一個(gè)定義可由其他模塊引入。IMPORTS接口表示有其他模塊中的哪一些類型和取值定義要被引入到該模塊中。AssignmentList 是賦值列表,是由類型賦值、取值賦值和宏定義組成。
編寫MIB模塊程序。MIB 模塊程序是為代理進(jìn)程所在的網(wǎng)絡(luò)設(shè)備中的 MIB 變量設(shè)計(jì)的,用于判定所請(qǐng)求的對(duì)象是否在代理進(jìn)程的 MIB 中、驗(yàn)證對(duì)象的訪問方式、確定對(duì)象的位置以及讀取和設(shè)置對(duì)象的值。他包含一個(gè)頭文件(如devicecont rol. h)和源文件(如devicecont rol.c),并置于.../net SNMP/agent/mibgroup 中,編寫方法可參考源包中 example 模塊程序。
實(shí)現(xiàn)模塊程序靜態(tài)鏈接。在源包的一些文件(mib module includes.h、mib module inits.h等)中添加模塊程序文件或者通過在 MakeFile.in 文件中的 MIBS 里面添加 DEVICE CONTROL MIB. txt 重新生成 MakeFile 文件。
這樣,編譯生成的SNMP擴(kuò)展代理程序中就包含了編寫的模塊程序。在usr/src/uClinux dist目錄下執(zhí)行make user only命令可得到SNMP代理應(yīng)用程序SNMPd 。
配置文件 snmpd.conf 和 snmp.conf 在 /usr/local/snmp/ 目錄下。前一個(gè)是 net-sump 代理的配置文件,包括擴(kuò)展子代理、動(dòng)態(tài)裝載模塊、訪問控制、系統(tǒng)信息、PASS-THROUGH 控制等。snmp.conf 是 net-snmp 應(yīng)用程序的配置文件,大多是應(yīng)用程序(命令)的缺省配置,如sump版本、community、端口等。重新定制 ramdisk ,運(yùn)行./easy_build 得到新的 linux.bin,燒寫 linux.bin 即可。
5系統(tǒng)測試
在宿主機(jī)上建立一個(gè) /snmplib 目錄,拷貝 libnetsnmpagent.so.5、libnetsnmphelpers.so.5、libnetsnmpmibs.so.5、ibnetsnmp.so.5 到該目錄下。完成配置和 mount 的工作后,板子可啟動(dòng) snmpd,在 shell 下面打上 /usr/local/snmp/sbin/snmpd 即可,或直接加在 /etc/rc.d/rc.local 中,可實(shí)現(xiàn)自動(dòng)開機(jī)啟動(dòng)了。開發(fā)板上電運(yùn)行,在根目錄下鍵入相應(yīng)的命令,即可得到如下結(jié)果:
# snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.10.1.5.1
enterprises.ucdavis.laTable.laEnter.laLoadInt.1= 89
# snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.10.1.5.2
enterprises.ucdavis.laTable.laEnter.laLoadInt.2 = 60
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.10.1.5.3
enterprises.ucdavis:laTable.laEnter.laLoadInt.3 = 43
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.9.1.9.1
enterprises.ucdavis.dSkTable.dskEnter.dskPercent.1 = 45
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.9.1.9.2
enterprises.ucdavis.dskTable.dskEnter.dskPercent.2 = 60
#snmpwalk -v 1 localhost PUBLIC .1.3.6.1.4.1.2021.9.1.9.3
enterprises.ucdavis.dSkTable.dSkEnter.dskPercent.3 =23
#snmpdelta localhost public -Cp 10s
IF-MIB::ifInOctets.16777219
IF-MIB::ifOutOctets.16777219
6 結(jié)束語
目前,基于TCP/IP協(xié)議的工業(yè)以太網(wǎng)在組網(wǎng)時(shí)仍需要布線,但在工業(yè)現(xiàn)場,布線在某些場合下會(huì)受到限制,電纜的連接也限制了現(xiàn)場設(shè)備的移動(dòng)和網(wǎng)絡(luò)結(jié)構(gòu)的重組。將IEEE 802.11b技術(shù)應(yīng)用于工控網(wǎng)絡(luò),工控網(wǎng)絡(luò)就在現(xiàn)場總線體系結(jié)構(gòu)的基礎(chǔ)上兼有了無線通信的優(yōu)點(diǎn),隨著網(wǎng)絡(luò)管理功能的逐步完善,基于802.11b的無線工業(yè)現(xiàn)場設(shè)備將在工業(yè)控制網(wǎng)絡(luò)中發(fā)揮越來越大的作用。
參考文獻(xiàn):
[1] 崔金玲,閆娟.基于SNMP 的校園網(wǎng)網(wǎng)絡(luò)性能管理系統(tǒng)的實(shí)現(xiàn)[J].河南師范大學(xué)學(xué)報(bào),2007,35(2):59-61.
[2] Wilmshurst. A design model for embedded systems[C].Newyork:Engineering Education: Innovations in Teaching, Learning and Assessment (Ref. No. 2001/046), IEE International Symposium, 2001:71-77.
[3] RFC 1157, Simple Network Management Protocol (SNMP) [S].
[4] Bourgonjon H, \"Embedded systems in consumer products\" in Lecture Notes in Computer Science, Lectures on Embedded Systems. Heidelberg: Springer-Verlag,1996,1494:395-403.
[5] 宋國榮,何欽銘.基于SNMP 可擴(kuò)展代理的網(wǎng)絡(luò)仿真[J].微電子與計(jì)算機(jī),2005,22(6):184-187.