基于CAN總線的家庭控制器的設計與實現(xiàn)
中繼器采用特定的控制邏輯控制一對CAN收發(fā)器82C250.CAN收發(fā)器背-背相接,連接兩個物理上獨立的CAN網(wǎng),雙向傳輸數(shù)據(jù)。從物理層上看,中繼器實現(xiàn)CAN總線信號的透時中繼。
軟件設計
上位機軟件
采用Visual Basic 6.0開發(fā)軟件。分兩大功能模塊:高層系統(tǒng)管理模塊和低層通信模塊。程序流程圖如圖4所示。
實現(xiàn)與上位機及其它節(jié)點的信息交換。
在軟件設計中, 遵循模塊化設計思想,采用結構化程序設計方案,使之具有良好的模塊性、可修改性和可移值性。
CAN總線系統(tǒng)的初始化設計是軟件設計的關鍵,這一部分設計不好,系統(tǒng)將不可能正常工作。因此初始化設計是一個難點,又是一個重點。
在初始化之前,應設置輸出控制寄存器(OCR)的復位請求位為高,再設置其它寄存器。控制寄存器(CR)設定中斷;命令寄存器(CMR)控制緩存器的接收狀態(tài);中斷寄存器(IR)、狀態(tài)寄存器(SR)查詢SJA1000的工作狀態(tài);接收碼寄存器(ACR)設定工作地址;接收屏蔽寄存器(AMR)設定工作形式,總線定時寄存器(BTR0、BTR1)設定工作頻率、采樣頻率;輸出控制寄存器(OCR)一般為正常輸出方式,最后應使復位請求位從高變低,使CAN 控制器進入正常工作狀態(tài)。因此,對CAN控制器進行初始化,實際上就是對ACR,AMR,BTR0,BTR1和OCR這些寄存器進行訪問。
成功地初始化SJA1000后,系統(tǒng)就可以應用它來傳輸報文。
結語
CAN總線以其高性能、高可靠性及其獨特的設計越來越受到人們的重視,并被公認為最有前途的總線之一。我們在家庭控制器系統(tǒng)中應用了這種總線技術,設計了硬件電路和軟件,并得到實際應用。
評論