基于ARM處理器的車載GPS系統(tǒng)設(shè)計方案
概述:本文設(shè)計了一套基于ARM處理器的車載GPS系統(tǒng),采用AT91RM9200處理器為硬件平臺,在該處理器上移植Linux操作系統(tǒng),利用操作系統(tǒng)的資源編寫程序?qū)崿F(xiàn)GPS和GPRS的功能在車載GPS系統(tǒng)中的應(yīng)用。本文提供了一套切實可行的具有實時監(jiān)控能力的車載GPS衛(wèi)星定位系統(tǒng)設(shè)計方案。
1 引言
車載GPS定位終端在過去十年內(nèi)已經(jīng)成為汽車工業(yè)發(fā)展的焦點。在歐美國家和日本,車載GPS定位終端在最近幾年內(nèi)得以廣泛的應(yīng)用。車載GPS定位終端是融全球衛(wèi)星定位技術(shù)(GPS)和現(xiàn)代無線通信技術(shù)于一體的高科技系統(tǒng)。該終端的主要功能是通過GPS模塊從衛(wèi)星獲取GPS數(shù)據(jù),將移動車輛的動態(tài)位置(經(jīng)度、緯度、時間、速度)等信息實時地通過無線通信鏈路上傳至監(jiān)控中心,同時接收監(jiān)控中心發(fā)送的控制命令。目前的車輛監(jiān)控系統(tǒng)中大多采用GSM通信網(wǎng)以短信息的方式進行通信,不能充分滿足實際應(yīng)用的需要。而GPRS(General Packet Radio Service)通用分組無線業(yè)務(wù)是一種以分組交換技術(shù)為基礎(chǔ),采用IP數(shù)據(jù)網(wǎng)絡(luò)協(xié)議的高效數(shù)據(jù)傳輸網(wǎng)絡(luò),可以彌補GSM網(wǎng)絡(luò)的不足。車載GPS定位終端不僅在智能交通系統(tǒng)中擔(dān)負主要作用,同時還可以提供防盜防搶劫報警,公交車報站,物流車輛調(diào)度等多種服務(wù)。
2 車載GPS定位系統(tǒng)的硬件設(shè)計
本部分介紹車載GPS定位系統(tǒng)硬件系統(tǒng)的設(shè)計方案,著重闡述嵌入式處理器AT91RM9200硬件系統(tǒng)的設(shè)計,GPS衛(wèi)星數(shù)據(jù)采集模塊的接口設(shè)計和GPRS通信模塊接口的設(shè)計。如圖1所示,車載GPS定位系統(tǒng)的硬件結(jié)構(gòu)主要由GPRS接收模塊、GPS接收模塊、SDRAM,FLASH存儲器模塊、串口通信模塊,以及外圍模塊組成。
圖1 車載GPS定位系統(tǒng)的硬件結(jié)構(gòu)組成
2.1 GPRS接收模塊電路設(shè)計
GPRS模塊負責(zé)主電路板與監(jiān)控中心的通信任務(wù),它將處理好了的GPS數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送給監(jiān)控中心,并接收監(jiān)控中心發(fā)送給主電路板的控制命令,該模塊直接影響到這個車載終端的實際使用效果。
本系統(tǒng)選用的GPRS模塊是由索尼愛立信公司推出的GR47模塊,該模塊的主要特點是內(nèi)置TCP/TP協(xié)議棧。它允許一個TCP/UDP傳輸機制以最小的前期配置和操作來被使用。其內(nèi)嵌控制器方便集成客戶的應(yīng)用,減少外部控制器的需求。GR47支持雙頻GSM寬帶900MHz/1800MHz,可通過SMS短消息服務(wù)、CSD、HSCSD或GPRS來發(fā)送或接收資料,并可處理語音及傳真。其TCP/IP協(xié)議棧也可通過AT命令或嵌入式應(yīng)用進行訪問。由于GR47模塊內(nèi)嵌了TCP/IP協(xié)議棧,所以可以直接用AT命令對其進行控制,使用起來非常方便。圖2描述了GPRS通信模塊的串口電路設(shè)計。
圖2 GPRS模塊的串口電路設(shè)計圖
2.2 GPRS模塊的SIM卡電路設(shè)計
GR47模塊帶有一個SIM卡的接口,遵從IS07816 IC卡標(biāo)準(zhǔn)。通過電線與外部擴展的SIM卡盒相連。圖3描述了GPRS模塊的SIM卡電路設(shè)計。
圖3 GPRS模塊SIM卡電路設(shè)計圖
2.3 GPS接收模塊電路設(shè)計
GPS模塊負責(zé)接收GPS定位衛(wèi)星發(fā)送的導(dǎo)航電文,他通過串行接口與主電路板相連接,是實現(xiàn)接收GPS數(shù)據(jù)的關(guān)鍵。
對于GPS模塊的選擇而言,通常從技術(shù)參數(shù),支持的通信協(xié)議,控制接口和成本幾個方面考慮。目前商用的GPS模塊,大都支持12通道,采用C/A編碼,NMEA0183協(xié)議,通過RS232接口控制。本系統(tǒng)選用的GPS衛(wèi)星數(shù)據(jù)采集模塊為上海麗浪公司出品的GPS-R25型GPS模塊,具有以下特性:12通道C/A碼接收控制,可同時監(jiān)控12路衛(wèi)星信號;內(nèi)部集成16位ARM7TDMI處理內(nèi)核;電池會在正常的使用過程中充電;GPS衛(wèi)星采集模塊的誤差范圍為1~5米;2種接口連接且用戶可自選波特率;達到工業(yè)級的標(biāo)準(zhǔn)并且防水。并且該模塊即可以通過RS-232的串口與主電路板相連接,也可以通過PS2接口與主電路板相連接,使用起來非常方便。
2.4 FLASH存儲器電路設(shè)計
Flash存儲器是一種可在系統(tǒng)電擦寫,掉電后信息不丟失的存儲器。作為一種非易失性存儲器,F(xiàn)lash在系統(tǒng)中通常用于存放程序代碼、常量表以及一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。系統(tǒng)采用了一片K9F5608U0A的NAND型Flash,K9F5608U0A是三星公司生產(chǎn)的K9XXXXXU0A系列閃存中的一種,32MB容量,讀寫速度快,數(shù)據(jù)保存時間長以及高達10萬次的擦除寫入壽命等優(yōu)點。該芯片具有一個八位的I/O端口。在CE為低電平時,把WE置低,地址、命令和數(shù)據(jù)都可通過該端口寫入。數(shù)據(jù)在WE的上升沿被鎖存,CLE和ALE分別用來控制對命令和地址的鎖存。同時K9F5608U0A具有較強的糾錯功能,能夠最大限度地保護用戶數(shù)據(jù)。[!--empirenews.page--]
2.5 SDRAM存儲器電路設(shè)計
SDRAM存取速度大大高于Flash存儲器,具有讀/寫的屬性,因此SDRAM在系統(tǒng)中主要用作程序的運行空間,數(shù)據(jù)及堆棧區(qū)。系統(tǒng)啟動時,CPU首先從復(fù)位地址0x0處讀取啟動代碼,在完成系統(tǒng)的初始化后,程序代碼一般應(yīng)調(diào)入SDRAM中運行,以提高系統(tǒng)的運行速度,系統(tǒng)及用戶堆棧、運行數(shù)據(jù)也都放在SDRAM中。在主電路板中用HY57V281620型SDRAM.。系統(tǒng)采用兩片HY57V281620并聯(lián)構(gòu)建32位的SDRAM存儲器系統(tǒng),其中一片為高16位,另一片為低16位,可將兩片HY57V281620作為一個整體配置到任意一個外部存儲器的區(qū)域。SDRAM存儲器電路設(shè)計如圖4所示。
圖4 HY57V281620的連接框圖
3 車載GPS定位系統(tǒng)的軟件設(shè)計
車載GPS系統(tǒng)的應(yīng)用程序在功能上可以分為7個功能模塊,即初始化模塊,控制模塊,GPS數(shù)據(jù)獲取模塊,上行數(shù)據(jù)轉(zhuǎn)換模塊,用戶界面模塊,通信模塊和下行數(shù)據(jù)處理模塊。
初始化模塊主要實現(xiàn)對串口的初始化及把所有的標(biāo)志位置零;控制模塊主要是根據(jù)上位機的命令來執(zhí)行相應(yīng)的操作,比如采集GPS數(shù)據(jù),發(fā)送當(dāng)前行車狀態(tài)等;用戶界面模塊主要功能就是把GPS數(shù)據(jù),狀態(tài)數(shù)據(jù)等在觸摸屏上顯示出來,同時還要可以響應(yīng)觸摸屏上的中斷,以便實現(xiàn)通過觸摸屏操作車載終端的功能。
GPS數(shù)據(jù)獲取模塊的主要功能就是通過與串口相連接的GPS模塊獲取當(dāng)前的GPS信息;在本程序中用的是GPRMC定位語句,將忽略其它信息。提取GPRMC語句的思路是設(shè)置一個數(shù)據(jù)緩沖區(qū),把接收到的GPS數(shù)據(jù)都放入這個緩沖區(qū),當(dāng)緩沖區(qū)滿了的時候就在緩沖區(qū)中查找是否接受到GPRMC定位語句,如果沒有接收到則重新接收GPS數(shù)據(jù)。如果找到了GPRMC定位語句則還要判斷該語句在緩沖區(qū)中的位置離緩沖區(qū)的最大字節(jié)數(shù)是否大于62個字節(jié)。(因為本程序中需要的GPRMC定位語句所包含的字節(jié)數(shù)為62)
上行數(shù)據(jù)轉(zhuǎn)換模塊的主要功能是把接收到的GPS數(shù)據(jù)或是相關(guān)的狀態(tài)信息轉(zhuǎn)換成約定好的數(shù)據(jù)格式以便同監(jiān)控中心的通信。該模塊會判斷需要轉(zhuǎn)換的數(shù)據(jù)是GPS數(shù)據(jù)信息還是相關(guān)狀態(tài)信息或是兩者都有,然后選擇相應(yīng)的轉(zhuǎn)換程序。由上面的介紹可以知道接受到的GPS數(shù)據(jù)都是順序存放在數(shù)據(jù)緩沖區(qū)當(dāng)中的,需要什么數(shù)據(jù)就到緩沖區(qū)中相應(yīng)的位置提取就可以了。數(shù)據(jù)都是以字符形式存放的,所以實際要用的時候必須先轉(zhuǎn)換成整形數(shù)據(jù)。下行數(shù)據(jù)轉(zhuǎn)換模塊的功能與上行數(shù)據(jù)轉(zhuǎn)化模塊的功能相反,它將監(jiān)控中心發(fā)送的命令進行識別后發(fā)送給車載終端,并送用戶界面模塊顯示。
通信模塊的主要任務(wù)是完成車載終端與監(jiān)控中心的通信,它既可以通過GPRS網(wǎng)絡(luò)實現(xiàn)與監(jiān)控中心的無線通信,也可以通過網(wǎng)口與筆記本電腦連接進行通信。如果車載終端與上位機的距離隔的很遠可以直接通過GPRS網(wǎng)絡(luò)與監(jiān)控中心進行連接,而且通過GR47模塊連接GPRS網(wǎng)絡(luò)與監(jiān)控中心連接也非常方便,只用往GPRS模塊發(fā)送幾條AT命令就可以了,但是監(jiān)控中心必須有能上因特網(wǎng)的固定IP。啟動車載終端的同時GR47模塊也會被啟動,這是模塊會自動連接上GPRS網(wǎng)絡(luò)進入命令模式。撥號成功以后就連接上了GPRS網(wǎng)絡(luò)了,然后對于GR47模塊連接的串口進行讀寫操作就可以實現(xiàn)與監(jiān)控中心的無線通信了。通過網(wǎng)口進行通信則比較簡單,直接采用Linux下的socket編程就可以實現(xiàn)。
根據(jù)以上各個模塊的功能的定義,軟件部分主流程圖如圖5所示:
圖5 主程序流程圖
4 總結(jié)
本文的創(chuàng)新點是采用GPRS通信網(wǎng)絡(luò)進行無線通信代替了傳統(tǒng)的GSM短信息通信模式,不僅節(jié)約了整個系統(tǒng)的運行成本,而且提高了數(shù)據(jù)的傳輸速度和可靠性;同時選用了工業(yè)級的帶有內(nèi)存管理功能的ARM9芯片AT91RM9200作為處理器,并圍繞它進行電路設(shè)計,使得該終端有很高的可靠性,并且能夠適應(yīng)比較惡劣的環(huán)境,因為選用了帶內(nèi)存管理功能的ARM9芯片,所以可以移植Linux操作系統(tǒng),該操作系統(tǒng)自帶的資源十分豐富,使得應(yīng)用程序的功能更加強大,同時也增加了軟件的擴展性;最后本車載定位終端融合了GPS全球定位技術(shù),GPRS無線通信技術(shù),ARM嵌入式技術(shù)以及嵌入式Linux系統(tǒng)的移植與編程,屬于一個交叉學(xué)科的工程項目。自該系統(tǒng)投入市場半年以來,創(chuàng)造了50余萬元的經(jīng)濟效益。