新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 單線CAN總線隔離中繼器的設(shè)計

單線CAN總線隔離中繼器的設(shè)計

作者: 時間:2013-08-22 來源:網(wǎng)絡(luò) 收藏

3 軟件設(shè)計
3.1 初始化子程序
的CAN控制器初始化直接關(guān)系到CAN控制器能否正常工作。的CAN控制器初始化主要包括CAN基本單元和過濾器的初始化。因為ST公司推出了一套針對于的固件庫,所以只需在程序開始時做出相應(yīng)的設(shè)置即可。在該初始化子程序中關(guān)鍵的環(huán)節(jié)是設(shè)置CAN的波特率,STM32數(shù)據(jù)手冊中的波特率的計算公式如下:
c.JPG
其中tq=(BRP[9:0]+1)xtPCLK。如上述CAN單元初始化子程序中:tBS1=tq×(TS1[3:0]+1),tBS2=tqx(TS2[2:0]+1),BRP[9:0]、TS1[3:0]和TS2[2:0]均在CAN_BTR寄存器中設(shè)置,STM32的CAN時鐘有APB1提供。假設(shè)系統(tǒng)時鐘為72 MHz,APB1為系統(tǒng)時鐘的9分頻,結(jié)合初始化子程序,BRP[9:0]=0、TS1[3:0]=7、TS2[2:0]=6,代入波特率計算公式即可求的其波特率為500Kb/s。在該中,CAN控制器的過濾器設(shè)置工作在屏蔽位模式下,對標(biāo)識符的任何一位采用必須匹配或不用關(guān)心的原則處理。在中,由于需要轉(zhuǎn)發(fā)所有總線上的數(shù)據(jù),則過濾器不必詳細(xì)設(shè)置,只需設(shè)置接收任何ID號的數(shù)據(jù)即可。
3.2 數(shù)據(jù)轉(zhuǎn)發(fā)子程序
的任務(wù)實質(zhì)上就是實現(xiàn)報文的轉(zhuǎn)發(fā)。STM32F105內(nèi)部集成了雙bxCAN控制器,它包括3個發(fā)送郵箱和2個3級深度的FIFO。結(jié)合STM32 F105的特性,采用雙FIFO的轉(zhuǎn)發(fā)機制,其原理如圖3所示。依據(jù)圖3,當(dāng)STM32F105接收到新的報文時,經(jīng)過數(shù)據(jù)處理模塊處理,在數(shù)據(jù)轉(zhuǎn)發(fā)進(jìn)程的管理下,對兩路bxCAN控制器的接收FIFO緩沖區(qū)進(jìn)行監(jiān)視,如某一路緩沖區(qū)非空則向另一路轉(zhuǎn)發(fā)。

本文引用地址:http://butianyuan.cn/article/175746.htm

d.JPG


STM32F105發(fā)送報文的流程為:應(yīng)用程序選擇1個空置的發(fā)送郵箱;設(shè)置標(biāo)識符、數(shù)據(jù)長度和待發(fā)送數(shù)據(jù);然后對CAN_TIxR寄存器的TXRQ位置1,來請求發(fā)送。TXRQ位置1后,郵箱就不再是空郵箱;一旦郵箱不再為空置,軟件對郵箱寄存器就不再有寫的權(quán)限。TXRQ位置1后,郵箱馬上進(jìn)入掛號狀態(tài),并等待成為最高優(yōu)先級的郵箱。一旦郵箱成為最高優(yōu)先級的郵箱,其狀態(tài)就變?yōu)轭A(yù)定發(fā)送狀態(tài)。當(dāng)進(jìn)人空閑狀態(tài),預(yù)定發(fā)送郵箱中的報文就馬上被發(fā)送。在郵箱中的報文被成功發(fā)送后,它馬上變?yōu)榭罩绵]箱;硬件相應(yīng)地對CAN_TSR寄存器的RQCP和TXOK位置1,表明一次成功發(fā)送。
為了提高中繼器數(shù)據(jù)傳輸?shù)膶崟r性,CAN報文的接收采用中斷方式。所以在CAN初始化過程中應(yīng)使能CAN1和CAN2外設(shè)中斷,并設(shè)置其相應(yīng)的中斷向量表,設(shè)定其相應(yīng)的中斷等級。數(shù)據(jù)接收模塊流程如圖4所示。

e.JPG


另外,假設(shè)上A點發(fā)出的數(shù)據(jù)總時間為t,則在軟中繼器另一側(cè)B點接收到該數(shù)據(jù)的最短時間為t。當(dāng)總線速率不大且對各總線設(shè)備時序要求不高時,該時間可以忽略。但在一些節(jié)點間交換數(shù)據(jù)頻繁的系統(tǒng),則須注意這個問題,盡量使其對系統(tǒng)的影響降至最低。

4 結(jié)論
該CAN總線中繼器充分利用內(nèi)部集成雙bxCAN控制器簡化了硬件電路的設(shè)計,及豐富的固件庫函數(shù)縮短了開發(fā)周期。實踐表明,該單線CA N總線隔離中繼器完成了各項設(shè)計指標(biāo),符合工程的要求,在液壓支架電液控制系統(tǒng)中能夠有效的完成數(shù)據(jù)的轉(zhuǎn)發(fā)和網(wǎng)絡(luò)的拓展,具有較高的實用價值。


上一頁 1 2 下一頁

關(guān)鍵詞: CAN總線 STM32 中繼器 MC33897

評論


相關(guān)推薦

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

關(guān)閉