基于A(yíng)RM9的智能車(chē)載系統設計
引 言
本文引用地址:http://dyxdggzs.com/article/272745.htm隨著(zhù)社會(huì )經(jīng)濟的發(fā)展,汽車(chē)已成為人們工作、生活中不可缺少的一種交通工具。在當前的汽車(chē)產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,開(kāi)發(fā)了各種各樣的電子控制系統。本文設計一種基于ARM9 S3C2410A的智能車(chē)載系統,它能夠通過(guò)GPS全球定位系統和GPRS無(wú)線(xiàn)通信技術(shù),實(shí)現車(chē)輛定位以及車(chē)輛與控制中心之間的數據通信,構建CAN總線(xiàn)控制模塊用于采集車(chē)輛主要部分的工作狀態(tài),實(shí)時(shí)監控汽車(chē)的主要技術(shù)參數,并通過(guò)LCD模塊顯示車(chē)載信息的綜合信息。
1 智能車(chē)載系統的功能
車(chē)載智能導航終端應具有如下功能:
車(chē)輛定位 它指通過(guò)GPS全球定位系統獲取車(chē)輛的當前所處位置,包括經(jīng)度、緯度、運動(dòng)速度、標準時(shí)間以及海拔高度等信息;
網(wǎng)絡(luò )通信 它采用GPRS無(wú)線(xiàn)通信技術(shù),與監控中心保持聯(lián)系,實(shí)時(shí)獲取道路交通狀況,為交通道路的智能管理提供基礎;
故障檢測 它通過(guò)CAN總線(xiàn)實(shí)時(shí)檢測汽車(chē)的主要技術(shù)參數;
信息顯示 它通過(guò)LCD液晶屏顯示車(chē)輛位置、調度信息以及檢測到的汽車(chē)技術(shù)參數。
智能車(chē)載系統可根據用戶(hù)需要實(shí)現其他功能,例如通過(guò)GPRS自動(dòng)報警增加自動(dòng)報警功能,擴展音頻設備和IDE接口設備以增加娛樂(lè )功能,通過(guò)USB接口連接圖像采集設備,對車(chē)內外進(jìn)行視頻監控等功能。
2 智能車(chē)載硬件系統設計
本系統以S3C2410A為主控模塊,擴展了64 MBNand Flash,用于存放啟動(dòng)代碼和嵌入式Linux操作系統等;64 MB SDRAM用作系統運行時(shí)的內存;LCD提供了更好的人機交互界面,并通過(guò)串口與GPS模塊相連,通過(guò)UART異步串口與GPRS模塊相連,通過(guò)SPI接口與CAN總線(xiàn)相連,利用CAN總線(xiàn)掛接傳感器,檢測汽車(chē)主要技術(shù)參數,系統框圖如圖1所示。

2.1 主控模塊
S3C2410A是韓國三星公司面向手持設備以及高信價(jià)比、低功耗和低價(jià)格而設計的一款基于ARM920T內核的16/32位RISC嵌入式微處理器。它采用5級流水線(xiàn),資源豐富;帶有獨立的16 KB的指令Cache和16 KB的數據Cache,64 MB SDRAM,64 MB NandFLAsH,LCD控制器,RAM控制器,NAND內存控制器,3路UART,4路DMA,4路帶PWM的定時(shí)器,并行I/O口,8路10位ADC,Touch Screen接口,I2C接口,I2S接口,2個(gè)USB接口控制器,2路SPI,其工作頻率最高達到203 MHz。
2.2 GPS模塊
GPS模塊主要完成GPS定位信息的接收和處理。根據設計性能的要求和節約系統成本的考慮,選用的就是GARMIN公司的GPS25-LVC接收機,其內置了GPS25OEM板。該接收機與主控模塊的接口方式采用RS 232兼容TTL的串行口方式,因此設計中將其與S3C2410A的串口1相連。GPS-25LVC與S3C2410A之間信號線(xiàn)僅需要連接GPS25-LVC的TXD1與S3C2410A的TXD1。另外,還要將GPS25-LVC的地線(xiàn)和電源線(xiàn)連接到主控板的地線(xiàn)和5 V電源上。
2.3 GPRS模塊
GPRS模塊主要完成車(chē)輛與車(chē)輛、車(chē)輛與控制中心的通信。在本系統中,GPRS模塊選用MC35。MC35的數據輸入/輸出接口實(shí)際上是一個(gè)UART,它可以與S3C2410中的UART接口直接相連。
2.4 CAN總線(xiàn)模塊
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接口,因此,系統中將其與S3C2410A的SPI0相連。
2.5 故障檢測模塊
故障檢測模塊主要是對汽車(chē)的主要技術(shù)參數進(jìn)行檢測,并顯示到LCD顯示器上,如果檢測到故障,會(huì )發(fā)出報警信號。本文主要檢測的技術(shù)參數包括燃油消耗量、制動(dòng)力、轉向力、發(fā)動(dòng)機溫度、冷卻液溫度、前照燈,以及車(chē)內噪聲和尾氣等方面。該模塊主要是通過(guò)各種傳感器把各種信號轉換為電信號,再利用信號處理電路把電信號進(jìn)行相應的處理,使其能與CAN總線(xiàn)模塊進(jìn)行數據傳輸。
2.6 LCD模塊
LCD模塊用以實(shí)現信息的顯示,提供一個(gè)良好的人機交互界面。本系統主控模塊的處理器S3C2410內置了LCD控制器,支持STN-LCD和TFT-LCD。本文選用夏普公司的TFT-LCD模塊LQ080V3DG01,該模塊具有640×480的分辨率,18位的顏色深度,可與S3C2410A的LCD接口直接相連。
3 智能車(chē)載系統軟件設計
由于Linux具有源代碼公開(kāi)、剪裁方便、移植方便等諸多優(yōu)點(diǎn),所以本系統選擇嵌入式Linux作為軟件運行平臺。嵌入式Linux是將Linux內核移植到S3C2410A平臺上。嵌入式Linux操作系統不僅可使軟件的開(kāi)發(fā)更加靈活,也能使整個(gè)系統的可靠性得到提高。該軟件設計的具體流程如圖2所示。

交叉編譯環(huán)境是一個(gè)由編譯器、連接器和解釋器組成的綜合開(kāi)發(fā)環(huán)境。BootLoader是系統加電啟動(dòng)運行的第一段軟件代碼,類(lèi)似于PC機的BIOS加上硬盤(pán)MBR中的引導程序。它可以初始化硬件設備,建立內存空間的映射圖,從而將系統的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為最終調用操作系統內核或用戶(hù)應用程序準備好合適的環(huán)境。Linux操作系統的移植是將Linux內核經(jīng)過(guò)重新的剪裁、編譯后移入到S3C2410A上。下面主要闡述各模塊驅動(dòng)和應用程序的編寫(xiě)。
3.1 GPS定位功能實(shí)現
GPS模塊軟件設計的基本思想如下:首先接收完整的NMEA0183語(yǔ)句,然后提取相關(guān)的數據(時(shí)間、經(jīng)緯度、速度),再將這些數據送去顯示或者發(fā)送出去,并且可以保存,以便日后查看。
由于GPS模塊是通過(guò)串行口1與S3C2410A進(jìn)行通信的,因此本文設計了Linux系統下相應的串行口通信程序。串口程序設計具體步驟如下:
(1)串行口1的初始化:設置串行口1的通信方式為8位數據位,1位停止位,無(wú)奇偶校驗位。波特率為4 800 b/s。
(2)一幀一幀接收ASCII碼字符信息。
(3)對每一幀ASCII碼字符信息進(jìn)行數據處理。
在數據處理過(guò)程中,針對需要的定位信息要求,設計了如下的串行通信思想:
?、僖浴?GPRMC”為過(guò)濾條件,接收定位語(yǔ)句。
?、谠凇?GPRMc”之后的59個(gè)字符為有用的信息,所以用“59”作為判斷定位語(yǔ)句完整的依據。
?、墼跀祿邮盏倪^(guò)程中往往會(huì )有兩種情況,一種是每幀會(huì )得到一個(gè)以“$GPRMC”開(kāi)頭的完整語(yǔ)句,另一種是上一幀的后半部分在加下一幀的前一部分共同組成的完整定位語(yǔ)句。
3.2 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模塊完整地集成到嵌入式終端中。
3.3 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)啟中斷。
4 結 語(yǔ)
該系統不僅能夠通過(guò)GPS和GPRs實(shí)現車(chē)輛定位以及車(chē)輛與控制中心之間的數據通信,還能夠通過(guò)CAN總線(xiàn)檢測汽車(chē)主要技術(shù)參數,為交通道路的智能管理以及汽車(chē)的安全駕駛提供了可靠保障。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
linux相關(guān)文章:linux教程
評論