<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于W5500+STM32的SNMP協(xié)議應(yīng)用

          基于W5500+STM32的SNMP協(xié)議應(yīng)用

          作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          概述

          工具: PCW5500EVB Net-SNMP軟件包編譯環(huán)境:Keil4 &IAR功能:通過網(wǎng)絡(luò)管理協(xié)議SNMP及基本的控制命令實現(xiàn)簡單的LED控制

          本文引用地址:http://www.ex-cimer.com/article/201611/322043.htm

          一、W5500簡介

          韓國WIZnet公司生產(chǎn)的以太網(wǎng)控制芯片W5500整合了五層結(jié)構(gòu)中的前四層,即物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層,并在內(nèi)部利用硬件實現(xiàn)了TCP/IP協(xié)議棧。開發(fā)者無需專業(yè)的網(wǎng)絡(luò)知識,使用W5500如同控制外部存儲器一樣簡單,為用戶提供了最簡單的網(wǎng)絡(luò)接入方法。全硬件TCP/IP協(xié)議棧完全獨立于主控芯片,可以降低主芯片負(fù)載且無需移植繁瑣的TCP/IP協(xié)議棧,便于產(chǎn)品實現(xiàn)網(wǎng)絡(luò)化更新。以太網(wǎng)控制芯片W5500具有以下特點:

          1、W5500支持硬件TCP/IP協(xié)議,包括TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE和以太網(wǎng)的PHY和MAC層,TCP/IP協(xié)議的硬件實現(xiàn)2、支持8個獨立的SOCKET同時工作,可同時工作在不同的工作模式;3、支持高速SPI接口(SPI MODE 0,3),SPI的時鐘最高可達到80MHz,極大地提高了網(wǎng)絡(luò)通信的數(shù)據(jù)傳輸速率;4、內(nèi)部集成32KB存儲器用于發(fā)送/接收緩存;5、內(nèi)嵌10BaseT/100BaseTX以太網(wǎng)物理層(PHY);6、支持自動協(xié)商(10/100-Based全雙工/半雙工);7、工作電壓為3.3V,但I/O信號口可承受5V電壓;

          二、SNMP協(xié)議簡介

          SNMP:“簡單網(wǎng)絡(luò)管理協(xié)議”,用于網(wǎng)絡(luò)管理的協(xié)議。SNMP定義在IP協(xié)議上,使用無連接的UDP進行通信,SNMP支持5個基本的操作,分別是:GetRequest、GetNextRequest、SetRequest、GetResponse和Trap,這 5個操作來自各自的PDU結(jié)構(gòu)。SNMP采用的是一個請求---應(yīng)答的通信方式,Trap除外,Trap不需要應(yīng)答。在具體實現(xiàn)上,SNMP為管理員提供了一個網(wǎng)管平臺(NMS),又稱為管理站,負(fù)責(zé)網(wǎng)管命令的發(fā)出、數(shù)據(jù)存儲、及數(shù)據(jù)分析。被監(jiān)管的設(shè)備上運行一個SNMP代理(Agent),代理實現(xiàn)設(shè)備與管理站的SNMP通信。管理站與代理端通過MIB進行接口統(tǒng)一,MIB定義了設(shè)備中的被管理對象。管理站和代理都實現(xiàn)了相應(yīng)的MIB對象,使得雙方可以識別對方的數(shù)據(jù),實現(xiàn)通信。管理站向代理申請MIB中定義的數(shù)據(jù),代理識別后,將管理設(shè)備提供的相關(guān)狀態(tài)或參數(shù)等數(shù)據(jù)轉(zhuǎn)換為MIB定義的格式,應(yīng)答給管理站,完成一次管理操作。Agent在161端口監(jiān)聽傳來的GetRequest、GetNextRequest和SetRequest命令,NMS在162端口監(jiān)聽傳來的Trap。SNMP操作請求被封裝成一個簡單的UDP分組,接收端處理完請求后應(yīng)答一個UDP的SNMP消息報文;一個請求對應(yīng)一個應(yīng)答就完成了一次操作。SNMP的工作方式:管理員需要向設(shè)備獲取數(shù)據(jù),所以SNMP提供了讀操作;管理員需要向設(shè)備執(zhí)行設(shè)置操作,所以SNMP提供了寫操作;設(shè)備需要在重要狀況改變的時候,向管理員通報事件的發(fā)生,所以SNMP提供了Trap操作。對于網(wǎng)絡(luò)管理,我們面對的數(shù)據(jù)是設(shè)備的配置、參數(shù)、狀態(tài)等信息,面對的操作是讀取和設(shè)置;同時,因為網(wǎng)絡(luò)設(shè)備眾多,為了能及時得到設(shè)備的重要狀態(tài),還要求設(shè)備能主動地匯報重要狀態(tài),這就是報警功能。

          Get:讀取網(wǎng)絡(luò)設(shè)備的狀態(tài)信息。Set:遠(yuǎn)程配置設(shè)備參數(shù)。Trap:管理站及時獲取設(shè)備的重要信息。下面是管理信息庫的對象標(biāo)識

          對象命名樹的頂級對象有三個,即ISO、ITU-T和這兩個組織的聯(lián)合體。Internet(標(biāo)號是1)在ISO 下的被標(biāo)識組織的dod下,其標(biāo)識符為{1.3.6.1}。Internet結(jié)點下面的第二個結(jié)點是mgmt(管理),標(biāo)號是2。其標(biāo)識為{1.3.6.1.2.1}或{Internet(1).2.1}。這種標(biāo)識為對象標(biāo)識符,即ObjectID ,簡稱OID。這里要提一下MIB中的對象{1.3.6.1.4.1},即enterprises(企業(yè)),其所屬結(jié)點數(shù)已超過3000。例如IBM為{1.3.6.1.4.1.2},Cisco為{1.3.6.1.4.1.9},Novell為{1.3.6.1.4.1.23}等。世界上任何一個公司、學(xué)校只要用電子郵件發(fā)往iana-mib@isi.edu

          進行申請即可獲得一個結(jié)點名。這樣各廠家就可以定義自己的產(chǎn)品的被管理對象名,使它能用SNMP進行管理。

          三、Net-SNMP軟件包 目前,開發(fā)SNMP的軟件包有許多可以選擇如SNMP++、AGENT++、NET-SNMP等。這里我們選用的是NET-SNMP。首先它是一個開源軟件,其次基于C語言開發(fā),便于移植。net-snmp早先是在Unix平臺下開發(fā)的?,F(xiàn)可以移植到 Linux 、 Windows等多個平臺。Net-snmp是一個代理端軟件,但也提供管理端的查詢工具。安裝有兩種方式:一是直接安裝的二進制包,二是需要編譯的源代碼。我們在windows平臺上安裝的二進制包,在windows上的二進制包的安裝就非常簡單了,只需按提示就可完成。源代碼和二進制包可從www.net-snmp.org

          網(wǎng)站下載,本文中所用的是net-snmp5.2.1.2的版本。之所以要先安裝一個可運行的net-snmp系統(tǒng),是因為我們開發(fā)程序運行環(huán)境的配置文件,是按照默認(rèn)安裝路徑內(nèi)部設(shè)定搜索的;另外,還可以利用其提供的配置工具來生成配置文件,利用提供的查詢工具來測試程序。運行net-snmp之前先要進行環(huán)境設(shè)置,否則無法查詢到結(jié)果。

          四、系統(tǒng)設(shè)計

          1. 硬件設(shè)計

          下圖是控制板實物圖和LED內(nèi)部接線圖。MCU選用Cotex M3系列STM32F103芯片,以太網(wǎng)控制芯片選用WIZnet的W5500。程序以控制D3為例詳細(xì)介紹SNMP協(xié)議的應(yīng)用。D3和MCU的PA3相連,低電平有效。

          2.程序設(shè)計

          在分析細(xì)節(jié)代碼之前,我們還是先來看一下主函數(shù)。在這里完成了對W5500EVB的初始化,并在主函數(shù)中加入簡單的LED燈閃爍提示,同時也為SNMP協(xié)議啟動做好準(zhǔn)備,之后便進入SNMP協(xié)議操作進程。SNMP協(xié)議操作程序主要是snmplib和snmpdemo兩個子函數(shù)。以下是系統(tǒng)基本的工作流程。 在snmplib程序中詳細(xì)介紹了SNMP協(xié)議的工作流程。以下主要對報警報文的發(fā)送進行簡單地分析。NMS網(wǎng)管平臺在UDP模式下打開162端口監(jiān)聽傳來的Trap,成功得到Trap后關(guān)閉SOCK_SNMP。

          ?int32 SnmpXTrapSend(... ...){

          ..................

          // Send Packet

          {

          uint8 svr_addr[6];

          //UDPOpen(SOCK_SNMP,162);

          socket(SOCK_SNMP,Sn_MR_UDP,162,0);

          ipToByteArray(managerIP, svr_addr);sendto(SOCK_SNMP, packet_trap, packet_index, svr_addr, 162);

          close(SOCK_SNMP);

          return 0;

          }

          }

          Agent工作在UDP模式下,在SOCK_SNMP中打開161端口監(jiān)聽傳來的GetRequest、GetNextRequest和SetRequest命令。成功打開端口以后,首先通過讀取空閑接收緩存寄存器來判斷是否接收到數(shù)據(jù)。如果接收到數(shù)據(jù),就通過recvfrom()從具體的端口和地址把數(shù)據(jù)讀出來。之后判斷數(shù)據(jù)是否正確,若果不正確就返回再次讀取,如果數(shù)據(jù)正確,就發(fā)送到網(wǎng)絡(luò)端執(zhí)行命令。。最后關(guān)閉SOCK_SNMP,執(zhí)行下一次操作。


          上一頁 1 2 下一頁

          關(guān)鍵詞: W5500STM32SNMP協(xié)

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();