<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 用IP2002器件支持GPRS的GPS系統(tǒng)實現(xiàn)

          用IP2002器件支持GPRS的GPS系統(tǒng)實現(xiàn)

          ——
          作者: 時間:2007-01-26 來源:《電子元器件應(yīng)》 收藏
          隨著gps在社會生活中應(yīng)用范圍的日益廣泛,人們對它的研究也日益深入。gps數(shù)據(jù)的遠(yuǎn)程傳輸作為gps中的一個重要部分,也伴隨通信技術(shù)的發(fā)展而不斷變化,從原先的集群方式到傳呼方式再到后來的短信方式,無不反映著人們對性價比的追求。

          隨著移動gprs業(yè)務(wù)的開展,利用gprs來進(jìn)行g(shù)ps數(shù)據(jù)傳輸?shù)膬?yōu)勢慢慢的顯現(xiàn)出來。相對于傳統(tǒng)的遠(yuǎn)程傳輸方式(例如通過電話撥號)來說,gprs數(shù)據(jù)傳輸具有突出的優(yōu)點(diǎn)。一方面,gprs資費(fèi)比較便宜,可以采用多種資費(fèi)方案。對于大數(shù)據(jù)量業(yè)務(wù)的用戶可以采用包月的方式,對于小數(shù)據(jù)量業(yè)務(wù)的用戶可以根據(jù)通信的數(shù)據(jù)量和提供的服務(wù)質(zhì)量進(jìn)行計費(fèi)。另一方面,在gprs網(wǎng)中,用戶只需與網(wǎng)絡(luò)建立一次連接,就可長時間的保持這種連接,并只在傳輸數(shù)據(jù)時才占用信道并被計費(fèi),保持時不占用信道不計費(fèi)。這樣,數(shù)據(jù)采集點(diǎn)不用頻繁建立連接,也不必支付傳輸間隙時的費(fèi)用,而且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é)議,因此無需經(jīng)過pstn等網(wǎng)絡(luò)的轉(zhuǎn)接,就可以直接與分組數(shù)據(jù)網(wǎng)(ip網(wǎng)或x.25網(wǎng))互通,而且接入迅速,一般僅需幾秒,其速度明顯快于電路型數(shù)據(jù)業(yè)務(wù)。

          本文引用地址:http://www.ex-cimer.com/article/20993.htm

          對于高層協(xié)議,采用tcp/ip協(xié)議,較以前的無線數(shù)據(jù)網(wǎng)絡(luò)(集群,雙向傳呼,gsm短信息)而言,網(wǎng)絡(luò)接入更加直接方便。

          本文介紹一種支持gprs的gps系統(tǒng),并且對其中所涉及到的硬件、軟件設(shè)計方案給出了詳細(xì)的描述。通過該模型,可以比較好的實現(xiàn)gps定位信息數(shù)據(jù)遠(yuǎn)程傳輸。

          系統(tǒng)模型

          圖1是本方案的系統(tǒng)模型。從gps終端采集來的定位數(shù)據(jù),經(jīng)過gprs網(wǎng)絡(luò)透明地傳輸?shù)竭h(yuǎn)程gps服務(wù)器,遠(yuǎn)程gps服務(wù)器通過對gps數(shù)據(jù)的解碼便可以獲得定位信息。其詳細(xì)的流程如下:

          ①首先,gps終端發(fā)出包括有apn號碼的gprs登錄請求,登陸到gprs網(wǎng)絡(luò);

          ②移動的sgsn根據(jù)登陸請求中的apn找到登記的radius服務(wù)器,并將用戶認(rèn)證信息送至radius服務(wù)器;

          ③radius認(rèn)證服務(wù)器根據(jù)所傳遞過來的認(rèn)證信息,確認(rèn)是否是合法用戶發(fā)來的請求,如果是合法用戶,則根據(jù)配置為其分配一個ip地址;

          ④radius服務(wù)器向ggsn發(fā)送攜帶用戶地址的確認(rèn)信息;

          ⑤gps終端得到了ip地址,就可以根據(jù)配置(作為服務(wù)器端或者客戶端)與gps服務(wù)器建立起tcp連接;

          ⑥連接建立后,gps終端采集到的定位信息數(shù)據(jù)就會通過建立的tcp數(shù)據(jù)連接透明地傳輸至gps服務(wù)器; ⑦當(dāng)gps服務(wù)器有控制命令或其它數(shù)據(jù)要向下發(fā)送時,可以通過tcp連接傳送到gps終端;

          ⑧gps終端根據(jù)配置可以作為服務(wù)器端或者客戶端建立與用戶管理服務(wù)器的數(shù)據(jù)連接,用戶管理服務(wù)器通過該連接對gps終端進(jìn)行監(jiān)控、管理以及遠(yuǎn)程更新系統(tǒng)內(nèi)核程序。

          gps終端的設(shè)計

          ◇硬件設(shè)計

          gps終端的硬件電路框圖如圖2所示。該gps終端的核心是一塊負(fù)責(zé)tcp/ip數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)處理器ip2022芯片。ip2022是ubicom公司的高性能網(wǎng)絡(luò)處理器,具有l(wèi)oomips的處理能力,并專門針對網(wǎng)絡(luò)應(yīng)用進(jìn)行了優(yōu)化。在ip2022芯片中集成了兩個全雙工的串化器/解串器(ser/des)硬件單元,能直接與各種常用接口相連。這種功能使其能夠?qū)崿F(xiàn)片內(nèi)1obase-t以太網(wǎng)、usb以及其它各種快速串行協(xié)議。由于擁有ser/des硬件單元,ip2022也便于從一種協(xié)議轉(zhuǎn)換到另一種協(xié)議,因此比較適合于實現(xiàn)gps終端。

          ip2022的軟件模塊包括usb、uart、i2c、spi以及一個完整的tcp/ip堆棧,它能夠在執(zhí)行應(yīng)用程序的同時,提供高速計算、靈活的i/o控制和高效的數(shù)據(jù)處理功能。

          在本系統(tǒng)中,主要應(yīng)用ip2022的兩個ser/des硬件單元以及其tcp/ip協(xié)議棧。兩個全雙工的ser/des硬件單元經(jīng)過串口轉(zhuǎn)換電路(核心為max232)轉(zhuǎn)換成為兩個標(biāo)準(zhǔn)的rs232接口,通過這兩個rs232接口便于與gps模塊以及gprs模塊的通信。

          系統(tǒng)時鐘模塊為硬件系統(tǒng)提供工作所需要的時鐘脈沖,這部分比較簡單,但是需要注意兩個方面。一是晶振的選擇,雖然ip2022也支持無源晶振,但是在實際應(yīng)用中發(fā)現(xiàn)還是有源晶振與ip2022的兼容性好一些,所以在可能的情況下還是選擇有源晶振比較好。二是晶振頻率的選擇,由于串口通信的波特率是對晶振頻率分頻而成,如果晶振頻率選擇不當(dāng),在串口通信時就會出現(xiàn)亂碼。經(jīng)試驗和計算,4.9152mhz的晶振可以很好的支持多種常用波特率。

          程序的寫入和調(diào)試是通過在線編程接口實現(xiàn)的,ip2022支持在線編程和調(diào)試,該部分主要把ip2022的編程接口引出,加以適當(dāng)?shù)母綦x保護(hù),并通過spi和并口的轉(zhuǎn)換電路與調(diào)試機(jī)的并口相連接。

          在本系統(tǒng)中,內(nèi)部電壓有兩種,一種是接口設(shè)備所需要的3 v,另一種是ip2022所需要的2.5 v。這兩種電壓是經(jīng)過電源轉(zhuǎn)換模塊轉(zhuǎn)換而成。由于gprs模塊在數(shù)據(jù)發(fā)送的時候瞬間電流很大,電源轉(zhuǎn)換模塊也提供了足夠的功率和必要的保護(hù)。

          gprs數(shù)據(jù)模塊實現(xiàn)gprs傳輸?shù)墓δ埽喈?dāng)于普通的modem,市面上比較流行的有motorola的g18。

          在與gprs數(shù)據(jù)傳輸模塊通信時,沒有采用直接操縱gprs數(shù)據(jù)傳輸模塊接口,而是通過rs232連接,極大的降低了對gprs數(shù)據(jù)傳輸模塊的依賴性,用戶可以根據(jù)需要,來選定gprs數(shù)據(jù)模塊。

          gps接收器采用了motorola公司的m12,m12通過串口與rs232接口單元相連接。

          ◇軟件設(shè)計

          在gps終端軟件設(shè)計方面,為了便于以后擴(kuò)展,本設(shè)計采用了嚴(yán)格的分層結(jié)構(gòu),其具體的軟件結(jié)構(gòu)如圖3所示。各部分的主要功能如下:


          (1)串口驅(qū)動模塊

          利用串口驅(qū)動模塊來完成對串口的操作時,應(yīng)向上層提供串口參數(shù)配置功能,并應(yīng)在有數(shù)據(jù)收到或者發(fā)送完畢時通過indicatereceive、indicatesend回調(diào)函數(shù)向上層報告。上層軟件可以調(diào)用send、receive來進(jìn)行收發(fā)。

          (2)網(wǎng)絡(luò)驅(qū)動模塊

          在硬件中的gprs模塊只是提供了一種硬件信道,與服務(wù)器之間的數(shù)據(jù)連接必須通過軟件完成。在通信時,軟件首先通過gprs模塊特有的命令(一般為at+ccmd)與gprs網(wǎng)絡(luò)連接,再通過ppp協(xié)議建立數(shù)據(jù)鏈路,最后就可以通過tcp/ip協(xié)議與遠(yuǎn)程的服務(wù)器通信了。這一部分與網(wǎng)絡(luò)操作的功能都放在網(wǎng)絡(luò)驅(qū)動模塊中加以實現(xiàn)。與串口驅(qū)動模塊類似,網(wǎng)絡(luò)驅(qū)動模塊也提供了數(shù)據(jù)傳輸?shù)囊恍┓?wù)。 (3)橋接模塊

          由于串口是一個慢速連接,主機(jī)與串口的通信有時甚至是單字節(jié)操作,如果對于每一個這樣小的通信都單獨(dú)通過一個tcp包發(fā)送的話(譬如說一個字節(jié)的數(shù)據(jù)),這將產(chǎn)生一些41字節(jié)的分組,即:20字節(jié)的ip頭,20字節(jié)的tcp頭以及1字節(jié)的數(shù)據(jù)。如果在高速網(wǎng)絡(luò)上(例如局域網(wǎng)),這一些小分組通常不會引起麻煩,但是如果在gprs這樣的網(wǎng)絡(luò)上(平均往返時間高達(dá)數(shù)百ms),則會增加擁塞出現(xiàn)的可能性,并將會使網(wǎng)絡(luò)的效率極其低。在通常的tcp/ip實現(xiàn)中,一般采用nagle算法來解決這個問題。但是在ubicom的協(xié)議棧中沒有這個功能,因此,必須自己完成這個算法。考慮到對下層硬件結(jié)構(gòu)的無依賴性,設(shè)計時可將其放在橋接模塊中實現(xiàn),而不是放在網(wǎng)絡(luò)驅(qū)動模塊中實現(xiàn)。在算法實現(xiàn)中,當(dāng)有串口數(shù)據(jù)到來時,對于較小的分組,則并不立即就將其發(fā)出,而是等待一段時ih3(200 s左右),如果在這段時間中再沒有小數(shù)據(jù)到來,那么將其發(fā)出,否則將數(shù)據(jù)進(jìn)行累計后發(fā)出。當(dāng)然有些系統(tǒng)要求立即發(fā)出,那么也可以通過配置取消這種功能。經(jīng)這樣實現(xiàn)后,效率有了很大的提高,具體的效果可以參考后面的實驗數(shù)據(jù)。

          (4)輔助模塊

          在上面一些模塊的介紹中可以看到,其中有一些關(guān)鍵性的數(shù)據(jù)必須支持用戶自己配置,例如串口通信速度、停止位、網(wǎng)絡(luò)驅(qū)動模塊中g(shù)prs所要連接的apn、賬戶、密碼、工作模式(是作為服務(wù)器運(yùn)行還是客戶端運(yùn)行)、靜態(tài)ip還是動態(tài)ip等。這一部分?jǐn)?shù)據(jù)由配置模塊存儲在外部存儲器里,每次系統(tǒng)啟動的時候再由配置模塊載人。在輔助模塊中還包括一個重要的子模塊:遠(yuǎn)程管理模塊,它實現(xiàn)對gps終端的遠(yuǎn)程管理,包括遠(yuǎn)程跟蹤和遠(yuǎn)程更新程序。系統(tǒng)的運(yùn)行情況通過統(tǒng)計模塊進(jìn)行統(tǒng)計,然后可以通過遠(yuǎn)程管理模塊進(jìn)行上報。

          (5)系統(tǒng)監(jiān)控模塊

          對于放在遠(yuǎn)程的一個無人看管的系統(tǒng)來說,最重要的一點(diǎn)就是容錯能力,必須能夠在任何錯誤的情況下自動恢復(fù)到正常運(yùn)行狀態(tài),這一部分就是通過系統(tǒng)監(jiān)控模塊實現(xiàn)的。在gps終端中,經(jīng)常出現(xiàn)的異常包括有tcp連接中斷和網(wǎng)絡(luò)連接中斷,這兩種錯誤是有區(qū)別的,解決的方法也不一樣。tcp連接中斷指的是tcp連接進(jìn)入異常狀態(tài),不能在該連接上進(jìn)行數(shù)據(jù)的收發(fā)工作。這種錯誤產(chǎn)生的原因是gprs網(wǎng)絡(luò)有時會進(jìn)入偽死狀態(tài),而導(dǎo)致雖然還在網(wǎng)絡(luò)上,但是數(shù)據(jù)的收發(fā)工作無法進(jìn)行。通過在每個連接上設(shè)置一個收發(fā)超時計時器可以發(fā)現(xiàn)這種錯誤。當(dāng)有數(shù)據(jù)傳輸時即復(fù)位計數(shù)器,如果計數(shù)器超時,則表明tcp連接中斷,此時應(yīng)該根據(jù)工作模式而采取不同的處理。如果是工作在客戶端模式,需要再次與服務(wù)器連接,如果工作在服務(wù)器模式,則只需要簡單的斷開連接即可。

          對于網(wǎng)絡(luò)連接中斷的情況探測起來比較困難,一般是通過監(jiān)測長時間沒有數(shù)據(jù)通信來判斷。如果一旦發(fā)生此類錯誤,則需要重新進(jìn)行網(wǎng)絡(luò)的連接工作。

          由于軟件難免會有一些未曾發(fā)覺的錯誤,在發(fā)生此類錯誤的時候則由硬件看門電路復(fù)位系統(tǒng),并且在下次軟件啟動時將此類錯誤發(fā)生過的信息遠(yuǎn)程傳送到服務(wù)器。

          服務(wù)器端軟件的設(shè)計

          gps服務(wù)器程序可以采用兩種方式與遠(yuǎn)程的gps終端建立連接,一種是采用tcp方式,另外一種是采用串口通信方式。在采用串口通信方式時,需要編制一個虛擬串口驅(qū)動程序,將一個tcp連接模擬成為一個串口,這樣服務(wù)器就可以像操縱m12一樣對遠(yuǎn)程的gps終端進(jìn)行操作了。

          gps服務(wù)器和遠(yuǎn)程gps終端之間的通信協(xié)議采用了原始的m12通信命令,核心模塊在gps服務(wù)器和m12之間進(jìn)行了數(shù)據(jù)透明轉(zhuǎn)發(fā)的作用。m12支持有兩種通信數(shù)據(jù)格式:一是motorola二進(jìn)制數(shù)據(jù)指令格式,在采用motorola二進(jìn)制格式時,通信速率可以保證在9600bps;另一種是nmea-0183格式,其通信速率只有4800bps,同時在初始化gps時還需要加入由motorola二進(jìn)制轉(zhuǎn)化為nmea-0183的指令。因此建議使用motorola二進(jìn)制數(shù)據(jù)格式。 此設(shè)計中的關(guān)鍵環(huán)節(jié)在于兩個方面:一是連接的建立,二是m12的初始化。gps終端返同的定位信息數(shù)據(jù)格式如下:

          @@eamdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsdimsdimsdimsdimsd
          imsdimsdimsdsc。

          時間信息:m月,d日,yy年,h小時,m分,s秒。位置信息:aaaa緯度,oooo經(jīng)度,hhhh
          橢球高度。

          在所有信息終止的前的一個字節(jié)為校驗和,是所有信息字節(jié)的"異或"。

          收到數(shù)據(jù)后,只要對數(shù)據(jù)進(jìn)行解碼,就可以獲得定位信息以及時間。

          服務(wù)器端的考慮

          在gprs聯(lián)網(wǎng)中,必須注意的一個概念是apn。在登陸gprs時,采用的apn不同,gps終端和服務(wù)器之間所能采用的方式也會有所不同。

          如果采用公網(wǎng)apn(cmnet),那么服務(wù)器端只要有一固定公網(wǎng)ip即可,此時radius服務(wù)器由移動公司提供,gps終端上網(wǎng)后的ip也是由移動公司的radius服務(wù)器隨機(jī)分配的。gps終端與服務(wù)器必須經(jīng)過nat(network address translation,網(wǎng)絡(luò)地址變換)后才能通信,而從數(shù)據(jù)服務(wù)器看過去的gps終端的ip地址也不是它的真正地址。因此,gps終端與數(shù)據(jù)服務(wù)器之間的連接只能由gps終端發(fā)起,換言之,即gps終端只能工作在客戶狀態(tài)。在采用公網(wǎng)時雖然可以節(jié)省開支,但需要考慮安全性問題,因為這時候是與internet直接連通的,并且客戶之間也不可以直接訪問。

          與公網(wǎng)apn相對應(yīng)的一種方式是采用私有apn,即用戶向移動申請一個apn號。在采用這種方式時,所有登陸這個apn的用戶可以通過ip地址互相訪問,因此在數(shù)據(jù)量比較小的時候甚至可以采用一個也使用gprs終端的用戶做服務(wù)器。radius服務(wù)器的設(shè)置比較靈活,可以采用移動公司的radius服務(wù)器,也可以自建一套radius服務(wù)器。自建radius服務(wù)器的最大好處就是ggsn會將驗證信息發(fā)送給使用者,以便根據(jù)號碼或者其它信息為其分配一個靜態(tài)ip地址,因此。自建radius服務(wù)器非常適合gps終端作為服務(wù)器運(yùn)行。

          radius服務(wù)器可以采用一些商用的服務(wù)器,但從實踐中看,自己編寫一套radius服務(wù)器可能更加適合gprs。

          結(jié)束語

          對系統(tǒng)進(jìn)行了全面的測試,在傳輸效率上面,本系統(tǒng)表現(xiàn)的非常良好,連接上網(wǎng)絡(luò)的時間僅需要3s左右。在使用class 12的gprs模塊時,傳輸速率可以達(dá)到38kbps的上傳速度以及44kbps的下傳速度。對于一般的數(shù)據(jù)采集設(shè)備能夠保證數(shù)據(jù)的及時傳輸,在發(fā)生gprs網(wǎng)絡(luò)短暫失效時,可以在網(wǎng)絡(luò)恢復(fù)后的l0s內(nèi)重新在線,基本上保證了無間斷傳輸,因此可以滿足gps用戶的需要。

          由于本系統(tǒng)在設(shè)計上嚴(yán)格地進(jìn)行了功能模塊隔離,因此可以作為一個原型系統(tǒng)加以擴(kuò)展,以支持更多的gps功能。

          tcp/ip相關(guān)文章:tcp/ip是什么




          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();