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