《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 實時內(nèi)核uC/OS-II下的網(wǎng)絡監(jiān)控系統(tǒng)的設計
實時內(nèi)核uC/OS-II下的網(wǎng)絡監(jiān)控系統(tǒng)的設計
摘要: 介紹了一種嵌入式于單片機的Web服務器的設計過程,給出了單片機控制下的網(wǎng)絡控制器RTL8019AS硬件平臺的設計、精簡的TCP/IP協(xié)議棧通過LAN訪問Internet的應用方案。同時簡明介紹了實時內(nèi)核uC/OS-II對整個系統(tǒng)的管理方案,完成了對連接在系統(tǒng)I/O總線上的現(xiàn)有設備的監(jiān)控。
Abstract:
Key words :

  隨著信息時代的到來,特別是互聯(lián)網(wǎng)的迅速普及,人們開始越來越多地接觸到一個新概念--嵌入式產(chǎn)品。將嵌入式系統(tǒng)接入Internet。不僅實現(xiàn)了設備的遠程控制、維護和升級,而且可實現(xiàn)資源共享。通過網(wǎng)絡對設備進行監(jiān)控,一個外部界面是必不可少的,利用Web瀏覽器可使用戶通過網(wǎng)絡對遠程系統(tǒng)實現(xiàn)管理和更新,大大簡化了人機界面的設計。若在系統(tǒng)中嵌入實時操作系統(tǒng),將使系統(tǒng)具有極強的可移植性,另外,硬件設備的添加與裁剪也具有極龐大的靈活性。采用DHCP協(xié)議動態(tài)獲得IP相關信息,使TCP/IP軟件不再依賴于存儲在芯片中的固定IP地址,這將為大型系統(tǒng)的安裝提供方便條件。

  本設計的關鍵是如何在內(nèi)存資源有限的單片機系統(tǒng)上,利用實時內(nèi)核uC/OS-II把信息變成可以在互聯(lián)網(wǎng)上傳輸?shù)腎P數(shù)據(jù)包,以便通過IE瀏覽器監(jiān)控遠程設備的狀態(tài)。

  1 網(wǎng)絡監(jiān)控系統(tǒng)概述

  本設計采用Internet監(jiān)控遠程設備,整個系統(tǒng)相當于一個網(wǎng)絡服務器??蛻舳送ㄟ^IE瀏覽器對該服務器進行訪問,實時地獲得設備的狀態(tài)信息,以便對設備進行控制和維護。這樣,就要求服務器提供WWW服務,即實現(xiàn)HTTP協(xié)議。它應被所有瀏覽器支持,以保證任何地方的用戶都可通過瀏覽器下達命令。在網(wǎng)絡接口上,本系統(tǒng)選擇以太網(wǎng)為其運行的網(wǎng)絡環(huán)境。圖1所示為HTTP設計模型。首先,客戶端的瀏覽器與Web服務器使用一個或多個TCP連接,通過80號端口進行通信,瀏覽器通過HTTP協(xié)議瀏覽事先存儲在EEROM中的控制網(wǎng)頁,通過該網(wǎng)頁傳遞控制命令到網(wǎng)絡服務器,然后服務器對命令進行解析,調(diào)用相應的函數(shù)控制外部I/O設備。

HTTP設計模型

  整個設備監(jiān)控系統(tǒng)包括硬件和軟件兩部分。在硬件部分嵌入了TCP/IP協(xié)議棧。因系統(tǒng)資源有限,在保持協(xié)議分層體系結(jié)構(gòu)的前提下,應盡量精簡協(xié)議內(nèi)容。根據(jù)網(wǎng)絡監(jiān)控系統(tǒng)的原理,本系統(tǒng)實現(xiàn)了以下協(xié)議:DHCP、HTTP、TCP、IP、ICMP、ARP。

  2 硬件平臺設計

  本設計采用以太網(wǎng)作為網(wǎng)絡的運行環(huán)境,在硬件上需要有網(wǎng)絡控制芯片。目前市場上有許多以太網(wǎng)絡控制芯片,但其大多數(shù)都耗電量高、功能復雜,不適合用于價格低廉的嵌入式系統(tǒng)中。在這里選用RTL8019AS,其好處是NE2000兼容、軟件移植性好、接口簡單、不需轉(zhuǎn)換芯片如PCI-ISA橋等。而單片機選擇89C55,它有20K的ROM,內(nèi)部結(jié)構(gòu)簡單,只要代碼能夠移植于它,就能較輕松地移植于其它架構(gòu)的CPU,比如ARM等。圖2為硬件原理框圖。24C64用來存儲物理地址及設備的相關信息等;外部RAM為數(shù)據(jù)處理提供緩存。系統(tǒng)提供了RS232接口用來進行測試,提供了RJ45接口以便連接到以太網(wǎng)。

硬件原理框圖

  3 操作系統(tǒng)的選擇

  根據(jù)監(jiān)控系統(tǒng)的特點,系統(tǒng)必須滿足實時性和并發(fā)性的要求,以便更好地支持TCP/IP運行時的調(diào)度,所以應用軟應該

 

基于嵌入式實時操作系統(tǒng)。適合于片上的實時操作系統(tǒng)比較多,但是代碼公開且適合移植51系列單片機的卻很少,主要有uC/OS-II、RTX51、Small RTOS51等。實時內(nèi)核uC/OS-II是專門為單片機嵌入式應用而設計的,圖3為嵌入式實時操作系統(tǒng)的內(nèi)部結(jié)構(gòu)圖。它主要采用標準的ANSI C語言寫成,與硬件有關的部分使用匯編語言編寫,以使操作系統(tǒng)能很方便地移植到其它的處理器??梢姡褂?a class="innerlink" href="http://m.jysgc.com/tags/嵌入式操作系統(tǒng)" title="嵌入式操作系統(tǒng)" target="_blank">嵌入式操作系統(tǒng)時,應用軟件只與上層的代碼有關與處理器無關,在進行軟件移植時僅需對與硬件相關的底層函數(shù)進行修改,因此這樣的應用軟件具有良好的可移植性和穩(wěn)定的可靠性。在uC/OS-II下編寫TCP/IP協(xié)議,比傳統(tǒng)的前后臺系統(tǒng)要方便很多;用它分析內(nèi)存緩存區(qū),使用前申請,使用后釋放,可有效地利用系統(tǒng)資源。在程序設計時將TCP/IP協(xié)議棧做成任務,而用戶程序在另外的任務中運行。這樣,單片機可在完成原來控制系統(tǒng)功能的前提下,實現(xiàn)網(wǎng)絡通信。從代碼長度上看,實現(xiàn)基本功能的TCP/IP協(xié)議棧比Linux等其它操作系統(tǒng)優(yōu)勢更大。

 

嵌入式實時操作系統(tǒng)的內(nèi)部結(jié)構(gòu)圖

  4 軟件設計

  軟件設計是網(wǎng)絡監(jiān)控系統(tǒng)設計的重要部分,主要完成RTL8019AS的驅(qū)動、uC/OS-II對應系統(tǒng)的管理及TCP/IP協(xié)議棧的實現(xiàn)。

  4.1 uC/OS-II操作系統(tǒng)的應用

  uC/OS-II可以根據(jù)需要進行相應裁剪后移植到51單片機上。用它對系統(tǒng)進行管理,使得程序易讀,且便于移植。藽/OS-II主要負責管理網(wǎng)卡初始化、創(chuàng)建系統(tǒng)資源、創(chuàng)建任務等三部分工作。在系統(tǒng)資源的創(chuàng)建上,使用TxSem、RxSem信號量及TxQFIFO隊列。當需要發(fā)送或接收數(shù)據(jù)時,觸發(fā)RTL8019AS中斷,CPU將中斷向量進入中斷服務子程序,進行事件處理。中斷服務子程序根據(jù)RTL8019AS內(nèi)部中斷狀態(tài)寄存器IMR的值確定系統(tǒng)所處狀態(tài),通過兩個信號量TxSemPost和RxSemPost切換系統(tǒng)任務,使系統(tǒng)相應信號量的一個任務進入就緒態(tài)。發(fā)送數(shù)據(jù)幀的過程是通過檢查信號量TxSemPost而進行的相應處理,為了保證數(shù)據(jù)正確到達客戶端,這里采用了多次發(fā)送機制。當信號量RxSemPost到來時,開始接收數(shù)據(jù)。如果數(shù)據(jù)幀正確,就根據(jù)數(shù)據(jù)包的大小申請合適的內(nèi)存空間存放該數(shù)據(jù),然后根據(jù)接收幀的目的地址的正確與否決定是否將該幀提交給上層應用程序。若無誤則解析數(shù)據(jù)報頭,進行相應處理。

 

  4.2 RTL8019驅(qū)動

  RTL8019AS完成數(shù)據(jù)包和電信號之間的相互轉(zhuǎn)換。驅(qū)動程序主要包括芯片初始化、收包、發(fā)包三部分。物理信道上的收發(fā)操作采用以太網(wǎng)協(xié)議802.3幀格式。系統(tǒng)收發(fā)數(shù)據(jù)包的原理是單片機先將待發(fā)送的數(shù)據(jù)包存入RTL8019芯片RAM,給出發(fā)送緩沖區(qū)首地址和數(shù)據(jù)包長度(寫入TPSR、TBCR0,1)后,啟動發(fā)送命令(CR=0x3E),即可實現(xiàn)RTL8019的發(fā)送功能。RTL8019會自動按以太網(wǎng)協(xié)議完成發(fā)送并將結(jié)果寫入狀態(tài)寄存器。RTL8019芯片接收緩沖區(qū)構(gòu)成一個循環(huán)FIFO隊列,PSTART、PSTOP兩個寄存器限定了循環(huán)隊列的開始和結(jié)束頁,CURR為寫入指針,受芯片控制,BNRY為讀出指針,由主機程序控制。根據(jù)CURR==BNRY+1?可以判斷出是否收到新的數(shù)據(jù)包,新收到的數(shù)據(jù)包存于以CURR指出的地址為首址的RAM中。當CURR==BNRY時,芯片停止接收數(shù)據(jù)包。

  4.3 網(wǎng)絡協(xié)議棧的實現(xiàn)

  基于TCP/IP協(xié)議可以實現(xiàn)多種功能,本文主要討論HTTP協(xié)議,也就是Web服務在應用層的主要構(gòu)成協(xié)議。由于TCP/IP協(xié)議棧本身是一種層式結(jié)構(gòu),所以在協(xié)議棧的設計上采用模塊化思想,逐層實現(xiàn),然后通過對各層接口函數(shù)的調(diào)用實現(xiàn)完整的協(xié)議棧。實現(xiàn)TCP/IP協(xié)議棧的大致流程如圖4所示。

實現(xiàn)TCP/IP協(xié)議棧的大致流程

  要想將嵌入式系統(tǒng)作為一個終端并用TCP/IP連接起來,就必須設定IP地址、網(wǎng)關和子網(wǎng)掩碼等信息。為了增強系統(tǒng)的靈活性,需要一種自動配置能力,即系統(tǒng)自動從中心服務器獲得IP地址等信息。實現(xiàn)這一功能的標準方法是通過主機動態(tài)配置協(xié)議(DHCP)。DHCP是基于UDP層之上的應用,采用端口68和67以廣播的形式進行通訊,它的工作主要包括探查、賦予、請求、確認等操作。

  HTTP協(xié)議選擇定義請求-應答機制獲得Web服務器上的文件。當用戶訪問Web服務器中的網(wǎng)頁時,一個HTTP請求就

 

會以多行字符串的形式從瀏覽器發(fā)送到Web服務器,第一行指定一個方法GET,后面跟著一串參數(shù)。服務器對客戶端的應答需包含HTTP報文頭,如果請求成功,還包括文檔本身,這些信息沿TCP連接發(fā)送,直至傳送完成斷開連接。含量少量信息的報文頭包含成功或失敗狀態(tài)及傳輸文檔的內(nèi)容類型(文本、HTML、GIF圖形等)。所有連接的相關信息如IP地址、客啟端口號、序列號、應答號及TCP狀態(tài)等被放入一個結(jié)構(gòu)體,結(jié)構(gòu)體的每個元素均可看作一個連接狀態(tài)。服務器進程關閉連接表示本次響應結(jié)束。網(wǎng)頁信息以HTML文本格式存儲于EEROM中,Web服務器創(chuàng)建局部變理以匹配文檔中的特殊字符,這些信息通過HTTP協(xié)議沿TCP連接發(fā)送到瀏覽器,服務器在應答文檔中碰到合適的字符,就替換一個變量值,實現(xiàn)動態(tài)網(wǎng)頁。

 

  為了在服務器和客房端之間傳遞HTTP請求和應答信息,需要一個可靠的通信信道,這由傳輸控制協(xié)議TCP提供。TCP提供一種面向連接的可靠的數(shù)據(jù)流服務,它的主要任務是創(chuàng)建進程到進程的通信。數(shù)據(jù)傳輸分三個階段進行:建立連接、傳輸數(shù)據(jù)、斷開連接,實現(xiàn)起來相對復雜。由于嵌入式系統(tǒng)是服務器端,總是對客戶的連接請求給予響應,從不主動發(fā)起連接請求,因此只要在保證嵌入式系統(tǒng)能夠?qū)CP分組進行正確響應的前提下,就可以對TCP協(xié)議進行大幅度簡化。嵌入式系統(tǒng)總是響應客戶連接,始終是被動地打開連接,所以只需為建立連接過程中的嵌入式系統(tǒng)提供LISTEN、SYN_RCVD兩種狀態(tài)即可。雖然比標準狀態(tài)變遷圖中缺少了CLOSED、SYN_SENT狀態(tài),但LISTEN、SYN_RCVD足以描述系統(tǒng)建立連接時的狀態(tài)。當系統(tǒng)在傳最后一個數(shù)據(jù)包時,設置FIN,要求終止當前連接。連接主動關閉和同時關閉兩種情況都是可能發(fā)生的,因此只需為系統(tǒng)提供主動關閉和同時關閉涉及到的狀態(tài)即可。

  為了在主機之間傳遞TCP段,需要實現(xiàn)IP協(xié)議。IP協(xié)議的實現(xiàn)比較復雜,但是從實現(xiàn)Web服務器這一特定的要求出發(fā),主要需要把握如下兩點設計思想:第一,對接收到的IP數(shù)據(jù)報進行處理,向上層協(xié)議進行提交;第二;負責對TCP報文、ICMP報文進行封裝,交給數(shù)據(jù)鏈路層進行裝幀。實際上這是IP協(xié)議最基本的功能,也是Web服務器在網(wǎng)絡層必需的功能。ICMP協(xié)議負責傳遞差錯報文及其它需要注意的信息,Ping利用ICMP協(xié)議的回響功能實現(xiàn)主機/服務器是否有應答的測試。Ping的實現(xiàn)主要由ping請求、ping應答和回顯操作三個函數(shù)完成。

 

  由于采用以太網(wǎng)的接入方式,因此系統(tǒng)必須實現(xiàn)IEEE802.3標準,主要由RTL8019AS完成,為了保證系統(tǒng)在以太網(wǎng)的通信,還需要實現(xiàn)ARP協(xié)議。ARP協(xié)議的本質(zhì)就是完成網(wǎng)絡地址到物理地址的映射,從而保證網(wǎng)絡的正確傳輸。整個ARP處理過程由ARP請求、ARP應答、ARP處理三個函數(shù)實現(xiàn),ARP處理函數(shù)建立了ARP緩存表。

  本文介紹的嵌入式網(wǎng)絡監(jiān)控系統(tǒng)采用IE瀏覽器作為客戶端界面,支持RS232和以太網(wǎng)的連接,可以通過以太網(wǎng)接入Internet,進而實現(xiàn)從Internet上監(jiān)控嵌入式設備。在實際應用中,如果I/O口連接了其它硬件設備,只需對變量的處理函數(shù)做相應改動,就可實現(xiàn)遠程監(jiān)控。系統(tǒng)內(nèi)部嵌入uC/OS-II操作系統(tǒng),使用靈活,可通過編程增加需要的功能。采用DHCP動態(tài)獲得IP地址等信息,增強了系統(tǒng)的靈活性。本方案所實現(xiàn)的網(wǎng)絡監(jiān)控系統(tǒng)具有成本低、可視化、與平臺無關等特點,可以廣泛應用在工業(yè)控制領域,有很高的實用價值。

 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美综合77777色婷婷| 欧美精品一区二区蜜臀亚洲| 亚洲日韩欧美视频一区| 欧美在线不卡| 香蕉久久夜色精品国产| 亚洲主播在线| 亚洲一区中文| 亚洲淫性视频| 午夜激情久久久| 亚洲欧美另类中文字幕| 亚洲影视在线播放| 亚洲免费小视频| 亚洲欧美激情一区| 性欧美精品高清| 欧美一区在线直播| 久久国内精品视频| 亚洲成色777777女色窝| 久久精品国产99国产精品澳门| 亚洲欧美成人精品| 午夜电影亚洲| 久久精品国产亚洲精品| 亚洲国产精品尤物yw在线观看| 亚洲国产黄色片| 亚洲精品一二三| 在线视频精品一| 先锋影音网一区二区| 欧美一区二区三区视频| 久久aⅴ国产紧身牛仔裤| 欧美伊人久久久久久久久影院| 久久精品国产69国产精品亚洲| 欧美在线视频免费播放| 久久久999精品| 麻豆乱码国产一区二区三区| 欧美激情精品久久久久久黑人 | 国产精品午夜春色av| 国产精品爽黄69| 国产一区二区三区在线播放免费观看| 国内久久视频| 91久久精品一区二区别| 夜夜嗨av一区二区三区四区 | 欧美日韩亚洲91| 国产欧美精品日韩精品| 悠悠资源网亚洲青| 日韩手机在线导航| 午夜精品久久久久久久99水蜜桃| 久久av一区二区三区| 99精品欧美一区二区蜜桃免费| 亚洲一区二区三区在线| 久久久久久久久久久一区| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美日韩精品免费观看视频完整| 国产精品午夜在线观看| 在线日韩av片| 国产精品99久久久久久久久| 欧美影视一区| 一区二区三区国产精华| 久久精品人人爽| 欧美日韩黄色一区二区| 国产一区二区三区网站| 亚洲美洲欧洲综合国产一区| 性刺激综合网| 一本在线高清不卡dvd| 久久精品二区| 欧美午夜电影在线| 狠狠综合久久av一区二区小说| 亚洲国产天堂久久综合| 午夜精品久久| 一二三区精品福利视频| 久久人91精品久久久久久不卡| 欧美日韩国产在线一区| 一区二区在线观看视频在线观看| 一区二区激情小说| 亚洲国产高清在线观看视频| 亚洲欧美日韩网| 欧美国产日韩一区| 国产一区二区三区av电影| 99精品久久久| 亚洲国产精品美女| 欧美一区二区三区播放老司机 | 亚洲欧美日韩国产成人| 欧美福利影院| 国产综合一区二区| 亚洲一区中文| 中文一区二区在线观看| 欧美大片va欧美在线播放| 国产一区二区三区不卡在线观看| 日韩一级片网址| 亚洲精品美女在线观看| 久久青草欧美一区二区三区| 国产精品蜜臀在线观看| 亚洲美女色禁图| 亚洲精品久久7777| 久久综合九色综合欧美就去吻| 国产精品女同互慰在线看| 日韩午夜免费| 亚洲精品三级| 六月婷婷一区| 韩国精品一区二区三区| 亚洲在线1234| 亚洲欧美激情诱惑| 欧美视频在线观看免费| 亚洲激情专区| 亚洲日本欧美天堂| 蜜桃av一区| 在线观看国产欧美| 亚洲电影毛片| 久久亚洲电影| 韩国一区二区三区在线观看| 欧美在线免费观看亚洲| 欧美自拍丝袜亚洲| 国产欧美视频一区二区| 亚洲摸下面视频| 午夜久久tv| 国产欧美一区二区精品秋霞影院| 亚洲淫性视频| 久久精品72免费观看| 国产一区二区三区电影在线观看| 亚洲欧美一区二区三区极速播放| 欧美一区二区三区日韩| 国产欧美日韩视频| 欧美一级专区| 久久综合给合| 亚洲国产成人精品久久| 亚洲毛片一区| 欧美日韩一区在线| 亚洲一级黄色片| 欧美在线视频导航| 国内一区二区三区在线视频| 久久精品视频一| 蜜臀av性久久久久蜜臀aⅴ| 亚洲国产精品高清久久久| 日韩天天综合| 国产精品www网站| 亚洲欧美日韩天堂一区二区| 久久久久五月天| 在线观看亚洲a| 一本色道久久综合亚洲精品婷婷| 欧美日韩一区二区免费在线观看 | 亚洲欧美激情诱惑| 国产日本精品| 亚洲第一页自拍| 欧美伦理在线观看| 亚洲天堂久久| 久久久久综合网| 亚洲国产一区二区精品专区| 在线视频精品一区| 国产欧美日韩另类一区| 亚洲国产视频a| 国产精品成人观看视频免费 | 免费短视频成人日韩| 亚洲精品影院| 欧美亚洲一区二区在线| 又紧又大又爽精品一区二区| 夜夜嗨av一区二区三区四季av | 99在线精品观看| 国产精品一区视频| 久久精品一区| 欧美日韩一区自拍| 欧美一区国产二区| 欧美激情中文字幕一区二区| 亚洲一区二区三区精品在线| 久久免费视频这里只有精品| 亚洲精品乱码久久久久久日本蜜臀 | 国产精品综合| 亚洲精品日韩在线| 国产麻豆91精品| 日韩手机在线导航| 国产欧美日韩视频在线观看 | 美脚丝袜一区二区三区在线观看| 99在线视频精品| 久久综合免费视频影院| 日韩一级在线观看| 久久午夜国产精品| 99精品久久| 免费日韩成人| 亚洲女同在线| 欧美日韩国产成人在线91| 性亚洲最疯狂xxxx高清| 欧美日韩高清免费| 亚洲大胆人体在线| 国产精品久久国产精品99gif | 欧美精品18+| 欧美在线国产| 国产精品久久久久国产a级| 91久久久久久国产精品| 国产精品一国产精品k频道56| 亚洲乱码国产乱码精品精98午夜| 国产精品一区二区三区乱码| 一本久久a久久精品亚洲| 黄色成人91| 午夜精品视频在线| 亚洲人成网站在线观看播放| 久久精品一二三| 亚洲一区二区av电影| 欧美精品一区二区三区久久久竹菊| 午夜视频在线观看一区| 欧美午夜视频在线观看| 亚洲免费电影在线| 黄色在线一区| 久久高清国产|