汽車診斷技術是汽車安全技術中不可缺少的一部分,它能在汽車發生故障時及時地進行語音報警,避免事故的發生。CAN即控制器局域網,是國際上應用最廣泛的現場總線之一。由于CAN總線技術的優良特性,在汽車電氣系統以及其他一些實時控制單元中得到廣泛應用。一種基于CAN總線的通信網絡具有速度高、抗噪性強及通用性好等優點。 我們設計的基于CAN總線技術的卡車語音報警系統能給汽車乘員提供一個安全的駕乘環境。該語音報警系統采用了摩托羅拉公司的M68HC908GZ16微控制器,該微控制器尺寸小,資源齊全,具有很高的性價比。 1 CAN總線位定時 CAN總線采用同步串行通信方式,數據流中的字符與字符之間、字符內部的位與位之間都同步,這就要求收/發雙方必須以同步時鐘來控制數據的發送和接收。要在相當長的數據流中保持位同步,接收端必須能識別每個二進制位是從什么時刻開始的,這就是位定時。通常為保證接收器時鐘和發送器時鐘嚴格一致,采用接收器通過解調器從數據流中提取同步信號,或者接收器和發送器使用統一的時鐘的方法。但是即便這樣,仍然很難解決總線傳輸延時問題。針對以上問題,CAN總線的位定時改進了位編碼/解碼。 CAN總線位定時由4部分組成:同步段(SYNC_SEG)、傳播段(PROP_SEG)、相位段1(PHASE_SEG1)和相位段 2(PHASE_SEG2)。同步段用于同步總線上的各節點,在此段等待一個跳邊沿;傳播段用于補償網絡內的物理延遲時間;相位段1及相位段2用做補償相位誤差。在采樣點讀總線電平。 M68HC908GZ16微控制器(見圖1)中內置CAN控制器,提供了波特率控制寄存器;SJW(重同步跳轉寬度)決定了一次重同步期間一個位時間被延長或縮短的時間量子;BRP為波特率預分頻系數;Spl(采樣模式位)決定對有效位采樣的次數。 圖1 MC68HC908GZ16的內部結構 位定時主要用于定義CAN總線通信的速率,對同一總線上的各個節點應定義同一種通信速率,否則無法進行通信聯系。CAN控制器的總線工作頻率計算公式如下: 式中:BRP為系統預分頻因子,它在TSEG1域中的取值范圍為0~63;TSEG1、TSEG2的值由位定時寄存器編程決定,并滿足 1≤TSEG1≤7,2≤TSEG2≤15。報警器中位定時的設置,定義通信頻率為250KB/s。設定 DSC="BRP"=1,TSEG1+TSEG2=5,系統晶振頻率為8MHz,即XTAL=8MHz,CAN通信頻率由上式計算得到250KB/s。 最后位定時設置結果為:BRP=1,TSEG2=2,TSEG1=3。 圖2 語音報警系統結構 2 設計概述 該卡車語音報警系統的設計目標是:成本低;功能強大;適用于日常應用;能夠應用于各類車輛。該系統可實現如下功能:利用CAN網絡實現對卡車故障碼的接收;二,通過識別CAN系統傳過來的信號,并對信號進行處理得到相應的語音提示,通過與語音芯片的連接實現相應故障的語音播放報警。 該語音報警系統以摩托羅拉公司的MC68HC908GZ16處理器為核心,并利用其豐富的接口擴展使用了語音播放、CAN通信接口等外圍模塊,使產品設計更加人性化。 MC68HC908GZ16處理器具有如下優點: 1).豐富的硬件資源 MC68HC908GZ16為閃存型MCU,內部擁有16K的FLASH存儲空間和1K的RAM存儲空間。內部擁有鎖相環電路,能夠在使用低速晶振的情況下使總線頻率最高達到8MHz。同時擁有多達37個通用I/O口,可以方便地與其他外圍設備相連接。 圖3 卡車報警器電路原理圖 2).極強的抗擾能力 內部集成了CAN控制器,利用CAN通信具有很強的抗干擾這一特點,保證了產品能夠在惡劣環境條件下高效而穩定地運行。 本設計采用CAN通信的方式完成卡車語音報警系統的設計,系統結構如圖2所示。 通過MC68HC908GZ16上集成的MSCAN08模塊實現數據通信。利用C68HC908GZ16的I/O口,我們在設計中使用了市場上常見的ISD公司的ISD4002-120數碼語音芯片。該芯片采用3V直流供電,可以錄制并保存2min的語音信息。其采樣頻率為8kHz,信息分辨率可達200ms,能夠非常真實地再現語音、音樂、聲調和效果音。 3 硬件設計 從圖3可以看出,卡車報警器電路主要由三部分構成:微控制器MC68HC908GZ16(內部集成的MSCAN08模塊)、語音芯片 ISD4002和CAN總線收發器TLE6250、ZJYS。微控制器負責MSCAN08模塊的初始化,通過CAN模塊實現數據的接收和發送等通信任務。 CAN通信控制模塊主要完成CAN的通信協議。CAN控制模塊可完成物理層和數據鏈路層的所有功能,適用于汽車及一般的工業環境。利用CAN通信不但可以減少導線連接,而且能增強診斷和監控能力。 CAN收發器TLE6250用于提供對總線差動發送和接收的驅動能力,具有輸出信號CANH和CANL的最佳匹配、電磁輻射更低、無待機模式等優點。CANH和CANL與地之間并聯兩個25PF的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射作用。 4 軟件描述 軟件編程主要實現兩大功能:利用總線進行故障碼接收;通過轉換故障碼實現相應的語音故障報警。語音播放根據其功能設計,整個程序大部分操作在主程序中完成,而CAN接收是在中斷中完成。 主程序中的操作是初始化各寄存器、I/O端口,然后在死循環中根據標志位進行相應的處理,具體流程如圖4所示。 圖4 主程序流程圖 1).語音模塊軟件設計 語音模塊使用了ISD4002芯片。單片機通過I/O接口與ISD4002建立連接,并通過命令字的方式控制語音播放的地址,實現語音播放的控制。 2).CAN通信模塊軟件設計 在CAN總線編程時,需要定義一系列的控制字配置,并要在裝置上進行配置。其具體步驟包括:定義CAN控制寄存器、定義位定時、定義信息體屏蔽方式、信息體的初始化、信息體發送數據和信息體接收數據。 (1)MSCAN08模塊的初始化 MSCAN08模塊的初始化主要是定義通信速率。配置位定時寄存器以確定CAN的通信速率、配置全域屏蔽寄存器以確定濾波策略、初始化每個信息體。初始化信息體需要確定信息體類型(發送還是接收),設定符合CAN協議的ID、SRR、IDE和RTR。CAN通信首先要進行初始化。在完成 MSCAN08模塊的初始化以后,MSCAN08模塊就可以回到工作狀態,進行正常的通信任務。 (2)數據的接收與發送 報文的發送由CAN控制器獨立完成,微控制器只要將發送的數據傳送到發送MSCAN08模塊相應的發送信息體中,然后將命令寄存器中的“發送請求 ”標志置位即可。報文發送流程圖如圖5所示,在發送之前先做判斷。發送程序分為發送遠程幀和數據幀兩種。遠程幀無數據場,其程序流程圖如圖5(左)所示。 圖5 CAN發送和接收流程圖(左為發送流程,右為接收流程) MSCAN08模塊的接收非常靈活。如果根據CAN總線應用層協議規定好ID的含義,就可以通過設定3個屏蔽寄存器(1個全局的,2個特殊的)將需要的數據接收到消息緩沖區,將不需要的過濾掉,再通過讀當前消息緩沖區的ID確定數據所代表的含義。 AN82527報文接收主要有兩種方式:中斷方式和查詢方式,在該系統中采用了中斷方式。報文接收流程圖如圖5(右)所示。 5 小結 該卡車語音報警系統已經在臺架上進行了實驗,并在與其他控制器的臺架實驗中取得了良好的通信效果,能實現良好的語音報警功能。此外,該設計還需進行進一步的實車驗證,其基本設計思路也可應用于轎車中。 |