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