基于GPS和GPRS的小型追蹤器
1 引 言
本文引用地址:http://butianyuan.cn/article/79619.htm隨著GPRS無線通訊、Internet網(wǎng)絡(luò)以及民用領(lǐng)域GPS的普遍應(yīng)用,將三者合一使用已成為當(dāng)今熱門的研究領(lǐng)域。
GPRS(General Packed Radio ServICe,通用分組無線業(yè)務(wù))采用TCP/IP協(xié)議,非常容易和現(xiàn)有的Internet技術(shù)及應(yīng)用平臺(tái)整合,即將各種IP技術(shù)和服務(wù)同移動(dòng)通信技術(shù)相結(jié)合,為用戶提供各種高速度、高質(zhì)量的移動(dòng)數(shù)據(jù)通信業(yè)務(wù)。GPRS的移動(dòng)通信、價(jià)格低廉、快速登陸、永遠(yuǎn)在線、組網(wǎng)靈活、信道保障、小功率防雷擊等特點(diǎn)使得GPRS已逐漸取代GSM網(wǎng)絡(luò)。
GPS(Global Positioning System,全球定位系統(tǒng))除了更多地應(yīng)用于高精尖端測(cè)量、測(cè)繪及導(dǎo)航領(lǐng)域外,也更多地推動(dòng)了其在低成本、低精度的民用小型GPS設(shè)備領(lǐng)域的發(fā)展和使用。GPS收發(fā)機(jī)的主要任務(wù)就是捕獲一定高度截止角所選擇的待測(cè)衛(wèi)星的信號(hào),同時(shí)對(duì)接收到的GPS信號(hào)進(jìn)行變換放大和處理,解譯出GPS衛(wèi)星所發(fā)送的導(dǎo)航電文,最終實(shí)時(shí)計(jì)算出該觀測(cè)站的三維位置、三維速度和時(shí)間。
整個(gè)系統(tǒng)方案如圖1所示,帶有兩個(gè)串口的微控制器一方面獲取來自GPS接收模塊的導(dǎo)航數(shù)據(jù),另一方面將這些數(shù)據(jù)經(jīng)過適當(dāng)處理后轉(zhuǎn)換為GPRS可以傳送的數(shù)據(jù),并通過網(wǎng)絡(luò)送入控制中心,當(dāng)用戶需要獲得相應(yīng)的追蹤數(shù)據(jù)時(shí),通過網(wǎng)絡(luò)訪問即可。
2 總體方案
基于微控制器的GPS+GPRS系統(tǒng),主要由以下幾個(gè)部分組成:微控制器模塊、GPS+GPRS模塊、鍵盤及LCD顯示屏等附件。其基本原理框圖如圖2所示。
MCU通過兩個(gè)串口接收和發(fā)送信號(hào)到GPS和GPRS模塊,MCU通過串口0中斷接收GPS發(fā)出的狀態(tài)信息(包括三維位置、三維速度、時(shí)間、航向等)并保存,經(jīng)軟件打包后通過串口1發(fā)送到GPRS模塊。GPRS模塊受MCU控制將此信號(hào)轉(zhuǎn)換為射頻信號(hào)GPRS網(wǎng)絡(luò)并連接Internet網(wǎng)絡(luò)。Internet用戶通過連接相關(guān)網(wǎng)站,或手機(jī)用戶通過編寫指定格式的短信,發(fā)送消息給GPRS模塊,GPRS模塊通過串口1將信號(hào)送入MCU,MCU發(fā)出接受信號(hào)鈴聲并根據(jù)約定協(xié)議自動(dòng)顯示相應(yīng)信息,鍵盤操作簡(jiǎn)單,可以方便地切換顯示信息。
3 硬件選型
該系統(tǒng)在選型時(shí),在滿足使用要求的基礎(chǔ)上,主要的選擇目標(biāo)是體積重量小、能耗低的產(chǎn)品以滿足室外使用和便于老人小孩攜帶的要求。
3.1 MCU
MCU選用超低功耗型MSP430系列16位單片機(jī)MSP430F149,片內(nèi)有豐富的外設(shè),可實(shí)現(xiàn)異步、同步及多址訪問的串行通信接口(USART0~1)以及液晶顯示驅(qū)動(dòng)模塊,最多可達(dá)6×8條I/O線,工作電壓為1.8~3.6 V。5種低功耗模式的體系結(jié)構(gòu),使得該微控制器在便攜式測(cè)量等應(yīng)用場(chǎng)合非常理想地延長(zhǎng)了電池的使用壽命,省電模式下中斷喚醒只需6 μs。
3.2 XT55 GPS+GPRS模塊
XT55是Siemens推出的第一款也是目前的惟一一款集合了三頻GSM/GPRS和GPS接收器的模塊。預(yù)先配置的功能和超級(jí)緊湊的尺寸(體積53×34×5.1 mm3重11 g)使其十分易于集成在新的小巧型的應(yīng)用設(shè)備中,節(jié)省了大量的時(shí)間和費(fèi)用來做額外的硬件集成??捎糜趥鬏敹绦?、語音、傳真,用于數(shù)據(jù)傳輸時(shí)最大理論傳輸速率可達(dá)85.6 kb/s,缺省值為14.kb/s,工作電壓為3.3~4.8 V,XT55內(nèi)置GPS接收器,能決定其當(dāng)前的位置、速度、航向。這些數(shù)據(jù)可以由MCU保存,也可以直接發(fā)送到一個(gè)操作中心。
4 系統(tǒng)構(gòu)成
4.1 硬件設(shè)計(jì)
硬件設(shè)計(jì)上主要是MCU與XT55所集成的兩個(gè)模塊之間的串口連接。其中GPRS模塊與微控制器之間的通信協(xié)議是AT命令集,除處理串口發(fā)送、串口接收之外,微控制器與GPRS模塊之間還有一些硬件握手信號(hào)。
硬件連接完成后,在進(jìn)行GPRS上網(wǎng)操作之前,首先要對(duì)GPRS模塊進(jìn)行一定的設(shè)置,主要的設(shè)置工作有:設(shè)置通信波特率,一般設(shè)置為19 200 b/s,無奇偶位,一位停止位;設(shè)置接入網(wǎng)關(guān),通過AT+CGD CONT="1",“IP”,“CMNET”命令設(shè)置GPRS接入網(wǎng)關(guān)為移動(dòng)夢(mèng)網(wǎng);設(shè)置移動(dòng)終端的類別;測(cè)試GPRS服務(wù)是否開通。
4.2 軟件設(shè)計(jì)
程序中所有代碼都是由C語言編寫的,并采用分層結(jié)構(gòu),從底往上分別為串口驅(qū)動(dòng)層,網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)層、PPP協(xié)議層、uIP協(xié)議層、應(yīng)用層。上層函數(shù)的實(shí)現(xiàn)需要應(yīng)用到底層函數(shù),最終完成應(yīng)用層任務(wù),即傳送數(shù)據(jù)。
PPP(Point-to-Point Protocol)是為在同等單元之間傳輸數(shù)據(jù)包這樣的簡(jiǎn)單鏈路而設(shè)計(jì)的,這種鏈路提供全雙工操作,并按照順序傳送數(shù)據(jù)包,為基于各種主機(jī)、網(wǎng)橋和路由器的簡(jiǎn)單連接提供一種共通的解決方案。
PPP數(shù)據(jù)幀格式如下:
標(biāo)志Flag:表示一個(gè)幀的開始和結(jié)束;
地址Address:標(biāo)準(zhǔn)的廣播地址;
控制Control:用戶數(shù)據(jù)采用無序幀方式傳輸;
協(xié)議Protocol:標(biāo)志封裝在幀的數(shù)據(jù)域中的協(xié)議類型,通過確定幀序列的結(jié)尾,為FCS域留出兩個(gè)字節(jié),便可確定數(shù)據(jù)域的結(jié)尾:0xC023為網(wǎng)絡(luò)認(rèn)證數(shù)據(jù)報(bào);0xC021為鏈路控制數(shù)據(jù);0x8021為網(wǎng)絡(luò)控制數(shù)據(jù);
幀檢測(cè)序列FCS:差錯(cuò)控制。
4.2.1 uIP的體系結(jié)構(gòu)
瑞典計(jì)算機(jī)科學(xué)研究所Adam Dunkels開發(fā)的uIP0.9是一種TCP/IP協(xié)議棧,資源占用少是他的設(shè)計(jì)特點(diǎn),尤其適用于8/16位單片機(jī)。他去掉了許多全功能協(xié)議棧中不常用的功能,而保留通訊所必須的協(xié)議機(jī)制,其設(shè)計(jì)重點(diǎn)放在IP,ICMP和TCP協(xié)議的實(shí)現(xiàn)上,將這3個(gè)模塊合為一個(gè)整體,而將UDP和ARP協(xié)議實(shí)現(xiàn)作為可選模塊。uIP的體系結(jié)構(gòu)如圖3所示。
uIP處于網(wǎng)絡(luò)通訊的中間層,上層協(xié)議在這里被稱為應(yīng)用程序,而下層硬件或固件被稱為網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。顯然,uIP并不僅僅是針對(duì)以太網(wǎng)設(shè)計(jì)的,他具有媒體無關(guān)性。
4.2.2 uIP的設(shè)備驅(qū)動(dòng)程序接口
uIP內(nèi)部有兩個(gè)函數(shù)直接需要底層設(shè)備驅(qū)動(dòng)程序的支持:
一個(gè)是uip_input()。當(dāng)設(shè)備驅(qū)動(dòng)程序從網(wǎng)絡(luò)層收到一個(gè)數(shù)據(jù)包時(shí),要調(diào)用這個(gè)函數(shù),設(shè)備驅(qū)動(dòng)程序必須事先將數(shù)據(jù)包存放到uip_buf[],包長(zhǎng)放到uip_len,然后交由uip_input()處理。當(dāng)函數(shù)返回時(shí),如果uip_len不為0,則表示有帶外數(shù)據(jù)(如SYN,ACK等)要發(fā)送。當(dāng)需要ARP支持時(shí),還需要考慮更新ARP表或發(fā)出ARP請(qǐng)求和回應(yīng)。
另一個(gè)需要驅(qū)動(dòng)程序支持的函數(shù)是uip_periodic(conn)。這個(gè)函數(shù)用于uIP內(nèi)核對(duì)各連接的定時(shí)輪循,因此需要一個(gè)硬件支持的定時(shí)程序周期性地用他輪循各連接,一般用于檢查主機(jī)是否有數(shù)據(jù)要發(fā)送,如有,則構(gòu)造IP包。
4.2.3 uIP的應(yīng)用程序接口
為了將用戶的應(yīng)用程序掛接到uIP中,必須將宏UIP APPCALL()定義成實(shí)際的應(yīng)用程序函數(shù)名,這樣每當(dāng)某個(gè)uIP事件發(fā)生時(shí),內(nèi)核就會(huì)調(diào)用該應(yīng)用程序進(jìn)行處理。如果要加入應(yīng)用程序狀態(tài)的話,必須將宏UIP_APPSTATE_SIZE定義成應(yīng)用程序狀態(tài)結(jié)構(gòu)體的長(zhǎng)度。在應(yīng)用程序函數(shù)中,依靠uIP事件檢測(cè)函數(shù)來決定處理的方法,另外可以通過判斷當(dāng)前連接的端口號(hào)來區(qū)分處理不同的連接。
5 結(jié)語
整個(gè)模塊撥號(hào)上網(wǎng)只需3~5 s,平均上網(wǎng)速度已經(jīng)達(dá)到33~36 kb/s。數(shù)據(jù)上傳速度可以達(dá)到每秒2~2.5 kB,最高峰值可以達(dá)到8 kB,完全可靠地實(shí)現(xiàn)了短消息服務(wù)和一些文本信息傳遞。移動(dòng)目標(biāo)GPS數(shù)據(jù)、指令及相關(guān)應(yīng)用情況下的報(bào)警數(shù)據(jù)均可通過GPRS網(wǎng)絡(luò)傳送到監(jiān)控中心。該系統(tǒng)的便攜性和方便使用的優(yōu)點(diǎn),也可應(yīng)用到需要對(duì)移動(dòng)物體進(jìn)行遠(yuǎn)程監(jiān)控和調(diào)度的領(lǐng)域中。
評(píng)論