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