基于AT91RM9200的CAN智能節點設計
2.2 CAN發送數據
當完成CAN的初始化后,即可使用3個發送緩沖器發送報文數據。由圖2(b)可知:在發送數據前,首先通過發送緩沖器N(N=O,1,2)控制寄存器TXBNCTRL終止報文發送,并設定發送緩沖器N報文發送的優先級;接著通過發送緩沖器N標準標識符高低位寄存器TXBNSIDH,TXBNSIDL設定標準標識符,如果報文采用擴展標識符,還需通過發送緩沖器N擴展標識符高低位寄存器TXBNEID8,TXBNEID0設定擴展標識符。當發送緩沖器N相關寄存器初始化后,發送任務處于休眠等待狀態。一旦有數據需要發送,即可將需要發送的數據(每次最多8 B)存放在發送緩沖器N的數據寄存器TXBND7~TXlBND0,并且通過送緩沖器N的數據長度寄存器TXBNDLC設定每次發送的字節數,最后通過發送緩沖器N控制寄存器TXB-NCTRL啟動數據發送。當數據發送完畢,發送任務又處于休眠等待狀態。
2.3 CAN接收數據
當完成CAN的初始化后,即可使用兩個接收緩沖器接收報文數據。由圖2(c)可知:在接收數據前,首先通過接收緩沖器N(N=0,1)控制寄存器RXBNCTRL,設定接收緩沖器的工作模式為接收符合濾波條件的所有帶擴展標識符或標準標識符的有效報文;如果允許MCP2510接收中斷,還需通過中斷使能寄存器CANINTE允許接收緩沖器N裝入報文時產生中斷。
當接收緩沖器N相關寄存器初始化后,接收任務處于休眠等待狀態。當接收任務通過輪詢或中斷方法發現需要接收數據時,它通過接收緩沖器N標準標識符高低位寄存器RXBNSIDH,RXBNSIDL獲取標準標識符;如果收到的報文是擴展幀,可通過RXBNSIDL及接收緩沖器N擴展標識符中間、低位寄存器RXBNEID8,RXBNEIDO獲取擴展標識符;通過接收緩沖器N數據長度碼寄存器RXBNDLC獲取接收到的數據字節個數,進而通過接收緩沖器N數據寄存器RBNDm7~RBNDm0獲取接收報文中的數據信息。當數據接收完畢,接收任務又處于休眠等待狀態。
3 軟硬件調試
當CAN智能節點的硬件和軟件設計完畢,需要對其進行軟、硬件的調試以驗證其設計的正確性。CAN智能節點軟、硬件調試按以下步驟依次進行:
(1)CAN自發、自收功能調試。只要在CAN初始化過程完成MCP2510相關寄存器的配置,將MCP2510設置為環回模式,即可使MCP2510器件內部發送緩沖器和接收緩沖器之間進行報文自發、自收,而無需通過CAN總線。本文引用地址:http://www.104case.com/article/162936.htm
(2)CAN通信功能調試。按照圖3所示方案進行CAN通信功能的調試。其中USB_CAN適配器采用武漢吉陽光電科技有限公司一款帶有USB接口和1路CAN接口的GY8507 USB_CAN總線適配器。通過該適配器,PC可以通過USB接口連接一個標準CAN網絡,從而與CAN智能節點通信。使用廠家提供的CANTools工具軟件可以方便進行CAN智能節點數據的發送和接收調試。
(3)CAN功能模塊調試。由于CAN智能節點具體實現的功能各異,不詳細介紹CAN功能模塊的調試。
4 結語
目前已完成CAN智能節點通信電路的軟、硬件設計及調試,并成功將軟件移植到VxWorks 5.5操作系統上運行。基于功能強大的AT91RM-9200處理器以及高可靠和強實時的VxWorks 5.5操作系統,容易構建出滿足應用需求的CAN智能節點。
評論