<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 如何通過(guò)CDMA模塊實(shí)現車(chē)載終端數據通信

如何通過(guò)CDMA模塊實(shí)現車(chē)載終端數據通信

作者: 時(shí)間:2017-06-07 來(lái)源:網(wǎng)絡(luò ) 收藏

在傳統的移動(dòng)網(wǎng)絡(luò )中,很多網(wǎng)絡(luò )問(wèn)題需要工程師或者技術(shù)人員攜帶儀表駕車(chē)路測來(lái)發(fā)現。這種測試方法在以往的網(wǎng)絡(luò )優(yōu)化測試中已采用多年,存在系統復雜、人員管理不方便、效率低下等問(wèn)題。且每個(gè)技術(shù)人員或工程師都不可能負責太多的基站小區優(yōu)化工作和問(wèn)題分析。為此,建立無(wú)線(xiàn)網(wǎng)絡(luò )質(zhì)量自動(dòng)監測系統的工作是有必要的。

本文引用地址:http://dyxdggzs.com/article/201706/350731.htm

車(chē)載終端組成

圖1為車(chē)載終端的結構圖,車(chē)載數據終端主要包括單片機(rabbit2000)、GPS模塊、 手機模塊、手機模塊、鐵電存儲器、電源變換模塊等。其中,模塊負責所采集數據的無(wú)線(xiàn)傳輸。


圖1 車(chē)載終端結構圖

車(chē)載終端工作原理

車(chē)載終端的工作原理可以描述為、數據處理及存儲、數據上傳幾個(gè)過(guò)程。其中讀取GPS模塊返回的消息,提取經(jīng)緯度信息,通過(guò) 模塊分別采集CDMA和網(wǎng)絡(luò )質(zhì)量參數;數據處理及存儲根據經(jīng)緯度信息判斷車(chē)輛行駛距離,由此距離判斷是否記錄該次采集的數據,上傳數據時(shí)再從鐵電中讀取這些數據;數據上傳通過(guò)簡(jiǎn)單IP實(shí)現與監控中心的TCP連接,并實(shí)時(shí)檢測TCP連接狀態(tài),連接中斷則立即重新連接,保證數據能實(shí)時(shí)地上傳給監控中心。

數據傳輸的實(shí)現

硬件連接

本文中采用了MG815+模塊及UIM卡,硬件連接如圖2所示。圖中左側為UIM卡連接參考電路,右側為MG815+模塊連接參考電路。由于模塊串口輸出電平為3.8V,而Rabbit串口輸出電平為5V,因此在兩者之間增加了串口電平轉換芯片NC7WZ07,以提升Rabbit和模塊之間串口通信的可靠性。


圖2 MG815+及UIM卡的硬件連接圖

AT指令

AT(Attention) 指令最初由 Hayes 公司推出,主要用于對調制解調器的控制,現在已演化為一種標準,所有移動(dòng)模塊都支持 AT 指令。雖然不同廠(chǎng)家的手機模塊都參照 GSM 協(xié)議,但格式還是有所不同,開(kāi)發(fā)過(guò)程中一定要認真參考廠(chǎng)家給的資料。AT 指令格式如下:

AT指令都以“AT”開(kāi)頭,以結束,例如 “ATE0rn”

AT指令返回格式:跟AT指令相關(guān)的字符串>,例如,對于上一AT命令的返回為“ATE0rnrnOKrn” 。

TCP連接的建立

TCP的連接建立經(jīng)過(guò)以下過(guò)程:

① 建立撥號連接,AT命令為AT+ZPPPOPENrn。

② 建立TCP連接,AT 命令為AT+ZIPSETUP=SOCKET_NUM, IP_AD, PORT_NUM rn,例如AT+ZIPSETUP=1,211.136.18.171,5000rn。

③ TCP連接成功建立后,可以發(fā)送數據,AT命令為AT+ZIPSEND=, rrn,例如AT+ZIPSEND=1,4rgoodrn,發(fā)送的數據為“good”。

這里所用到的查詢(xún)命令及各命令返回說(shuō)明包括:

①查詢(xún)撥號連接狀態(tài)命令:AT+ZPPPSTATUSrn

返回有三種狀態(tài):撥號連接建立rn+ZPPPSTATUS: OPENEDrnrnOKrn

撥號連接斷開(kāi) rn+ZPPPSTATUS: CLOSEDrnr nOKrn

正在撥號 rn+ZPPPSTATUS: * rnrnOKrn

②查詢(xún)TCP連接狀態(tài)命令:AT+ZIPSTATUS= SOCKET_NUM rn

返回有三種狀態(tài):TCP連接建立 rn+ZIPSTATUS: ESTABLISHEDrnrnOKrn

TCP連接失敗 rn+ZIPSTATU S:CLOSEDrnrnOKrn

正在建立連接 rn+ZIPSTATUS:SYN_SENTrnrn OKrn

數據的發(fā)送和接收

模塊從TCP通道接收到數據后,由串口返回消息:+ZIPRECV:0,1,, rn,例如,+ZIPRECV: 0,10,1234567890rn,則TCP通道接收的數據為1234567890。

+ZIPRECV為異步消息,在任意時(shí)刻返回,在接收該消息時(shí)要注意。

數據傳輸的軟件設計

終端與監控中心以報文形式交互數據,報文包括數據包(采集的數據信息)、心跳包(定時(shí)發(fā)送,以維持網(wǎng)絡(luò )連接)以及校時(shí)請求,以上均由終端主動(dòng)發(fā)起,監控中心回復。數據通信子程序的流程如圖3。


圖3 數據通信流程圖

根據流程圖可知,發(fā)送數據后等待監控中心的回復消息,設置等待時(shí)間,若超時(shí)還無(wú)回復消息,則退出等待;下次發(fā)送數據時(shí)重新發(fā)送。

數據傳輸實(shí)例

終端發(fā)送的數據包如下:

01780102000146003030407 5345460008184101641000105 03010701221632303903.6741N1215 3.1326E27990357079425-70-66-632 004070031040828531405011144 1801194100068722100694210807 02200906902012

數據包中0178為報文長(cháng)度;01為版本號;02為命令字;0001為數據包序列號;460030304075345為UIM卡號;460008184101641為SIM卡號;00010503為系統工作狀態(tài)字;01為后面跟1條數據(每條長(cháng)度126)。

0701221632303903.6741N12153.13 26E27990357079425-70-66-63200407003104082853140501114 418011941000687221006942 1080702200906902012為一條數據,依次為時(shí)間、經(jīng)緯度、C網(wǎng)質(zhì)量參數和G網(wǎng)質(zhì)量參數。

注意事項

拆包現象

模塊支持在TCP通道一次發(fā)送1024字節數據,但模塊內部發(fā)送緩沖區為536字節,使用+ZIPSEND命令一次發(fā)送1024字節數據時(shí),發(fā)送的1024 字節數據拆分為2條socket數據先后傳送給監控中心服務(wù)器??赏ㄟ^(guò)降低一次發(fā)送的數據量來(lái)避免此現象,即一次傳輸不多于536字節。

連包現象

如果兩條+ZIPSEND指令時(shí)間間隔過(guò)小,或前一包數據還未發(fā)送成功時(shí)模塊收到新的數據發(fā)送命令,則模塊把兩條指令中的數據合并為一條 socket數據發(fā)送。此時(shí),可以從兩方面解決此問(wèn)題:一是模塊發(fā)送端每發(fā)送一個(gè)數據包后,等待監控中心返回確認消息后再繼續其他工作,這樣只能最大限度地防止上述現象的發(fā)生;另一方面是在監控中心接收端對上述現象進(jìn)行容錯處理。

此外,如果監控中心發(fā)送兩條數據的時(shí)間間隔太短,模塊接收數據時(shí)會(huì )出現中心發(fā)送的兩條數據合并,以+ZIPRECV消息從串口返回,終端處理TCP數據時(shí)要考慮此問(wèn)題。

異步消息的返回

模塊返回的異步消息主要為T(mén)CP通道返回的數據。該消息的返回格式在前文中已說(shuō)明。由于異步消息返回時(shí)間的不確定性,該消息會(huì )以?xún)煞N方式從串口輸出。一是單獨返回。二是向模塊發(fā)送AT指令后,異步消息隨該指令的返回值一同返回,例如,當發(fā)AT指令查詢(xún)撥號連接狀況時(shí),模塊在TCP通道收到數據,則返回如下:rn+ZPPPSTATUS:OPENEDrnrnOK rn+ZIPRECV:1,24,002401810 000070312120016rn。在接收和處理異步數據時(shí)應充分考慮異步消息的這兩種返回情況,以免丟失數據。

結語(yǔ)

本文詳細論述了如何通過(guò)CDMA模塊MG815+的數據傳輸功能實(shí)現車(chē)載終端與監控中心的通信,并給出了軟件設計流程。最后對實(shí)測過(guò)程中遇到的問(wèn)題提出相應解決方案,這對相關(guān)開(kāi)發(fā)人員有很大的參考價(jià)值。



關(guān)鍵詞: CDMA 數據采集 GSM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>