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