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