引言 面對龐大的汽車(chē)市場(chǎng)以及隨著(zhù)全國各省市高速公路路網(wǎng)的建設與完善,對交通管理信息化的要求越來(lái)越高,gps車(chē)載系統的潛力不可估量,其發(fā)展前景比較樂(lè )觀(guān)。日本和西方各大公司都參與了這場(chǎng)高科技的角逐。各發(fā)達國家的很多生產(chǎn)商都加快了車(chē)載導航系統的研究步伐。隨著(zhù)嵌入式技術(shù)的發(fā)展,很多資源不足的瓶頸問(wèn)題都很大程度上得到了解決。車(chē)載定位系統由車(chē)載定位終端、無(wú)線(xiàn)通信鏈路和車(chē)載監控管理系統三部分組成。其主要功能是將移動(dòng)目標的動(dòng)態(tài)位置(經(jīng)度和緯度)、時(shí)間和海拔等對用戶(hù)有用的信息,通過(guò)無(wú)線(xiàn)通信鏈路傳送到監控中心,而后在電子地圖上對移動(dòng)目標的運動(dòng)軌跡進(jìn)行顯示,并對車(chē)輛的準確位置、速度、運動(dòng)方向和車(chē)輛狀態(tài)等用戶(hù)感興趣的參數進(jìn)行監控和查詢(xún),為調度管理提供可視化依據,提高車(chē)輛運行效率,還能起到節能減排的作用。也在一定程度上起到保護地球的作用。本文將gps定位技術(shù)應用于氣車(chē),與現有定位技術(shù)組合起來(lái)共同完成定位監控任務(wù),將大大提高定位準確性及安全性,同時(shí)能夠降低資金投入,具有很廣闊的發(fā)展空間。 系統總體設計 系統硬件的結構設計 車(chē)輛監控系統由車(chē)載端(包括arm工控機、觸摸屏、gps接收模塊和電源等)、通信系統(gprs)、監控中心三大部分組成。車(chē)載端的gps模塊實(shí)時(shí)接收全球定位衛星的位置、時(shí)間等數據,一方面發(fā)送給車(chē)內的arm微型工控機,得到車(chē)輛的當前位置并且在電子地圖上顯示:另一方面,數據將通過(guò)gprs終端模塊發(fā)送到遠程監控中心服務(wù)器,使得監控中心能實(shí)時(shí)得到所有車(chē)輛的位置信息,給車(chē)輛的安全監控以及遠程凋度提供了基礎。通過(guò)spi接口與can總線(xiàn)相連,利用can總線(xiàn)掛接傳感器,檢測汽車(chē)主要技術(shù)參數,can總線(xiàn)模塊可以使本系統與其他車(chē)載模塊的連接,完成收集車(chē)輛的狀態(tài)信息以及進(jìn)一步控制。can總線(xiàn)模塊主要包括can總線(xiàn)的控制器和收發(fā)器,在這里分別選用的是microchip公司的mcp2510和飛利浦公司的pca82c250。其中,can總線(xiàn)控制器mcp2510實(shí)現了can總線(xiàn)的協(xié)議,can總線(xiàn)收發(fā)器pca82c250提供協(xié)議控制器和物理傳輸線(xiàn)路之間的接口。由于can總線(xiàn)控制器mcp2510具有spi接口,因此,系統中將其與s3c2440的spi0相連。故障檢測模塊主要是對汽車(chē)的主要技術(shù)參數進(jìn)行檢測,并顯示到lcd顯示器上,如果檢測到故障,會(huì )發(fā)出報警信號。本文主要檢測的技術(shù)參數包括燃油消耗量、制動(dòng)力、轉向力、發(fā)動(dòng)機溫度、冷卻液溫度、前照燈,以及車(chē)內噪聲和尾氣等方面。該模塊主要是通過(guò)各種傳感器把各種信號轉換為電信號,再利用信號處理電路把電信號進(jìn)行相應的處理,使其能與can總線(xiàn)模塊進(jìn)行數據傳輸。車(chē)載端的硬件組成框圖,如圖1所示。 ![]() 圖1 車(chē)載端的硬件組成框圖 應用程序總結構應用程序的總體流程圖如圖2所示。由于gprs模塊和gps模塊都是通過(guò)串口和監控終端連接的,程序系統初始化的工作就是對串口進(jìn)行初始化,使串口按gprs及gps模塊的要求工作。之后創(chuàng )建共享內存是為gprs通信子進(jìn)程與gps子進(jìn)程之間的通信做準備。gps子進(jìn)程負責從串口接收gps信息并把這些信息寫(xiě)入共享內存內,gprs子進(jìn)程則將共享內存內的gps信息通過(guò)網(wǎng)絡(luò )送到遠方的監控服務(wù)器。 ![]() 為了使arm上的應用程序能夠處理gps接收到的導航信號,要編寫(xiě)gps的驅動(dòng)程序。 這個(gè)gps驅動(dòng)程序也是屬于字符型驅動(dòng)程序,首先了解嵌入式開(kāi)發(fā)中應用程序、庫、內核、驅動(dòng)程序的關(guān)系:應用程序調用應用程序庫函數完成功能;應用程序以文件形式訪(fǎng)問(wèn)各種資源;應用程序函數庫的一部分直接完成功能,一部分函數通過(guò)系統調用由內核完成,內核處理系統調用,調用設備驅動(dòng)程序,設備驅動(dòng)程序直接與硬件通信。如圖3所示 ![]() open= s3c2440_gps_open,.release= s3c2440_gps_release=s3c2440_gps_release, .ioctl=s3c2440_gps_ioctl};繼續向下寫(xiě),gps_class=class_create(this_module,device_name);在/sysfs目錄下創(chuàng )建這個(gè)設備的類(lèi)。再是注冊這個(gè)設備的類(lèi),如device_create(gps_class,null,mkdev(gps_major,0),null,device_name)。 gps應用程序即定位功能的實(shí)現 要實(shí)現gps的定位必須先要對gps數據包進(jìn)行解析,gps上電后,每隔一定的時(shí)間就會(huì )返回一定格式的數據,數據格式為$信息類(lèi)型,每行開(kāi)頭的字符都是$,接著(zhù)是信息類(lèi)型,后面的是數據,以逗號分開(kāi),完整的數據類(lèi)型如下:$gprmc,080655.00,a,4546.40891,n,12639.65641,e,1.045,328.42,170809,,,a*60信息類(lèi)型為:gpgsv:可見(jiàn)衛星信息、gpgll:地理定位信息、gprmc:推薦最小定位信息、gpvtg:地面速度信息、gpgga:gps定位信息、gpgsa:當前衛星信息、這里我只解析gprmc和gpgga的信息。一.gprmc數據詳解:$gprmc,《1》,《2》,《3》,《4》,《5》,《6》,《7》,《8》,《9》,《10》,《11》,《12》*hh《1》utc時(shí)間,hhmmss(時(shí)分秒)格式《2》定位狀態(tài),a=有效定位,v=無(wú)效定位《3》緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)《4》緯度半球n(北半球)或s(南半球)《5》經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)《6》經(jīng)度半球e(東經(jīng))或w(西經(jīng))……。 最后編寫(xiě)代碼,把經(jīng)/緯度解析出來(lái),對于gpgga類(lèi)型數據,也是一樣,先了解每一位的含義,再寫(xiě)代碼把海平面高度和大地水平面高度等數據解析并顯示出來(lái)。 gprs通信模塊實(shí)現 gprs模塊是借助gprs無(wú)線(xiàn)網(wǎng)絡(luò )實(shí)現數據的無(wú)線(xiàn)傳輸,從而在不同的車(chē)輛或車(chē)輛與控制中心之間架起溝通的橋梁,所以軟件的功能主要是建立無(wú)線(xiàn)連接,按照gprs通信協(xié)議傳輸數據。gprs模塊的通信主要是通過(guò)串口驅動(dòng)實(shí)現,在嵌入式linux內核中已經(jīng)提供了對串設備的支持,因此在配置內核編譯選項時(shí),只需要選中對串口設備的支持,就可以實(shí)現對gprs模塊的串口數據通信功能。為了實(shí)現與internet的通信,還需要在配置內核編譯選項時(shí)選中ppp和tcp/ip協(xié)議。這樣一旦網(wǎng)絡(luò )連接建立,就可以使用應用程序來(lái)實(shí)現網(wǎng)絡(luò )數據的通信。本系統數據鏈路層采用ppp協(xié)議,它是一種面向字符的協(xié)議,是為在兩個(gè)對等實(shí)體間傳輸數據包連接而設計的,使用可擴展的鏈路控制協(xié)議lcp來(lái)建立、配置和測試數據鏈路。用網(wǎng)絡(luò )控制協(xié)議族ncp來(lái)建立和配置不同的網(wǎng)絡(luò )層協(xié)議,并且允許采用多種網(wǎng)絡(luò )層協(xié)議。一個(gè)ppp會(huì )話(huà)分四個(gè)步驟:建立連接、連接質(zhì)量控制、網(wǎng)絡(luò )層協(xié)議配置和連接終止。 嵌入式linux系統內核源自于linux內核,并保留了對tcp/ip以及其他的網(wǎng)絡(luò )協(xié)議的支持。在嵌入式linux系統上編寫(xiě)網(wǎng)絡(luò )應用程序與在linux上編寫(xiě)網(wǎng)絡(luò )應用程序沒(méi)什么大區別,通常只需要做很小的修改就可以移植到嵌入式linux系統上。至此,gprs模塊完整地集成到嵌入式終端中。 ![]() can總線(xiàn)驅動(dòng)程序要完成的報文發(fā)送、接收等任務(wù)都是圍繞can總線(xiàn)控制器展開(kāi)的,因此驅動(dòng)程序主要是對控制器mcp2510內部寄存器進(jìn)行操作。can總線(xiàn)控制器mcp2510的初始化按照以下步驟進(jìn)行:(1)軟件復位,進(jìn)入配置模式;(2)設置can總線(xiàn)波特率;(3)關(guān)閉中斷,設置id過(guò)濾器;(4)切換mcp2510到正常狀態(tài);(5)清空接收和發(fā)送緩沖區;(6)開(kāi)啟接收緩沖區,開(kāi)啟中斷。 實(shí)驗結果 本實(shí)驗結果能達到基本的要求,參見(jiàn)圖4,圖的右上角是經(jīng)/緯度。本系統還不完善,還有很多實(shí)用的功能有待進(jìn)一步開(kāi)發(fā)。 結論 該系統能夠通過(guò)gps和gprs實(shí)現車(chē)輛定位以及車(chē)輛與控制中心之間的數據通信,還能夠通過(guò)can總線(xiàn)檢測汽車(chē)主要技術(shù)參數,為交通道路的智能管理以及汽車(chē)的安全駕駛提供了可靠保 |