基于CAN總線的客房通信控制器的設計
SJA1000在邏輯上實現了傳輸數據的編碼和解碼,若要與物理線路連接,還必須借助總線驅動器82C250,以增強CAN總線的差動發送和接收驅動能力。為了增強CAN 總線節點的抗干擾能力,防止線路間串擾,SJA1000 的TX0 和RXO 并不是直接與82C250 的TXD 和RXD 相連,而是通過高速光耦6N137 后再與82C250 相連;另外,CAN總線驅動器采用帶隔離的DC/DC模塊單獨供電,實現了通信控制器與CAN總線的隔離,提高系統的可靠性。
82C250的CANH和CANL引腳各自通過一熱敏電阻與CAN總線相連,當過流時電阻發熱阻值變大,保護82C250免受過流的沖擊。CANH和CANL與地之間并聯兩個小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。
RS232接口電路主要用于主控制器單片機與管理層中央服務器PC的雙向數據傳送。由于采用了標準的RS232串行通信,結構簡單、成本低。
控制器的其它外圍電路還有電源模塊、非易失性EEPROM存儲器、時鐘保持電路、LED指示燈和看門狗等。非易失性EEPROM存儲器采用具有2KB容量的AT24C02,用于保存系統配置參數及各節點的最新信息,便于管理層的查詢。時鐘保持電路選用涓流充電時鐘芯片DS1302,其內部含有實時時鐘和日歷,通過簡單的串行接口與單片機進行通信,用于給各節點控制器校時。同時,控制器還配置了4個LED指示燈,分別用于系統上電、CAN通信、RS232通信和系統通信故障的指示,以方便系統的調試和對控制器運行狀況的監測。本文引用地址:http://cqxgywz.com/article/157873.htm
4 系統軟件
CAN通信控制器的主要任務是過濾信息量,將現場層信息上傳給管理層,同時接收管理層的控制指令,對記錄數據或各CAN節點進行操作。CAN通信控制器同時還具有數據記錄和零點校時功能。因而控制器軟件設計主要包括四大部分:CAN通信、RS232通信、EEPROM數據的讀寫和系統時鐘DS1302的讀寫。其程序主流程圖如圖3所示。

圖3 控制器軟件流程圖
CAN通信軟件包括CAN初始化、報文的接收和報文發送三部分。當控制器上電后,首先對CAN控制器SJA1000進行初始化設置,主要包括工作方式的設置、接受濾波方式的設置、接受屏蔽寄存器和接受代碼寄存器的設置、波特率參數設置和中斷允許寄存器的設置,SJA1000的初始化只能在復位模式下進行。完成SJA1000的初始化設置后即返回工作狀態,開始循環監聽CAN總線上的信息。報文的接收采取中斷方式,以便系統的即時響應。在報文接收的過程中同時要對總線關閉、錯誤報警、接受溢出等情況進行處理。報文的發送相對比較簡單,只需將待發送的數據組成一組報文送入SJA1000的發送緩存器中,啟動發送即可。RS232通信軟件包括RS232初始化和與管理層中央服務器PC機的通信;控制器采用查詢方式接收中央服務器PC的數據。
EEPROM24C02存儲器數據和時鐘芯片DS1302的讀寫均簡單地采用同步串行的方式進行通信。當控制器收到節點的信息后,即將此信息上傳給管理層,同時將此信息寫入AT24C02存儲器,作為歷史信息保存,便于管理層的查詢。控制器的零點校時功能是通過讀取DS1302的時鐘,當時鐘為零點整時,即統一對各現場CAN節點進行校時,避免了各CAN節點時鐘誤差的積累。
5 結束語
基于CAN總線的客房通信控制器已在賓館的客房控制和管理系統中得到了成功的應用。實踐證明,由于采用了CAN總線技術,不僅系統結構簡單、適應性和可擴展性強,而且CAN總線以其分時多主、非破壞性總線仲裁和自動檢錯重發的技術特點有效地提高了通信的可靠性,從而使現場調試更加方便、縮短了開發周期。












評論