Cortex-M3內核芯片LM3S2965的CAN總線(xiàn)節點(diǎn)設計
其中,ulMsglD用作11或29位標識符的CAN報文標識符;ulMsgIDMask為在使能標識符過(guò)濾器時(shí)所使用的報文標識符屏蔽;ulFlags保存多個(gè)狀態(tài)標志和tCANObjFlags所指定的設置;ulMsgLen是報文對象中的數據字節數;pucMsgData是指向報文對象的數據的指針。
此結構是對與CAN控制器中一個(gè)CAN報文對象相關(guān)的項目進(jìn)行的壓縮??梢灾苯訉⑦@個(gè)對象的信息填充,即進(jìn)行對象的賦值工作。下面的代碼是程序中CAN接口部分的初始化部分:

上面的這些函數都已經(jīng)通過(guò)提供的API函數完成工作,CANConfigureNetwork函數要自己編寫(xiě),代碼如下:本文引用地址:http://dyxdggzs.com/article/156719.htm
這里僅僅是對前文介紹的對象進(jìn)行賦值,是將系統中真正用到的對象配置成我們需要的對象(包括是發(fā)送還是接收)。此處鑒于篇幅只給出了兩個(gè)對象,一個(gè)用于發(fā)送數據,一個(gè)用于接收數據。上面的函數設置好后就可以通過(guò)CAN中斷控制器來(lái)接收和發(fā)送數據。上述程序代碼在Keil C3.78版本上調試編譯通過(guò),并且已經(jīng)成功用于產(chǎn)品中。
結語(yǔ)
本文介紹的CAN總線(xiàn)接口節點(diǎn)設計方案實(shí)現非常方便,硬件電路簡(jiǎn)單,軟件設計模塊化,可以應用此方案設計實(shí)用的系統。本文的接口就是稱(chēng)重儀表的一部分,可以直接將儀表與傳感器組成的稱(chēng)重系統接入現有的分布式網(wǎng)絡(luò )中。
評論