技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于CAN總線(xiàn)技術(shù)的車(chē)輛虛擬儀表數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

基于CAN總線(xiàn)技術(shù)的車(chē)輛虛擬儀表數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

時(shí)間:2009-01-19 11:54:44來(lái)源:ronggang

導(dǎo)語(yǔ):?介紹了基于CAN總線(xiàn)的車(chē)輛虛擬儀表多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方法,給出了系統(tǒng)詳細(xì)框圖和關(guān)鍵電路圖.詳細(xì)分析了CAN通信子程序,并給出了CAN通信初始化子程序、數(shù)據(jù)發(fā)送和中斷服務(wù)程序流程圖
摘 要:介紹了基于CAN總線(xiàn)的車(chē)輛虛擬儀表多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方法,給出了系統(tǒng)詳細(xì)框圖和關(guān)鍵電路圖.詳細(xì)分析了CAN通信子程序,并給出了CAN通信初始化子程序、數(shù)據(jù)發(fā)送和中斷服務(wù)程序流程圖。 關(guān)鍵詞:虛擬儀表 CAN總線(xiàn) 數(shù)據(jù)采集系統(tǒng) F/V轉(zhuǎn)換 Abstract: This paper introduces the design of multi-channel data acquisition system for vehicle Virtual Instrument based on CAN Bus , and offers system structure diagram and key schematic. It analyzes the subprogram of CAN communication in detail, and presents program flow chart for CAN initialization, data transmit and interrupt servicing. Key words: Virtual Instrument CAN BUS Data Acquisition System F/V conversion 1 前言   車(chē)輛是一個(gè)特殊的應(yīng)用環(huán)境,車(chē)輛自動(dòng)化程度的不斷提高給車(chē)輛儀表提出了更高的要求,傳統(tǒng)的動(dòng)磁式儀表已經(jīng)越來(lái)越不適應(yīng)現(xiàn)代智能交通工具發(fā)展的需要,而虛擬儀表因其具有交互、智能和便于擴(kuò)展等特點(diǎn)而受到廣泛重視。本課題要求為某車(chē)設(shè)計(jì)一套虛擬儀表,上位機(jī)采用基于RTOS開(kāi)發(fā)環(huán)境的PC104嵌入式微機(jī)。車(chē)輛環(huán)境數(shù)據(jù)采集系統(tǒng)作為虛擬儀表的一個(gè)最重要的子系統(tǒng),要求完成數(shù)據(jù)的采集和通信功能,而且具有較高的適時(shí)性和可靠性。本文根據(jù)作者體會(huì)介紹了用Philips公司的高性能單片機(jī)P80C592設(shè)計(jì)車(chē)輛數(shù)據(jù)采集系統(tǒng)的方法,重點(diǎn)介紹了系統(tǒng)設(shè)計(jì)和CAN通信編程。 2 系統(tǒng)簡(jiǎn)介   根據(jù)設(shè)計(jì)要求,本系統(tǒng)主要完成傳感信號(hào)的處理以及車(chē)輛的工況數(shù)據(jù)采集并將數(shù)據(jù)通過(guò)CAN總線(xiàn)送上位機(jī),要求處理16路模擬信號(hào)、4路頻率信號(hào)和32路擴(kuò)展IO信號(hào),采集參數(shù)主要有:發(fā)動(dòng)機(jī)機(jī)油壓力、水溫、油溫、轉(zhuǎn)速、車(chē)速、變速箱油壓、油箱油量以及電網(wǎng)電壓、車(chē)門(mén)狀態(tài)、轉(zhuǎn)向燈指示、車(chē)體超寬指示以及車(chē)內(nèi)環(huán)境示警等,信號(hào)的形式有電壓、頻率、以及開(kāi)關(guān)量信號(hào),信號(hào)頻率范圍為0~ 6KHZ。   2.1 系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)   圖1給出了系統(tǒng)硬件結(jié)構(gòu)圖。系統(tǒng)采用的核心器件為Philips公司的8位高性能微控制器P80C592,它與標(biāo)準(zhǔn)80C51完全兼容,其主要特性有:內(nèi)建能與內(nèi)部RAM進(jìn)行DMA數(shù)據(jù)傳送的CAN控制器;4個(gè)捕獲端口和2個(gè)標(biāo)準(zhǔn)的16位定時(shí)/計(jì)數(shù)器;8路模擬量輸入的10位ADC變換器;2×256字節(jié)在片RAM和一個(gè)Watch Dog。P80C592的在片CAN控制器可以完全實(shí)現(xiàn)CAN協(xié)議,因此減少了系統(tǒng)連線(xiàn),增強(qiáng)了診斷功能和監(jiān)控能力。數(shù)模轉(zhuǎn)換器件選用12位的AD1674A,分辨率為0.02%,轉(zhuǎn)換時(shí)間為25uS。為了提高系統(tǒng)抗干擾能力,在模-數(shù)電路之間和系統(tǒng)到CAN總線(xiàn)之間采用了光電隔離,并且將模擬電路和數(shù)字電路分別設(shè)計(jì)成兩塊獨(dú)立的PCB板,兩板通過(guò)棧接組成一個(gè)完整的系統(tǒng)。   硬件工作過(guò)程:溫度、壓力以及電壓信號(hào),經(jīng)相關(guān)處理電路送至16路模擬開(kāi)關(guān)MAX306EP,經(jīng)電壓跟隨電路輸入AD1674A進(jìn)行A/D轉(zhuǎn)換,為了提高可靠性和穩(wěn)定性,系統(tǒng)沒(méi)有采用微控制器的在片ADC變換器。在程序控制下對(duì)16路信號(hào)順序選通,采集得到的數(shù)據(jù)在CAN控制器內(nèi)完成CAN協(xié)議包的封裝,由發(fā)送端口經(jīng)光電隔離和發(fā)送器傳送到CAN總線(xiàn)上。油量信號(hào)經(jīng)光電隔離、整形和分頻后送P80C592的捕獲端口進(jìn)行頻率測(cè)量,轉(zhuǎn)速車(chē)速信號(hào)經(jīng)整形后被分為兩路,一路經(jīng)分頻電路去單片機(jī)捕獲端口,另一路經(jīng)F/V轉(zhuǎn)換后送ADC采樣。對(duì)ADC和I/O擴(kuò)展端口的訪(fǎng)問(wèn)通過(guò)GAL譯碼器的編程邏輯輸出來(lái)控制。 [align=center] 圖1[/align]   2.2 頻率信號(hào)測(cè)量   頻率信號(hào)測(cè)量是本系統(tǒng)的一個(gè)設(shè)計(jì)難點(diǎn),在本課題中,對(duì)于不同的車(chē)型所選用的傳感器不同,因此對(duì)轉(zhuǎn)速和車(chē)速頻率信號(hào)的處理可以有兩種方法:一是當(dāng)選用輸出頻率范圍為0-100HZ的接觸式傳感器時(shí),采用CS289頻壓轉(zhuǎn)換芯片,將頻率信號(hào)轉(zhuǎn)換成2.2~7.2V的電壓信號(hào)然后送ADC采集;二是當(dāng)選用輸出信號(hào)頻率范圍為0~3000HZ的非接觸式傳感器時(shí),通過(guò)單片機(jī)捕獲端口用脈沖計(jì)數(shù)的方法進(jìn)行頻率測(cè)量。為提高系統(tǒng)的通用性,可以同時(shí)采用了這兩種方法,具體采用哪一種方法得到的數(shù)據(jù)通過(guò)上微機(jī)軟件設(shè)定。圖2為F/V轉(zhuǎn)換電路圖; [align=center] 圖2[/align]   CS289是美國(guó)Cherry公司生產(chǎn)的單片高精度專(zhuān)用轉(zhuǎn)速測(cè)量芯片,在-400至+850溫度范圍內(nèi)都能有很好的線(xiàn)性輸出。它不僅可以用于F/V、V/F轉(zhuǎn)換,還可以用作函數(shù)發(fā)生器以及動(dòng)磁式儀表驅(qū)動(dòng)。由其構(gòu)成的F/V轉(zhuǎn)換電路外圍元件少,調(diào)試容易,工作穩(wěn)定可靠。圖2所示,整形后的轉(zhuǎn)速脈沖信號(hào)經(jīng)濾波網(wǎng)絡(luò)和限幅輸入CS289第10腳,電壓信號(hào)由第8腳輸出,經(jīng)濾波消除可能的工頻干擾后送采樣電路。本電路中,輸出電壓和輸入頻率的關(guān)系由下式?jīng)Q定:上位機(jī)據(jù)此線(xiàn)性關(guān)系解算出頻率值。為保證F/V變換具有足夠高的線(xiàn)性度,應(yīng)合理選取的值。 3 系統(tǒng)軟件設(shè)計(jì)   系統(tǒng)軟件主要完成三項(xiàng)任務(wù):1、傳感器信號(hào)的采樣與解算;2、上位機(jī)請(qǐng)求數(shù)據(jù)時(shí)將采集的數(shù)據(jù)傳送給上位機(jī);3、接收到上位機(jī)自檢命令時(shí),上傳數(shù)據(jù)完成傳感器信號(hào)到標(biāo)準(zhǔn)信號(hào)的切換。程序流程如圖3所示: [align=center] 圖3[/align]   . 主程序采用模塊化編程。具有故障自診斷功能是虛擬儀表的重要特征之一,為此數(shù)據(jù)采集系統(tǒng)中設(shè)計(jì)了3組標(biāo)準(zhǔn)信號(hào),分別是頻率信號(hào)、電壓信號(hào)和電阻信號(hào),自檢模塊的主要功能是:當(dāng)接收到上位機(jī)發(fā)出的自檢命令后,微控制器斷開(kāi)傳感器輸入,標(biāo)準(zhǔn)信號(hào)被接入數(shù)據(jù)采集系統(tǒng),將得到的數(shù)據(jù)上傳到上位機(jī)與標(biāo)準(zhǔn)值進(jìn)行比較,以確定故障點(diǎn)是傳感器系統(tǒng)還是數(shù)據(jù)采集系統(tǒng),若自檢通過(guò)則表示數(shù)據(jù)采集系統(tǒng)工作正常。數(shù)據(jù)發(fā)送模塊主要實(shí)現(xiàn)對(duì)上位機(jī)的數(shù)據(jù)通信,本系統(tǒng)設(shè)計(jì)為每隔20毫秒將數(shù)據(jù)分組發(fā)送到上位機(jī)。數(shù)據(jù)轉(zhuǎn)存模塊完成各種數(shù)據(jù)寫(xiě)入在片主RAM的操作,為了區(qū)分?jǐn)?shù)據(jù)類(lèi)型,需要在數(shù)據(jù)塊中添加相應(yīng)的類(lèi)型標(biāo)識(shí)碼,該碼由用戶(hù)層協(xié)議自行定義。A/D采樣模塊控制系統(tǒng)采樣過(guò)程,并將每一路12位采樣數(shù)據(jù)分兩次讀入指定的RAM單元中。   頻率信號(hào)處理模塊完成對(duì)捕獲端口頻率的測(cè)量,其基本思想是:在被測(cè)信號(hào)的一個(gè)周期時(shí)間內(nèi),2次脈沖下降沿分別啟動(dòng)和停止定時(shí)器T2計(jì)數(shù),兩次計(jì)數(shù)值之差的倒數(shù)即為頻率值,本模塊只需計(jì)算差值,頻率值由上位機(jī)解算。   3.1 CAN控制器編程   本系統(tǒng)軟件設(shè)計(jì)的一個(gè)難點(diǎn)在于關(guān)于CAN的編程。本系統(tǒng)處理的CAN程序模塊有:CAN初始化子程序、CAN中斷程序和CAN數(shù)據(jù)收發(fā)子程序。   CAN控制器是以CPU存儲(chǔ)器映像外圍設(shè)備出現(xiàn)的。P80C592的CPU與CAN控制器之間的數(shù)據(jù)傳輸通過(guò)4個(gè)特殊功能寄存器來(lái)實(shí)現(xiàn),即: CANADR、CANCON、CANSTA和CANDAT,通過(guò)這四個(gè)特殊功能寄存器,CPU可以訪(fǎng)問(wèn)CAN控制器內(nèi)部的任一寄存器(地址為0~29)和DMA邏輯。表2給出了這四個(gè)SFR的功能簡(jiǎn)述,其中CANCON和CANSTA的讀寫(xiě)操作含義不同。CAN控制器內(nèi)部所有寄存器詳細(xì)介紹請(qǐng)參閱參考文獻(xiàn)[1]。 [align=center] 表1[/align]   CAN控制器初始化(圖4)是CAN通信中一個(gè)非常重要的子程序,程序是否合理將直接影響整個(gè)通信過(guò)程。CAN控制器的初始化首先必須通過(guò)置位CAN控制寄存器的“復(fù)位請(qǐng)求”位,置位“復(fù)位請(qǐng)求”并不影響正在進(jìn)行的一個(gè)收發(fā)作業(yè),特別需要注意的是,只有當(dāng)復(fù)位請(qǐng)求被置位時(shí),CAN內(nèi)部地址為4-8的寄存器方可被訪(fǎng)問(wèn),在復(fù)位操作結(jié)束后必須將該位置0以保持所進(jìn)行的設(shè)置并使CAN返回工作狀態(tài)。 [align=center] 圖4[/align]   P80C592和其在片CAN控制器都具有中斷寄存器,必須注意兩者的區(qū)別。CAN中斷子程序(圖5)首先讀CAN中斷寄存器(IR)以判斷中斷類(lèi)型,據(jù)此轉(zhuǎn)入相應(yīng)的操作。如果接收緩存器滿(mǎn)而另一個(gè)報(bào)文的首字節(jié)又需要被存儲(chǔ)時(shí),數(shù)據(jù)超限位被置位,此時(shí)應(yīng)清除超限并釋放接收緩存,然后重新發(fā)送數(shù)據(jù)請(qǐng)求。在數(shù)據(jù)接受子程序中當(dāng)數(shù)據(jù)被轉(zhuǎn)入RAM區(qū)后,應(yīng)及時(shí)釋放接受緩存器,以便為接收下一幀數(shù)據(jù)做好準(zhǔn)備。 [align=center] 圖5[/align] [align=center] 圖6[/align]   數(shù)據(jù)發(fā)送子程序見(jiàn)圖6。CAN控制器向總線(xiàn)發(fā)送數(shù)據(jù)時(shí),首先將在片主RAM中數(shù)據(jù)存放的首地址寫(xiě)入CANSTA,然后讀取CANSTA.6的值(讀CANSTA的操作其實(shí)是對(duì)CAN控制器內(nèi)部狀態(tài)寄存器的讀操作,CANSTA.6是錯(cuò)誤顯示位,當(dāng)至少有一個(gè)總線(xiàn)錯(cuò)誤計(jì)數(shù)器計(jì)數(shù)達(dá)到CPU告警極限時(shí),該位將被CAN控制器置位。),若檢測(cè)出錯(cuò),則執(zhí)行CAN初始化子程序,若正常,則繼續(xù)檢測(cè)接收狀態(tài)和發(fā)送緩沖器狀態(tài),若發(fā)送條件滿(mǎn)足則在CANADR中寫(xiě)入發(fā)送緩存器地址并置位DMA控制位(MOV CANADR , 8AH),DMA傳送隨即被啟動(dòng),數(shù)據(jù)場(chǎng)由RAM拷貝到發(fā)送緩存器,置發(fā)送請(qǐng)求位(CANCON.0)后數(shù)據(jù)開(kāi)始發(fā)送。 4 結(jié)束語(yǔ)   用高性能的P80C592和AD1674A數(shù)據(jù)采集模塊組成車(chē)輛環(huán)境數(shù)據(jù)采集系統(tǒng)具有較高的性?xún)r(jià)比,目前該系統(tǒng)已投入試用階段,運(yùn)行狀況良好。CAN總線(xiàn)非常適合分布式控制或適時(shí)控制的串行通信網(wǎng)絡(luò),本課題只涉及了數(shù)據(jù)采集,如果在此基礎(chǔ)上擴(kuò)展車(chē)輛輔助控制和重要數(shù)據(jù)備份功能,系統(tǒng)將會(huì)有更廣闊的應(yīng)用前景。 參考文獻(xiàn):   [1] 鄔寬明. CAN總線(xiàn)原理和應(yīng)用系統(tǒng)設(shè)計(jì). 北京航空航天大學(xué)出版社. 1996

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:輕軌精整PLC智能控制系統(tǒng)

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。