基于CAN總線的單片機與數字信號處理器通信系統設計
3 數字信號處理器與單片機通信系統軟件設計
數字信號處理器與單片機組成的CAN總線通信系統進行數據通信時,應約定通信協議,如幀格式、波特率、標識符等。各節點軟件設計均包括數據發送和接收子程序以及CAN總線控制器初始化子程序。這里著重研究CAN總線控制器的初始化。
3.1 單片機通信系統軟件設計
單片機CAN通信系統軟件設計主要是指SJA1000總線控制器的初始化程序設計。
CAN總線控制器初始化程序主要是通過對SJA1000寄存器寫入相應的控制字,從而確定SJA1000的工作方式。SJA1000需要初始化的寄存器有:模式寄存器MODE、時鐘分頻寄存器CDR、接收代碼寄存器ACR、接收屏蔽寄存器AMR、中斷使能寄存器IER、總線定時寄存器BTR、輸出控制寄存器OCR等。其中,總線定時寄存器BTR的值決定CAN通信波特率,而波特率正確與否,是數字信號處理器與單片機實現CAN通信的關鍵。因為這些寄存器僅能在SJA1000復位期間進行寫訪問,因此在對這些寄存器初始化之前,必須確保系統進入復位狀態,在初始化后,須清除復位請求位,使SJA1000返回正常運行狀態,其初始化子程序如下:
3.2 數字信號處理器通信系統軟件設計
在使用數字信號處理器CAN控制器前必須對它的一些內部寄存器進行設置,如對位定時器的設置及對郵箱進行初始化。位定時器主要由CANBCR1和CANBCR2兩個寄存器組成,配置對位定時器也就是設置這兩個寄存器,其值決定了CcAN控制器的通信波特率、同步跳轉寬度、采樣次數和重同步方式等。對郵箱初始化主要是對郵箱進行配置,設置郵箱的標識符以及接收濾波器的設置等。 CAN控制器初始化子程序如下:
4 結 語
單片機與數字信號處理器CAN總線通信系統實驗過程中,發送端采用查詢方式,接收端采用中斷方式,利用鍵盤改變發送數據,接收端利用液晶顯示器實時顯示接收數據。反復試驗表明,該系統工作穩定性較高;該系統硬件電路或軟件程序稍加改動可用于單片機與數字信號處理器或數字信號處理器與數字信號處理器等雙 CPU或多CPU測控系統中,且應用前景廣闊。
評論