基于CAN通信的卡車(chē)語(yǔ)音報警器的設計
1.語(yǔ)音模塊軟件設計本文引用地址:http://dyxdggzs.com/article/157686.htm
語(yǔ)音模塊使用了ISD4002芯片。單片機通過(guò)I/O接口與ISD4002建立連接,并通過(guò)命令字的方式控制語(yǔ)音播放的地址,實(shí)現語(yǔ)音播放的控制。
在CAN總線(xiàn)編程時(shí),需要定義一系列的控制字配置,并要在裝置上進(jìn)行配置。其具體步驟包括:定義CAN控制寄存器、定義位定時(shí)、定義信息體屏蔽方式、信息體的初始化、信息體發(fā)送數據和信息體接收數據。
(1)MSCAN08模塊的初始化
MSCAN08模塊的初始化主要是定義通信速率。配置位定時(shí)寄存器以確定CAN的通信速率、配置全域屏蔽寄存器以確定濾波策略、初始化每個(gè)信息體。初始化信息體需要確定信息體類(lèi)型(發(fā)送還是接收),設定符合CAN協(xié)議的ID、SRR、IDE和RTR。CAN通信首先要進(jìn)行初始化。在完成 MSCAN08模塊的初始化以后,MSCAN08模塊就可以回到工作狀態(tài),進(jìn)行正常的通信任務(wù)。
(2)數據的接收與發(fā)送
報文的發(fā)送由CAN控制器獨立完成,微控制器只要將發(fā)送的數據傳送到發(fā)送MSCAN08模塊相應的發(fā)送信息體中,然后將命令寄存器中的“發(fā)送請求”標志置位即可。報文發(fā)送流程圖如圖5所示,在發(fā)送之前先做判斷。發(fā)送程序分為發(fā)送遠程幀和數據幀兩種。遠程幀無(wú)數據場(chǎng),其程序流程圖如圖5(左)所示。
圖5 CAN發(fā)送和接收流程圖(左為發(fā)送流程,右為接收流程)
MSCAN08模塊的接收非常靈活。如果根據CAN總線(xiàn)應用層協(xié)議規定好ID的含義,就可以通過(guò)設定3個(gè)屏蔽寄存器(1個(gè)全局的,2個(gè)特殊的)將需要的數據接收到消息緩沖區,將不需要的過(guò)濾掉,再通過(guò)讀當前消息緩沖區的ID確定數據所代表的含義。AN82527報文接收主要有兩種方式:中斷方式和查詢(xún)方式,在該系統中采用了中斷方式。報文接收流程圖如圖5(右)所示。
小結
該卡車(chē)語(yǔ)音報警系統已經(jīng)在臺架上進(jìn)行了實(shí)驗,并在與其他控制器的臺架實(shí)驗中取得了良好的通信效果,能實(shí)現良好的語(yǔ)音報警功能。此外,該設計還需進(jìn)行進(jìn)一步的實(shí)車(chē)驗證,其基本設計思路也可應用于轎車(chē)中。
評論