新聞中心

        EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > STM32的CAN總線中繼器設(shè)計(jì)及應(yīng)用

        STM32的CAN總線中繼器設(shè)計(jì)及應(yīng)用

        作者: 時(shí)間:2011-03-11 來源:網(wǎng)絡(luò) 收藏

        2 中繼器的軟件實(shí)現(xiàn)
        中繼器的主要任務(wù)是在兩個(gè)網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)的過濾和轉(zhuǎn)發(fā)。其軟件主要包括以下模塊:初始化模塊、數(shù)據(jù)發(fā)送模塊和接收模塊等。
        2.1 初始化模塊
        初始化直接關(guān)系到控制器能否正常工作,在很多情況下,軟件不能正常工作并不是CAN的收發(fā)程序有問題,往往是初始化配置不正確造成的。的CAN初始化主要包括CAN寄存器初始化、CAN單元初始化(包括CAN模式和波特率的設(shè)置)、CAN過濾器的初始化。由于開發(fā)商提供了大量的固件庫函數(shù),所以只需在調(diào)用的時(shí)間作出相應(yīng)的設(shè)置即可。初始化子程序如下所示:
        ①CAN單元初始化子程序。

        c.JPG
        在該初始化子程序中最關(guān)鍵的環(huán)節(jié)是怎么設(shè)置CAN的波特率,數(shù)據(jù)手冊(cè)給出了波特率的計(jì)算公式:
        d.JPG
        其中tq為CAN時(shí)鐘周期。如上述CAN單元初始化子程序中:SJW=tq,BS1=8tq,BS2=7tq,STM32的CAN時(shí)鐘有APB1提供。假設(shè)系統(tǒng)時(shí)鐘為72 MHz,APB1為系統(tǒng)時(shí)鐘的9分頻,結(jié)合初始化子程序,CAN_Prescaler=1,帶入波特率計(jì)算公式即可求的其波特率為500 kb/s。
        ②CAN過濾器的初始化子程序。

        f.JPG
        CAN過濾器設(shè)置的得當(dāng)與否是CAN是否能夠成功接收信息的關(guān)鍵,尤其在過濾器組位寬和模式上,如何將節(jié)點(diǎn)的ID號(hào)準(zhǔn)確地映射到過濾器組位寬設(shè)置寄存器上是過濾器的核心。為了過濾出一組標(biāo)識(shí)符,設(shè)置過濾器工作在屏蔽位模式下,對(duì)標(biāo)識(shí)符的任何一位采用“必須匹配”或“不用關(guān)心”的原則處理。



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 高尔夫| 天长市| 华坪县| 广宁县| 灵寿县| 临潭县| 合江县| 大同市| 枣庄市| 彩票| 建昌县| 汉源县| 临沧市| 西畴县| 兰坪| 迭部县| 巴青县| 衡东县| 玛多县| 深圳市| 盱眙县| 呼伦贝尔市| 无棣县| 仙桃市| 庆云县| 喀喇| 石景山区| 罗江县| 奈曼旗| 娱乐| 通渭县| 修武县| 榆林市| 卢氏县| 砚山县| 吉隆县| 平利县| 如东县| 丹东市| 济阳县| 雷州市|