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