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