1 硬件設(shè)計
基于MCF5272芯片的嵌入式Web Server硬件配置如下:MCF5272(Cold Fire系列)32位處理器、4M字節(jié)的兩片16×1M位數(shù)據(jù)寬度FLASH、16M字節(jié)的兩片16×4M位數(shù)據(jù)寬度SDRAM、兩個標(biāo)準(zhǔn)RS-232串口、一個標(biāo)準(zhǔn)10/100M自適應(yīng)快速以太網(wǎng)接口、一個BDM接口、各種狀態(tài)指示和電源等。 MCF5272微處理器是迄今為止摩托羅拉推出的最高集成度的Cold Fire微處理器。這款高集成的Cold Fire微處理器將10/100MB以太網(wǎng)控制器和一個USB模塊等通信外圍設(shè)備結(jié)合起來,提高了MCF5272集成通信微處理器集成水平。
它不僅提供了一套新的通信外圍設(shè)備,同時還包含了以往Cold Fire標(biāo)準(zhǔn)產(chǎn)品所具備的廣受歡迎的通用外圍設(shè)備。
1.2 PTR2000+系列無線數(shù)傳模塊
PTR2000+為訊通科技出產(chǎn)的無線數(shù)傳模塊,具有接收發(fā)射合一、體積小、外圍器件少等優(yōu)點(diǎn),可直接與MCU串口相接,也可以接計算機(jī)RS232接口,軟件編程非常方便。由于采用了低發(fā)射功率、高接收靈敏度的設(shè)計,使用者無需申請許可證 。其標(biāo)準(zhǔn)DIP引腳間距,更適合嵌入式設(shè)計。
PTR2000+具有良好的產(chǎn)品特性,工作頻率為國際通用的數(shù)傳頻段433MHz,F(xiàn)SK調(diào)制,抗干擾能力強(qiáng);采用DDS+PLL頻率合成技術(shù),頻率穩(wěn)定性極好;具有兩個頻段,適合于需要多信道工作的特殊場合;工作速率最高可達(dá)20Kbit/s,也可在較低速率(如9600bps)下工作。
1.3 系統(tǒng)原理
整個系統(tǒng)由數(shù)據(jù)采集發(fā)射終端和數(shù)據(jù)接收端組成。
數(shù)據(jù)采集發(fā)射終端主要以51系列單片機(jī)為核心,MCU的P1口控制多路選擇器,對8路模擬信號進(jìn)行選擇,選中的模擬信號進(jìn)入高速AD轉(zhuǎn)換器,進(jìn)行模數(shù)轉(zhuǎn)換。MCU同時控制AD的采樣頻率和起始轉(zhuǎn)換,轉(zhuǎn)換結(jié)果存入FIFO存儲器。按照規(guī)定的通信協(xié)議,MCU對數(shù)據(jù)進(jìn)行編碼,最后通過數(shù)傳模塊PTR2000+發(fā)射給遠(yuǎn)方接收端。為提高數(shù)據(jù)傳輸?shù)目煽啃裕瑪?shù)據(jù)發(fā)送完畢,MCU將PTR2000+轉(zhuǎn)換為接收狀態(tài),接收主機(jī)的應(yīng)答信號或控制字。
圖1 數(shù)據(jù)采集端結(jié)構(gòu)框
PTR2000+通過RS-232將接收到的數(shù)據(jù)送入MCF5272嵌入式Web Server,MCF5272嵌入式Web Server接收完數(shù)據(jù),將PTR2000+轉(zhuǎn)換為發(fā)射狀態(tài),然后對數(shù)據(jù)進(jìn)行CRC循環(huán)碼校驗。如果數(shù)據(jù)正確,就通過嵌入式操作系統(tǒng)的UDP/IP協(xié)議棧,將數(shù)據(jù)打包,保存到FLASH芯片的可寫JFFS文件系統(tǒng)之中,同時運(yùn)行web服務(wù)器,等待客戶服務(wù)端通過網(wǎng)絡(luò)訪問數(shù)據(jù);錯誤,則向PTR2000+發(fā)送重發(fā)命令。MCF5272嵌入式Web Server通過以太網(wǎng)口接入Internet網(wǎng)絡(luò),用戶可通過瀏覽器(例如:IE)對系統(tǒng)進(jìn)行遠(yuǎn)程配置、管理(如更改IP,重新啟動系統(tǒng)等),并且可以調(diào)用封裝好的函數(shù)API直接對FLASH芯片的某幾個扇區(qū)進(jìn)行讀寫操作,可將配置的信息以及采集數(shù)據(jù)保存在系統(tǒng)FLASH芯片上。
圖2 數(shù)據(jù)接收端結(jié)構(gòu)框
上位PC機(jī)通過RS-232與BDM調(diào)試器相連,BDM調(diào)試器通過BDM口與Web Server相連,可以對Web Serve進(jìn)行初始化配置、調(diào)試和日常維護(hù)。
2 系統(tǒng)軟件實(shí)現(xiàn)
系統(tǒng)的軟件設(shè)計與實(shí)現(xiàn)是本系統(tǒng)實(shí)現(xiàn)的關(guān)鍵之一。
2.1 系統(tǒng)軟件:包括嵌入式操作系統(tǒng)與設(shè)備驅(qū)動程序
嵌入式操作系統(tǒng)是支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,是在系統(tǒng)實(shí)時性、硬件相關(guān)性、軟件固態(tài)化等方面有著突出特點(diǎn)的專用操作系統(tǒng)。由于Cold Fire系列芯片是沒有MMU (內(nèi)存管理單元Memory Management Unit)的處理器,而 uClinux是專為那些沒有MMU的嵌入式處理器開發(fā)的,所以本系統(tǒng)采用uClinux嵌入式操作系統(tǒng)。
uClinux是Linux的一個嵌入式版本,它是源代碼開放的嵌入式操作系統(tǒng),其內(nèi)核的二進(jìn)制映像文件可以做到小于512K。uClinux針對無MMU的處理器設(shè)計,支持多 任務(wù),具有完備的TCP/IP協(xié)議棧并支持多種網(wǎng)絡(luò)協(xié)議。uClinux還支持多種文件系統(tǒng),如ROMFS、NFS和JFFS等。另外,uClinux可移植性很強(qiáng),用戶通過重新配置、編譯內(nèi)核,很方便將其移植到68K、Dragon Ball、Cold Fire、Power PC、ARM等多種處理器計算平臺。當(dāng)前uClinux提供2.0和2.4兩個內(nèi)核版本。
本系統(tǒng)采用uClinux嵌入式操作系統(tǒng)主要需要解決以下三個問題:
第一,實(shí)時性問題。uClinux本身并沒有關(guān)注實(shí)時性問題,它并不是為了Linux的實(shí)時性而提出的。而本系統(tǒng)中的數(shù)據(jù)采集功能對操作系統(tǒng)的實(shí)時性有一定要求。通過給uClinux打上其它Rt-linux的實(shí)時性補(bǔ)丁,就可以增強(qiáng)uClinux的實(shí)時性,滿足這個系統(tǒng)的實(shí)時要求。
第二,JFFS文件系統(tǒng)的建立。uClinux系統(tǒng)采用Romfs作為根文件系統(tǒng),Romfs文件系統(tǒng)不支持動態(tài)擦寫保存。而本系統(tǒng)中的嵌入式的Web Server在運(yùn)行過程中,要求能夠動態(tài)地保存一些數(shù)據(jù),并且當(dāng)系統(tǒng)重新啟動時,保存的數(shù)據(jù)依然存在。所以我們需要充分發(fā)揮Flash可擦寫的優(yōu)勢,在系統(tǒng)運(yùn)行過程中,動態(tài)地擦寫Flash來保存數(shù)據(jù)。通過建立JFFS文件系統(tǒng),可以用Flash來保存數(shù)據(jù),即將Flash作為系統(tǒng)的硬盤來使用??梢韵癫僮饔脖P上的文件一樣操作Flash芯片上的文件和數(shù)據(jù)。系統(tǒng)運(yùn)行的參數(shù)可以實(shí)時保存到Flash芯片中,在系統(tǒng)斷電后數(shù)據(jù)仍然存儲在Flash芯片中。為實(shí)現(xiàn)Flash上的JFFS文件系統(tǒng),我們需要在內(nèi)核中加入對JFFS文件系統(tǒng)和Flash設(shè)備的支持,并針對具體的Flash 芯片修改設(shè)備驅(qū)動程序,生成設(shè)備節(jié)點(diǎn)并將JFFS文件系統(tǒng)掛接到Flash 設(shè)備上。
第三,編寫各個設(shè)備的驅(qū)動程序。主要包括串口驅(qū)動程序、以太網(wǎng)接口驅(qū)動程序、BDM調(diào)試接口驅(qū)動程序和FLASH芯片驅(qū)動程序。
2.2 嵌入式Web Server軟件系統(tǒng)實(shí)現(xiàn)
嵌入式Web Server的軟件系統(tǒng)包括五個部分: ①HTTP引擎; ②虛擬文件系統(tǒng); ③配置模塊; ④安全模塊; ⑤應(yīng)用程序接口模塊。
圖3 嵌入式Web Server軟件系統(tǒng)示意圖
其中HTTP引擎負(fù)責(zé)響應(yīng)用戶的請求、通過虛擬文件系統(tǒng)訪問靜態(tài)數(shù)據(jù)信息、通過應(yīng)用程序接口得到動態(tài)數(shù)據(jù)信息。
虛擬文件系統(tǒng)為嵌入式Web Server提供虛擬文件服務(wù),虛擬文件系統(tǒng)使用數(shù)據(jù)結(jié)構(gòu)存儲文件大小、修改時間等信息。對于存儲HTML文件需要的動態(tài)信息建立數(shù)據(jù)結(jié)構(gòu)保存腳本的指針和腳本所調(diào)用函數(shù)的名稱。通過虛擬文件系統(tǒng)將Java、 GIF、 PDF、 HTML以及文本等文件形式編譯為Web服務(wù)器認(rèn)可的代碼,而獨(dú)立于具體的文件系統(tǒng)。
配置模塊使系統(tǒng)管理員可以從任何一臺標(biāo)準(zhǔn)的Web瀏覽器上設(shè)置嵌入式Web Server參數(shù),在系統(tǒng)啟動中定義的配置環(huán)境變量包括并發(fā)連接數(shù)、Socket端口、主機(jī)名稱、根文件路徑、缺省初始文件以及非活動超時和時區(qū)等。
配置模塊對標(biāo)準(zhǔn)瀏覽器的開放使得安全問題更加重要,尤其是對網(wǎng)絡(luò)設(shè)備的配置和控制信息的訪問成為安全保護(hù)的重點(diǎn)。安全模塊通過在服務(wù)器上定義安全域和對每個安全域定義的用戶名和密碼實(shí)現(xiàn)對敏感信息的保護(hù)。還可以對請求數(shù)據(jù)采取加密措施實(shí)現(xiàn)安全保護(hù)功能。
應(yīng)用程序接口模塊實(shí)現(xiàn)和嵌入式應(yīng)用系統(tǒng)的數(shù)據(jù)交換。在嵌入式Web Server中,應(yīng)用程序接口與嵌入式操作系統(tǒng)通信,實(shí)現(xiàn)對嵌入系統(tǒng)的配置、監(jiān)視和控制,是嵌入式Web Server軟件系統(tǒng)的核心。而應(yīng)用程序接口模塊常見的有CGI(Common Gateway Interface)、SSI(Server Side Include)和HCPA(HTML-to-C Preprocessor Approach)等3種形式。
本系統(tǒng)應(yīng)用程序接口模塊采用CGI形式。CGI提供嵌入式Web Server一個執(zhí)行外部程序的通道,CGI程序經(jīng)過編譯成為可執(zhí)行文件,放在服務(wù)器端運(yùn)行。嵌入式Web Server根據(jù)用戶的請求調(diào)用相應(yīng)的CGI程序。并由嵌入式Web Server將CGI程序得到的動態(tài)信息封裝到頁面中,發(fā)送到用戶瀏覽器上。
3 無線數(shù)據(jù)傳輸
3.1 通信原理
在此系統(tǒng)中,基于無線方式的數(shù)據(jù)傳輸,決定了它有相對高的不可靠性,為了可靠通信,編程時設(shè)計了相應(yīng)的通信協(xié)議,并采用數(shù)據(jù)幀號和CRC校驗進(jìn)行數(shù)據(jù)的糾檢錯。
Web Server和數(shù)據(jù)采集終端的數(shù)據(jù)傳輸采用半雙工方式,基于停止等待協(xié)議(stop and wait)的思想,將待傳輸?shù)臄?shù)據(jù)幀按先后順序附加上幀號,以保證數(shù)據(jù)的正常傳輸。數(shù)據(jù)采集終端首先處于接收狀態(tài),Web Server將控制字(A/D采樣頻率、采樣方式)發(fā)送給數(shù)據(jù)采集終端后,Web Server轉(zhuǎn)換為接收方式,等待終端發(fā)送確認(rèn)幀。數(shù)據(jù)采集終端接收到控制字,進(jìn)行CRC數(shù)據(jù)校驗,如果數(shù)據(jù)正確就向Web Server發(fā)送確認(rèn)幀,數(shù)據(jù)幀幀號清零,開始進(jìn)行數(shù)據(jù)采集和數(shù)據(jù)傳輸。反之,則向Web ServerR發(fā)送重發(fā)請求。
數(shù)據(jù)開始傳輸,數(shù)據(jù)采集終端發(fā)送第N幀數(shù)據(jù),發(fā)送完畢,轉(zhuǎn)換為接收狀態(tài),等待Web Server發(fā)送確認(rèn)幀;Web Server接收到數(shù)據(jù),進(jìn)行CRC校驗,將幀號與自身幀號比較,數(shù)據(jù)正確,將自身幀計數(shù)器加1,通知數(shù)據(jù)采集終端發(fā)送第N+1幀數(shù)據(jù)。
3.2 通信協(xié)議
PTR2000+在無信號時,串口輸出的是隨機(jī)數(shù)據(jù),為保證無線通信的可靠,必須定義一個簡單的通信協(xié)議,對數(shù)據(jù)進(jìn)行打包后傳輸,數(shù)據(jù)幀格式見圖4。
圖4 數(shù)據(jù)幀格式
考慮到無線通信中的延遲效應(yīng)和數(shù)傳MODEM的發(fā)射接收轉(zhuǎn)換時間,為使接收建立正確的同步,需要在數(shù)據(jù)幀頭部加入5byte 的填充比特和同步碼。在整個數(shù)據(jù)通信中需要3種類型的的數(shù)據(jù)幀,即服務(wù)器發(fā)送的控制幀,數(shù)據(jù)終端發(fā)送的數(shù)據(jù)幀,和他們發(fā)送的確認(rèn)幀,長度包括類型碼和數(shù)據(jù)幀字節(jié)數(shù)之和數(shù)據(jù)校驗采用16位CRC循環(huán)校驗碼。
數(shù)據(jù)終端發(fā)送的數(shù)據(jù)幀設(shè)計為48byte,當(dāng)采用12位的A/D轉(zhuǎn)換器件,如AD1674時,每一路占用16 bit,對8路模擬信號進(jìn)行一次循環(huán)采集占用16個字節(jié),因此48byte的數(shù)據(jù)幀可存儲3次循環(huán)采集的數(shù)據(jù),這樣設(shè)計的目的是為了提高數(shù)據(jù)傳輸?shù)乃俾省.?dāng)PRT2000+傳輸速率為19.3Kbit/s時,采用此通信協(xié)議對單路信號進(jìn)行采集,速率可達(dá)4Kbit/s,此系統(tǒng)可用于低速的數(shù)據(jù)采集系統(tǒng)中。
4 結(jié)束語
遠(yuǎn)程無線數(shù)據(jù)采集與傳輸?shù)膽?yīng)用范圍非常廣,涉及行業(yè)有電力、水利、公安、交通、石油、安防和金融等。上述設(shè)計實(shí)現(xiàn)了基于嵌入式Web Server的無線數(shù)據(jù)采集,主要用于車輛遙測、遠(yuǎn)程無線抄表、工業(yè)數(shù)據(jù)采集系統(tǒng)、非接觸RF智能卡、生物信號采集等低速率遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)中。本系統(tǒng)的主要特點(diǎn)在于其服務(wù)器的設(shè)計基于嵌入式技術(shù)與WEB技術(shù),而數(shù)據(jù)采集部分采用無線傳輸技術(shù)。
責(zé)任編輯:gt
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305242 -
無線
+關(guān)注
關(guān)注
31文章
5453瀏覽量
173309 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
39文章
6108瀏覽量
113662
發(fā)布評論請先 登錄
相關(guān)推薦
評論