一種卡車語音報警器的設(shè)計和實現(xiàn)
20世紀(jì)40年代,汽車診斷雖然應(yīng)用一些簡單的測試儀表,但主要還是靠人的直觀檢查和判斷。從50年代開始,陸續(xù)研制成多種能進(jìn)行汽車技術(shù)狀況綜合診斷的設(shè)備,從而導(dǎo)致專門汽車診斷工段或診斷站的建立。日本、英、美等國家還確定了對汽車作年度或定期監(jiān)督檢驗的制度,并規(guī)定了具體的檢驗項目和內(nèi)容。70年代中期又相繼出現(xiàn)了半自動診斷系統(tǒng)和全自動診斷系統(tǒng)。在備有全自動診斷系統(tǒng)的汽車上,設(shè)有中心診斷插座,利用電子計算機(jī)控制測試設(shè)備,由車內(nèi)自檢電路得到檢驗數(shù)據(jù)并進(jìn)行顯示評價。這種診斷方法已進(jìn)入實用階段。
我們設(shè)計的基于CAN總線技術(shù)的卡車語音報警系統(tǒng)能給汽車乘員提供一個安全的駕乘環(huán)境。該語音報警系統(tǒng)采用了摩托羅拉公司的M68HC908GZ16微控制器,該微控制器尺寸小,資源齊全,具有很高的性價比。
CAN總線位定時
CAN總線采用同步串行通信方式,數(shù)據(jù)流中的字符與字符之間、字符內(nèi)部的位與位之間都同步,這就要求收/發(fā)雙方必須以同步時鐘來控制數(shù)據(jù)的發(fā)送和接收。要在相當(dāng)長的數(shù)據(jù)流中保持位同步,接收端必須能識別每個二進(jìn)制位是從什么時刻開始的,這就是位定時。通常為保證接收器時鐘和發(fā)送器時鐘嚴(yán)格一致,采用接收器通過解調(diào)器從數(shù)據(jù)流中提取同步信號,或者接收器和發(fā)送器使用統(tǒng)一的時鐘的方法。但是即便這樣,仍然很難解決總線傳輸延時問題。針對以上問題,CAN總線的位定時改進(jìn)了位編碼/解碼。
CAN總線位定時由4部分組成:同步段(SYNC_SEG)、傳播段(PROP_SEG)、相位段1(PHASE_SEG1)和相位段 2(PHASE_SEG2)。同步段用于同步總線上的各節(jié)點,在此段等待一個跳邊沿;傳播段用于補(bǔ)償網(wǎng)絡(luò)內(nèi)的物理延遲時間;相位段1及相位段2用做補(bǔ)償相位誤差。在采樣點讀總線電平。
M68HC908GZ16微控制器(見圖1)中內(nèi)置CAN控制器,提供了波特率控制寄存器;SJW(重同步跳轉(zhuǎn)寬度)決定了一次重同步期間一個位時間被延長或縮短的時間量子;BRP為波特率預(yù)分頻系數(shù);Spl(采樣模式位)決定對有效位采樣的次數(shù)。
圖1 MC68HC908GZ16的內(nèi)部結(jié)構(gòu)
位定時主要用于定義CAN總線通信的速率,對同一總線上的各個節(jié)點應(yīng)定義同一種通信速率,否則無法進(jìn)行通信聯(lián)系。CAN控制器的總線工作頻率計算公式如下:
式中:BRP為系統(tǒng)預(yù)分頻因子,它在TSEG1域中的取值范圍為0~63;TSEG1、TSEG2的值由位定時寄存器編程決定,并滿足 1≤TSEG1≤7,2≤TSEG2≤15。報警器中位定時的設(shè)置,定義通信頻率為250KB/s。設(shè)定 DSC="BRP"=1,TSEG1+TSEG2=5,系統(tǒng)晶振頻率為8MHz,即XTAL=8MHz,CAN通信頻率由上式計算得到250KB/s。
最后位定時設(shè)置結(jié)果為:BRP=1,TSEG2=2,TSEG1=3。
圖2 語音報警系統(tǒng)結(jié)構(gòu)
設(shè)計概述
該卡車語音報警系統(tǒng)的設(shè)計目標(biāo)是:成本低;功能強(qiáng)大;適用于日常應(yīng)用;能夠應(yīng)用于各類車輛。該系統(tǒng)可實現(xiàn)如下功能:利用CAN網(wǎng)絡(luò)實現(xiàn)對卡車故障碼的接收;二,通過識別CAN系統(tǒng)傳過來的信號,并對信號進(jìn)行處理得到相應(yīng)的語音提示,通過與語音芯片的連接實現(xiàn)相應(yīng)故障的語音播放報警。
該語音報警系統(tǒng)以摩托羅拉公司的MC68HC908GZ16處理器為核心,并利用其豐富的接口擴(kuò)展使用了語音播放、CAN通信接口等外圍模塊,使產(chǎn)品設(shè)計更加人性化。MC68HC908GZ16處理器具有如下優(yōu)點:
1.豐富的硬件資源
MC68HC908GZ16為閃存型MCU,內(nèi)部擁有16K的FLASH存儲空間和1K的RAM存儲空間。內(nèi)部擁有鎖相環(huán)電路,能夠在使用低速晶振的情況下使總線頻率最高達(dá)到8MHz。同時擁有多達(dá)37個通用I/O口,可以方便地與其他外圍設(shè)備相連接。
圖3 卡車報警器電路原理圖
2.極強(qiáng)的抗擾能力
內(nèi)部集成了CAN控制器,利用CAN通信具有很強(qiáng)的抗干擾這一特點,保證了產(chǎn)品能夠在惡劣環(huán)境條件下高效而穩(wěn)定地運(yùn)行。
本設(shè)計采用CAN通信的方式完成卡車語音報警系統(tǒng)的設(shè)計,系統(tǒng)結(jié)構(gòu)如圖2所示。
通過MC68HC908GZ16上集成的MSCAN08模塊實現(xiàn)數(shù)據(jù)通信。利用C68HC908GZ16的I/O口,我們在設(shè)計中使用了市場上常見的ISD公司的ISD4002-120數(shù)碼語音芯片。該芯片采用3V直流供電,可以錄制并保存2min的語音信息。其采樣頻率為8kHz,信息分辨率可達(dá)200ms,能夠非常真實地再現(xiàn)語音、音樂、聲調(diào)和效果音。
硬件設(shè)計
從圖3可以看出,卡車報警器電路主要由三部分構(gòu)成:微控制器MC68HC908GZ16(內(nèi)部集成的MSCAN08模塊)、語音芯片 ISD4002和CAN總線收發(fā)器TLE6250、ZJYS.微控制器負(fù)責(zé)MSCAN08模塊的初始化,通過CAN模塊實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。 CAN通信控制模塊主要完成CAN的通信協(xié)議。CAN控制模塊可完成物理層和數(shù)據(jù)鏈路層的所有功能,適用于汽車及一般的工業(yè)環(huán)境。利用CAN通信不但可以減少導(dǎo)線連接,而且能增強(qiáng)診斷和監(jiān)控能力。
CAN收發(fā)器TLE6250用于提供對總線差動發(fā)送和接收的驅(qū)動能力,具有輸出信號CANH和CANL的最佳匹配、電磁輻射更低、無待機(jī)模式等優(yōu)點。CANH和CANL與地之間并聯(lián)兩個25PF的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射作用。
軟件描述
軟件編程主要實現(xiàn)兩大功能:利用總線進(jìn)行故障碼接收;通過轉(zhuǎn)換故障碼實現(xiàn)相應(yīng)的語音故障報警。語音播放根據(jù)其功能設(shè)計,整個程序大部分操作在主程序中完成,而CAN接收是在中斷中完成。
評論