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