基于GPS/GPRS的車輛移動監(jiān)控終端的設(shè)計與實現(xiàn)
——
1 GPS與GPRS
全球定位系統(tǒng)(Global Positioning System,GPS)是美國從上世紀(jì)70年代開始研制的具有在海、陸、空全方位實時三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng),由于能為用戶目標(biāo)提供全天候、高精度、連續(xù)實時的導(dǎo)航、定位和授時,已被廣泛應(yīng)用于地面移動目標(biāo)的跟蹤定位。
隨著移動GPRS業(yè)務(wù)的開展,利用GPRS來進(jìn)行GPS數(shù)據(jù)傳輸優(yōu)勢明顯。GPRS(General Packet Radio Service,通用分組無線業(yè)務(wù))是一種以分組交換技術(shù)為基礎(chǔ),采用IP數(shù)據(jù)網(wǎng)絡(luò)協(xié)議,傳輸高速、低速數(shù)據(jù)及信令的高效數(shù)據(jù)傳輸網(wǎng)絡(luò)。相對于傳統(tǒng)的遠(yuǎn)程傳輸方式來說,GPRS數(shù)據(jù)傳輸具有突出的優(yōu)點。一方面,GPRS資費比較便宜,可以采用多種資費方案。對于大數(shù)據(jù)量業(yè)務(wù)的用戶可以采用包月的方式,對于小數(shù)據(jù)量業(yè)務(wù)的用戶可以根據(jù)通信的數(shù)據(jù)量和提供的服務(wù)質(zhì)量進(jìn)行計費。另一方面,在GPRS網(wǎng)中,用戶只需與網(wǎng)絡(luò)建立一次連接,就可長時間的保持這種連接,并只在傳輸數(shù)據(jù)時才占用信道并被計費,保持時不占用信道不計費。這樣,數(shù)據(jù)采集點不用頻繁建立連接,也不必支付傳輸間隙時的費用,而且GPRS能夠較好地支持頻繁、少量突發(fā)型的數(shù)據(jù)業(yè)務(wù)。此外,GPRS網(wǎng)絡(luò)接入速度快,提供了與現(xiàn)有數(shù)據(jù)網(wǎng)的無縫連接。由于GPRS網(wǎng)本身是一個分組型數(shù)據(jù)網(wǎng),支持TCP/IP,X.25等協(xié)議,可以直接與分組數(shù)據(jù)網(wǎng)(IP網(wǎng)或X.25網(wǎng))互通,接入速度快于電路型數(shù)據(jù)業(yè)務(wù)。
2 系統(tǒng)組成和功能
整個基于GPS/GPRS車輛監(jiān)控系統(tǒng)由車載移動終端、通信網(wǎng)絡(luò)和監(jiān)控中心組成。其系統(tǒng)組成如圖1所示。
移動車輛配備的GPS接收機(jī)用以獲取自己當(dāng)前的位置、時間等信息,通過GPRS或短信的方式上傳到中心通信服務(wù)服務(wù)器。在監(jiān)控中心站,通訊服務(wù)器接收各監(jiān)控目標(biāo)的位置信息,并通過通信控制器送往中心服務(wù)器在電子地圖中顯示,對當(dāng)前受監(jiān)控車輛所在的位置、車速及行進(jìn)方向進(jìn)行實時監(jiān)控,并可以通過網(wǎng)絡(luò)對車載終端進(jìn)行控制,實現(xiàn)移動車輛與監(jiān)控中心的雙向數(shù)據(jù)傳輸,完成對車輛運行狀態(tài)、安全狀態(tài)、技術(shù)狀態(tài)的監(jiān)控。
3 車載移動監(jiān)控終端的設(shè)計和實現(xiàn)
根據(jù)系統(tǒng)結(jié)構(gòu)框架,車載終端實現(xiàn)的主要功能有移動監(jiān)控功能,當(dāng)接收到監(jiān)控中心的監(jiān)控命令后,自動地根據(jù)要求將位置信息通過GPRS或SMS發(fā)送到監(jiān)控中心;車體控制功能,根據(jù)接收的控制命令實現(xiàn)對車體的控制,比如點火線等端口的監(jiān)測、斷電/油路;安防功能,當(dāng)汽車遇到特殊情況,如遇劫等,可以通過按鈕發(fā)送SMS向監(jiān)控中心報警。
3.1 系統(tǒng)組成的硬件框圖
車載移動終端由主控處理器、GPRS通信模塊、GPS模塊等組成,其結(jié)構(gòu)框圖如圖2所示。根據(jù)車載設(shè)備低功耗的要求,主控芯片上我們選用了SAMSUNG公司的S3C44B0X。S3C44B0X采用ARM7TDMI內(nèi)核,并提供豐富的內(nèi)置部件,包括:8 kB cache、內(nèi)部SRAM、LCD控制器、帶自動握手的2通道UART、I/O端口、8通道10位ADC、PLL倍頻器等,他的低功耗精簡和出色的全靜態(tài)設(shè)計特別適合用于對成本和功耗敏感的應(yīng)用。
GPRS模塊是整個系統(tǒng)的通信基礎(chǔ),我們采用SI-MENS的MC35i。MC35i是新一代GSM/GPRS雙模模塊,支持GSM900/GSM1800雙頻和GRPS Class 8/ClassB。MC35i體積小巧,功耗低,能提供數(shù)據(jù)、語音、短信、傳真功能,可廣泛用于遙感測量記錄傳輸、遠(yuǎn)程信息處理、電話。GPRS模塊通過串行口UART2與主控芯片通信。
GPS接收單元我們采用μ-blox的GPS-MS1E,他具有高捕獲和靈敏度、超低功耗、體積小等優(yōu)點,主控芯片對GPS的控制主要是通過串行口UART1接收GPS定位信息。
用戶按鍵與SC44B0的相應(yīng)的I/O口連接以便控制器狀態(tài)變化。同時系統(tǒng)還預(yù)留了豐富的外圍接口,可靈活外接各種數(shù)據(jù)采集子系統(tǒng),具有較大的可擴(kuò)展性。
3.2 系統(tǒng)軟件設(shè)計
由于車載終端需要完成與GPS模塊、GPRS模塊、其他I/O模塊的交互和監(jiān)控,單一的任務(wù)無法完成,因此需要實時操作系統(tǒng)的支持。在嵌入式操作系統(tǒng)上選用美國著名RTOS廠商ATI公司的Nucleus PLUS。他是在嵌入式實時多任務(wù)操作系統(tǒng)Nucleus基礎(chǔ),為實時嵌入式應(yīng)用而設(shè)計的一個搶先式多任務(wù)操作系統(tǒng)內(nèi)核。Nucleus PLUS對CPU的支持能力比較強(qiáng),支持當(dāng)前流行的大多數(shù)RISC,CISC,DSP處理器。其95%的代碼是用ANSI C寫成的,非常便于移植并支持大多數(shù)類型的處理器。Nucleus PLUS提供了任務(wù)控制、任務(wù)通信、任務(wù)同步、內(nèi)存管理、可編程的定時器、標(biāo)準(zhǔn)的輸入/輸出設(shè)備接口等系統(tǒng)服務(wù)。
按功能上將系統(tǒng)應(yīng)用軟件分為9個模塊,每個模塊由一個主任務(wù)和若干個子任務(wù)組成,任務(wù)內(nèi)部采用有限狀態(tài)機(jī)的方式進(jìn)行切換,任務(wù)之間采用消息管道(pipe)進(jìn)行通信,每個模塊都定義了自己的消息接受管道。各個模塊之間的關(guān)系如圖3所示。
(1) 主控模塊是系統(tǒng)的核心模塊,負(fù)責(zé)系統(tǒng)的控制,以消息分發(fā)的方式與其他模塊交互,并控制其運行狀態(tài)達(dá)到總體控制系統(tǒng)運行的目的。根據(jù)系統(tǒng)工作時處理的不同任務(wù)將主控模塊劃分為啟動上電、正常工作、處理SMS數(shù)據(jù)、處理GPRS數(shù)據(jù)和退出下電五個狀態(tài)。主控模塊的任務(wù)名為SyscMain,他有自己的消息接收管道pipe[SY-SC],他循環(huán)地從此管道中接收和處理消息,并根據(jù)消息體的內(nèi)容在主控模塊的不同的狀態(tài)之間轉(zhuǎn)移切換,同時通過向其他模塊的消息管道發(fā)送消息來控制他們的運行狀態(tài),另一方面其他模塊通過消息管道向主控通知其自身的運行狀態(tài)和接受的數(shù)據(jù),以接受主控模塊的監(jiān)控。
(2) GPS模塊主要負(fù)責(zé)GPS數(shù)據(jù)的接收和解析。由于GPS輸出數(shù)據(jù)采用NMEA-0183格式,輸出數(shù)據(jù)為多種格式,在本系統(tǒng)中,僅選擇了取其中的一種數(shù)據(jù)格式:GPRMC(推薦最小數(shù)據(jù)量的GPS信息),其格式為(見表1):
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<lO>,<11>,<12>*hh
當(dāng)GPS輸出數(shù)據(jù)為有效定位數(shù)據(jù)時,提取相應(yīng)的信息(經(jīng)緯度、高度、速度等),同時轉(zhuǎn)換UTC時間為本地時間,封裝為系統(tǒng)自定義的GPS DATA數(shù)據(jù)格式發(fā)送到通信任務(wù)模塊。
(3) PPP模塊負(fù)責(zé)GPRS的底層PPP連接和PPP數(shù)據(jù)包的處理。點對點協(xié)議(PPP)為在點對點連接上傳輸多協(xié)議數(shù)據(jù)包提供了一個標(biāo)準(zhǔn)方法。在TCP/IP協(xié)議集中他是一種用來同步調(diào)制連接的數(shù)據(jù)鏈路層協(xié)議。該模塊實現(xiàn)負(fù)責(zé)TCP/IP協(xié)議棧低層的PPP協(xié)議的連接和釋放,以及相應(yīng)收到的PPP數(shù)據(jù)幀的處理與上層的TCP/IP層交互。主要包括PPP協(xié)議數(shù)據(jù)幀的封裝方式、初始化的LCP協(xié)議的協(xié)商、PAP密碼驗證和NCP協(xié)議的協(xié)商過程的處理。該模塊由外掛模塊Nucleus NET提供支持。
(4) 通信模塊(GPRS模塊)負(fù)責(zé)與監(jiān)控中心系統(tǒng)通信,完成GPRS數(shù)據(jù)的收發(fā)和短消息的收發(fā)。CPU對GPRS的控制主要是通過UART2發(fā)送AT命令實現(xiàn)。GSM AT指令集是由諾基亞、愛立信、摩托羅拉和HP等廠家共同為GSM系統(tǒng)研制的,提供了一種移動平臺與數(shù)據(jù)終端設(shè)備之間的通用接口,并被加入到GSM 07.05標(biāo)準(zhǔn)以及之后的GSM 07.07標(biāo)準(zhǔn)。用戶可以通過AT指令實現(xiàn)呼叫控制、短消息SMS、電話本、數(shù)據(jù)業(yè)務(wù)、補充業(yè)務(wù)、傳真等方面的控制。
為滿足用戶進(jìn)行GPRS數(shù)據(jù)通信的要求,NucleusNET作為外掛模塊能與Nucleus PLUS無縫結(jié)合從而實現(xiàn)其網(wǎng)絡(luò)互聯(lián)功能。Nucleus NET通常使用TCP/UDP協(xié)議的客戶/服務(wù)器運行模式,完成建立連接、發(fā)送數(shù)據(jù)及接收數(shù)據(jù)的工作。
TCP/IP的建立過程中,首先調(diào)用Nucleus NET提供的NU_init函數(shù)初始化GPRS網(wǎng)絡(luò),通過相應(yīng)的設(shè)置AT指令來完成,包括檢測是否連接到網(wǎng)絡(luò)(AT+CREG),通信信號強(qiáng)弱(AT+CSQ)以及SIM卡的PIN值是否輸入(AT+CPIN)等。然后用PPP撥號方式撥入GPRS網(wǎng)絡(luò),完成底層的數(shù)據(jù)鏈路層的連接,這部分由上述的PPP模塊來完成。接著調(diào)用Nu_Socket函數(shù)為他的通信分配一個套接字,然后調(diào)用NU_Connect函數(shù)與監(jiān)控中心服務(wù)器建立連接成功后,就可以進(jìn)行GPRS數(shù)據(jù)的發(fā)送NUSend.和接受NU_Reev.
在監(jiān)控中心服務(wù)器和移動終端上的數(shù)據(jù)傳輸協(xié)議上,為了兼容GPRS和GSM短消息這兩種通信方式,系統(tǒng)自定義了如圖所示的通信幀結(jié)構(gòu),其中協(xié)議幀最大長度為140 B,包括幀控制字節(jié)。
其中固定使用字母“A”作為幀頭;幀類型用來表示該幀的具體含義,當(dāng)為下行通信幀(監(jiān)控中心服務(wù)器→終端)時表示為監(jiān)控中心對終端的控制命令類型,比如設(shè)定定時報位命令、設(shè)定超速報警命令、終端配置命令等。當(dāng)為上行通信幀(終端→監(jiān)控中心服務(wù)器)時該字節(jié)省略;幀長為該幀體字段的長度;幀長的反為幀長字段按位取反的結(jié)果;幀體是個串類型,依據(jù)幀類型的不同表示不同的含義,當(dāng)該幀為上行通信幀時,幀體的內(nèi)容為系統(tǒng)自定義的GPS數(shù)據(jù);幀序號從0開始到255后歸0,用來對幀順序進(jìn)行判斷;校驗和為幀類型、幀長、幀長的反、幀序號、幀體幾個字段各字節(jié)按字節(jié)異或的結(jié)果,用來判斷該幀的正確性。
另一方面,用戶還可以通過按鍵發(fā)送SMS來上報監(jiān)控中心。主控芯片利用串口向GSM Modem收發(fā)一系列的GSM 07.05標(biāo)準(zhǔn)所定義的AT命令集,就能達(dá)到控制收發(fā)SMS的目的。根據(jù)GSMGSM 07.05標(biāo)準(zhǔn),對SMS的控制共有3種接入?yún)f(xié)議:Block Mode;基于AT命令的TextMode;基于AT命令的PDU Mode。本系統(tǒng)采用PDU模式對短信息正文經(jīng)過十六進(jìn)制編碼后傳送。PDU模式下可以采用3種編碼方式來對發(fā)送的內(nèi)容進(jìn)行編碼,他們是7 b,8 b和UCS2編碼。7 b編碼用于發(fā)送普通的ASCII字符,他將一串7 b的字符(最高位為0)編碼成8 b的數(shù)據(jù),每8個字符可“壓縮”成7個;8 b編碼通常用于發(fā)送數(shù)據(jù)消息;而UCS2編碼用于發(fā)送Unicode字符。發(fā)送SMS的具體過程為:
①首先發(fā)送AT以測試GSM Modem連接是否正常,等待GSM Modem返回OK;
②發(fā)送ATE0設(shè)置GSM Modem取消回顯模式,等待返回OK;
③發(fā)送AT+CMGF=0設(shè)置發(fā)送短信時選用PDU格式編碼,等待返回OK;
④接下來為正式發(fā)送SMS,先調(diào)用PDU編碼函數(shù)對接收到GPS數(shù)據(jù)GPS_DATA進(jìn)行編碼,并根據(jù)通信協(xié)議封裝為上行通信幀格式,然后發(fā)送指令。
AT+CMGS=監(jiān)控中心短消息號碼+回車符(0x0d,0x0a)+上行通信幀數(shù)據(jù)+回車符(0x0d,0x0a),等待返回OK。
上述的每個步驟完成后都必須加上回車符號(0x0d,0x0a)以使GSM Modem區(qū)別為不同的AT指令,而且都必須等待相應(yīng)的應(yīng)答,若失敗(回應(yīng)ERROR),需重新發(fā)送該AT指令。
(5) 附件模塊負(fù)責(zé)終端硬件設(shè)備的檢測,并通知主控模塊,實現(xiàn)應(yīng)用程序?qū)K端硬件的控制。
CPU對其他外圍接口的控制主要通過通用I/O口實現(xiàn)開關(guān)(電平)輸入/輸出,同時通過外部中斷的方式實現(xiàn)了與點火信號、車用防盜報警器、緊急報警(SOS)等的接口。
4 結(jié) 語
使用GPRS作為GPS車輛綜合監(jiān)控調(diào)度管理系統(tǒng)的無線傳輸手段,具有費用低、無需線纜施工及安全可靠、維護(hù)方便的特點,是一種經(jīng)濟(jì)可行、技術(shù)先進(jìn)的系統(tǒng)構(gòu)建方案,這將使車輛監(jiān)控系統(tǒng)具有更為廣闊的應(yīng)用前景。本文設(shè)計的基于GPS/GPRS的車載移動終端已投入實際運行,工作穩(wěn)定,能夠較精確地完成車輛監(jiān)控,操作簡單方便。
tcp/ip相關(guān)文章:tcp/ip是什么
評論