實時內核uC/OS-II下的網絡監控系統的設計
發布時間:2007/8/29 0:00:00 訪問次數:423
摘要:介紹了一種嵌入式于單片機的Web服務器的設計過程,給出了單片機控制下的網絡控制器RTL8019AS硬件平臺的設計、精簡的TCP/IP協議棧通過LAN訪問Internet的應用方案。同時簡明介紹了實時內核uC/OS-II對整個系統的管理方案,完成了對連接在系統I/O總線上的現有設備的監控。
關鍵詞:Web服務器 單片機 uC/OS-II TCP/IP協議棧 動態IP配置
隨著信息時代的到來,特別是互聯網的迅速普及,人們開始越來越多地接觸到一個新概念--嵌入式產品。將嵌入式系統接入Internet。不僅實現了設備的遠程控制、維護和升級,而且可實現資源共享。通過網絡對設備進行監控,一個外部界面是必不可少的,利用Web瀏覽器可使用戶通過網絡對遠程系統實現管理和更新,大大簡化了人機界面的設計。若在系統中嵌入實時操作系統,將使系統具有極強的可移植性,另外,硬件設備的添加與裁剪也具有極龐大的靈活性。采用DHCP協議動態獲得IP相關信息,使TCP/IP軟件不再依賴于存儲在芯片中的固定IP地址,這將為大型系統的安裝提供方便條件。
本設計的關鍵是如何在內存資源有限的單片機系統上,利用實時內核uC/OS-II把信息變成可以在互聯網上傳輸的IP數據包,以便通過IE瀏覽器監控遠程設備的狀態。
1 網絡監控系統概述
本設計采用Internet監控遠程設備,整個系統相當于一個網絡服務器。客戶端通過IE瀏覽器對該服務器進行訪問,實時地獲得設備的狀態信息,以便對設備進行控制和維護。這樣,就要求服務器提供WWW服務,即實現HTTP協議。它應被所有瀏覽器支持,以保證任何地方的用戶都可通過瀏覽器下達命令。在網絡接口上,本系統選擇以太網為其運行的網絡環境。圖1所示為HTTP設計模型。首先,客戶端的瀏覽器與Web服務器使用一個或多個TCP連接,通過80號端口進行通信,瀏覽器通過HTTP協議瀏覽事先存儲在EEROM中的控制網頁,通過該網頁傳遞控制命令到網絡服務器,然后服務器對命令進行解析,調用相應的函數控制外部I/O設備。
整個設備監控系統包括硬件和軟件兩部分。在硬件部分嵌入了TCP/IP協議棧。因系統資源有限,在保持協議分層體系結構的前提下,應盡量精簡協議內容。根據網絡監控系統的原理,本系統實現了以下協議:DHCP、HTTP、TCP、IP、ICMP、ARP。
2 硬件平臺設計
本設計采用以太網作為網絡的運行環境,在硬件上需要有網絡控制芯片。目前市場上有許多以太網絡控制芯片,但其大多數都耗電量高、功能復雜,不適合用于價格低廉的嵌入式系統中。在這里選用RTL8019AS,其好處是NE2000兼容、軟件移植性好、接口簡單、不需轉換芯片如PCI-ISA橋等。而單片機選擇89C55,它有20K的ROM,內部結構簡單,只要代碼能夠移植于它,就能較輕松地移植于其它架構的CPU,比如ARM等。圖2為硬件原理框圖。24C64用來存儲物理地址及設備的相關信息等;外部RAM為數據處理提供緩存。系統提供了RS232接口用來進行測試,提供了RJ45接口以便連接到以太網。
3 操作系統的選擇
根據監控系統的特點,系統必須滿足實時性和并發性的要求,以便更好地支持TCP/IP運行時的調度,所以應用軟應該基于嵌入式實時操作系統。適合于片上的實時操作系統比較多,但是代碼公開且適合移植51系列單片機的卻很少,主要有uC/OS-II、RTX51、Small RTOS51等。實時內核uC/OS-II是專門為單片機嵌入式應用而設計的,圖3為嵌入式實時操作系統的內部結構圖。它主要采用標準的ANSI C語言寫成,與硬件有關的部分使用匯編語言編寫,以使操作系統能很方便地移植到其它的處理器。可見,使用嵌入式操作系統時,應用軟件只與上層的代碼有關與處理器無關,在進行軟件移植時僅需對與硬件相關的底層函數進行修改,因此這樣的應用軟件具有良好的可移植性和穩定的可靠性。在uC/OS-II下編寫TCP/IP協議,比傳統的前后臺系統要方便很多;用它分析內存緩存區,使用前申請,使用后釋放,可有效地利用系統資源。在程序設計時將TCP/IP協議棧做成任務,而用戶程序在另外的任務中運行。這樣,單片機可在完成原來控制系統功能的前提下,實現網絡通信。從代碼長度上看,實現基本功能的TCP/IP協議棧比Linux等其它操作系統優勢更大。
4 軟件設計
軟件設計是網絡監控系統設計的重要部分,主要完成RTL8019AS的驅動、uC/OS-II對應系統的管理及TCP/IP協議棧的實現。
4.1 uC/OS-II操作系統的應用
uC/OS-II可以根據需要進行相應裁剪后移植到51單片機上。用它對系統進行管理,使得程序易讀,且便于移植。藽/OS-II主要負責管理網卡初始化、創建系統資源、創建任務等三部分工作。在系統資源的創建上,使用TxSem、RxSem信號量及TxQFIFO隊列。當需要發送或接收數據時,觸發RTL8019AS中斷,CPU將中斷向量進入中斷服務子程序,進行事件處理。中斷服務子程序根據RTL8019AS內部中斷狀態寄存器IMR的值確定系統所處狀態,通過兩個信號量TxSemPost和
摘要:介紹了一種嵌入式于單片機的Web服務器的設計過程,給出了單片機控制下的網絡控制器RTL8019AS硬件平臺的設計、精簡的TCP/IP協議棧通過LAN訪問Internet的應用方案。同時簡明介紹了實時內核uC/OS-II對整個系統的管理方案,完成了對連接在系統I/O總線上的現有設備的監控。
關鍵詞:Web服務器 單片機 uC/OS-II TCP/IP協議棧 動態IP配置
隨著信息時代的到來,特別是互聯網的迅速普及,人們開始越來越多地接觸到一個新概念--嵌入式產品。將嵌入式系統接入Internet。不僅實現了設備的遠程控制、維護和升級,而且可實現資源共享。通過網絡對設備進行監控,一個外部界面是必不可少的,利用Web瀏覽器可使用戶通過網絡對遠程系統實現管理和更新,大大簡化了人機界面的設計。若在系統中嵌入實時操作系統,將使系統具有極強的可移植性,另外,硬件設備的添加與裁剪也具有極龐大的靈活性。采用DHCP協議動態獲得IP相關信息,使TCP/IP軟件不再依賴于存儲在芯片中的固定IP地址,這將為大型系統的安裝提供方便條件。
本設計的關鍵是如何在內存資源有限的單片機系統上,利用實時內核uC/OS-II把信息變成可以在互聯網上傳輸的IP數據包,以便通過IE瀏覽器監控遠程設備的狀態。
1 網絡監控系統概述
本設計采用Internet監控遠程設備,整個系統相當于一個網絡服務器。客戶端通過IE瀏覽器對該服務器進行訪問,實時地獲得設備的狀態信息,以便對設備進行控制和維護。這樣,就要求服務器提供WWW服務,即實現HTTP協議。它應被所有瀏覽器支持,以保證任何地方的用戶都可通過瀏覽器下達命令。在網絡接口上,本系統選擇以太網為其運行的網絡環境。圖1所示為HTTP設計模型。首先,客戶端的瀏覽器與Web服務器使用一個或多個TCP連接,通過80號端口進行通信,瀏覽器通過HTTP協議瀏覽事先存儲在EEROM中的控制網頁,通過該網頁傳遞控制命令到網絡服務器,然后服務器對命令進行解析,調用相應的函數控制外部I/O設備。
整個設備監控系統包括硬件和軟件兩部分。在硬件部分嵌入了TCP/IP協議棧。因系統資源有限,在保持協議分層體系結構的前提下,應盡量精簡協議內容。根據網絡監控系統的原理,本系統實現了以下協議:DHCP、HTTP、TCP、IP、ICMP、ARP。
2 硬件平臺設計
本設計采用以太網作為網絡的運行環境,在硬件上需要有網絡控制芯片。目前市場上有許多以太網絡控制芯片,但其大多數都耗電量高、功能復雜,不適合用于價格低廉的嵌入式系統中。在這里選用RTL8019AS,其好處是NE2000兼容、軟件移植性好、接口簡單、不需轉換芯片如PCI-ISA橋等。而單片機選擇89C55,它有20K的ROM,內部結構簡單,只要代碼能夠移植于它,就能較輕松地移植于其它架構的CPU,比如ARM等。圖2為硬件原理框圖。24C64用來存儲物理地址及設備的相關信息等;外部RAM為數據處理提供緩存。系統提供了RS232接口用來進行測試,提供了RJ45接口以便連接到以太網。
3 操作系統的選擇
根據監控系統的特點,系統必須滿足實時性和并發性的要求,以便更好地支持TCP/IP運行時的調度,所以應用軟應該基于嵌入式實時操作系統。適合于片上的實時操作系統比較多,但是代碼公開且適合移植51系列單片機的卻很少,主要有uC/OS-II、RTX51、Small RTOS51等。實時內核uC/OS-II是專門為單片機嵌入式應用而設計的,圖3為嵌入式實時操作系統的內部結構圖。它主要采用標準的ANSI C語言寫成,與硬件有關的部分使用匯編語言編寫,以使操作系統能很方便地移植到其它的處理器。可見,使用嵌入式操作系統時,應用軟件只與上層的代碼有關與處理器無關,在進行軟件移植時僅需對與硬件相關的底層函數進行修改,因此這樣的應用軟件具有良好的可移植性和穩定的可靠性。在uC/OS-II下編寫TCP/IP協議,比傳統的前后臺系統要方便很多;用它分析內存緩存區,使用前申請,使用后釋放,可有效地利用系統資源。在程序設計時將TCP/IP協議棧做成任務,而用戶程序在另外的任務中運行。這樣,單片機可在完成原來控制系統功能的前提下,實現網絡通信。從代碼長度上看,實現基本功能的TCP/IP協議棧比Linux等其它操作系統優勢更大。
4 軟件設計
軟件設計是網絡監控系統設計的重要部分,主要完成RTL8019AS的驅動、uC/OS-II對應系統的管理及TCP/IP協議棧的實現。
4.1 uC/OS-II操作系統的應用
uC/OS-II可以根據需要進行相應裁剪后移植到51單片機上。用它對系統進行管理,使得程序易讀,且便于移植。藽/OS-II主要負責管理網卡初始化、創建系統資源、創建任務等三部分工作。在系統資源的創建上,使用TxSem、RxSem信號量及TxQFIFO隊列。當需要發送或接收數據時,觸發RTL8019AS中斷,CPU將中斷向量進入中斷服務子程序,進行事件處理。中斷服務子程序根據RTL8019AS內部中斷狀態寄存器IMR的值確定系統所處狀態,通過兩個信號量TxSemPost和