





摘要:本文論述了GPS車輛導航系統的車載臺的電子電路設計與實現,詳細論述了基于單片機的嵌入式系統設計方法。介紹了GPS、GSM短信息以及液晶顯示技術。自行定制了車載臺與監控中心的通信協議。
關鍵詞:GPS;單片機;液晶顯示模塊;AT89C52
DOI: 10.3969/j.issn.1005-5517.2012.10.011
系統的特點與功能
如圖1所示,本設計中GPS車輛導航系統將“全球衛星定位技術”(GPS)、“蜂窩移動通信技術”(GSM)和“地理信息技術”(GIS)結合在一起,分為監控中心與車載臺兩部分,兩者間采用GSM短信息的無線通信方式傳輸數據。車載臺屬GPS車輛導航系統中的下位機部分,完成的主要功能有:1)接收GPS衛星定位信號;2)以GSM短信息方式與監控中心通信;3)使用軟件狗技術,防止死機現象等。
設計實現
車載臺分為車外的GPS天線部分與車內部分兩部分,車內部分包括 GPS-OEM板、單片機、液晶顯示模塊、GSM終端、電源模塊。車載臺主要部件組成如圖2。
單片機
采用ATMEL公司的AT89C52單片機作為車載臺的中央控制芯片,目前單片機編程可以選擇的開發語言主要是匯編語言與單片機C語言,即C51語言[2]。在對單片機進行編程時,主要功能采用C51語言實現,液晶驅動、顯示部分采用匯編語言實現。
接收GPS信號
車載臺的定位功能是由GPS天線和Conexant公司的GPS-OEM板(型號Jupiter TU30-D410)一起提供的。GPSOEM板記錄天線傳來的GPS信號,對信號進行解調和濾波,還原出GPS衛星發送的導航電文,獲得實時定位數據,通過串行方式輸出數據。
將GPS-OEM板的輸出引腳接至單片機的RxD引腳,GPS-OEM板上電后自動輸出NMEA-0183格式的GPS語句。單片機串口采用中斷方式接收數據,波特率9600bps,與GPS-OEM板的串行輸出一致。在單片機的串口中斷服務程序中接收GPS數據流,按照NMEA-0183協議將經度、緯度等數據提取出來,根據車載臺與監控中心的通信協議重新編幀,通過短信息發往監控中心。
與監控中心通信
使用GSM短信息的無線通信方式與監控中心通信[3],車載臺與監控中心各配置一臺GSM終端,用以收發短信息,采用法國Wavecom公司的GSM終端,型號為Fastrack M1206[4]。
單片機通過串口發送AT指令控制GSM終端,AT89C52單片機只有一個串口,前文已介紹使用該串口接收GPS數據,因此用8251A串口擴展芯片將單片機的P2口擴展成一個串口,用于單片機和GSM終端間的通信,示意如圖3。單片機為T T L電平,GSM終端為RS232電平,因此把8251A的RxD(串口輸入)、TxD(串口輸出)引腳接至MAX232芯片的對應引腳,經過TTLRS232電平轉換后接至GSM終端的串口。
圖1 系統結構
圖2 車載臺組成框圖
圖3 串口擴展示意圖
圖4 數據通信協議
圖5 SED1335控制器與單片機接口示意圖
圖6 車載臺主程序流程圖
825lA工作時,每當收到外部發來的數據或對外發送數據工作已準備就緒時,均會引起狀態寄存器中的RxRDY或TxRDY標志位置位,且使對應信號輸出腳為高電平。根據8251A這一特性,發送串行數據時單片機定時檢測8251A的狀態寄存器,并根據狀態位的變化情況作出相應的處理。接收串行數據采用中斷方式,把RxRDY作為中斷條件,把RxRDY引腳連到AT89C52的中斷輸入端腳INT1上,這樣,正常情況下單片機處理其它事情,只有當8251A接收外部發來的數據后,才使單片機進入中斷程序處理。
我們自行制定了數據通信協議,如圖4。%%和%分別為語句開始和結束標志。采用基于ASCII字符的Text模式收發短信息,傳輸16進制數對應的ASCII碼。由于短信息技術本身的限制使傳輸的定位信息存在延時。在傳輸GPS定位導航數據時,我們先對數據進行處理,只把時間、經度、緯度、速度填充到我們通信協議的數據包中,使得數據包盡可能的短。另外,我們對通信協議進行了優化,有效地減少了信道的擁擠情況,可以縮小短信息的傳輸時延。在實驗中測試數據包從車載臺發送到監控中心的平均時間約為6秒。這表明了,我們采用的數據通信協議符合民用車輛導航系統的要求。
液晶顯示
使用杭州清達光電公司的AHG-320240F液晶顯示模塊,該模塊有320x240點陣,可以顯示各種圖形和文本信息,內置SED1335控制器,在液晶顯示器和單片機之間存在一接口電路,由SED1335液晶控制器完成,與控制GSM終端的AT指令類似,單片機通過向液晶模塊發送指令完成對模塊的初始化與顯示控制。SED1335有13條指令,多數指令帶有參數,參數值由用戶根據所控制的液晶顯示模塊的特征和顯示的需要來設置。常用指令有系統控制指令SYSTEM SET,操作碼為40H,用于初始化;存貯操作指令MWRITE,操作碼為42H,用于數據寫入。發送指令時先送命令口或數據口地址,后送操作碼,參數或數據值。語法為:
MOV DPTR,#XXXXH;XXXXH為命令口或數據口地址
MOV A,#XXH;XXH為指令操作碼、參數、數據
MOVX @DPTR,A
對AT89C52而言,所有對LCD操作的指令均為訪問外部I/O指令MOVX。如圖5所示,采用總線的方式(直接訪問方式)對液晶模塊進行訪問,單片機P0口對應的外部數據總線P0.0-P0.7接到SED1335控制器的八位數據D0~D7上,AT89C52的P2.7(A15)經反相器反相后接SED1335的片選CS,AT89C52的P0.0(A0)接SED1335的A0,所以液晶模塊的命令口地址為1XXX XXXX XXXX XXX1B,數據口地址為1XXX XXXX XXXX XXX0B。X取0時命令口地址為8001H,數據口地址為8000H。
程序流程
車載臺主程序流程如圖6。按程序執行順序解釋如下:
1.車載臺上電啟動,液晶顯示歡迎信息。
2.單片機關中斷。
3.初始化GSM終端和LCD模塊,若成功則在液晶上顯示初始化成功的提示信息。
4.單片機開中斷,準備接收GPS數據。
5.通過單片機串口接收GPS定位數據,按照設置的時間間隔(如10秒)把GPS數據循環顯示到液晶顯示屏上。
6.如果有新的短信息到來,數據流經8251串口擴展芯片后觸發單片機外中斷,執行相應的中斷服務程序。在該服務程序中接收短信息,提取短信息數據包中的SIM卡號、內容,對SIM卡號進行鑒權,如果是來自監控中心的短信息,則根據自定義的數據通信協議從短信內容中提取出命令,根據命令執行相應操作:若是“開始監控”命令,則把接收的GPS定位數據打包,將該數據包作為短信息內容按照設置的時間間隔循環發送到監控中心。若是“停止監控”命令,則停止向監控中心發送短信息,并向監控中心發送1條表示“停止監控命令執行成功”的短信息,然后刪除這條最新接收到的短信息,以免出現SIM卡容量滿后無法接收新短信的現象;如果經鑒權后發現SIM卡號不是監控中心的號碼,則視為垃圾短信,直接刪除該條短信息。
結束語
本系統設計的車載臺與監控中心進行了聯合測試。測試結果表明,車載臺工作較為穩定,基本符合設計要求,達到了預期的設計目標,具有較廣闊的應用前景。考慮到成本控制因素,本設計采用了經濟實用的AT89C52單片機和2G終端實現,下一步可以考慮將其移植到基于ARM/ DSP的高級嵌入式系統中,并采用3G/4G等高速率移動通信技術進行實時路況視頻等數據傳輸,以進一步提高系統性能和穩定性。