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