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