閆鵬
【摘要】 本文提出一種STM32F103系列RAM微控制器和CAN總線驅(qū)動器SN65HVD230為核心來搭建CAN節(jié)點。給出了CAN節(jié)點硬件架構(gòu)的實現(xiàn),分析了軟件開發(fā)流程,實現(xiàn)了數(shù)據(jù)穩(wěn)定可靠的傳輸。
【關(guān)鍵詞】 STM32F103 CAN總線 SN65HVD230
CAN總線以其較高的通訊速率、良好的抗電磁干擾能力可實現(xiàn)高可靠性串行通信,因而在工業(yè)現(xiàn)場、汽車、智能家居得到廣泛的運用,是當(dāng)前最具前景的現(xiàn)場總線之一。
一、CAN節(jié)點硬件架構(gòu)
1.1 硬件模塊介紹
SN65HVD230是德州儀器公司生產(chǎn)的CAN總線收發(fā)器。該收發(fā)器具有差分收發(fā)能力,最高速率可達1Mb/s。具有高速、斜率和等待3種不同的工作模式。其工作模式控制可通過Rs控制引腳來實現(xiàn)。在高速模式下,收發(fā)器的通信速率達到最高.此時沒有內(nèi)部輸出上升斜率和下降斜率的限制。該方式下,最大速率的限制與電纜的長度有關(guān)。為了減少因電平快速上升而引起的電磁干擾,引入了斜率控制方式。待機狀態(tài),系統(tǒng)只“聽”發(fā)送過來的消息。在“聽”狀態(tài)下,收發(fā)器的發(fā)送功能處于關(guān)斷狀態(tài),接收功能仍處于有效狀態(tài)。
1.2 電路設(shè)計實現(xiàn)
由于STM32F103單片機自帶一路CAN控制器,所以只需外設(shè)一片CAN收發(fā)器芯片。RAM單片機的CAN信號接收引腳RX和發(fā)送引腳TX直接連接到CAN收發(fā)器T的RXD和TXD端。CANH與CANL之間接一個120歐姆的終端電阻,主要用于遠距離傳輸時的阻抗匹配和增強電磁兼容性能。如圖1 CAN節(jié)點電路設(shè)計所示。
二、軟件設(shè)計
2.1 SN65HVD230初始化配置
在程序初始化中對CAN控制器的一些內(nèi)部寄存器進行設(shè)置,位定時器BCR1、BCR2的內(nèi)容確定系統(tǒng)的通信波特率和同步跳轉(zhuǎn)寬度,兩個寄存器的設(shè)置必須使本節(jié)點和其他節(jié)點有相同的通信波特率,否則通信無法完成。CAN控制器對總線的通信管理有發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。當(dāng)本節(jié)點需要向其他節(jié)點傳送數(shù)據(jù)時,CAN控制器將發(fā)送郵箱中的數(shù)據(jù)按規(guī)定的格式發(fā)送到CAN總線上,總線上其他節(jié)點根據(jù)設(shè)計好的驗收碼和驗收屏蔽碼來判斷是否接收該數(shù)據(jù)。其他節(jié)點發(fā)送到CAN總線上的數(shù)據(jù),如果其描述符不能通過本節(jié)點的驗收濾波器,CAN控制器不對該數(shù)據(jù)驗收;如果描述符通過本節(jié)點驗收濾波器,CAN控制器將CAN總線上的數(shù)據(jù)順序存入空的接收郵箱中,并向RAM發(fā)送中斷請求,RAM 響應(yīng)中斷,把接收郵箱中的數(shù)據(jù)取出。
2.2數(shù)據(jù)的接收
系統(tǒng)各節(jié)點的功能主要是將本節(jié)點的數(shù)據(jù)傳送給網(wǎng)絡(luò)其他節(jié)點,以及接收網(wǎng)絡(luò)上其他節(jié)點傳送來的數(shù)據(jù)。下面給出測量單元向CAN 總線發(fā)送數(shù)據(jù)的程序流程圖,系統(tǒng)的時為8MHz,控制器的波特率設(shè)置為500kbps。如圖2所示,即為CAN節(jié)點數(shù)據(jù)收發(fā)程序流程圖。
三、結(jié)束語
本文提出的基于RAM的CAN 智能節(jié)點控制器,既考慮了CAN總線實現(xiàn)的簡單化,又兼顧了智能節(jié)點的應(yīng)用于不同場合時的可擴展性和靈活性。該智能節(jié)點集成度高、性能穩(wěn)定,是適合工業(yè)測控領(lǐng)域的一種理想實現(xiàn)方案。
參 考 文 獻
[1] 肖廣兵,萬茂松.基于STM32的系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2013:74—75.
[2] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1996.
[3] 吳恒,夏立.基于CAN總線的船舶火災(zāi)報警系統(tǒng)的設(shè)計[J].青島大學(xué)學(xué)報,2004,17:67—70.