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