單片機和MCP2510的CAN總線通信模塊設計
圖3 CAN總線遠程監(jiān)測系統(tǒng)網(wǎng)絡結構
節(jié)點控制器的MCU可選用具有SPI接口的微處理器,也可采用不帶SPI接口的微處理器。本系統(tǒng)采用的是不帶SPI接口的微處理器AT89C51。AT89C51可通過P1口與CAN控制器的SPI接口直接相連,并用軟件算法來實現(xiàn)SPI接口協(xié)議。CAN總線收發(fā)器TJA1050則作為MCP2510與物理總線的接口。如果需要進一步提高系統(tǒng)的抗干擾能力,則可在MCP2510和TJA1050之間再加一個光電隔離器。
智能節(jié)點電路原理圖如圖4所示。
圖4 智能節(jié)點電路原理圖
2.1 軟件設計
MCP2510正常工作之前, 需要進行正確的初始化,包括設置SPI接口的數(shù)據(jù)傳輸速率、CAN通信的波特率、MCP2510的接收過濾器和屏蔽器以及發(fā)送和接收中斷允許標志位等。與SJA1000不同的是,單片機對MCP2510的接收緩沖器和發(fā)送緩沖器的操作,必須通過SPI接口用MCP2510內(nèi)置讀寫命令來完成。其讀、寫命令時序圖如圖5和圖6所示。
圖5 SPI讀命令時序圖
圖6 SPI寫命令時序圖
評論