基于CAN總線的多功能汽車行駛記錄儀設(shè)計(jì)
1. 概述
汽車行駛記錄儀,又稱“汽車黑匣子”,是對(duì)車輛行駛速度、時(shí)間、里程以及有關(guān)車輛行駛的其他狀態(tài)信息進(jìn)行記錄、存儲(chǔ)并可通過接口實(shí)現(xiàn)數(shù)據(jù)輸出的數(shù)字式電子記錄裝置[1]。多功能汽車行駛記錄儀可詳細(xì)記錄車輛每次的起動(dòng)時(shí)間、行駛里程、行駛時(shí)間、最高車速以及每次最高車速的持續(xù)時(shí)間,在汽車駕駛員超速行駛時(shí)發(fā)出超速報(bào)警聲,儲(chǔ)存停車前20秒的車輛信息,并且可以使用USB移動(dòng)磁盤采集數(shù)據(jù),具有GSM/GPRS遠(yuǎn)程數(shù)據(jù)傳輸、GPS定位等功能。同時(shí)可以建立監(jiān)控中心,管理多個(gè)終端,方便交通管理部門根據(jù)所記錄的有關(guān)數(shù)據(jù)對(duì)車輛進(jìn)行有效的管理,大大地提高了駕駛員的安全責(zé)任心,從而可大幅度地降低事故的發(fā)生。
為了使車輛的排放、舒適性、穩(wěn)定性、動(dòng)力性和制動(dòng)性等技術(shù)性指標(biāo)達(dá)到一定的要求,CAN總線已發(fā)展成為汽車電子系統(tǒng)的主流總線。目前,我國(guó)的轎車已具有一定的電子控制和網(wǎng)絡(luò)功能。2006年,北京地區(qū)大客車的排放也要滿足歐Ⅲ標(biāo)準(zhǔn),并且已制定了基于CAN總線通信協(xié)議的SAE J1939作為載貨車和大客車的通訊標(biāo)準(zhǔn)[2]?;贑AN總線的多功能汽車行駛記錄儀,就是根據(jù)這種發(fā)展趨勢(shì),為有CAN總線的汽車而開發(fā)的,預(yù)留出CAN節(jié)點(diǎn)的接口,使其可以通過CAN總線采集數(shù)據(jù),增強(qiáng)了多功能汽車行駛記錄儀的擴(kuò)展性。一旦出現(xiàn)故障,可以盡快的檢測(cè)出問題,便于檢修。
2. CAN總線技術(shù)
CAN-bus(Controller Area Network)即控制器局域網(wǎng),是德國(guó)BOSCH公司在80年代初為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信總線,是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。它可靠性高、性能價(jià)格比高、適應(yīng)性好。國(guó)外眾多的汽車,如奔馳、寶馬、大眾、沃爾沃、雷諾及帕里奧汽車都采用了CAN總線技術(shù)[3]。CAN通信協(xié)議主要描述了設(shè)備之間的信息傳遞方式。通信接口集成了CAN協(xié)議物理層和數(shù)據(jù)鏈路層功能,可對(duì)通信數(shù)據(jù)進(jìn)行幀處理。為在汽車這一特殊環(huán)境中的應(yīng)用,提供了保證[3,4]:
(1) 數(shù)據(jù)通信的可靠性 CAN總線每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,具有極好的檢錯(cuò)效果,并且CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線上其他節(jié)點(diǎn)的操作不受影響。
(2) 數(shù)據(jù)通信的實(shí)時(shí)性 CAN總線的通信速率可達(dá)1Mbps,在報(bào)文標(biāo)識(shí)符上,CAN上的節(jié)點(diǎn)分成不同的優(yōu)先級(jí),優(yōu)先級(jí)高的數(shù)據(jù)享有占用總線的優(yōu)先權(quán),優(yōu)先權(quán)高的數(shù)據(jù)最多可在134ms內(nèi)得到傳輸。
(3) 數(shù)據(jù)通信的靈活性 CAN總線是一種多主總線結(jié)構(gòu),各個(gè)節(jié)點(diǎn)之間相互獨(dú)立,總線上任何一個(gè)節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息。面向數(shù)據(jù)塊的通信方式,每幀數(shù)據(jù)量為8字節(jié),通信介質(zhì)為雙絞線、同軸電纜或者光纖。由于CAN通信協(xié)議僅包括物理層和數(shù)據(jù)鏈路層說明,并未對(duì)應(yīng)用層的功能和實(shí)現(xiàn)進(jìn)行定義,因此,用戶既可以采用國(guó)際CAN總線用戶及制造商協(xié)會(huì)或其他一些組織制定的開放式高層協(xié)議,也可以在工程種靈活的實(shí)現(xiàn)自己的應(yīng)用層。
載貨車和大客車的通訊標(biāo)準(zhǔn)SAE J1939則將汽車應(yīng)用層進(jìn)行具體實(shí)施,統(tǒng)一定義了整套的地址編碼系統(tǒng),這樣不同廠家的控制器(ECU)可以接入同一網(wǎng)絡(luò)系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)共享,從而減少了電子系統(tǒng)的線束,減少了冗余的傳感器,降低了造價(jià),提高了系統(tǒng)的通用性和可靠性,同時(shí)改善了系統(tǒng)的靈活性[5]。
3. 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
多功能汽車行駛記錄儀主要由CPU、數(shù)據(jù)存儲(chǔ)器、CAN控制器/收發(fā)器、電源轉(zhuǎn)換模塊、GPS模塊、GSM/GPRS模塊、IC卡接口、開關(guān)量輸入、USB接口及光電隔離電路等組成。系統(tǒng)總體結(jié)構(gòu)圖見圖1:各部分采集數(shù)據(jù)后,通過CAN總線與記錄儀通信,最終由記錄儀完成數(shù)據(jù)的存儲(chǔ)。由于采用了現(xiàn)場(chǎng)總線方式,實(shí)際布線非常簡(jiǎn)潔,只需要一條雙芯電纜即可,擴(kuò)展非常方便。多功能汽車行駛記錄儀通過USB接口可以完成數(shù)據(jù)的導(dǎo)出,由管理分析軟件完成數(shù)據(jù)的分析顯示。
3.1 CAN接口設(shè)計(jì)
CAN接口模塊,主要用于記錄儀與總線間的數(shù)據(jù)采集??偩€上的CAN節(jié)點(diǎn)模塊采集各種數(shù)據(jù),傳輸?shù)娇偩€上,記錄儀通過其內(nèi)部的CAN接口模塊,獲得各種模擬量信號(hào)及脈沖頻率信號(hào)。CAN總線傳輸數(shù)據(jù)結(jié)構(gòu)圖見圖2。這種采集數(shù)據(jù)的方式,具有很好的擴(kuò)展性和可移植性。對(duì)于一些相對(duì)固定且常用的參數(shù),如:車速,發(fā)動(dòng)機(jī)轉(zhuǎn)速,傳感器模擬量輸入等,可以直接設(shè)計(jì)成一個(gè)CAN節(jié)點(diǎn)模塊,掛在總線上,適用于各種車型;對(duì)于其他不常用參數(shù),可以根據(jù)需要進(jìn)行擴(kuò)展,做成活動(dòng)的CAN節(jié)點(diǎn),如:溫度傳感器,可以增設(shè)到CAN節(jié)點(diǎn)模塊中,測(cè)出車內(nèi)各座位的溫度場(chǎng)分布。同時(shí)對(duì)于活動(dòng)CAN節(jié)點(diǎn),也可以設(shè)計(jì)成通用的模塊,根據(jù)不同的車型和需要,改變CPU中的軟件部分,即可得到想要的各種數(shù)據(jù)。
圖1 系統(tǒng)總體結(jié)構(gòu)圖
圖2 CAN總線傳輸數(shù)據(jù)結(jié)構(gòu)圖
記錄儀內(nèi)部的CAN接口模塊由看門狗、CAN控制器、CAN收發(fā)器、RS232、開關(guān)信號(hào)輸入等部分組成。CAN接口模塊圖見圖3。
(1)CAN控制器 選用Philips的SJA1000,它是一種獨(dú)立控制器,用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制CAN。其中SJA1000的PeliCAN這種工作模式支持具有很多新特性的CAN2.0B協(xié)議。
(2)CAN 驅(qū)動(dòng)器 選用PCA82C250,也即CAN 協(xié)議控制器和物理總線的接口。此器件對(duì)總線提供差動(dòng)發(fā)送能力,對(duì)CAN 控制器提供差動(dòng)接收能力,它主要是為汽車中高速通訊(高達(dá)1Mbps)應(yīng)用而設(shè)計(jì),完全符合“ISO11898”標(biāo)準(zhǔn),具有限流電路和熱保護(hù)功能。CANH、CANL 兩條線可防止在汽車環(huán)境下可能發(fā)生的電氣瞬變現(xiàn)象。
圖3 CAN接口模塊圖
3.2 CPU與存儲(chǔ)器
記錄儀接收總線上的數(shù)據(jù),匯總后進(jìn)行數(shù)據(jù)的存儲(chǔ),并可根據(jù)事先確定的警戒值進(jìn)行語音報(bào)警提示。核心是數(shù)據(jù)的準(zhǔn)確可靠存儲(chǔ)。
這里CPU選擇臺(tái)灣華邦公司生產(chǎn)的8位單片機(jī)W77E58,與MCS51系列單片機(jī)具有相同內(nèi)核,功能更加強(qiáng)大,可多次編程,在相同主頻下,速度是89S52的3-4倍。它內(nèi)部集成了32KB的可重復(fù)編程的Flash ROM、256字節(jié)的片內(nèi)存儲(chǔ)器、1KB用于MOVX指令訪問的SRAM、可編程看門狗定時(shí)器、三個(gè)16位定時(shí)器、二個(gè)增強(qiáng)型的全雙工串行口、片內(nèi)RC震蕩器、雙16位數(shù)據(jù)指針等諸多功能。
多功能汽車行駛記錄儀對(duì)存儲(chǔ)器的要求很高,要對(duì)大量的數(shù)據(jù)進(jìn)行存儲(chǔ),需要外擴(kuò)數(shù)據(jù)存儲(chǔ)器。它所記錄的數(shù)據(jù)包括兩部分:一為停車前的疑點(diǎn)數(shù)據(jù),存放停車前20秒的數(shù)據(jù),用于分析事故發(fā)生的原因和事故的責(zé)任;二為歷史記錄,存放汽車整個(gè)行駛過程中的數(shù)據(jù),用于考核駕駛員和汽車的運(yùn)行狀況。
在存儲(chǔ)模塊中,采用了鐵電存儲(chǔ)器(FRAM)與DATA FLASH并用的方式。FRAM是美國(guó)Ramtron公司的核心技術(shù),具有隨機(jī)存取記憶體(RAM)和非易失性存儲(chǔ)的特性,掉電后數(shù)據(jù)能保存10 年。它可擦寫次數(shù)多,5V供電的FRAM 的擦寫次數(shù)為100億次,低電壓的FRAM 的擦寫次數(shù)為1億億次。速度快,功耗低,可以用于停車前20秒的數(shù)據(jù)存儲(chǔ)。DATA FLASH選用Atmel公司生產(chǎn)的AT45DB041,它具有4Mbit的Flash的存儲(chǔ)單元,可以存儲(chǔ)26000條記錄,由于采用SPI串行模式進(jìn)行操作,可以很方便的與CPU進(jìn)行通訊。在存儲(chǔ)模塊中,它用來存儲(chǔ)歷史數(shù)據(jù)。不同的芯片,增加的主存儲(chǔ)器的容量不同,如AT45D081、AT45D161、AT45D321的容量分別為8M、16M、32Mbits。
3.4 通信接口
根據(jù)GB/T 19056—2003的國(guó)家標(biāo)準(zhǔn),標(biāo)準(zhǔn)型記錄儀應(yīng)至少配置兩種標(biāo)準(zhǔn)接口:(1)USB(通用串行總線)標(biāo)準(zhǔn)接口;(2)標(biāo)準(zhǔn)RS232D型9針接口。
通過RS232串行口直接進(jìn)行數(shù)據(jù)傳輸比較容易實(shí)現(xiàn)、普及廣泛、可靠性高。芯片選用MAX232,它是一種雙組驅(qū)動(dòng)器/接收器,片內(nèi)含有一個(gè)電容性電壓發(fā)生器,可以在單5V供電時(shí)提供EIA/TIA-232-E電平。
用USB標(biāo)準(zhǔn)接口傳輸數(shù)據(jù),U盤體積小,容量大,便于攜帶,讀取數(shù)據(jù)方便。采用CYPRESS公司生產(chǎn)的USB-HOST接口芯片SL811作為USB接口芯片。該芯片支持USB1.1協(xié)議,價(jià)格低,性能突出,可靠性高,可以理想地用于多種外設(shè)。它內(nèi)部有256字節(jié)的RAM數(shù)據(jù)緩沖器,可以用來控制寄存器和數(shù)據(jù)緩存器。高速模式下支持12Mbps,低速模式下支持1.5Mbps。對(duì)于大多數(shù)廠家生產(chǎn)的USB移動(dòng)磁盤(如朗科優(yōu)盤、愛國(guó)者優(yōu)盤等)都可以成功存取。
4. 軟件設(shè)計(jì)
多功能汽車行駛記錄儀的軟件設(shè)計(jì)分為系統(tǒng)軟件和管理軟件兩部分。
系統(tǒng)軟件的主要功能是對(duì)記錄儀各個(gè)模塊以及特殊寄存器進(jìn)行初始化,巡回檢測(cè)各個(gè)開關(guān)狀態(tài)量和模擬量[6]。如記錄儀設(shè)置模塊初始化,包括記錄間隔、報(bào)警速度閾值、車牌照等等,存儲(chǔ)器初始化,GPS/GSM模塊初始化等。它主要通過Keil C對(duì)單片機(jī)編程,實(shí)現(xiàn)上述功能。
管理軟件是多功能汽車行駛記錄儀配套的管理軟件,通過全球衛(wèi)星定位系統(tǒng)(GPS)和地理信息系統(tǒng)(GIS)實(shí)現(xiàn)對(duì)車輛的全程跟蹤,將車輛的各種違章事件都直觀的反映出來,便于處理。它是建立在Microsoft Windows的基礎(chǔ)上,以Mapinfo公司的地圖二次開發(fā)控件MAPX為GIS軟件開發(fā)平臺(tái),可以使用VB,VC等多種語言,進(jìn)行開發(fā)[7]。
管理軟件具有數(shù)據(jù)智能分析功能。對(duì)記錄儀記下的大量數(shù)據(jù)進(jìn)行篩選、初步評(píng)價(jià),給出智能報(bào)告。該數(shù)據(jù)分析功能可以分析以下數(shù)據(jù):1、疑點(diǎn)數(shù)據(jù);2、車輛行駛速度及里程數(shù)據(jù)(日期,時(shí)間,速度,里程);3、連續(xù)駕駛時(shí)間數(shù)據(jù)(起始日期,起始時(shí)刻,結(jié)束日期,結(jié)束時(shí)刻,駕駛證號(hào)碼);4、車輛識(shí)別代號(hào)、車輛特征系數(shù)、車牌號(hào)碼、車牌分類;5、駕駛員代碼、駕駛證證號(hào)。為了提高分析數(shù)據(jù)的效率,可以分三類分析:1、超速(起始日期,起始時(shí)間,結(jié)束日期,結(jié)束時(shí)間);2、里程(起始日期,起始時(shí)間,結(jié)束日期,結(jié)束時(shí)間,行駛里程);3、疲勞駕駛(起始日期,起始時(shí)間,結(jié)束日期,結(jié)束時(shí)間)。超速是根據(jù)數(shù)據(jù)庫內(nèi)有記錄的相應(yīng)路段所對(duì)應(yīng)的超速值來查詢內(nèi)存中1 h 內(nèi)的超速數(shù)據(jù);里程能提供30 d 內(nèi)的任意時(shí)段的行駛里程;疲勞駕駛則是表示兩個(gè)日歷天內(nèi)的疲勞駕駛數(shù)據(jù)。
5. 結(jié)論
本文詳細(xì)介紹了一種基于CAN總線的多功能汽車行駛記錄儀,對(duì)CPU的選擇、CAN接口模塊、存儲(chǔ)器、通信模塊、內(nèi)部軟件以及管理中心的建設(shè)做了深入的分析和說明。在標(biāo)準(zhǔn)汽車行駛記錄儀的基礎(chǔ)上,增加了USB移動(dòng)磁盤采集數(shù)據(jù),GSM/GPRS遠(yuǎn)程數(shù)據(jù)傳輸?shù)裙δ?,并與CAN總線技術(shù)相結(jié)合,增強(qiáng)了可擴(kuò)展性。本多功能汽車行駛記錄儀,已經(jīng)開發(fā)成功,并且做了相應(yīng)的實(shí)驗(yàn),工作穩(wěn)定性好、具有抗干擾的性能,使用效果良好。