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