夏振華,阮寧君
(長江大學電子信息學院,湖北 荊州 434023)
基于GPRS的無線智能數(shù)據(jù)采集系統(tǒng)的設計
夏振華,阮寧君
(長江大學電子信息學院,湖北 荊州 434023)
提出了一種可以利用GPRS進行無線數(shù)據(jù)傳輸?shù)臄?shù)據(jù)采集系統(tǒng),詳細介紹了該系統(tǒng)的硬件設計和基于嵌入式Linux操作系統(tǒng)的驅動程序的設計及應用程序設計方法。該系統(tǒng)具有穩(wěn)定性高、無線傳輸?shù)葍?yōu)點,可以用于偏遠、危險、人不易到達等場所的數(shù)據(jù)采集。
數(shù)據(jù)采集;無線傳輸;嵌入式系統(tǒng);GPRS
傳統(tǒng)的數(shù)據(jù)采集傳輸系統(tǒng)大都是采用單片機為核心,利用RS232、RS485等有線通信方式實現(xiàn)的,雖然實現(xiàn)簡單、成本低,但采用有線的數(shù)據(jù)傳輸方式很大程度上限制了其應用場合,不能適用于一些分散的、無人值守的現(xiàn)場,需要對數(shù)據(jù)進行定時采集,以便及時了解現(xiàn)場的情況。在電力、鐵路、石油探采等領域,要求對相距遙遠的生產(chǎn)過程進行數(shù)據(jù)傳輸,如果采用有線的傳輸方式,則在技術上和經(jīng)濟上都是不可取的,需要采用無線的方式進行遠距離的數(shù)據(jù)傳輸。并且,隨著數(shù)據(jù)采集系統(tǒng)的應用條件越來越復雜,基于單片機的數(shù)據(jù)采集系統(tǒng)在功能、用戶界面、運算速度和精度上逐漸不能滿足需求。近年來,以ARM為中央處理器和Linux為操作系統(tǒng)的嵌入式系統(tǒng)由于其功能強、功耗低、處理速度快、用戶界面友好等優(yōu)點,得到越來越廣泛的應用。筆者將介紹一種以S3c2410為核心,基于嵌入式Linux的數(shù)據(jù)采集傳輸系統(tǒng),其中AD芯片采用TI公司的多通道高速模數(shù)轉換器ADS8364,無線數(shù)據(jù)傳輸采用GPRS(General Packet Radio Service)模塊實現(xiàn)。
圖1 系統(tǒng)的結構圖
系統(tǒng)由無線采集終端和監(jiān)控中心2大部分組成。監(jiān)控中心為運行著監(jiān)控軟件的計算機,監(jiān)控軟件具有顯示各終端數(shù)據(jù)、處理分析數(shù)據(jù)、產(chǎn)生報警信號、控制監(jiān)控終端的運行等功能;采集終端是基于ARM的嵌入式采集系統(tǒng),主要由信號調理電路、數(shù)據(jù)采集模塊、控制模塊、無線傳輸模塊4個部分組成。采集終端和監(jiān)控中心組成一個典型的C/S(Client/Server)系統(tǒng)。監(jiān)控中心作為服務器,可以同時接受分布在地理位置相距很遠的多個采集終端發(fā)來的數(shù)據(jù),并對所有的采集終端進行控制和管理;采集終端將采集的數(shù)據(jù)通過GPRS撥號的方式,利用TCP/IP協(xié)議,經(jīng)由Internet傳輸?shù)奖O(jiān)控中心,同時接受來自監(jiān)控中心發(fā)來的控制命令,來控制采集系統(tǒng)的啟動、停止、參數(shù)設置等操作,系統(tǒng)的結構如圖1所示。監(jiān)控中心軟件采用VC++實現(xiàn)。
2.1ADS8364與S3c2410的接口
ADS8364可以通過給DVCC提供3.3V或者5V電壓而使器件的接口電壓為3.3V或者5V,這樣可以
很方便的將ADS8364和5V總線接口的51系列單片機等以及3.3V總線接口的DSP和ARM等接口。本系統(tǒng)所采用的處理器S3c2410與ADS8364接口不需要附加任何的接口電壓轉換芯片,只需把ADS8364的接口電壓設置成3.3V就可以將兩者的總線直接連接。S3c2410與ADS8364的接口如圖2所示。
圖2 S3c2410與ADS8364的接口圖
從圖2可以看出,S3c2410與ADS8364的接口非常簡單,幾乎不需要任何附加硬件邏輯電路,用S3c2410的GPF4與ADS8364的EOC信號相連,并將GPF4設置成中斷模式,用來接收ADS8364轉換結束中斷,GPB5、6、7設置成輸出模式,與ADS8364的HOLDA、B、C相連,用來選中3組AD(每組2個AD)啟動轉換,S3C2410的BANK2片選信號nGCS2與ADS8364的/CS相連,將AD作為外部物理地址映射到S3C2410相應的內核空間,位于外部I/O接口BANK2地址空間0x10000000~0x18000000。只要對BANK2進行寫操作,并將GPB5、GPB6、GPB7分別設置成000~111中的某個值,就可以產(chǎn)生ADS8364的啟動相應通道轉換的信號。S3c2410的地址線A2、A3、A4分別連接ADS8364的A0、A1、A2,將ADS8364的6個讀數(shù)通道映射到Linux操作系統(tǒng)的地址為0x10000000、0x10000004、0x10000008、0x1000000C、0x10000010、0x10000014。
2.2ADS8364的前端調理電路
圖3 ADS8364的前端調理電路
ADS8364的模擬輸入可以是雙極或全差分的,有2種方法可驅動ADS8364 的輸入,即單端和差分。單端輸入時,-IN端輸入的是共模電壓(CV),而+IN 的輸入則圍繞共模電壓擺動,輸入范圍為CV+VREF 和CV-VREF,VREF的大小決定了共模電壓的變化。當輸入是差分方式時,輸入幅值在-IN和+IN之間變化。每個輸入端的幅值分別是CV+1/2VREF 和CV-1/2VREF,差分輸入電壓范圍為+VREF和-VREF,所以VREF也決定了輸入電壓的范圍。圖3中R1和R2的取值可以用來改變OPA227輸入的電壓范圍。
2.3GPRS模塊和采集系統(tǒng)的連接
GPRS模塊選用市面上廣泛采用的西門子的MC35i。MC35i是Siemens公司推出的新一代無線通信GPRS模塊,可以快速安全可靠地實現(xiàn)系統(tǒng)方案中的數(shù)據(jù)、語音傳輸、短消息服務(Short Message Service)。該模塊采用GPRS分時復用的CLASS 8標準,具有始終在線的功能且理論上傳輸速率最高可達171.2kb/s,通信傳輸時延較小。模塊還具有RS232串行接口,方便與PC機或者嵌入式系統(tǒng)連接,該采集終端就是通過RS232將嵌入式采集終端和MC35i模塊相連。在連接時需要注意的是,由于MC35i采用的是全功能串口,除了TXD、RXD、GND外,還包括CTS、DSR、DTR、RTS等握手信號,而采集終端采用的串口只連接了TXD、RXD、GND信號,因此在二者連接時需要將采集終端串口的DTR和DSR短接,RTS和CTS短接。
圖4 中斷方式的程序執(zhí)行的流程圖
圖5 網(wǎng)絡傳輸流程圖
該系統(tǒng)采用S3c2410為控制芯片,采用Linux為嵌入式系統(tǒng)的操作系統(tǒng),在設計軟件時,需要分別設計應用程序和驅動程序[3]。驅動程序主要作用是提供操作硬件設備ADS8364的各種函數(shù);應用程序使用驅動程序提供的函數(shù)完成數(shù)據(jù)采集,并利用Linux的Socket API將得到的數(shù)據(jù)通過Internet傳送給監(jiān)控中心。下面主要介紹ADS8364驅動程序的設計方法和應用程序的流程。
3.1驅動程設計
Linux設備驅動程序實現(xiàn)的功能包括驅動程序的注冊與注銷、設備的打開與釋放、設備的讀寫操作、設備的控制操作等。當用戶需要通過設備文件同硬件打交道時,必須通過調用open、read、write、close、ioctl等系統(tǒng)函數(shù),這些函數(shù)都由file_operations結構體的函數(shù)指針成員給出入口地址。設計驅動程序就是對這些函數(shù)按照需要進行編程。
該系統(tǒng)在設計驅動程序時采用中斷方式讀取轉換后的數(shù)據(jù)。在驅動程序中將GPF4設置成中斷方式,將中斷觸發(fā)方式設置為下降沿觸發(fā),此時ADS8364產(chǎn)生的EOC信號觸發(fā)Linux系統(tǒng)的外中斷EINT4,應用程序只需要打開ADS8364所對應的設備文件,并用write()函數(shù)啟動相應的通道開始轉換,接下來的工作就由驅動程序中的中斷服務函數(shù)將數(shù)據(jù)存放到一個全局變量中,然后在應用程序中通過read()函數(shù)將數(shù)據(jù)讀出。圖4給出了中斷方式的程序執(zhí)行的流程圖,圖中給出了每個步驟所使用的關鍵函數(shù)。
3.2應用程序設計
應用程序的主要功能是實現(xiàn)數(shù)據(jù)采集和網(wǎng)絡傳輸,數(shù)據(jù)采集的過程在前面已有介紹,下面主要介紹網(wǎng)絡傳輸功能的設計。采集終端和監(jiān)控中心采用C/S模式,監(jiān)控中心作為服務器端,被動的等待采集終端的連接,并接收數(shù)據(jù)和發(fā)送控制命令,采集終端作為客戶端,主動連接服務器,將數(shù)據(jù)通過UDP協(xié)議發(fā)送給監(jiān)控中心,并接受來自中心的控制命令。該系統(tǒng)要求監(jiān)控中心必須有一個全球IP地址,而采集終端可以利用中國移動CMWAP或者CMNET上網(wǎng)方式提供的私有IP地址。監(jiān)控中心和采集終端間的網(wǎng)絡傳輸流程圖如圖5所示。
表1 測試數(shù)據(jù)
測試采用ARM9板加上GPRS模塊作為采集終端,采集中心裝有采集控制軟件,控制軟件發(fā)出開始采集命令,采集終端就進行數(shù)據(jù)采集,并將采集的到得數(shù)據(jù)通過GPRS撥號上網(wǎng)的方式,通過無線聯(lián)入Internet,傳輸?shù)讲杉行摹1?給出一組采集中心收到的測試數(shù)據(jù),從數(shù)據(jù)可以看出該系統(tǒng)的數(shù)據(jù)精度較高。
筆者提出的無線數(shù)據(jù)采集系統(tǒng),不但能夠實現(xiàn)高速、高精度的數(shù)據(jù)采集,并利用Linux操作系統(tǒng)提供的socket API,實現(xiàn)了基于TCP/IP協(xié)議的網(wǎng)絡傳輸功能,利用GPRS撥號方式進行無線數(shù)據(jù)傳輸。該系統(tǒng)將GPRS與數(shù)據(jù)采集系統(tǒng)相結合,可以實現(xiàn)整個系統(tǒng)的無線監(jiān)控,非常適用于一些特殊的、不能布線的場合,比如森林火災監(jiān)控、戰(zhàn)場監(jiān)控、氣體泄露監(jiān)控等等。該監(jiān)測系統(tǒng)已在測試過程中取得良好效果,隨著GPRS網(wǎng)絡的不斷完善和市場需求的擴大,該系統(tǒng)將有更廣闊的前景。
[1]夏振華, 張正炳, 潘濤. 一種改進的嵌入式網(wǎng)絡視頻監(jiān)控系[J]. 電視技術, 2007,(6):88~90.
[2]Texas Instruments. 250kSPS, 16-Bit, 6-Channel Simultaneous Sampling ANALOG-TO-DIGITALS CONVERTERS[DB/OL]. http://focus.ti.com/lit/ds/symlink/ads8364.pdf,2007-04.
[3]何永威,路林吉. 基于嵌入式Linux和ARM 9的家用智能監(jiān)控系統(tǒng)[J]. 微型電腦應用, 2007, (10):16~17.
[4]王衛(wèi)峰,于海勛. 基于AT91RM9200的嵌入式數(shù)據(jù)采集系統(tǒng)設計[J]. 微型電腦應用, 2007, (10):13~15,61.
[編輯] 易國華
TP277; TP368
B
1673-1409(2009)03-N077-04
2009-05-27
夏振華(1978-),男,2000年大學畢業(yè),碩士,講師,現(xiàn)主要從事自動化裝置方面的研究工作。