張 妮,畢雪芹,田萍果
(1.西安工業(yè)大學(xué) 北方信息工程學(xué)院,陜西 西安 710025;2.西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710032)
汽車行駛記錄儀(vehicle traveling data recorder)是安裝在車輛上,能夠記錄、存儲(chǔ)、顯示、打印車輛運(yùn)行速度、時(shí)間、里程以及有關(guān)車輛行駛的其他狀態(tài)信息,并可通過接口實(shí)現(xiàn)數(shù)據(jù)輸出的數(shù)字式電子記錄裝置,俗稱汽車黑匣子[1]。汽車行駛記錄儀的使用對(duì)遏制疲勞駕駛、車輛超速等交通違章、約束駕駛?cè)藛T的不良駕駛行為、保障車輛行駛安全以及道路交通事故的分析鑒定具有重要的作用。
汽車行駛記錄儀(以下簡(jiǎn)稱記錄儀)由汽車行駛記錄儀的主機(jī)部分和計(jì)算機(jī)終端的數(shù)據(jù)分析軟件部分構(gòu)成。主機(jī)部分是記錄儀的核心,主要完成車輛行駛數(shù)據(jù)的采集、記錄和存儲(chǔ)。傳統(tǒng)的汽車行駛記錄儀由于采樣信號(hào)很多,信號(hào)采集很復(fù)雜,需要很多連接線,為了保證采集信號(hào)的準(zhǔn)確性,采集到的信號(hào)還要經(jīng)過放大電路和濾波電路進(jìn)行處理,如果各級(jí)電路之間電氣特性匹配不好就會(huì)影響記錄儀信號(hào)采集的準(zhǔn)確性,甚至有時(shí)還會(huì)影響到汽車其他系統(tǒng)的正常工作。
計(jì)算機(jī)終端的數(shù)據(jù)分析軟件主要實(shí)現(xiàn)對(duì)汽車行駛中諸如速度、壓力等數(shù)據(jù)的分析和處理,因此記錄儀采集的信號(hào)必須與計(jì)算機(jī)終端、外圍報(bào)警模塊、人機(jī)接口模塊等進(jìn)行數(shù)據(jù)傳輸。標(biāo)準(zhǔn)的RS232串行通信是一種成熟穩(wěn)定的通信方式,也是汽車行駛記錄儀國(guó)家標(biāo)準(zhǔn)規(guī)定的必須具有的通信方式。但RS232串行通訊信距離短,只能進(jìn)行點(diǎn)到點(diǎn)通訊,不能直接組建多點(diǎn)通信網(wǎng)絡(luò)。為了延長(zhǎng)RS232的通信距離,并將RS232節(jié)點(diǎn)組成通訊網(wǎng)絡(luò),就需要將RS232串行通信接口轉(zhuǎn)換成CAN總線接口,以CAN總線形式構(gòu)成遠(yuǎn)程多點(diǎn)通信網(wǎng)絡(luò)。
CAN總線的應(yīng)用使汽車行駛記錄儀通過接口直接從CAN總線上讀取相應(yīng)信號(hào),因而不會(huì)影響其他系統(tǒng)的正常工作;同時(shí)CAN總線具有數(shù)據(jù)傳遞可靠性很高的優(yōu)點(diǎn),也使得其數(shù)據(jù)準(zhǔn)確性得以保障。
控制器區(qū)域網(wǎng)(Controller Area Metwork,CAN)總線是一種多主機(jī)局部網(wǎng)。CAN總線規(guī)范已被國(guó)際標(biāo)準(zhǔn)化組織(ISO)制定為國(guó)際標(biāo)準(zhǔn)。CAN總線屬于總線式串行通信網(wǎng)絡(luò),由于采用了許多新技術(shù)和獨(dú)特設(shè)計(jì),因而具有以下特點(diǎn):1)總線以多主方式工作,通信方式靈活,且不用占地址等節(jié)點(diǎn)信息;2)CAN總線網(wǎng)絡(luò)上的節(jié)點(diǎn)信息分不同的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求;3)采用非破壞性總線仲裁技術(shù),在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓的情況;4)只需通過報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù),無需專門的 “調(diào)度”;5)直接通信距離最遠(yuǎn)可達(dá)10 km(速率 5 Kb/s以下);6)通信速率最高可達(dá)1 Mb/s(此時(shí)通信距離最長(zhǎng)為40 m);7)每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,保證了數(shù)據(jù)出錯(cuò)率極低;8)CAN總線節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出的功能,以使總線上的其他節(jié)點(diǎn)的操作不受影響。
CAN總線是一種多主總線,可將汽車行駛記錄儀作為汽車CAN網(wǎng)絡(luò)的一個(gè)節(jié)點(diǎn),在系統(tǒng)中與計(jì)算機(jī)終端相連的節(jié)點(diǎn)是主節(jié)點(diǎn),其他節(jié)點(diǎn)是從節(jié)點(diǎn)。理論上,主節(jié)點(diǎn)可以有多個(gè)。在簡(jiǎn)單的系統(tǒng)中,一般只設(shè)置1個(gè)主節(jié)點(diǎn),完成主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送配置數(shù)據(jù)、主節(jié)點(diǎn)向從節(jié)點(diǎn)請(qǐng)求當(dāng)前工作狀態(tài)、當(dāng)前數(shù)據(jù)以及數(shù)據(jù)管理等工作。從節(jié)點(diǎn)根據(jù)應(yīng)用的需要完成不同的功能,如現(xiàn)場(chǎng)數(shù)據(jù)的采集、設(shè)備控制和驅(qū)動(dòng)等,并能實(shí)現(xiàn)上傳數(shù)據(jù)和接收數(shù)據(jù)等通信功能。
主節(jié)點(diǎn)由PC機(jī)、CAN接口電路、上位機(jī)接口軟件等組成。CAN接口電路實(shí)現(xiàn)了以CAN總線上從節(jié)點(diǎn)和上位機(jī)之間的通信,CAN接口電路原理框圖如圖1所示。
圖1 CAN接口電路原理圖Fig.1 Principle diagram of CAN interface circuit
CAN接口電路以PHILIPS公司的P89C52微控制器作為核心處理器,負(fù)責(zé)對(duì)CAN總線控制器初始化,并通過數(shù)據(jù)總線對(duì)CAN控制器進(jìn)行讀/寫控制,實(shí)現(xiàn)CAN網(wǎng)絡(luò)節(jié)點(diǎn)中信息的收發(fā),從而實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)的控制;通過MAX232與PC機(jī)實(shí)現(xiàn)串行通信,由PC機(jī)發(fā)送的數(shù)據(jù)寫到微控制器中,再由微控制器的I/O口和控制信號(hào)線將數(shù)據(jù)寫入CAN控制器,通過CAN收發(fā)器向CAN總線發(fā)送;CAN總線上,需要上傳給主節(jié)點(diǎn)的數(shù)據(jù),經(jīng)CAN收發(fā)器寫入CAN控制器,通過中斷信號(hào)提醒微控制器讀取,再由RS-232接口上傳給PC機(jī)。在CAN總線的兩端,需要接一個(gè)120 Ω的匹配電阻,以提高數(shù)據(jù)通信的抗干擾能力及整體可靠性。
除主控器件微處理器P89C52之外,CAN總線接口電路主要由CAN總線通信接口電路、CAN收發(fā)器與光電隔離部分、串口收發(fā)器等組成[2-5]。
CAN總線通信接口電路是一個(gè)很重要的環(huán)節(jié),記錄儀的正確運(yùn)行與其密切相關(guān)。該設(shè)計(jì)采用了PHILIPS公司生產(chǎn)的總線控制器SJA1000,該器件是一種獨(dú)立的CAN總線控制器,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。SJA1000具有PCA82C200模式(即默認(rèn)的Basic CAN模式),基本特性如下:1)具有PCA82C200模式(即默認(rèn)的Basic CAN 模式);2)支持 CAN2.OA 和 CAN2.OB 協(xié)議;3)支持 11位和 29位標(biāo)識(shí)符;4)通信的位速率可達(dá) 1 Mb/s;5)采用的是24 MHz時(shí)鐘頻率;6)可與不同的微處理器相接;7)可編程的CAN輸出驅(qū)動(dòng)器配置;8)溫度適應(yīng)范圍大(-40~+125℃)。
圖2 CAN總線通信接口電路Fig.2 CAN-bus communication interface circuit
此外,還具有PeliCAN模式擴(kuò)展功能:1)可讀/可訪問的錯(cuò)誤計(jì)數(shù)寄存器;2)可編程的錯(cuò)誤報(bào)警限額寄存器;3)最近一次錯(cuò)誤代碼寄存器;4)對(duì)每一個(gè)CAN總線錯(cuò)誤的中斷;5)有具體位表示的仲裁丟失中斷;6)單次發(fā)送(無重復(fù));7)只聽模式(無確認(rèn)、無激活的錯(cuò)誤標(biāo)志);8)支持熱插拔(軟件位速率檢測(cè));9)驗(yàn)收濾波器的擴(kuò)展(4字節(jié)的驗(yàn)收代碼,4字節(jié)的屏蔽);10)接收自身報(bào)文(自接收請(qǐng)求)。
圖2所示為SJA1000與微處理器通信接口電路。SJA1000的復(fù)位信號(hào)RST為低電平有效。
CAN總線收發(fā)器采用了標(biāo)準(zhǔn)的高速CAN收發(fā)器TJA1050,該收發(fā)器是CAN協(xié)議控制器和物理總線之間的接口。TJA1050可以為總線提供差動(dòng)發(fā)送性能,為CAN控制器提供差動(dòng)接收性能。TJA1050除了增強(qiáng)EMC外,另外一個(gè)重要的特性是不上電時(shí),CAN總線呈現(xiàn)無源特性。這使TJA1050在性能上大大優(yōu)于其他CAN總線收發(fā)器。TJA1050有高速和靜音2種工作模式,都由引腳S控制。引腳S接地可以進(jìn)入高速模式,由于引腳S有內(nèi)部下拉功能,所以當(dāng)它沒接時(shí),高速模式也是默認(rèn)模式。在高速模式中,總線輸出信號(hào)有固定的頻率,并且以盡量快的速度切換,適用于最大的位速率和最大的總線長(zhǎng)度。將引腳S接高電平,就可進(jìn)入靜音模式。在靜音模式中,發(fā)送器是禁止的,不管TXD的輸入信號(hào)。因此,TJA1050在非發(fā)送狀態(tài)中,它此時(shí)消耗的電源電流和隱形狀態(tài)時(shí)一樣。TJA1050最低的波特率為 20 Kb/s。
為了確保在CAN總線遭受嚴(yán)重干擾時(shí)控制器能夠正常運(yùn)行,CAN總線控制器沒有與總線收發(fā)模塊直接相連,而是通過光電隔離器6N137后相連,從而實(shí)現(xiàn)總線上各節(jié)點(diǎn)間的電氣隔離。電路圖如圖3所示。6N137光耦合器的第6引腳Vo輸出電路屬于集電極開路電路,必須上拉一個(gè)電阻;另外其第2引腳和3引腳之間是一個(gè)LED,必須串接一個(gè)限流電阻,此外,光電耦合部分所采用的兩個(gè)電源VCC和CAN的+5 V必須完全隔離。
圖3 總線收發(fā)器隔離電路Fig.3 Schematic diagram of bus transceiver and photoelectric isolation
RS232總線接口主要實(shí)現(xiàn)汽車行駛記錄儀與PC機(jī)的RS232串口通信功能。MAX232芯片是常用的RS-232C與TTL電平轉(zhuǎn)換器,它的內(nèi)部有電壓倍增電路和轉(zhuǎn)換電路,只需+5 V電源便可實(shí)現(xiàn)RS-232C與TTL電平轉(zhuǎn)換,使用方便,一個(gè)芯片可連接2對(duì)收/發(fā)信號(hào)線。因此轉(zhuǎn)換器采用MAX232。其接口原理圖如圖4所示。
圖4 RS232接口原理圖Fig.4 Principle schematic of RS232 interface
在軟件設(shè)計(jì)之前,為了確保SJA1000的片選地址與其他的外部存儲(chǔ)器無沖突,需先確定SJA1000的基地址及復(fù)位引腳,然后正確地初始化SJA1000。CAN接口電路的軟件設(shè)計(jì)主流程圖如圖5所示,主要包括CAN控制器的初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收及出錯(cuò)處理等。
圖5 CAN接口電路主流程圖Fig.5 Flow chart of main program of CAN interface circuit
SJA1000的初始化只有在復(fù)位模式下才可以進(jìn)行,初始化主要包括工作方式的設(shè)置,接收濾波方式的設(shè)置,接收屏蔽寄存器和接收代碼寄存器的設(shè)置,波特率參數(shù)設(shè)置和中斷允許寄存器的設(shè)置等。其初始化流程如圖6所示。
CAN發(fā)送數(shù)據(jù)流程如圖7所示,接收數(shù)據(jù)流程如圖8所示。此程序以采集行駛車輛行駛速度和壓力數(shù)據(jù)為例。
圖6 初始化程序流程圖Fig.6 Flow chart of initialization program
圖7 發(fā)送數(shù)據(jù)流程圖Fig.7 Flow chart of sending data program
CAN總線的應(yīng)用,使汽車行駛記錄儀的信號(hào)采樣系統(tǒng)簡(jiǎn)化,降低了對(duì)MCU處理單元的性能要求,提高了汽車行駛記錄儀穩(wěn)定性,可在RS232通信節(jié)點(diǎn)中建立多點(diǎn)遠(yuǎn)程通信,其硬件和軟件設(shè)計(jì)上都有所創(chuàng)新,使記錄儀安裝更為簡(jiǎn)便,具有很好的性價(jià)比和很強(qiáng)的可移植性和擴(kuò)充性。
[1]譚浩.汽車行駛記錄儀的原理與應(yīng)用 [J].測(cè)試設(shè)備,2006(11):56-59.TAN Hao.Principle and application of automotive running recorder[J].Test Equipment,2006(11):56-59.
[2]姜木霖,彭強(qiáng),黃連麗.基于CAN總線的汽車行駛記錄儀的研制[J].重慶工學(xué)院學(xué)報(bào):自然科學(xué),2008,10-13.JIANG Mu-lin,PENC Qiang,HUANG Lian-li.Research of vehicle traveling data recorder based on CAN bus[J].Journal of Chongqing Isstitute of Technology:Natural Science,2008:10-13.
[3]黃艷玲,李立偉.多功能汽車行駛狀態(tài)記錄儀的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2006(3):102-104.HUANG Yan-ling,LI li-wei.The desigener of multi-function vehicle traveling data recorder[J].Application of Electronic Technique, 2006(3):102-104.
[4]劉輝,遲瑞娟,胡桂蘭.基于嵌入式系統(tǒng)的汽車行駛記錄儀的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,(4):240-242.LIU Hui,CHI Rui-juan,HU Gui-lan.Design of vehicle traveling data recorder based on embedded system[J].Microcomputer Information,2008(4):240-242.
[5]薛翔,何仁,倪春華.基于嵌入式系統(tǒng)汽車行駛記錄儀的研制與開發(fā)[J].交通與計(jì)算機(jī),2006(2):62-65.XUE Xiang,HE Ren,NI Chun-hua.Research and development of vehicle traveling data recorder based on embedded system[J].Communications and Computer,2006 (2):62-65.
[6]馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航天航空大學(xué)出版社,2007.