車(chē)載導航系統終端的研究

發(fā)布時(shí)間:2012-11-2 13:42    發(fā)布者:1770309616
關(guān)鍵詞: 車(chē)載導航系統 , 終端
引言
  面對龐大的汽車(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ù)器。
gps驅動(dòng)程序的編寫(xiě)
  為了使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所示
  一般linux的設備驅動(dòng)有三種類(lèi)型,字符設備、塊設備、網(wǎng)絡(luò )設備。而我要講的gps模塊的驅動(dòng)程序是屬于字符設備。對于字符設備發(fā)出讀/寫(xiě)請求時(shí),實(shí)際的硬件i/o操作一般緊接著(zhù)發(fā)生。在設備管理中,除了設備類(lèi)型外,內核還需要一對被稱(chēng)為主從設備號的參數,才能唯一標識一個(gè)設備。主設備號相同的設備使用相同的驅動(dòng)程序,從設備號用于區分具體設備的實(shí)例。用命令cat/proc/devices可以查看系統中所有設備對應的主設備號。所以在gps驅動(dòng)程序的開(kāi)始定義設備名稱(chēng)#define device_name “s3c2440-gps”再定義主設備號,我是讓系統自動(dòng)分配的,以防主設備號已被占用,static int gps_major=0;驅動(dòng)程序以一個(gè)模塊初始化函數作為入口,如module_init(s3c2440_gps_init)向內核聲明當前模塊的初始化函數;再寫(xiě)gps的初始化函數:static int __init s3c2440_gps_init(void)函數,在這個(gè)函數里面注冊一個(gè)設備,返回主設備號,可以寫(xiě)成:gps_major=register_chrdev(0,device _name,&s3c2440_gps_fops),s3c2440_gps_fops是定義了的結構體,規定了驅動(dòng)程序向應用程序提供的操作接口。如:static struct file_operations s3c2440_gps _fops ={.owner= this_module,。
  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模塊實(shí)現
  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ē)的安全駕駛提供了可靠保
本文地址:http://selenalain.com/thread-100777-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页