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