0 引言
隨著后PC時代的到來,,嵌入式系統(tǒng)的應用已經(jīng)越來越普遍,而基于GPRS無線網(wǎng)絡的遠程監(jiān)測系統(tǒng)也在諸多工業(yè)工程領(lǐng)域有著廣泛應用,。本文將闡述基于GPRS無線網(wǎng)絡的嵌入式遠程車載監(jiān)測系統(tǒng),,用于槽罐車槽罐儲液溫度以及地理位置信息的異地遠程監(jiān)測,其目的在于使石化公司及時掌握運輸途中的儲罐的溫度隨時問,、地點的變化狀況,,為防止儲罐因溫度超限引發(fā)危險而起到預警作用,確保儲罐鐵路運輸?shù)陌踩?。本文重點介紹其系統(tǒng)構(gòu)成與車載GPS衛(wèi)星定位技術(shù)以及遠程數(shù)據(jù)的無線網(wǎng)絡傳輸實現(xiàn)方法,。
1 系統(tǒng)實現(xiàn)方案與構(gòu)成
整個車載系統(tǒng)可以分為車載終端和監(jiān)控數(shù)據(jù)中心兩個部分,如圖1所示,。車載終端的核心是三星公司推出的16/32位RISC微處理器S3C24 40A,。它有三個串口,其中串口1接GPRS無線發(fā)射模塊,,串口2接GPS衛(wèi)星定位模塊,由其自帶的A/D轉(zhuǎn)換接口來完成模擬信號向數(shù)字信號的轉(zhuǎn)化,。采集完成的定位數(shù)據(jù)與溫度數(shù)據(jù)通過GPRS無線網(wǎng)絡發(fā)送到遠程數(shù)據(jù)監(jiān)控中心,,監(jiān)控中心將接收到的數(shù)據(jù)存入本地數(shù)據(jù)庫,以供查詢和參考,。
2 車載終端數(shù)據(jù)采集模塊與GPRS無線發(fā)射模塊的設(shè)計
2.1 車載終端數(shù)據(jù)采集模塊的設(shè)計
車載終端數(shù)據(jù)采集模塊包括槽罐儲液溫度與GPS衛(wèi)星定位數(shù)據(jù)的采集,。其電路原理圖如圖2所示。圖中左端為溫度采集原理圖,,使用溫度變送器可以將槽罐儲液溫度轉(zhuǎn)化為0~40mA的標準電流輸出,,電流經(jīng)過變阻器后就可以將其轉(zhuǎn)變?yōu)榭晒〢RM微處理器處理的模擬電壓,電壓值范圍應控制在0~3.3V,。圖2右端為GPS數(shù)據(jù)采集原理圖,,GPS接收機采用臺灣鼎天國際最新推出的GPS導航模塊REB-1315。
模塊的供電電壓為直流3.3V,,由直流5V通過LM1117芯片轉(zhuǎn)化后得到,。19腳GPS_RF_IN為GPS信號輸入端,接GPS接收天線,,并由模塊自身的17腳RF_VOUT信號為其提供偏置電壓,,來保證天線的正常工作,。4腳TXA為模塊的串口發(fā)送信號,它是模塊主要的數(shù)據(jù)傳輸通道,,被用來輸出定位數(shù)據(jù),,本設(shè)計利用其得到定位信息。由于REB-1315模塊的輸出為TTL電平,,故使用MAX232將信號電平轉(zhuǎn)換為RS232電平,。為了方便,這里使用DB9的1腳為模塊提供5V的直流輸入電壓,。當模塊GPS天線接好并上電正常工作后,,GPS定位數(shù)據(jù)就會連續(xù)不斷地從4腳輸出。圖2右側(cè)為A/D采集接口,,溫度變送器標準輸出為0~40mA,,經(jīng)過變阻器將其轉(zhuǎn)化為0~3.3V的模擬電壓后送到S3C2440A的模擬通道AIN0進行A/D轉(zhuǎn)換。
2.2 GPRS無線發(fā)射模塊的設(shè)計
車載終端的GPRS模塊采用華為EM310模塊,,基于EM310模塊的GPRS無線發(fā)射模塊的電路原理圖如圖3所示,。模塊的供電電壓為3.8V,1~6管腳為SIM卡控制接口,,13管腳為網(wǎng)絡連接狀態(tài)指示接口,,串口0用于和MCU進行通信。
3 車載終端的軟件設(shè)計
本系統(tǒng)軟件編寫語言為C語言,,借助ARM Developer Suite v1.2集成開發(fā)環(huán)境進行編譯和調(diào)試,。這是一個多任務系統(tǒng),終端需要同時完成溫度采集,、GPS衛(wèi)星定位數(shù)據(jù)的采集和GPRS數(shù)據(jù)的無線發(fā)送工作,,為了滿足系統(tǒng)需要,采用嵌入式操作系統(tǒng)μC/OS-Ⅱ來實現(xiàn)多任務的調(diào)度,。操作系統(tǒng)的設(shè)計流程如圖4所示,。
操作系統(tǒng)一開始要完成對車載終端硬件電路板的初始化工作,然后是初始化μC/OS-Ⅱ,。μC/OS-Ⅱ是實時操作系統(tǒng),,它對系統(tǒng)時鐘有著非常嚴格的要求,所以接下來要初始化系統(tǒng)的時基,。為保證操作系統(tǒng)的可移植性與完整性,,這里將串口初始化和中斷等初始化工作放在初始化任務MainTask中來完成。最后啟動操作系統(tǒng),。車載終端的溫度采集,、GPS衛(wèi)星定位數(shù)據(jù)采集和GPRS數(shù)據(jù)無線發(fā)送,作為三個獨立而緊密連接的任務在MainTask中建立,,且這三個任務的優(yōu)先級依次降低,。主任務Main Task的設(shè)計流程圖如圖5所示,,先初始化時鐘節(jié)拍,因為操作系統(tǒng)當中的所有任務都是在時鐘節(jié)拍的作用下準確執(zhí)行的,。然后建立內(nèi)存分區(qū)以及串口消息隊列,,最后建立并執(zhí)行多任務。這里利用了μC/OS-Ⅱ操作系統(tǒng)的消息郵箱機制,,把A/D采集結(jié)果和GPS衛(wèi)星定位數(shù)據(jù)依次投遞到消息隊列當中,,在GPRS任務執(zhí)行時再從消息對列中將它們分別取出來發(fā)送。
由于A/D采集比較容易,,所以以下僅介紹GPS衛(wèi)星定位數(shù)據(jù)的采集以及GPRS數(shù)據(jù)的無線發(fā)送過程,。
3.1 GPS衛(wèi)星定位數(shù)據(jù)的采集過程
GPS衛(wèi)星定位數(shù)據(jù)采集包括GPS定位信息的提取、解析和消息投遞,,包含GPS數(shù)據(jù)處理的全部的步驟和方法,。程序流程圖如圖6所示。
GPS定位信息的提取,、解析和消息投遞工作放在while(1)循環(huán)中進行,。在投遞定位信息前需要判斷是否解析到$GPGGA數(shù)據(jù)幀。GPS數(shù)據(jù)處理函數(shù)GPSproc()的代碼如下:
程序先將定位信息提取到數(shù)據(jù)緩沖區(qū)中,,然后對其中的數(shù)據(jù)進行解析并存放到定義好的結(jié)構(gòu)體當中,,該結(jié)構(gòu)體的數(shù)據(jù)成員包括時間、經(jīng)度和緯度以及$GPGGA數(shù)據(jù)幀標志,,如果解析到了$GPGGA數(shù)據(jù)幀,,則進行消息投遞工作。對于GPS定位信息解析函數(shù)void GPSReceire(GPSINFO* info,,UInt8*pStrearn,,UInt8len),它是得到定位數(shù)據(jù)最關(guān)鍵的一步,,這里需要特別說明,其工作流程圖如圖7所示,。為了保證數(shù)據(jù)的可靠性以及準確性,,需要對每一幀數(shù)據(jù)進行異或校驗,如果異或校驗正確,,則開始提取并處理數(shù)據(jù)幀當中的有效字段,。
3.2 GPRS數(shù)據(jù)網(wǎng)絡的買現(xiàn)方案
車載數(shù)據(jù)異地遠程無線發(fā)送的關(guān)鍵是GPRS無線網(wǎng)絡通道的建立。在實際應用當中,,可以利用公網(wǎng)靜態(tài)IP,,動態(tài)域名解析,短消息通訊,,APN專線接入等組網(wǎng)方案,。但公網(wǎng)靜態(tài)IP需要相當一部分的使用費用,,不利于系統(tǒng)開發(fā)成本的降低。動態(tài)域名解析方案的穩(wěn)定性受制于DNS服務器,,也需要一定的開發(fā)費用,。短消息通訊容易收到干擾且不具有實時性。APN專線接入方案通常適用于安全性要求較高,、監(jiān)控點較多和實時性要求較高的場合,,但這一技術(shù)使用起來較為復雜。
鑒于此,,本系統(tǒng)采用虛擬IP技術(shù),,它是一種類似于電子郵件的技術(shù),適于需要公網(wǎng)靜態(tài)IP的場合,,其組網(wǎng)方便,,通過遠程服務器,可以在不同網(wǎng)段內(nèi)任意轉(zhuǎn)發(fā)數(shù)據(jù),。網(wǎng)絡結(jié)構(gòu)如圖8所示,。
GPRS模塊使用SIM卡登錄到移動互聯(lián)網(wǎng),位于主站的計算機也接入到互聯(lián)網(wǎng),。給GPRS模塊和主站計算機分配地位等價的虛擬IP地址(這里分別為10.1.90.0和10.1.90.1),。對于遠程虛擬IP服務器,可以自己搭建,,也可以由商業(yè)公司提供,,由于它能夠在不同網(wǎng)段內(nèi)任意接收數(shù)據(jù)和提供下載服務,因此它是具有公網(wǎng)靜態(tài)IP的,,為了統(tǒng)一起來,,它也被分配了自己的虛擬IP地址,同時它還被設(shè)定了對應的端口號(這里為7002),。在應用時,,車載GPRS模塊將先采集到的數(shù)據(jù)按照UDP數(shù)據(jù)報發(fā)送到服務器,然后服務器將會解析這一數(shù)據(jù)報并將其轉(zhuǎn)發(fā)到目標IP地址,,主站也就是監(jiān)控中心計算機上運行有遵從UDP協(xié)議的數(shù)據(jù)接收軟件,,這樣就實現(xiàn)了車載數(shù)據(jù)向遠程監(jiān)控中心的發(fā)送。UDP數(shù)據(jù)報結(jié)構(gòu)見表1,。如果編號為10.1.90.1的終端發(fā)送字符串ABCD,,服務密碼為123456,則這一數(shù)據(jù)報為:0A015A000A015A01313233343536000441424344,。若發(fā)送內(nèi)容包含有漢字,,則其為GB2312漢字編碼。
3.3 GPRS模塊發(fā)送數(shù)據(jù)的操作
要使GPRS模塊建立網(wǎng)絡連接并實現(xiàn)數(shù)據(jù)的遠程發(fā)送是通過向控制串口發(fā)送一系列AT指令來實現(xiàn)的。對于EM310模塊,,其主要使用的AT指令如下:
在μC/OS-Ⅱ的GPRS任務中,,上述的AT指令被寫到C語言代碼中,也即寫入到串口打印操作語句中,,為了使GPRS模塊硬件更好的響應命令,,需要在每條指令后延遲數(shù)秒。所發(fā)送的數(shù)據(jù)是從消息隊列當中取出來的,。
4 系統(tǒng)的運行結(jié)果
車載終端使用嵌入式集成開發(fā)軟件ADS 1.2,,采用C語言編寫。數(shù)據(jù)監(jiān)控中心的數(shù)據(jù)接收軟件使用MFC設(shè)計,,同時還使用了ADO技術(shù),,能將接收到的數(shù)據(jù)通過處理及時存放到本地Access數(shù)據(jù)庫,并且還能供工作人員隨時查詢數(shù)據(jù)庫信息,。
圖9為數(shù)據(jù)中心接收軟件接收遠程GPRS數(shù)據(jù)的情況,,圖10為數(shù)據(jù)庫的查詢結(jié)果??梢钥吹?,本系統(tǒng)在測試運行時得到了良好的效果。
5 結(jié)語
本系統(tǒng)雖然針對石化企業(yè)的槽罐車的監(jiān)控開展研究工作,,但其技術(shù)方案及形成的技術(shù)成果將可推廣至其他行業(yè)的產(chǎn)品運輸,、工農(nóng)業(yè)裝備運行狀況的遠程監(jiān)測與控制,以及遠程醫(yī)療等諸多領(lǐng)域,,有著廣闊的應用前景,。