基于CAN通信的卡車語音報警器的設計
1.語音模塊軟件設計本文引用地址:http://www.j9360.com/article/157686.htm
語音模塊使用了ISD4002芯片。單片機通過I/O接口與ISD4002建立連接,并通過命令字的方式控制語音播放的地址,實現語音播放的控制。
在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(右)所示。
小結
該卡車語音報警系統已經在臺架上進行了實驗,并在與其他控制器的臺架實驗中取得了良好的通信效果,能實現良好的語音報警功能。此外,該設計還需進行進一步的實車驗證,其基本設計思路也可應用于轎車中。
評論