• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      嵌入式μC/OS-II系統(tǒng)的SNMP Agent研究與實現(xiàn)

      2018-08-21 01:59:50李宥謀劉永斌趙成青
      計算機技術(shù)與發(fā)展 2018年8期
      關(guān)鍵詞:網(wǎng)絡管理嵌入式代理

      王 濤,李宥謀,劉永斌,趙成青

      (西安郵電大學 計算機學院,陜西 西安 710000)

      0 引 言

      隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡設備往往由許多相對獨立的可管理模塊組成,并要求實現(xiàn)靈活擴展,以滿足特定的應用[1]。由于這些可管理模塊可能包含其相應的標準或私有的MIB庫,故對于網(wǎng)絡管理,尤其是對代理的可擴展性提出了更高的要求。然而作為網(wǎng)絡管理協(xié)議業(yè)界標準的簡單網(wǎng)絡管理協(xié)議(simple network management protocol,SNMP),卻沒有提供能將眾多模塊納入統(tǒng)一的SNMP管理之下的解決方案[2]。網(wǎng)絡管理標準共有SNMP(v1/v2c/3)三個版本,應用最多的是v1和v2c版本。由于HFC(混合光纖同軸電纜網(wǎng))接入網(wǎng)還沒有定義標準的節(jié)點,因此,要用SNMP對設備進行管理,必須要擴展原有的MIB。由于不同設備的操作系統(tǒng)有很大的區(qū)別,這就要求代理程序能夠方便地進行移植,不應帶有專有系統(tǒng)的痕跡[3]。

      為了滿足這一需求,選擇一款合適的RTOS(嵌入式實時操作系統(tǒng),embedded real-time operation system)具有十分重要的意義。當下比較流行的嵌入式操作系統(tǒng)有:美國WindRiver公司的VxWorks、Windows CE、μClinux、μC/OS-II,另外還有eCos等[4]。μC/OS-II是一款優(yōu)秀的嵌入式實時操作系統(tǒng),移植時十分的簡單,只需要對CPU中相關(guān)的三個文件進行修改即可,而且占用空間小、執(zhí)行效率高,可以滿足文中的需求[5]。

      1 SNMP的主要組成

      1.1 管理信息結(jié)構(gòu)(SMI)

      SMI規(guī)范了被管對象的表示和命名方法,以及MIB中各類信息的數(shù)據(jù)類型。為了保證管理信息具有唯一識別性,可對被管對象命名和標識。標識由一個簡單的文本描述和一個整數(shù)組成,在消息傳遞中比名字更容易編碼,更節(jié)省空間[6]。因此,使用標識定義被管對象。對象標識采用樹形結(jié)構(gòu)來管理信息目錄。

      1.2 管理信息庫(MIB)

      為了實現(xiàn)被管設備的網(wǎng)絡管理,每一個被管理元素被看作是一個對象,而MIB就是這些對象的結(jié)構(gòu)化集合。MIB使用SMI和ASN.1來描述管理信息,管理信息建立在SMI定義的信息樹下(iso.org.dod.internet),每個管理信息都是管理信息樹的一個節(jié)點,擁有唯一的對象標識(object identifier,OID)。MIB庫定義了管理信息的OID、類型、取值、權(quán)限,管理者通過管理協(xié)議對MIB庫的信息進行存取和訪問,就可以實現(xiàn)基本的網(wǎng)絡管理,因此對MIB庫的訪問存取是實現(xiàn)網(wǎng)絡管理的關(guān)鍵[7]。

      建立的私有MIB如圖1所示。

      圖1 MIB庫的建立

      由于樹中的每個節(jié)點都有唯一的一個雙親節(jié)點,因此,采用“雙親表示法”存儲MIB樹型結(jié)構(gòu)。雙親表示法和二叉樹的雙親鏈表相類似,用一組連續(xù)的存儲空間(一維數(shù)組)存儲樹中的各個節(jié)點。數(shù)組中的一個元素采用樹中的一個節(jié)點,每個節(jié)點含兩個域,數(shù)據(jù)域存放節(jié)點本身信息,雙親域指示本節(jié)點的雙親節(jié)點在數(shù)組中的位置。

      這種表示方法有利于更快速地查找父節(jié)點和根節(jié)點[8]。

      1.3 SNMP規(guī)程

      SNMP以UDP協(xié)議為基礎,規(guī)定了管理者和Agent之間SNMP報文信息交互的一些語法、語義和交互基本規(guī)則。為了方便實現(xiàn)管理者與Agent之間信息的交互,SNMP提供了一套命令(get、set、bulkget、getnext、Trap)來實現(xiàn)對MIB信息的存取訪問。

      2 代理的設計平臺

      2.1 軟件開發(fā)工具的選擇

      針對ARM處理器常用的開發(fā)工具有ADS(ARM developer suite)、Keil μVision、ARM-Linux-GCC/GDB、Embedded VC等,其中GCC/GDB主要用于嵌入式Linux系統(tǒng)的開發(fā),Embedded VC主要用于WinCE系統(tǒng)下的嵌入式開發(fā)[9]。

      由于文中是基于嵌入式實時操作系統(tǒng)μC/OS-II,同時Keil μVision相比ADS在窗口界面上為軟件開發(fā)者提供了一個整潔、方便、高效的環(huán)境,新版本支持更多最新的ARM芯片,比如文中使用的LPC1768微處理器,所以綜合考慮選擇Keil μVision4作為軟件開發(fā)環(huán)境[10]。

      2.2 移植μC/OS-II的步驟

      第一步:在Keil中新建一個工程,并添加啟動代碼start.s。

      第二步:通過http://micrium.com/下載μC/OS-II的工程文件,將下載的源碼包按要求分類加入到新建的工程中。

      第三步:按需要對源代碼進行修改,由于修改的源代碼主要與系統(tǒng)內(nèi)核有關(guān),而μC/OS-II里Ports文件夾的文件os_cpu.h、os_cpu_a.asm、os_cpu_c.c都是與系統(tǒng)內(nèi)核有關(guān)的,因此只要對這三個文件進行修改,就能把它移植到嵌入式處理器LPC1768上,如圖2所示。

      3 儀器代理的設計方案

      3.1 儀器代理模塊硬件設計

      代理模塊硬件由開發(fā)板和功能模塊組成,如圖3所示。

      圖2 μC/OS-II的文件結(jié)構(gòu)

      圖3 代理硬件組成

      硬件主電路如下:

      (1)恩智浦LPC1700,支持可移植μC/os-II操作系統(tǒng)。

      (2)有多外設擴展接口供用戶應用,如GPIO接口、CAN總線接口、SPI接口、以太網(wǎng)接口、USB接口、可供下載調(diào)試的JTAG接口等。

      (3)開發(fā)板支持多種調(diào)試軟件、調(diào)試工具進行操作,如支持KEIL、IAR等仿真軟件;支持J-LINK、AK100等仿真工具[11]。

      (4)儀器模塊:溫度傳感器模塊、二氧化碳模塊、示波器等。

      3.2 儀器代理模塊軟件總體設計

      代理軟件在總體結(jié)構(gòu)上是按照硬件適配層、TCP/IP協(xié)議棧層、應用軟件層來劃分的,其中應用層又分為SNMP服務器模塊、掃描儀器模塊、Trap模塊等,硬件適配層包括串口接口驅(qū)動、II2C驅(qū)動等。各層次間的函數(shù)調(diào)用并不一定都是從上往下逐層展開的,例如應用層軟件有可能直接調(diào)用硬件適配層的函數(shù)[12]。軟件總體架構(gòu)如圖4所示。

      4 SNMP代理模塊的測試與分析

      為了對開發(fā)軟件進行測試,搭建如下的測試系統(tǒng):硬件包括一臺遠端控制計算機、一個路由器和一個LPC1768開發(fā)板,Windows操作系統(tǒng),NMS管理軟件net-snmp-5.4.1-3.exe[13]。

      圖4 軟件總體架構(gòu)

      在代理LPC1768開發(fā)板上運行SNMP代理,等待遠端管理主機上SNMP管理站的消息請求,測試過程為:首先通過get查看代理的信息,然后通過對代理上的第四個儀器上的四個節(jié)點的訪問,可以查看到儀器的四個屬性包括基本的儀器屬性,例如:儀器名稱、儀器型號等。文中代理1上第四個儀器連接的是一個高精度的溫度傳感器,可以通過get命令實時地查看溫度的變化情況,可以實時地把溫度傳給SNMP的管理站,管理站就可以得到溫度的變化情況。這里以代理1的第四個儀器為例來進行測試。

      Get命令格式為:snmpget -v 2c -c 團體名 代理的IP地址 對象OID

      snmpget -v 2c -c public 192.168.0.201 1.3.6.1.4.1.1199.1.5.0

      響應信息為:

      SNMPv2-SMI::enterprise.1199.1.5.0=STRING:“Agent1_lpc1768”

      Get命令格式為:snmpget -v 2c -c 團體名 代理的IP地址 對象OID

      snmpget -v 2c -c public 192.168.0.201 1.3.6.1.4.1.1199.1.4.1.0

      響應信息為:

      SNMPv2-SMI::enterprise.1199.1.4.1.0=STRING: “IIC”

      Get命令格式為:snmpget -v 2c -c 團體名 代理的IP地址 對象OID

      snmpget -v 2c -c public 192.168.0.201 1.3.6.1.4.1.1199.1.4.2.0

      響應信息為:

      SNMPv2-SMI::enterprise.1199.1.4.2.0=STRING:“p_wendu”

      Get命令格式為:snmpget -v 2c -c 團體名 代理的IP地址 對象OID

      snmpget -v 2c -c public 192.168.0.201 1.3.6.1.4.1.1199.1.4.3.0

      響應信息為:

      SNMPv2-SMI::enterprise.1199.1.4.3.0=STRING: “GY-80”

      Get命令格式為:snmpget -v 2c -c 團體名 代理的IP地址 對象OID

      snmpget -v 2c -c public 192.168.0.201 1.3.6.1.4.1.1199.1.4.4.0

      因為1.3.6.1.4.1.1199.1.4.4.0對應的OID是高精度溫度傳感器采集溫度傳上來的十六進制數(shù),是一個實時變化的數(shù)據(jù),所以此時得到的數(shù)據(jù)只能代表此時的溫度。舉例如下,采集到的溫度是:SNMPv2-SMI::enterprise.1199.1.4.4.0=STRING:01 02,然后將傳上來的十六進制的01 02,通過傳感器資料轉(zhuǎn)換成十進制的溫度值:(0*163+1*162+0*161+2+160)/10=25.8,所以此時的空氣溫度是25.8度。

      4.1 測試步驟

      (1)采用keil編譯工具對SNMP_Agent代理源代碼進行編譯、調(diào)試、運行;

      (2)采取不同的測試方法,完成對管理對象的操作。

      4.2 NMS管理站測試結(jié)果

      在測試過程中,SNMP代理進程運行在LPC1768開發(fā)板上,其IP地址為:192.168.0.201。該方法使用標準的net-snmp軟件包,通過命令行方式完成系統(tǒng)測試。有關(guān)net-snmp安裝請參考相關(guān)資料,這里不再贅述[14]。對于系統(tǒng)中所有的管理對象的測試方法類似,在此以管理對象對代理1上的第四個儀器測試為例進行說明,其測試結(jié)果如圖5所示。

      圖5 NMS測試結(jié)果(1)

      從圖5可以看出,SNMP管理站對代理1的管理是成功的。首先查看的是代理的信息,可以查看出是第幾個代理和代理的型號;其次通過get查看代理1上儀器4的每一個節(jié)點,對每一個節(jié)點進行g(shù)et就可以得到不同的屬性??梢奡NMP管理站可以通過與代理之間的交互,直接獲得儀器的數(shù)據(jù)和屬性信息。對代理發(fā)送snmpbulkget命令,通過該命令就可以一次獲得儀器上的多個屬性,文中為了方便對儀器的操作,對snmpgetbulk進行了限制,使其一次獲得最多的儀器屬性為4個,就是在命令行輸入OID節(jié)點,就可以連續(xù)獲得其節(jié)點下面的四個連續(xù)節(jié)點的屬性。

      從圖6可以看出,遠程管理主機對代理進行snmpgetnext、set管理是成功的,通過snmpgetnext命令可以得到下一個節(jié)點的值,也就是通過上一個節(jié)點可以查看下一個節(jié)點的值,而通過遠程管理主機向代理首先發(fā)送get命令查詢該管理節(jié)點當前的屬性,然后通過set命令修改該節(jié)點的屬性,最后再通過get命令查詢該節(jié)點的屬性是否修改成功。通過圖6可以看出,set成功修改了儀器原來的名稱,使儀器擁有了一個新的名稱。

      圖6 NMS測試結(jié)果(2)

      5 結(jié)束語

      首先對μC/OS-II系統(tǒng)的優(yōu)勢進行了簡單的介紹,對SNMP協(xié)議的SMI、MIB庫以及SNMP規(guī)程進行分析,然后建立私有MIB庫和μC/OS-II系統(tǒng)的移植,通過測試環(huán)境對所需軟硬件的要求,給出設計方案,最后使用標準的net-snmp管理軟件對代理開發(fā)板上的SNMP代理進行請求(get、bulkget、getnext、set),以檢測該代理是否可以實現(xiàn)遠程管理站與儀器之間的通信。結(jié)果表明,測試基本滿足了實現(xiàn)對儀器遠程控制的實時性要求,可能由于以太網(wǎng)的實際應用環(huán)境,會在網(wǎng)絡層及傳輸層產(chǎn)生延遲,會對儀器的實時控制產(chǎn)生影響。

      猜你喜歡
      網(wǎng)絡管理嵌入式代理
      代理圣誕老人
      代理手金寶 生意特別好
      電動汽車充電服務網(wǎng)絡管理初探
      搭建基于Qt的嵌入式開發(fā)平臺
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
      基于EOC通道的SHDSL網(wǎng)絡管理技術(shù)
      復仇代理烏龜君
      學生天地(2016年23期)2016-05-17 05:47:15
      Altera加入嵌入式視覺聯(lián)盟
      倍福 CX8091嵌入式控制器
      自動化博覽(2014年4期)2014-02-28 22:31:15
      校園網(wǎng)絡管理及安全防護
      河南科技(2014年11期)2014-02-27 14:16:52
      南召县| 兰考县| 通城县| 瑞丽市| 富顺县| 玛多县| 红安县| 文登市| 永清县| 新巴尔虎右旗| 伊春市| 通江县| 沙雅县| 六安市| 登封市| 晋城| 尖扎县| 麻栗坡县| 宁津县| 慈溪市| 壤塘县| 长岛县| 昆山市| 蓬莱市| 承德县| 上林县| 苗栗市| 保康县| 平山县| 新竹县| 南澳县| 桓台县| 乌拉特后旗| 简阳市| 瓦房店市| 长治县| 潞城市| 锡林浩特市| 格尔木市| 资源县| 同心县|