久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 電源與新能源 > 設計應用 > 單線CAN總線隔離中繼器的設計

單線CAN總線隔離中繼器的設計

作者: 時間:2013-08-22 來源:網絡 收藏

3 軟件設計
3.1 初始化子程序
的CAN控制器初始化直接關系到CAN控制器能否正常工作。的CAN控制器初始化主要包括CAN基本單元和過濾器的初始化。因為ST公司推出了一套針對于的固件庫,所以只需在程序開始時做出相應的設置即可。在該初始化子程序中關鍵的環節是設置CAN的波特率,STM32數據手冊中的波特率的計算公式如下:
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寄存器中設置,STM32的CAN時鐘有APB1提供。假設系統時鐘為72 MHz,APB1為系統時鐘的9分頻,結合初始化子程序,BRP[9:0]=0、TS1[3:0]=7、TS2[2:0]=6,代入波特率計算公式即可求的其波特率為500Kb/s。在該中,CAN控制器的過濾器設置工作在屏蔽位模式下,對標識符的任何一位采用必須匹配或不用關心的原則處理。在中,由于需要轉發所有總線上的數據,則過濾器不必詳細設置,只需設置接收任何ID號的數據即可。
3.2 數據轉發子程序
的任務實質上就是實現報文的轉發。STM32F105內部集成了雙bxCAN控制器,它包括3個發送郵箱和2個3級深度的FIFO。結合STM32 F105的特性,采用雙FIFO的轉發機制,其原理如圖3所示。依據圖3,當STM32F105接收到新的報文時,經過數據處理模塊處理,在數據轉發進程的管理下,對兩路bxCAN控制器的接收FIFO緩沖區進行監視,如某一路緩沖區非空則向另一路轉發。

本文引用地址:http://cqxgywz.com/article/175746.htm

d.JPG


STM32F105發送報文的流程為:應用程序選擇1個空置的發送郵箱;設置標識符、數據長度和待發送數據;然后對CAN_TIxR寄存器的TXRQ位置1,來請求發送。TXRQ位置1后,郵箱就不再是空郵箱;一旦郵箱不再為空置,軟件對郵箱寄存器就不再有寫的權限。TXRQ位置1后,郵箱馬上進入掛號狀態,并等待成為最高優先級的郵箱。一旦郵箱成為最高優先級的郵箱,其狀態就變為預定發送狀態。當進人空閑狀態,預定發送郵箱中的報文就馬上被發送。在郵箱中的報文被成功發送后,它馬上變為空置郵箱;硬件相應地對CAN_TSR寄存器的RQCP和TXOK位置1,表明一次成功發送。
為了提高中繼器數據傳輸的實時性,CAN報文的接收采用中斷方式。所以在CAN初始化過程中應使能CAN1和CAN2外設中斷,并設置其相應的中斷向量表,設定其相應的中斷等級。數據接收模塊流程如圖4所示。

e.JPG


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

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


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉