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