2 系統(tǒng)軟件實現
系統(tǒng)的軟件設計與實現是本系統(tǒng)實現的關鍵之一。
2.1 系統(tǒng)軟件:包括嵌入式操作系統(tǒng)與設備驅動程序
嵌入式操作系統(tǒng)是支持嵌入式系統(tǒng)應用的操作系統(tǒng)軟件,是在系統(tǒng)實時性、硬件相關性、軟件固態(tài)化等方面有著突出特點的專用操作系統(tǒng)。由于Cold Fire系列芯片是沒有MMU (內存管理單元Memory Management Unit)的處理器,而 uClinux是專為那些沒有MMU的嵌入式處理器開發(fā)的,所以本系統(tǒng)采用uClinux嵌入式操作系統(tǒng)。
uClinux是Linux的一個嵌入式版本,它是源代碼開放的嵌入式操作系統(tǒng),其內核的二進制映像文件可以做到小于512K。uClinux針對無MMU的處理器設計,支持多任務,具有完備的TCP/IP協(xié)議棧并支持多種網絡協(xié)議。uClinux還支持多種文件系統(tǒng),如ROMFS、NFS和JFFS等。另外,uClinux可移植性很強,用戶通過重新配置、編譯內核,很方便將其移植到68K、Dragon Ball、Cold Fire、Power PC、ARM等多種處理器計算平臺。當前uClinux提供2.0和2.4兩個內核版本。
本系統(tǒng)采用uClinux嵌入式操作系統(tǒng)主要需要解決以下三個問題:
第一,實時性問題。uClinux本身并沒有關注實時性問題,它并不是為了Linux的實時性而提出的。而本系統(tǒng)中的數據采集功能對操作系統(tǒng)的實時性有一定要求。通過給uClinux打上其它Rt-linux的實時性補丁,就可以增強uClinux的實時性,滿足這個系統(tǒng)的實時要求。
第二,JFFS文件系統(tǒng)的建立。uClinux系統(tǒng)采用Romfs作為根文件系統(tǒng),Romfs文件系統(tǒng)不支持動態(tài)擦寫保存。而本系統(tǒng)中的嵌入式的Web Server在運行過程中,要求能夠動態(tài)地保存一些數據,并且當系統(tǒng)重新啟動時,保存的數據依然存在。所以我們需要充分發(fā)揮Flash可擦寫的優(yōu)勢,在系統(tǒng)運行過程中,動態(tài)地擦寫Flash來保存數據。通過建立JFFS文件系統(tǒng),可以用Flash來保存數據,即將Flash作為系統(tǒng)的硬盤來使用??梢韵癫僮饔脖P上的文件一樣操作Flash芯片上的文件和數據。系統(tǒng)運行的參數可以實時保存到Flash芯片中,在系統(tǒng)斷電后數據仍然存儲在Flash芯片中。為實現Flash上的JFFS文件系統(tǒng),我們需要在內核中加入對JFFS文件系統(tǒng)和Flash設備的支持,并針對具體的Flash 芯片修改設備驅動程序,生成設備節(jié)點并將JFFS文件系統(tǒng)掛接到Flash 設備上。
第三,編寫各個設備的驅動程序。主要包括串口驅動程序、以太網接口驅動程序、BDM調試接口驅動程序和FLASH芯片驅動程序。
2.2 嵌入式Web Server軟件系統(tǒng)實現
嵌入式Web Server的軟件系統(tǒng)包括五個部分: ①HTTP引擎; ②虛擬文件系統(tǒng); ③配置模塊; ④安全模塊; ⑤應用程序接口模塊。

圖3 嵌入式Web Server軟件系統(tǒng)示意圖
其中HTTP引擎負責響應用戶的請求、通過虛擬文件系統(tǒng)訪問靜態(tài)數據信息、通過應用程序接口得到動態(tài)數據信息。
虛擬文件系統(tǒng)為嵌入式Web Server提供虛擬文件服務,虛擬文件系統(tǒng)使用數據結構存儲文件大小、修改時間等信息。對于存儲HTML文件需要的動態(tài)信息建立數據結構保存腳本的指針和腳本所調用函數的名稱。通過虛擬文件系統(tǒng)將Java、 GIF、 PDF、 HTML以及文本等文件形式編譯為Web服務器認可的代碼,而獨立于具體的文件系統(tǒng)。
配置模塊使系統(tǒng)管理員可以從任何一臺標準的Web瀏覽器上設置嵌入式Web Server參數,在系統(tǒng)啟動中定義的配置環(huán)境變量包括并發(fā)連接數、Socket端口、主機名稱、根文件路徑、缺省初始文件以及非活動超時和時區(qū)等。
配置模塊對標準瀏覽器的開放使得安全問題更加重要,尤其是對網絡設備的配置和控制信息的訪問成為安全保護的重點。安全模塊通過在服務器上定義安全域和對每個安全域定義的用戶名和密碼實現對敏感信息的保護。還可以對請求數據采取加密措施實現安全保護功能。
應用程序接口模塊實現和嵌入式應用系統(tǒng)的數據交換。在嵌入式Web Server中,應用程序接口與嵌入式操作系統(tǒng)通信,實現對嵌入系統(tǒng)的配置、監(jiān)視和控制,是嵌入式Web Server軟件系統(tǒng)的核心。而應用程序接口模塊常見的有CGI(Common Gateway Interface)、SSI(Server Side Include)和HCPA(HTML-to-C Preprocessor Approach)等3種形式。
本系統(tǒng)應用程序接口模塊采用CGI形式。CGI提供嵌入式Web Server一個執(zhí)行外部程序的通道,CGI程序經過編譯成為可執(zhí)行文件,放在服務器端運行。嵌入式Web Server根據用戶的請求調用相應的CGI程序。并由嵌入式Web Server將CGI程序得到的動態(tài)信息封裝到頁面中,發(fā)送到用戶瀏覽器上。
電子發(fā)燒友App













評論