基于嵌入式系統(tǒng)的汽車(chē)行駛記錄儀的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞: ARM7;LPC2292;UC/OS-Ⅱ;操作系統(tǒng);汽車(chē)行駛記錄儀;CAN總線
引言
汽車(chē)行駛記錄儀是能夠記錄和再現(xiàn)汽車(chē)行駛狀態(tài)的一種數(shù)字式電子記錄裝置,它可以全程記錄汽車(chē)的行駛數(shù)據(jù),并通過(guò)對(duì)所記錄的行駛信息數(shù)據(jù)的分析,對(duì)車(chē)輛的行駛狀況予以精確的掌控。汽車(chē)行駛記錄儀可有效預(yù)防駕駛員的違章駕駛,降低車(chē)輛的交通事故。早在20世紀(jì)70年代,歐共體就開(kāi)始全面強(qiáng)制使用機(jī)電模擬式汽車(chē)行駛記錄儀并使得交通事故率降低了30%-50%。90年代以來(lái),美國(guó)、日本、馬來(lái)西亞、新加坡等國(guó)家也紛紛制定汽車(chē)行駛記錄儀的法規(guī)。
我國(guó)從20世紀(jì)80年代開(kāi)始進(jìn)行汽車(chē)行駛記錄儀的研制。2003年4月15日,由公安部有關(guān)部門(mén)起草、國(guó)家標(biāo)準(zhǔn)化管理委員會(huì)、國(guó)家經(jīng)貿(mào)委審定通過(guò),國(guó)家質(zhì)量監(jiān)督檢查檢疫總局發(fā)布了汽車(chē)行駛記錄儀的國(guó)家標(biāo)準(zhǔn)(GB/T19056-2003),于2003年9月1日起正式實(shí)施。實(shí)施對(duì)象包括所有的在用車(chē)和新車(chē),將逐步由點(diǎn)到面,分批分時(shí)的展開(kāi)。
1汽車(chē)行駛記錄儀的功能
汽車(chē)行駛記錄儀包括汽車(chē)行駛記錄儀的主機(jī)和計(jì)算機(jī)端的數(shù)據(jù)分析軟件這兩部分組成。該課題中重點(diǎn)設(shè)計(jì)汽車(chē)行駛記錄儀的主機(jī)部分。
參照汽車(chē)行駛記錄儀的國(guó)家標(biāo)準(zhǔn)(GB/T19056-2003)的要求,本課題所設(shè)計(jì)的汽車(chē)行駛記錄儀主要實(shí)現(xiàn)如下功能:自檢功能;實(shí)時(shí)時(shí)間、日期及駕駛時(shí)間的采集、記錄、存儲(chǔ)功能;車(chē)輛行駛速度的測(cè)量、記錄、存儲(chǔ)功能;車(chē)輛行駛里程的測(cè)量、記錄、存儲(chǔ)功能;駕駛員身份記錄功能;鍵盤(pán)操作功能;數(shù)據(jù)顯示;數(shù)據(jù)打印輸出功能;數(shù)據(jù)通信功能。在數(shù)據(jù)通信接口部分除了國(guó)家標(biāo)準(zhǔn)所規(guī)定的USB標(biāo)準(zhǔn)接口和標(biāo)準(zhǔn)RS232CD型9針接口的這兩種通信方式外,該課題中還增加了CAN總線接口功能。
2系統(tǒng)的硬件設(shè)計(jì)
該課題所設(shè)計(jì)的汽車(chē)行駛記錄儀選用帶有ARM7TDMI-S內(nèi)核的LPC2292為微控制器,操作系統(tǒng)采用UC/OS-Ⅱ嵌入式操作系統(tǒng)。該系統(tǒng)可實(shí)現(xiàn)對(duì)車(chē)速信號(hào)、開(kāi)關(guān)量信號(hào)以及模擬量信號(hào)的采集、處理以及數(shù)據(jù)的實(shí)時(shí)存儲(chǔ)和顯示,通過(guò)串口、USB接口可以實(shí)現(xiàn)與PC機(jī)之間的數(shù)據(jù)通信,通過(guò)CAN總線接口可實(shí)現(xiàn)與汽車(chē)上的CAN節(jié)點(diǎn)間的數(shù)據(jù)通信。該系統(tǒng)的外圍接口模塊有電源模塊、復(fù)位電路模塊、信號(hào)采集模塊、鍵盤(pán)操作模塊、存儲(chǔ)器模塊、時(shí)鐘模塊、顯示模塊、JTAG調(diào)試接口以及通信接口模塊,系統(tǒng)的組成框圖如圖1所示。
圖1 汽車(chē)行駛記錄儀的組成框圖
2.1 微控制器
LPC2292是PHILIPS公司開(kāi)發(fā)的基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的32 位 ARM7TDMI-S CPU 的微控制器,并帶有256kB嵌入的高速 Flash 存儲(chǔ)器。128 位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32 位代碼能夠在最大時(shí)鐘速率下運(yùn)行。該控制器有兩路CAN通道和10路A/D轉(zhuǎn)換通道,并帶有外部存儲(chǔ)器接口,可方便的進(jìn)行外部存儲(chǔ)器的擴(kuò)展。
2.2 電源模塊
由于車(chē)載電源不穩(wěn)定,首先要對(duì)車(chē)內(nèi)的12v電源進(jìn)行穩(wěn)壓,然后通過(guò)線性穩(wěn)壓芯片L7805把電壓轉(zhuǎn)換為5V。由于微控制器LPC2292的供電電壓為3.3v和1.8v,故還需要通過(guò)低壓差(LDO)穩(wěn)壓器SPX117M3-3.3和SPX117M3-1.8把5v分別轉(zhuǎn)換為3.3v、1.8v。
2.3 信號(hào)采集模塊
信號(hào)采集模塊需要采集的信號(hào)有1路車(chē)速信號(hào)、15路開(kāi)關(guān)量信號(hào)以及2路模擬量信號(hào)。
通過(guò)霍爾式車(chē)速傳感器輸出汽車(chē)的車(chē)速信號(hào),由于傳感器輸出的信號(hào)不是標(biāo)準(zhǔn)的脈沖信號(hào),故需要對(duì)該車(chē)速信號(hào)進(jìn)行整形處理。車(chē)速信號(hào)先通過(guò)運(yùn)算放大器OP2340進(jìn)行信號(hào)的放大,然后通過(guò)施密特觸發(fā)器74HC14把車(chē)速信號(hào)整形成脈沖信號(hào),然后把該脈沖信號(hào)與微處理器的P0.11 CAP1.1引腳相連。通過(guò)定時(shí)器的脈沖捕獲功能,可測(cè)量出脈沖信號(hào)的脈寬,經(jīng)過(guò)運(yùn)算可獲得汽車(chē)的車(chē)速。通過(guò)對(duì)脈沖信號(hào)的計(jì)數(shù),可得到汽車(chē)的里程。
開(kāi)關(guān)信號(hào)分別為:前照燈遠(yuǎn)光、前照燈近光、左轉(zhuǎn)向開(kāi)關(guān)、右轉(zhuǎn)向開(kāi)關(guān)、尾燈、倒車(chē)燈、汽車(chē)?yán)乳_(kāi)關(guān)、刮水器開(kāi)關(guān)、點(diǎn)火開(kāi)關(guān)、制動(dòng)開(kāi)關(guān)、中央控制門(mén)鎖、車(chē)門(mén)開(kāi)關(guān)(駕駛員側(cè)、前座乘客側(cè)、后座左側(cè)、后座右側(cè))。這15路開(kāi)關(guān)量信號(hào)先經(jīng)過(guò)TLP521光耦隔離后,再經(jīng)過(guò)16路開(kāi)關(guān)量信號(hào)檢測(cè)芯片CD4067進(jìn)行信號(hào)通道的選通,輸出信號(hào)與LPC2292的P0.8 TXD1引腳相連。通過(guò)CD4067的 4個(gè)輸入端依次進(jìn)行這15路開(kāi)關(guān)信號(hào)的通道選擇,然后分別讀取P0.8 TXD1引腳的狀態(tài),就可知道各路開(kāi)關(guān)的狀態(tài)。
兩路模擬量信號(hào)分別為冷卻水溫信號(hào)和節(jié)氣門(mén)開(kāi)度信號(hào)。由于冷卻水溫傳感器、節(jié)氣門(mén)傳感器的輸出信號(hào)均為電阻信號(hào),故先把傳感器輸出的電阻信號(hào)轉(zhuǎn)換為電壓信號(hào),經(jīng)過(guò)4路運(yùn)算放大器LM124對(duì)這兩路電壓信號(hào)整形,然后再把這兩路信號(hào)輸出到微處理器的模數(shù)轉(zhuǎn)換引腳P0.27 ANT0、P0.28ANT1進(jìn)行模數(shù)轉(zhuǎn)換。
2.4 存儲(chǔ)器模塊
根據(jù)國(guó)家標(biāo)準(zhǔn)規(guī)定,汽車(chē)行駛記錄儀中的數(shù)據(jù)應(yīng)該包括2個(gè)部分:汽車(chē)實(shí)時(shí)數(shù)據(jù)(存放汽車(chē)發(fā)生事故前后的20 s時(shí)間內(nèi)數(shù)據(jù));汽車(chē)歷史數(shù)據(jù)(存放360 h內(nèi)汽車(chē)和司機(jī)的行駛狀況)。
由于汽車(chē)的實(shí)時(shí)數(shù)據(jù)更新頻繁,要求有較高的可靠性,在該課題中選用NOR型 flash存儲(chǔ)器SST39VF1601作為數(shù)據(jù)存儲(chǔ)器。該存儲(chǔ)器是一個(gè)1Mⅹ16的CMOS多功能Flash MPF器件。SST39LF/VF160 具有高性能的字編程功能,字編程時(shí)間為 14us。該芯片有10,000個(gè)周期的耐用性和大于100年的數(shù)據(jù)保持時(shí)間,可廣泛用于設(shè)計(jì)制造和測(cè)試等應(yīng)用中。它的使用可顯著增強(qiáng)系統(tǒng)的性能和可靠性,降低功耗。
2.5 實(shí)時(shí)時(shí)鐘模塊
汽車(chē)行駛記錄儀需要對(duì)狀態(tài)發(fā)生時(shí)對(duì)應(yīng)的時(shí)間信息作相應(yīng)的記錄,以便后來(lái)的分析使用,所以需要詳細(xì)的時(shí)間信息。LPC2292有內(nèi)置的實(shí)時(shí)時(shí)鐘RTC模塊,但該模塊不支持微控制器的斷電模式,故需要對(duì)汽車(chē)行駛記錄儀設(shè)計(jì)外部實(shí)時(shí)時(shí)鐘模塊。由于行駛記錄儀對(duì)時(shí)間的實(shí)時(shí)性要求較高,并在系統(tǒng)斷電時(shí)鐘仍要運(yùn)行,故選擇具備掉電檢測(cè)功能并且提供附加電池供電的時(shí)鐘芯片DS1302。
DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)的靜態(tài)RAM,可通過(guò)串行接口與微控制器進(jìn)行通信,同步串行通信時(shí)僅需要3個(gè)口線。其實(shí)時(shí)時(shí)鐘/日歷電路可提供秒、分、時(shí)、日、期、月、年的信息,每個(gè)月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整。該芯片工作時(shí)功耗低并支持備用電源供電。
2.6 鍵盤(pán)操作模塊
由于LPC2292的GPIO口的引腳位置不連續(xù),故該模塊采用了ZLG7290來(lái)驅(qū)動(dòng)4ⅹ4行列式小鍵盤(pán)。其中ZLG7290是I2C串行接口器件,能提供鍵盤(pán)中斷信號(hào),可以方便地與處理器相連。在4ⅹ4行列式小鍵盤(pán)上設(shè)置車(chē)速顯示按鍵、里程顯示按鍵、模擬量顯示按鍵、USB數(shù)據(jù)傳輸按鍵、串口數(shù)據(jù)傳輸按鍵、駕駛員信息輸入按鍵、時(shí)間的調(diào)整按鍵、打印輸出按鍵。
2.7 顯示模塊
該系統(tǒng)中顯示模塊采用YLF240128點(diǎn)陣式液晶顯示模塊,被光源顏色為黃綠色,STN液晶屏。它的內(nèi)嵌控制器為T(mén)OSHIBA公司的T6963C,外部顯示存儲(chǔ)器為32KB。該顯示模塊用于顯示汽車(chē)行駛記錄儀的顯示瞬時(shí)車(chē)速、每分鐘最高車(chē)速、每10 分鐘內(nèi)最高車(chē)速、時(shí)間、日期、總里程數(shù)、冷卻水溫度、節(jié)氣門(mén)的位置等行駛數(shù)據(jù)信息。
2.8 通信接口模塊
該課題中所設(shè)計(jì)的通信接口有USB標(biāo)準(zhǔn)接口和標(biāo)準(zhǔn)RS232CD串行接口以及 CAN總線接口。其中USB標(biāo)準(zhǔn)接口和標(biāo)準(zhǔn)RS232CD串行接口可以實(shí)現(xiàn)由PC機(jī)向汽車(chē)行駛記錄儀主機(jī)的數(shù)據(jù)下傳功能和由記錄儀主機(jī)向PC機(jī)的數(shù)據(jù)上載功能。這樣能方便駕駛員的身份識(shí)別以及發(fā)生交通事故時(shí)獲取汽車(chē)的行駛數(shù)據(jù),從而有利于對(duì)交通事故的分析。USB標(biāo)準(zhǔn)接口采用PDIUSBD12器件,該器件完全符合USB1.1的規(guī)范。RS232CD串行接口部分采用SP3232進(jìn)行RS232的電平轉(zhuǎn)換,SP3232是3V電源的RS232轉(zhuǎn)換芯片。
隨著總線技術(shù)的發(fā)展,汽車(chē)上很多電子控制系統(tǒng)都帶有CAN接口。為了方便汽車(chē)行駛記錄儀與汽車(chē)上的帶有CAN接口的電子控制系統(tǒng)之間進(jìn)行通信,故給該系統(tǒng)增加了CAN接口。由于LPC2292帶有兩路CAN通道,故在CAN總線接口電路的設(shè)計(jì)時(shí)只需考慮信號(hào)的隔離和CAN總線收發(fā)器的設(shè)計(jì)。LPC2292的CAN控制器的引出端TD1、P0.25RD1分別經(jīng)過(guò)高速光耦TLP113隔離后與CAN總線收發(fā)器PCA82C250的TXD、RXD相連。該CAN總線接口可與汽車(chē)上的其它CAN節(jié)點(diǎn)進(jìn)行數(shù)據(jù)的通信。
3系統(tǒng)的軟件設(shè)計(jì)
本課題中汽車(chē)行駛記錄儀軟件部分所要實(shí)現(xiàn)的功能是對(duì)汽車(chē)的行駛狀態(tài)數(shù)據(jù)的定時(shí)采集、存儲(chǔ)、與PC機(jī)進(jìn)行串口和USB通信、與汽車(chē)的其它CAN節(jié)點(diǎn)間的通信、LCD顯示、鍵盤(pán)輸入、打印輸出等功能。該系統(tǒng)的主程序流程圖如圖2所示。
圖2 系統(tǒng)的主程序流程圖
汽車(chē)行駛記錄儀有兩種工作狀態(tài)。汽車(chē)運(yùn)行時(shí),記錄當(dāng)前駕駛員的駕駛信息,如速度、里程、駕車(chē)連續(xù)時(shí)間、超速記錄、停車(chē)時(shí)間等,并在汽車(chē)超速時(shí)提供蜂鳴器報(bào)警。汽車(chē)停止時(shí),經(jīng)過(guò)鍵盤(pán)掃描程序選擇采用USB或RS232這兩種通信模式和PC機(jī)進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)既可以上載也可以下傳。
嵌入式操作系統(tǒng)是設(shè)計(jì)完成復(fù)雜功能的硬件和軟件,并使其結(jié)合在一起的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)可提高系統(tǒng)的可靠性,提高產(chǎn)品的開(kāi)發(fā)效率并能縮短開(kāi)發(fā)周期。目前常用的操作系統(tǒng)有Linux,Windows CE,VxWorks,OSE,Nucleus,eCos,UC/OS-Ⅱ等。UC/OS-Ⅱ是一個(gè)源碼公開(kāi)、可移植、可固化、可裁減及占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng)。UC/OS-Ⅱ通過(guò)聯(lián)邦航空局商用航空器認(rèn)證,自1992年問(wèn)世以來(lái),以被應(yīng)用到數(shù)以百計(jì)的產(chǎn)品中。由于UC/OS-Ⅱ的上述優(yōu)點(diǎn),在本課題中采用UC/OS-Ⅱ操作系統(tǒng)。
汽車(chē)行駛記錄儀的軟件編寫(xiě)過(guò)程中采用模塊化程序設(shè)計(jì)的方法,建立不同的任務(wù),對(duì)任務(wù)進(jìn)行優(yōu)先級(jí)的分配,并在任務(wù)之間采用信號(hào)量和消息郵箱這兩種通信機(jī)制。UC/OS-II的文件系統(tǒng)結(jié)構(gòu)包括核心代碼部分、設(shè)置代碼部分、與處理器相關(guān)的移植代碼部分。其中核心代碼與處理器無(wú)關(guān),該部分包括7個(gè)源代碼文件和1個(gè)頭文件,這些文件所實(shí)現(xiàn)的功能分別是內(nèi)核管理、事件管理、消息隊(duì)列管理、存儲(chǔ)管理、消息管理、信號(hào)量處理、任務(wù)調(diào)度和定時(shí)管理。設(shè)置代碼與應(yīng)用有關(guān),該部分包括2個(gè)頭文件,用來(lái)配置事件控制塊的數(shù)目以及是否包含消息管理相關(guān)代碼。移植代碼部分與處理器相關(guān),這部分在系統(tǒng)移植過(guò)程中需要修改,該部分包括OS CPU.H,匯編文件OS CPU A.S和OS CPU.C。把UC/OS-Ⅱ移植到LPC2292微處理器,需要完成的主要工作是對(duì)上述移植代碼部分的這3個(gè)文件的修改。
4結(jié)論
本課題中設(shè)計(jì)了汽車(chē)行駛記錄儀的硬件和軟件部分,該記錄儀系統(tǒng)完成了對(duì)車(chē)速脈沖信號(hào)、開(kāi)關(guān)量信號(hào)、水溫和節(jié)氣門(mén)信號(hào)的實(shí)時(shí)采集、存儲(chǔ)和顯示,實(shí)現(xiàn)了對(duì)駕駛員的身份記錄功能,并成功實(shí)現(xiàn)了USB和串口通信這兩種數(shù)據(jù)傳輸方式,很好的滿(mǎn)足國(guó)家標(biāo)準(zhǔn)(GB/T19056-2003)的要求。
本文作者創(chuàng)新點(diǎn):在汽車(chē)行駛記錄儀系統(tǒng)的設(shè)計(jì)中以帶有ARM7內(nèi)核的芯片LPC2292為微處理器,數(shù)據(jù)通信模塊增加了CAN接口模塊,軟件設(shè)計(jì)方面采用了UC/OS-Ⅱ操作系統(tǒng),并成功實(shí)現(xiàn)了該操作系統(tǒng)在LPC2292上的移植。該系統(tǒng)的開(kāi)發(fā)周期短,易維護(hù)和修改,是汽車(chē)行駛記錄儀發(fā)展的方向。
參考文獻(xiàn):
[1]周立功等編著.ARM嵌入式系統(tǒng)基礎(chǔ)教程.北京航空航天大學(xué)出版社,2005(3).
[2]周立功等編著.ARM嵌入式系統(tǒng)實(shí)驗(yàn)教程.北京航空航天大學(xué)出版社,2005,(2).
[3]鐘瑩.基于ARM的汽車(chē)行駛記錄儀—主機(jī)模塊設(shè)計(jì).浙江大學(xué)碩士學(xué)位論文.2005.
[4] 程慧玲.USB通信接口在汽車(chē)行駛記錄儀中的應(yīng)用.南京理工大學(xué)碩士論文,2004.
[5] 謝勝東.基于GB/T19056-2003汽車(chē)行駛記錄儀的研制.2005.
[6] 袁文燕,遲瑞娟,胡桂蘭.基于LIN總線的汽車(chē)車(chē)身系統(tǒng)的設(shè)計(jì).微計(jì)算機(jī)信息,2006,9-2:224-226.