王瑜 王巖
(哈爾濱電工儀表研究所,黑龍江 哈爾濱 150081)
在傳統(tǒng)意義上,儀表僅僅是作為一個測量、數(shù)據(jù)處理、顯示結(jié)果的工具而被人們所認識。網(wǎng)絡化儀表是適合在遠程測控中使用的儀表。它是計算機技術(shù)、網(wǎng)絡通信技術(shù)與儀表技術(shù)相結(jié)合所產(chǎn)生的一種新型儀表。文中設計了一種以AT91RM9200為控制器的網(wǎng)絡化儀表,并且將Web服務器嵌入其中,使得遠端客戶通過Web瀏覽器就可以訪問該儀表。
作為一個基于嵌入式技術(shù)的Internet系統(tǒng)至少應該包含以下幾部分內(nèi)容:以太網(wǎng)物理層接口單元、TCP/IP協(xié)議棧和中央處理單元。
嵌入式處理器是嵌入式系統(tǒng)的核心部件。在設計嵌入式系統(tǒng)時,嵌入式處理器的選擇是非常重要的環(huán)節(jié)。綜合考慮了價格、性能、集成度和功能、設計支持及開發(fā)工具的支持等因素,以及應用中對于以太網(wǎng)和UART接口功能的要求以后,經(jīng)過比較選擇AT91RM9200工業(yè)級芯片作為網(wǎng)絡化儀表的嵌入式處理器。
雖然AT91RM9200芯片沒有提供物理層接口,但其內(nèi)部集成有網(wǎng)絡控制器EMAC,它是介質(zhì)訪問控制層(MAC)的硬件,位于0SI參考模型中物理層和邏輯鏈路控制層之間,集成了DMA管理所需的邏輯控制和收發(fā)FIF0,并依照IEEES02.3u規(guī)定的數(shù)據(jù)幀格式控制主機和物理層之間的信息交換。
軟件設計部分主要完成數(shù)據(jù)采集、數(shù)據(jù)交換、數(shù)據(jù)處理、數(shù)據(jù)查詢及顯示、報表生成和維護管理員操作等功能;同時向第三方程序提供接口,可根據(jù)需求進行軟件升級等功能,方便資源管理,最終生成運行穩(wěn)定可靠的應用系統(tǒng)。其設計工作主要包括嵌入式操作系統(tǒng)的移植、Web服務器的設計等。
本設計中的操作系統(tǒng)選擇目前廣泛應用的嵌入式C1inux。嵌入式C1inux具有高度可靈活定制內(nèi)核,保持了Linux的特性:源代碼公開、穩(wěn)定、可裁減大小等等。
以及沿用了Linux可配置內(nèi)核的特性,可以根據(jù)所要實現(xiàn)的內(nèi)核功能對其進行重新配置。其體系結(jié)構(gòu)如圖1所示。
Boot Loader:負責Linux內(nèi)核的啟動,它用于初始化系統(tǒng)資源,包括SDRAM。
內(nèi)核初始化:Linux內(nèi)核的入口點是Start-kerne1函數(shù)。它初始化內(nèi)核的其他部分,包括捕獲、I RQ通道、調(diào)度、設備驅(qū)動、標定延遲循環(huán),最重要的是能夠fork"init"進程,以啟動整個多任務環(huán)境。
系統(tǒng)調(diào)用函數(shù)/捕獲函數(shù):在執(zhí)行完"init"程序后,內(nèi)核對程序流不再有直接的控制權(quán),此后,它的作用僅僅是處理異步事件(例如硬件中斷)和為系統(tǒng)調(diào)用提供進程。
圖1
設備驅(qū)動:設備驅(qū)動占據(jù)了Linux內(nèi)核很大部分。同其他操作系統(tǒng)一樣,設備驅(qū)動為它們所控制的硬件設備和操作系統(tǒng)提供接口。文件系統(tǒng):Linux最重要的特性之一就是對多種文件系統(tǒng)的支持。這種特性使得Linux很容易地同其他操作系統(tǒng)共存。文件系統(tǒng)的概念使得用戶能夠查看存儲設備上的文件和路徑而無須考慮實際物理設備的文件系統(tǒng)類型。Linux透明地支持許多不同的文件系統(tǒng),將各種安裝的文件和文件系統(tǒng)以一個完整的虛擬文件系統(tǒng)的形式呈現(xiàn)給用戶。
實現(xiàn)網(wǎng)絡直接接入功能的關(guān)鍵是在系統(tǒng)內(nèi)應具有直接驅(qū)動網(wǎng)絡的控制芯片,本系統(tǒng)采用的網(wǎng)絡芯片型號是RTL8019AS,它具有以下優(yōu)點:10Mbps的數(shù)據(jù)傳輸速率,可以滿足實時測控數(shù)據(jù)量不大的場合的通信質(zhì)量要求;芯片的標準工作電平為DC5V,與單片機系統(tǒng)完全兼容;芯片遵循ISA總線標準,有8位和16位2種數(shù)據(jù)傳輸工作模式,有利于與MCU配合使用,MCU利用部分控制總線、地址總線和數(shù)據(jù)總線就可直接操作RTL8019AS的內(nèi)部寄存器,最大限度地簡化了驅(qū)動電路和驅(qū)動程序結(jié)構(gòu)。
在嵌入式系統(tǒng)中,可以使用RTL8019AS的默認配置和一些管腳實現(xiàn)網(wǎng)卡的初始化,這樣可以節(jié)省配置存儲器,減小嵌入式硬件平臺的體積。RTL8019AS支持即插即用和非即插即用模式。在嵌入式系統(tǒng)中,網(wǎng)卡的外設通常是不經(jīng)常插拔的,所以,為了系統(tǒng)的精簡,配置RTL8019AS為非即插即用模式。有固定的中斷,有固定的端口地址,假設端口是0x300(這里的端口是相對于ISA總線來說的端口,對于ARM的總線,需要重新計算地址。這些配置可以通過RTI8019AS的外部管腳,在系統(tǒng)上電復位的時候,自動配置起來。
2.3 Web服務器設計
由于Internet技術(shù)的發(fā)展,嵌入式系統(tǒng)正在變得越來越智能化并具有越來越多的網(wǎng)絡特性。而Web技術(shù)的飛速發(fā)展,給嵌入式系統(tǒng)接入Internet提供了很好的途徑。從功能上看,Web服務器監(jiān)聽用戶端的服務請求,根據(jù)用戶請求的類型提供相應的服務。用戶端使用WEB瀏覽器與Web服務器進行通信。Web服務器在接收到用戶端的請求后,處理用戶請求并返回需要的數(shù)據(jù)。這些數(shù)據(jù)通常以格式固定、含有
圖2
文本和圖片的頁面出現(xiàn)在用戶端瀏覽器。在嵌入式應用中,特別是在嵌入式設備中,一個Web服務器不可能是很全面的,它必須擁有足夠小的容量,并且不影響嵌入式系統(tǒng)的整體性能,但必須具備一個Web服務器應有的特征。本設計中采用的w e b服務器的基本架構(gòu)如圖2所示。由上圖可以看出:Web服務器以TCP/IP協(xié)議棧為基礎構(gòu)建,需要實現(xiàn)HTTP、TCP和UDP等協(xié)議。它具有IP地址,通過網(wǎng)絡就可以將設備接入Internet。任何一個客戶機,都可以通過HTTP協(xié)議與嵌入式Web服務器建立連接。嵌入式Web服務器在web瀏覽器和設備之間提供了統(tǒng)一的GUI接口,并且和所有的Web瀏覽器兼容,使得客戶端可以像在本地一樣透明地監(jiān)控管理設備狀況。
本文介紹的ARM嵌入式網(wǎng)絡化儀表是在嵌入式操作系統(tǒng)平臺下開發(fā)的,便于單個任務調(diào)試,單個任務的錯誤不會導致整個系統(tǒng)的崩潰。傳統(tǒng)的嵌入式網(wǎng)絡產(chǎn)品需要專門的網(wǎng)關(guān)以實現(xiàn)數(shù)據(jù)的網(wǎng)絡傳輸,本系統(tǒng)則實現(xiàn)了嵌入式網(wǎng)關(guān)與測量控制部分的一體化,這是以后實現(xiàn)嵌入式產(chǎn)品上網(wǎng)的趨勢。
[1]馬凈,李曉光,寧偉.基于Internet測控系統(tǒng)一網(wǎng)絡化儀表[J].工業(yè)計量,2004,5
[2]歐沽云,黃皎,陸曉春.嵌入式網(wǎng)絡化儀表監(jiān)控系統(tǒng)的設計 [J].河海大學常州分校報,2005,4
[3]賈智平,張瑞華.嵌入式系統(tǒng)原理與接口技術(shù) EM].北京:清華大學出版社,2005.
[4]馬文華.嵌入式系統(tǒng)設計與開發(fā)[M].北京:科學出版社,2006