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