<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>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于51單片機的嵌入式SNMP代理器設計與實(shí)現

基于51單片機的嵌入式SNMP代理器設計與實(shí)現

作者: 時(shí)間:2012-01-03 來(lái)源:網(wǎng)絡(luò ) 收藏
0 引言

SNMP(簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議)應用廣泛,功能強大,只要管理軟件駐留有MIB(管理信息庫),并且擁有適當的權限,管理器就可以訪(fǎng)問(wèn)。SNMP一般用于計算機網(wǎng)絡(luò )和電信網(wǎng)絡(luò ),本文提出了用SNMP進(jìn)行控制。由于其傳輸媒介是Internet,所以傳輸距離不受限制,這相對于其他工業(yè)控制總線(xiàn)有不可比擬的優(yōu)勢,SNMP最大的優(yōu)點(diǎn)是協(xié)議簡(jiǎn)潔,適合嵌入式應用。SNMP體系可擴展性強,只要將新的MIB裝載在管理軟件上就可以實(shí)現對新的終端的控制與訪(fǎng)問(wèn),本文介紹了一種基于廉價(jià)的微控制器的實(shí)現嵌入式代理器的方案,以微處理器核心實(shí)現相關(guān)硬件及軟件。

1 SNMP體系結構

SNMP的體系結構(見(jiàn)圖1)以簡(jiǎn)單的查詢(xún)/回答模型為基礎,發(fā)送查詢(xún)的用戶(hù)為管理者,SNMP的服務(wù)器(代理器)回答查詢(xún)。

SNMP在TCP/IP體系中屬于應用層協(xié)議。為了實(shí)現SNMP體系,就必須實(shí)現從應用層到物理層的所有要用到的協(xié)議,管理器在PC機上,代理器處于監測現場(chǎng),代理器駐留在被管理系統的MIB,我們以單片機為核心來(lái)實(shí)現嵌入式代理器,嵌入式代理器要對現場(chǎng)采集到的數據進(jìn)行分析,如果有異常情況發(fā)生,通過(guò)發(fā)送Trap報文給管理器,告知網(wǎng)管有異常情況發(fā)生,在報文中還帶有異常情況的相關(guān)信息,網(wǎng)管可以根據這一信息進(jìn)行相應的處理,在一些情況下,代理器將數據保存起來(lái),以備管理器的查詢(xún)。

2 嵌入式代理器的硬件實(shí)現

我們設計的基于SNMP的控制系統原理見(jiàn)圖2。

控制現場(chǎng)的信號采集由A/D轉換模塊輸入單片機。單片機對信號進(jìn)行處理,并且執行的任務(wù),硬件部分主要包括A/D、串口、以太網(wǎng)、小邏輯、單片機、監控信號采集、電源及監控等模塊,本文著(zhù)重介紹與嵌入式密切相關(guān)的部分。

2.1 串口模塊

單片機使用的是TTL電平,而RS-23協(xié)議所使用的電平不同,所以需要進(jìn)行電平轉換,通過(guò)MAX232實(shí)現電平轉換。

2.2 A/D模塊

A/D模塊主要負責采集外部監控信號,采用AD0809可以采集8個(gè)通道的數據,信號變化的動(dòng)態(tài)范圍并不大,利用這一特點(diǎn),合理設置參考電壓,可以提高分辨率,從而用低廉的器件實(shí)現很好的性能,ADC0809的兩個(gè)參考電壓都可以通過(guò)電位器調節,為了保證系統的精度,參考電壓必須穩定,為此采用MAXIM的MAX875作為參考電壓源。另外需要注意的是:輸入到A/D轉換器的參考電壓經(jīng)過(guò)電位器的分壓,為了使參考電壓穩定,必須選用高精度、高穩定性的電位器。

2.3 以太網(wǎng)模塊

以太網(wǎng)模塊實(shí)現與以太網(wǎng)的通信,采用RealTek的RTL8019芯片實(shí)現。

RTL8919A(見(jiàn)圖3)有3種工作方式:跳線(xiàn)方式,網(wǎng)卡的I/O和中斷由跳線(xiàn)決定;即插即用方式,由軟件進(jìn)行自動(dòng)配置plug and play;免跳線(xiàn)方式,網(wǎng)卡的I/O和中斷由外接的93C46中的內容決定。

RTL8019AS的引腳65(JP)決定了網(wǎng)卡的工作方式,引腳65腳(JP)是輸入引腳,當引腳65為低電平時(shí),8019工作在即插即用方式或免跳線(xiàn)方式,具體由93C46中的內容決定,在嵌入式應用中如果可以不使用93C46,則可以降低成本,同時(shí)減少連線(xiàn),我們把引腳65接高電平(VCC),使用跳線(xiàn)方式。那么,網(wǎng)卡的I/O和中斷就不是由93C46的內容決定,這是不需要使用93C46。

引腳64(AUI)決定使用AUI還是BNC接口。BNC接口方式支持8線(xiàn)雙絞線(xiàn)或同軸電纜。高電平時(shí)使用AUI接口;懸空為低電平,使用BNC接口。我們一般使用BNC,將該引腳懸空。
網(wǎng)絡(luò )接口類(lèi)型由引腳74(PL0)、引腳77(PL1)決定。將PL0、PL1懸空,選擇自動(dòng)檢測模式,芯片自動(dòng)檢測接口類(lèi)型是用同軸電纜或雙絞線(xiàn),然后進(jìn)行工作。

RTL89的IOCS16是16位I/O的選擇引腳。當網(wǎng)卡上電復位時(shí),該引腳為網(wǎng)卡的輸入,如果該引腳為高電平,網(wǎng)卡將選擇16位的模式,如果該引腳為低電平,網(wǎng)卡將選擇8位模式,是8位數據,所以用電阻R10下拉,因此在復位時(shí)該引腳為低電平,網(wǎng)卡選擇8位模式。

AD0-AD7是網(wǎng)卡的8位數據總線(xiàn),接單片機的P0口,RESDRV(引腳33(RESET))接單片機的T0(P3.4),單片機用P3.4來(lái)復位網(wǎng)卡。IRQ9接單片機的INT0(P3.2),IRQ9是網(wǎng)卡的中斷9,接到單片機的中斷0上,IOR,IOW接到單片機的P3.6,P3.7(/WR,/R)。

2.4 小邏輯模塊

小邏輯模塊主要實(shí)現一些邏輯功能,A/D的時(shí)鐘由單片機的ALE信號8分頻,各個(gè)外部器件的片選功能都由小邏輯模塊實(shí)現,雖然功能不復雜,如果用小邏輯器件實(shí)現,就需要較多的器件,器件利用率低,在電路板上占據較大的空間,與要求體積小的嵌入式應用相矛盾。采用可編程邏輯器件可以解決這些問(wèn)題。

2.5 單片機模塊

單片機模塊由單片機以及復位和看門(mén)狗電路、外部擴展RAM、時(shí)鐘電路等外圍電路構成,看門(mén)狗電路可以提高現場(chǎng)惡劣條件的干擾,當系統受到外界干擾使得單片記的程序跑飛,看門(mén)狗沒(méi)有喂狗信號,看門(mén)狗電路將單片機和RTL8019復位,重新開(kāi)始運行。

3 軟件設計與實(shí)現

由于SNMP的編解碼需要占用很多CPU時(shí)間,并且在單片機上還要實(shí)現A/D數據采集轉換、以太網(wǎng)通信、串口通信等功能,這就使得協(xié)調各個(gè)功能非常困難,因此,我們選用Micro-C/OS51作為單片機的操作系統,Micro-C/OS51是嵌入式實(shí)時(shí)操作系統Micro-C/ OS在上的移植代碼,實(shí)時(shí)系統能夠很好地提高CPU的效率,并且是多任務(wù)系統,能夠協(xié)調多個(gè)任務(wù),我們將單片機要實(shí)現的功能分為人機交互任務(wù)、A/D處理任務(wù)和SNMP處理任務(wù)。

3.1 人機交互任務(wù)

人機交互任務(wù)是通過(guò)單片機的串口來(lái)實(shí)現與用戶(hù)的交互,用戶(hù)通過(guò)串口電纜將PC機與單片機的串口連接,通過(guò)PC機的超級終端可以使用命令行的方式對代理器的有關(guān)參數(網(wǎng)關(guān)地址、主機地址等)進(jìn)行配置,還可以察看相關(guān)的運行信息,主要的命令行有:

Host 配置本機IP地址

Gateway 配置網(wǎng)關(guān)地址

Mask 配置子網(wǎng)掩碼

Snmphost 配置SNMP管理器IP地址

Macadr 配置本機物理地址

ping 可以用這個(gè)命令來(lái)檢測網(wǎng)絡(luò )鏈路

clear 清除電話(huà)顯示屏的內容

人機交互任務(wù)實(shí)現的主要思路就是單片機接收用戶(hù)鍵盤(pán)輸入的字符存入命令緩沖區,并回顯到屏幕,當用戶(hù)按下回車(chē)鍵,觸發(fā)軟件狀態(tài)機狀態(tài)變遷,從輸入態(tài)轉移到命令解釋?xiě)B,然后根據用戶(hù)命令調用相關(guān)子程序執行相關(guān)操作,執行完畢后重新回到輸入態(tài)。

人機交互程序由詞表、取詞子程序、狀態(tài)機框架程序(輸入回顯和命令解釋執行)命令相關(guān)子程序組成,詞表就是命令語(yǔ)句的集合,取詞子程序從命令行語(yǔ)句中提取單詞并存入詞表,同時(shí)進(jìn)行匹配檢查和詞法分析,輸入回顯程序循環(huán)檢查用戶(hù)鍵盤(pán)輸入,命令解釋程序調用取詞子程序分析用戶(hù)命令行輸入,根據詞表第1個(gè)單詞在散轉表中的位置調用相應執行子程序處理命令,命令解釋程序向相應的命令相關(guān)子程序傳入詞表指針,具體執行由用戶(hù)自行決定,由命令相關(guān)資程序返回后重新回到命令輸入態(tài),完成一次輸入執行全過(guò)程,此過(guò)程周而復始地循環(huán)執行。

3.2 A/D處理任務(wù)

A/D轉換需要一定的時(shí)間,讀取A/D轉換的結果有3種方式:

a)采用中斷方式,讀取數據及時(shí),同時(shí)頻繁的中斷處理增加了CPU的負擔。

b)查詢(xún)方式,造成CPU時(shí)間的浪費,大大地降低了CPU效率;

c)等待方式,看起來(lái)沒(méi)有優(yōu)點(diǎn),但是在UC/OS51操作系統中,到任務(wù)調度的一個(gè)很重要的思想就是延時(shí),高優(yōu)先級的任務(wù)執行一段時(shí)間后,再延時(shí)一段時(shí)間,以便低優(yōu)先級的任務(wù)執行,這樣將等待的時(shí)刻放到A/D處理任務(wù)的延時(shí)時(shí)刻,可以起到一舉多得的作用,我們正是采用這種方式。

3.3 SNMP處理任務(wù)

當接收到UDP數據包、處理UDP報頭后,由函數udp_recv()處理SNMP數據包。其基本思想是:解碼SNMP消息,如果解碼正確,判斷該Community(共同體)是否具有進(jìn)行所請求操作的權限,如果沒(méi)有權限,則拋棄該報文,并且給管理器發(fā)送Trap報文。如果權限正確,則從代理器上的MIB表中查找所請求的對象。找到后,執行相應操作,同時(shí)生成響應報文。然后進(jìn)行SNMP編碼,如果編碼無(wú)誤,則將這個(gè)SNMP報文交給上一層協(xié)議處理,SNMP處理流程見(jiàn)圖4。

在SNMP處理過(guò)程中,SNMP的編碼和解碼非常關(guān)鍵,以解碼為例來(lái)說(shuō)明,解碼出SNMP報文使用SNMP的版本號,報文所使用的共同體號,版本號,表明了報文使用SNMP的版本,如果管理器與代理器使用協(xié)議的版本不同,將不能正常通信,共同體相當于密鑰,只有有了密鑰的管理器才能夠訪(fǎng)問(wèn)代理器,否則,代理器不予響應,PDU解碼出管器所要訪(fǎng)問(wèn)的對象,SNMP解碼的流程圖見(jiàn)圖5。

流程圖中的snmpDec()函數解碼SNMP函數報文,將有用的信息提取出來(lái),MibRequest()函數的作用是將駐留在嵌入式SNMP代理器中的MIB中查找解碼出來(lái)的OID(對象標識符),查找到OID后,同時(shí)獲得了這個(gè)對象的信息,編碼同時(shí)開(kāi)始進(jìn)行,MibCmpObjId()函數的作用是采用比較的方式查找表項。SnmpEnc()函數將得到的響應報文按SNMP的編碼規則編碼成SNMP報文。make_udp()函數將SNMP報文封裝在UDP報文中。再經(jīng)過(guò)IP協(xié)議封裝,以太網(wǎng)協(xié)議封裝后,就可以通過(guò)以太網(wǎng)傳輸。

4 結束語(yǔ)

我們將該系統用于光無(wú)線(xiàn)通信的網(wǎng)絡(luò )管理與監控系統。經(jīng)過(guò)使用后發(fā)現:該系統能夠實(shí)時(shí)監控光無(wú)線(xiàn)通信系統的運行,由于采用Internet傳送數據,所以傳輸距離不受限制,SNMP是應用最廣泛的網(wǎng)絡(luò )管理協(xié)議及實(shí)現嵌入式SNMP代理器,可以使光無(wú)線(xiàn)通信系統的管理很方便地加入到現有的網(wǎng)絡(luò )管理系統,由于采用廉價(jià)的單片機來(lái)實(shí)現嵌入式SNMP代理器,主要的協(xié)議處理由軟件實(shí)現,成本很低。



關(guān)鍵詞: 51單片機 SNMP代理器

評論


相關(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>