基于STC89C51的CAN總線(xiàn)點(diǎn)對點(diǎn)通信模塊設計
3 CAN系統軟件設計
STC89C51的軟件設計由MCU初始化、SJAl000初始化、SJAl000的接收發(fā)送和數據顯示模塊等構成。其系統軟件設計圖如圖5所示。
3.1 SJAl000初始化軟件設計
SJAl000的初始化程序設計主要是通過(guò)對SJAl000的寄存器寫(xiě)入相應的控制字,從而確定SJAl000的工作方式。在對SJAl000的寄存器寫(xiě)入控制字時(shí),要在SJAl000的復位模式下采用軟件復位模式。其初始化流程圖如圖6所示。
3.2 SJAl000數據發(fā)送軟件設計
報文的發(fā)送通常是由CAN控制器根據CAN協(xié)議規范自動(dòng)完成的。首先由CPU將要發(fā)送的報文傳送到發(fā)送緩沖器中,并置位命令寄存器中的發(fā)送請求標志。其發(fā)送流程圖如圖7所示。
3.3 SJAl000接收數據軟件設計
CPU以一定的周期讀取CAN控制器的狀態(tài)寄存器,從而檢查接收緩沖區的轉臺標志,指示是否至少接收到一個(gè)報文。當接收緩沖區狀態(tài)標志指示為“空”時(shí),表示沒(méi)有接收到報文;在沒(méi)有新的檢查接收緩沖區狀態(tài)的要求前,CPU則繼續當前的任務(wù)。
數字通信相關(guān)文章:數字通信原理
評論