999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于uc/os-II嵌入式實時操作系統的SNMP

2015-05-11 01:32:42謝紅剛劉倩麗
湖北工業大學學報 2015年1期
關鍵詞:嵌入式分析

謝紅剛, 敖 蕾, 李 麗, 劉倩麗

(湖北工業大學電氣與電子工程學院, 湖北 武漢 430068)

?

基于uc/os-II嵌入式實時操作系統的SNMP

謝紅剛, 敖 蕾, 李 麗, 劉倩麗

(湖北工業大學電氣與電子工程學院, 湖北 武漢 430068)

在嵌入式操作系統上開發高質量的SNMP已經成為網絡通信的發展趨勢,由于uc/os-II操作系統的簡單實用,研究基于uc/os-II嵌入式實時操作系統下SNMP的管理系統,并結合實際設計項目對管理系統的實現原理和實現過程進行了分析。

SNMP; 嵌入式; uc/os-II操作系統

由于Linux操作系統的功能強大,穩定可靠以及有強大的網絡功能等特點,深受人們歡迎,基于Linux的嵌入式SNMP的研究也層出不窮[1-3]。由于Linux操作系統代碼量多,占用內存空間大的特點,在小型設備上使用不合適,于是針對一些小型設備網絡管理,提出了基于uc/os-II嵌入式實時操作系統的SNMP。本文提出的基于uc/os-II嵌入式實時操作系統下的SNMP基于TCP/IP協議工作,而TCP/IP以太網所顯示的優勢,使其能夠滿足數據采集和控制對實時性、抗干擾性、可靠性的嚴格要求。

1 SNMP協議和uc/os-II的簡介

簡單網絡管理協議(SNMP)是由Internet體系結構委員會(IAB)提出來的,以簡單、易用獲得了很多公司的支持,得到了廣泛的應用,而且還應用到了無線網絡,成為了事實上的工業標準。

SNMP協議又稱之為代理和管理者之間的通信協議,兩者之間的共同點是都運行TCP/IP協議。管理者可對管理設備提出效能、配置和狀態等信息的詢問,透過要求與回復(request/replay)的簡單機制來擷取代理者身上的信息,而兩者之間的信息主要是通過PDU協議數據單元來傳送[4]。

uc/os-II是一種簡單的操作系統[5],具有簡單易學、注釋清晰、范例豐富、可移植性高的特點。它最主要的優點是系統內核實用性強、可靠性高,從最老版本的ucos,以及后來的uc/os,到最新版本的uc/os—II,該實時內核已經經歷了近10年的歷程。而且其內核是完全免費的,用戶不需要支付任何費用,有利于降低系統的開發成本。

uc/os是一個非常小巧的實時操作系統;整個代碼分為內核層以及移植層,這樣使得它的移植很方便;采用搶占式調度策略,保證任務的實時性;能夠管理多達56個任務;提供了郵箱、消息隊列、信號量、內存管理、時間管理等系統服務。

2 基于uc/os-II嵌入式實時操作系統的SNMP的實現

2.1 uc/os-II的移植

在嵌入式操作系統上實現SNMP,首先就要進行移植。uc/os-II的主要代碼都是由標準的C語言寫成的,所以移植方便。本項目是基于IAREWRAM開發環境下的移植,由于uc/os-II是源碼公開的操作系統,且其結構化設計便于分離出與處理器相關的部分。uc/os-II在設計時就充分考慮了在不同處理器上的移植問題。uc/os-II是用C語言和匯編語言來編寫的,其中大部分代碼都是用C語言編寫的,只有極少部分與處理器密切相關的代碼是用匯編語言編寫的,所以對于移植,只需要修改3個文件:OS_CPU.H 、OS__CPU_C.C和OS_CPU_A.ASM[6],就能把它移植到需要的嵌入式處理器上。uc/os-II的體系結構見圖1。

圖1 uC/OS-II體系結構

2.2 SNMP的實現結構

管理站負責網管命令發出、數據存儲及數據分析;代理端實現設備與管理站的SNMP通信。管理站與代理端通過MIB進行接口統一,管理站向代理申請MIB中定義的數據,代理識別后,將管理設備提供的相關狀態或參數等數據轉換成MIB定義的格式,應答給管理站完成一次管理操作[7]。

SNMP提供管理站和代理端,SNMP的網絡管理體系結構見圖2。

圖2 SNMP網絡管理體系結構

2.3 嵌入式SNMP代理的實現

2.3.1 ucos-II TCP/IP協議棧 SOCKET接口函數是TCP/IP的API,SOCKET API函數編寫UDP或者TCP通信的任務,SOCKET建立函數、綁定函數,UDP(TCP)包接收函數、發送函數,SOCKET關閉函數。在完成UDP任務時,其中socket()創建套接字,當套接字被創建后,它的端口號和IP地址都是空的,因此應用進程要調用bind()函數將本地IP和端口與套接字相連,recvfrom()函數用于完成數據的接收,sendto()函數用于發送數據,closesocket()函數刪除套接字。在完成TCP任務時,服務器在調用bind()函數后,還必須調用accept listen()把套接字設置為被動方式,以便隨時接受客戶的服務請求[8]。

2.3.2 SNMP代理的工作流程 嵌入式代理為設備與遠程網管中心之間提供基于用戶數據報協議(User Datagram Protocol,UDP)之上的標準SNMP協議接口,主要任務是完成遠端命令和消息接收發送(Get/Set)、協議的解析和封裝、MIB庫解析映射、板機事件上報等功能。嵌入式代理軟件模塊包括MIB庫、初始化、主協議處理和Trap等三大模塊。

圖3 軟件控制流程圖

2.3.3 初始化MIB SNMP中atTable是描述地址轉換表的表,下面是MIB-II中atEntry結構的部分定義。

atEntry OBJECT-TYPE

SYNTAX AtEntry

ACCESS not-accessible

STATUS deprecated

DESCRIPTION

“Each entry contains one NetworkAddress to ‘physical′ address equivalence.”

INDEX {atIfIndex,

atNetAddress}

::={atTable 1}

2.3.4 實現代理功能的框架程序

1)首先初始化MIB:init_mib

2)創建SNMP任務:task_snmp,創建任務后需要將任務初始化,初始化程序如下:

OSTaskCreate(Task_SNMP, (void *)0, &GstkSNMP[TASK_SNMP_STK_SIZE-1], TASK_SNMP_PRIO);

SNMP任務函數:task_snmp,程序如下:

void Task_SNMP(void *pdata)

{SOCKETs;

s=*socket(0, SOCK_DGRAM, UDP_PROTOCOL);

clientaddr.sin_port=161;

iii=bind( (SOCKET * )&s, (struct sockaddr*)&clientaddr,sizeof(clientaddr));

while (1)

{rec_coute=recvfrom(s,snmp_rec_buffer,1460, 0, (struct sockaddr*)&servaddr, &iii);

if(rec_coute>0){

templenth=snmp_rcve(snmp_rec_buffer,rec_coute);

if(templenth!=0){

sendto(s,snmp_send_buffer,templenth,0,(struct sockaddr*)&servaddr,sizeof(servaddr)); }}}};

建立socket通道,接受通道數據,并對數據進行解析。

SOCKET *socket( uint16 af, uint16 type, uint16 protocol)

{

uint8 i,j,k;

static uint16 port=1025;

if(protocol==TCP_PROTOCOL)

{…}

else if(protocol==UDP_PROTOCOL)

{ …}}

建立socket通道以后,響應管理端發起的連接,然后綁定端口,檢查IP地址。

通過accept()函數建立連接,連接成功后通過recvfrom()完成數據的接收,接收到的數據通過sendto()完成數據的發送,數據成功發送出去后,closesocket()刪除套接字,這樣通過socket口的數據接收與發送完成。

3)接收數據報文

uint16 recvfrom( SOCKET s, uint8 *buf, uint16 len, int flags, struct sockaddr *from, uint16 *fromlen ) 用于接收管理站發送過來的報文,通過SOCKET端口接收。

4)分析數據報文

首先是SNMP頭分析,如果接收到的數據合格,就進行下一步的分析,其次是版本號的分析;共用體的分析,分析共用體的權限;操作類型的分析(包括種類:get,get_next,set)以及長度和數據段的分析。其流程見圖4。

5)處理數據報文

數據的處理過程就是數據封裝的過程,即將分析后的數據封裝在snmp_send_buffer中,其中數據拷貝并填充發送到數據緩沖的程序如下:

uint8 COPY_SEGMENT(tlvStructType * val,uint8 copydata)

{

uint8 seglen;

memcpy(&response.buffer[response.index],&snmprequest.buffer[val->start],seglen );

response.index += seglen;

return seglen;}

其中response.buffer=snmp_send_buffer; snmp_send_buffer為全局變量,將封裝好的信息傳到udp.c,進行下一步分析。

圖4 數據報文分析流程圖

6)生成應答報文

SNMP作為UDP的數據部分再經過UDP封裝后生成新的應答報文,其程序如下:

uint8 Udp_Process(Rec_Ptr * Udp_Rec)

{

static uint8 UDP_REC_BUFF_NUM=0;

uint8i,j;

memcpy (&(UdpRecBuff[UDP_REC_BUFF_NUM]), (*Udp_Rec).RecDataPtr, (*Udp_Rec).length);…}

7)返回分析結果

將封裝好的數據報文經過Socket發送給管理端。

該snmp代理代碼加載在基于TI終端上,通過SNMP管理軟件實現對該終端的網絡信息的管理。使用Wireshark1.10.6網絡封包分析軟件獲取的代理端與管理站之間通信的SNMP數據包如圖5所示。

圖5 管理站界面圖

3 結論

隨著網絡技術的飛速發展,網絡管理工作也變得越來越復雜,簡單網絡管理協議便應運而生,它簡化了復雜的網絡管理工作,更方便了對遠程設備的控制。嵌入式操作系統也被廣泛應用,本文提出基于COS-II操作系統的SNMP,通過IAR Embedded Workbench 開發工具編程、調試,實現了SNMP在COS-II操作系統下的網絡管理,適用于一些簡單的、小型設備的網絡管理。

[1] 徐晶晶.基于嵌入式SNMP網管代理系統的設計與實現[D].武漢:武漢理工大學,2008:34-36.

[2] 劉桂源. 基于ARM的LINUX嵌入式SNMP代理的分析與實現[D].南昌:華東交通大學,2010:21-25.

[3] 高翊宇,馬林華,南秦博.基于Linux操作下的TCP/IP網絡通信研究與應用[J].現代電子技術,2006,(18):74-75.

[4] 李明江.SNMP簡單網絡管理協議[M].北京:電子工業出版社,2007:5-10.

[6] 任 哲,樊生文.嵌入式操作系統基礎uc/os-II和Linux(第二版)[M].北京:北京航空航天大學出版社,2011:222-224.

[7] 車一龍.基于SNMP的無線網管系統MIB設計與實現[D].西安:西安電子科技大學,2012:9-14.

[8] 龔 康.面向生產設備管理的嵌入式SNMP代理研究與實現[D].重慶:重慶大學,2012:7-10.

[責任編校: 張巖芳]

The SNMP Management System based on the Embedded Real-time Operating System uc/os-II

XIE Honggang, AO Lei, LI Li, LIU Qianli

(SchoolofElectrical&ElectronicEngin.,HubeiUniv.ofTech.,Wuhan430068,China)

With the development of network, it has become a trend of network communication to develop high quality SNMP on embedded operating system. Due to the simplicity and practicability of the operating system uc/os-II, based on the embedded real-time operating system uc/os-II, the SNMP management system were studied in this paper. And the implementation principle and implementation process of management system were also analyzed combined with the actual design project.

SNMP; the embedded; operating system uc/os-II

2014-08-21

湖北省自然科學基金(2014CFB585)

謝紅剛(1973-), 男, 湖北鄂州人,工學博士,湖北工業大學教授,研究方向為通訊

1003-4684(2015)01-0025-04

TN915.07

A

猜你喜歡
嵌入式分析
隱蔽失效適航要求符合性驗證分析
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
電力系統及其自動化發展趨勢分析
中西醫結合治療抑郁癥100例分析
Altera加入嵌入式視覺聯盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
主站蜘蛛池模板: 久久香蕉国产线看观| 久久亚洲国产一区二区| 欧美一级在线播放| 毛片网站在线看| 亚洲人成高清| 人妻无码一区二区视频| 成人国产三级在线播放| 亚洲天堂视频在线播放| 重口调教一区二区视频| 国产精品无码翘臀在线看纯欲| 国产午夜精品一区二区三| 丁香综合在线| 国产女人在线| www.亚洲色图.com| 在线免费a视频| 精品久久人人爽人人玩人人妻| 欧美亚洲一二三区| 自拍偷拍欧美日韩| 色哟哟色院91精品网站| 国产资源免费观看| 国产精品亚洲а∨天堂免下载| 欧美一级在线看| 拍国产真实乱人偷精品| 香蕉视频在线精品| 国产微拍一区| 特级毛片8级毛片免费观看| 国产成人精品综合| 精品久久国产综合精麻豆| 黄色成年视频| 国产国产人免费视频成18| 国产青青草视频| 欧美视频在线观看第一页| 99视频在线免费观看| 日韩视频福利| 免费又黄又爽又猛大片午夜| 久久黄色影院| 亚洲人成成无码网WWW| 免费激情网址| 精品久久久久无码| 中文字幕av一区二区三区欲色| 国产精品吹潮在线观看中文| 91小视频版在线观看www| 日本精品αv中文字幕| 中文字幕无码av专区久久| 国产大片喷水在线在线视频| 国产精品真实对白精彩久久| 中文字幕永久视频| 国产经典在线观看一区| 亚洲天堂2014| 日韩免费毛片视频| 在线精品亚洲国产| 精品国产免费观看| 97久久超碰极品视觉盛宴| 亚洲精品欧美日韩在线| 一级一级一片免费| 国产精品久久久精品三级| 国产精品私拍在线爆乳| 国产精品成人不卡在线观看| 亚洲人网站| 欧美激情视频二区| 蜜臀AVWWW国产天堂| 四虎国产精品永久一区| 色综合网址| 中文字幕 91| 一区二区三区国产| 最新国产成人剧情在线播放| 无码在线激情片| 亚洲日韩国产精品综合在线观看| 日韩资源站| 亚洲欧洲免费视频| 亚洲精选无码久久久| 国产丝袜啪啪| 国产精品高清国产三级囯产AV | 亚洲成a人片77777在线播放| 91丝袜乱伦| 亚洲日韩精品无码专区| 日韩a级毛片| 国产亚洲欧美另类一区二区| 欧美中文字幕一区| 特级毛片免费视频| 久草网视频在线| 亚洲国产综合精品一区|