基于CAN總線的客房通信控制器的設(shè)計(jì)
1 引言
隨著計(jì)算機(jī)技術(shù)、通信技術(shù)、信息技術(shù)和控制技術(shù)的飛速發(fā)展,人們對(duì)智能建筑的功能、環(huán)境和管理水平提出了更高的要求。賓館、酒店的客房控制和管理作為智能建筑樓宇自控系統(tǒng)中的一個(gè)重要組成部分,其發(fā)展方向是更加安全、舒適、高效、便利和節(jié)能。賓館、酒店的客房控制和管理具有分散控制和集中管理的特點(diǎn),整個(gè)系統(tǒng)涉及對(duì)象繁多,且分布在不同位置,控制要求也各不相同。如果采用傳統(tǒng)的一對(duì)一接線,則建筑物內(nèi)的布線復(fù)雜、維修困難,系統(tǒng)成本高、可靠性低、可擴(kuò)展性差。因此,現(xiàn)代智能建筑樓宇自控系統(tǒng)廣泛采用了現(xiàn)場總線技術(shù)。
本文結(jié)合賓館、酒店的客房控制和管理實(shí)例,介紹了基于CAN總線的客房通信控制器的設(shè)計(jì)。
2系統(tǒng)結(jié)構(gòu)
客房控制和管理系統(tǒng)的總體結(jié)構(gòu)如圖1所示。整個(gè)系統(tǒng)包括三層:現(xiàn)場控制層、監(jiān)控層和管理層?,F(xiàn)場控制層主要是賓館內(nèi)的各客房控制器或其它控制設(shè)備;以一個(gè)客房節(jié)點(diǎn)為例,每個(gè)客房控制器可對(duì)客房內(nèi)部的空調(diào)、燈、背景音樂、門鈴、報(bào)警等各種設(shè)備進(jìn)行控制,還可接收客戶的需求信息,并將信息上傳給監(jiān)控層的通信控制器。監(jiān)控層通信控制器的主要任務(wù)是過濾信息量,并將信息上傳給管理層,同時(shí)接收管理層的控制指令,對(duì)記錄數(shù)據(jù)和各節(jié)點(diǎn)進(jìn)行操作。各樓層的中繼器則可增加節(jié)點(diǎn)的最大數(shù)目,擴(kuò)大通信距離。管理層主要由中央服務(wù)器、總臺(tái)PC、工程部PC、服務(wù)中心PC等組成,主要用于信息的綜合管理與控制,具有匯總各個(gè)節(jié)點(diǎn)上傳信息、綜合決策、數(shù)據(jù)查詢及處理、故障診斷、通信管理等功能。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
由于現(xiàn)場控制層具有節(jié)點(diǎn)多、分布廣的特點(diǎn),其通信系統(tǒng)應(yīng)具有良好的可靠性、適應(yīng)性、可擴(kuò)展性和簡單的連接方式,并能滿足長距離傳輸和現(xiàn)場調(diào)試方便的需要。因此,現(xiàn)場控制層采用了使用簡單靈活、可靠性高、實(shí)時(shí)性強(qiáng)且成本低的CAN總線。管理層的中央服務(wù)器PC、總臺(tái)PC、服務(wù)中心PC等相互之間通過以太網(wǎng)進(jìn)行通信。而監(jiān)控層的CAN通信控制器則提供管理層中央服務(wù)器PC與現(xiàn)場控制層CAN總線的接口,即把中央服務(wù)器PC的數(shù)據(jù)和命令傳送給指定的CAN網(wǎng)絡(luò)節(jié)點(diǎn),同時(shí)將各網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)傳輸給中央服務(wù)器PC以做進(jìn)一步處理。
3 硬件電路結(jié)構(gòu)
CAN總線通信控制器的硬件電路結(jié)構(gòu)如圖2所示。主要包括主控制器、時(shí)鐘保持電路、非易失性EEPROM存儲(chǔ)器、CAN總線接口電路和RS232接口電路。主控制器采用性價(jià)比高、結(jié)構(gòu)簡單、便于編程的AT89C51單片機(jī),主要用于對(duì)CAN控制器SJA1000 及RS232串口的初始化,并通過對(duì)CAN控制器SJA1000 及RS232串口的控制操作實(shí)現(xiàn)現(xiàn)場CAN總線與管理層中央服務(wù)器PC的數(shù)據(jù)交換等通信任務(wù)。
CAN總線接口電路主要由CAN通信控制器SJA1000、高速光耦6N137和CAN總線驅(qū)動(dòng)器82C250組成。SJA1000作為CAN總線協(xié)議轉(zhuǎn)換的控制器,它內(nèi)建BASIC CAN協(xié)議,并提供對(duì)CAN2.0B協(xié)議的支持。通過對(duì)片內(nèi)寄存器的讀、寫操作,主控制器單片機(jī)能夠設(shè)置CAN總線通信模式,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收。
SJA1000在邏輯上實(shí)現(xiàn)了傳輸數(shù)據(jù)的編碼和解碼,若要與物理線路連接,還必須借助總線驅(qū)動(dòng)器82C250,以增強(qiáng)CAN總線的差動(dòng)發(fā)送和接收驅(qū)動(dòng)能力。為了增強(qiáng)CAN 總線節(jié)點(diǎn)的抗干擾能力,防止線路間串?dāng)_,SJA1000 的TX0 和RXO 并不是直接與82C250 的TXD 和RXD 相連,而是通過高速光耦6N137 后再與82C250 相連;另外,CAN總線驅(qū)動(dòng)器采用帶隔離的DC/DC模塊單獨(dú)供電,實(shí)現(xiàn)了通信控制器與CAN總線的隔離,提高系統(tǒng)的可靠性。
82C250的CANH和CANL引腳各自通過一熱敏電阻與CAN總線相連,當(dāng)過流時(shí)電阻發(fā)熱阻值變大,保護(hù)82C250免受過流的沖擊。CANH和CANL與地之間并聯(lián)兩個(gè)小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。
RS232接口電路主要用于主控制器單片機(jī)與管理層中央服務(wù)器PC的雙向數(shù)據(jù)傳送。由于采用了標(biāo)準(zhǔn)的RS232串行通信,結(jié)構(gòu)簡單、成本低。
控制器的其它外圍電路還有電源模塊、非易失性EEPROM存儲(chǔ)器、時(shí)鐘保持電路、LED指示燈和看門狗等。非易失性EEPROM存儲(chǔ)器采用具有2KB容量的AT24C02,用于保存系統(tǒng)配置參數(shù)及各節(jié)點(diǎn)的最新信息,便于管理層的查詢。時(shí)鐘保持電路選用涓流充電時(shí)鐘芯片DS1302,其內(nèi)部含有實(shí)時(shí)時(shí)鐘和日歷,通過簡單的串行接口與單片機(jī)進(jìn)行通信,用于給各節(jié)點(diǎn)控制器校時(shí)。同時(shí),控制器還配置了4個(gè)LED指示燈,分別用于系統(tǒng)上電、CAN通信、RS232通信和系統(tǒng)通信故障的指示,以方便系統(tǒng)的調(diào)試和對(duì)控制器運(yùn)行狀況的監(jiān)測。
4 系統(tǒng)軟件
CAN通信控制器的主要任務(wù)是過濾信息量,將現(xiàn)場層信息上傳給管理層,同時(shí)接收管理層的控制指令,對(duì)記錄數(shù)據(jù)或各CAN節(jié)點(diǎn)進(jìn)行操作。CAN通信控制器同時(shí)還具有數(shù)據(jù)記錄和零點(diǎn)校時(shí)功能。因而控制器軟件設(shè)計(jì)主要包括四大部分:CAN通信、RS232通信、EEPROM數(shù)據(jù)的讀寫和系統(tǒng)時(shí)鐘DS1302的讀寫。其程序主流程圖如圖3所示。
圖3 控制器軟件流程圖
CAN通信軟件包括CAN初始化、報(bào)文的接收和報(bào)文發(fā)送三部分。當(dāng)控制器上電后,首先對(duì)CAN控制器SJA1000進(jìn)行初始化設(shè)置,主要包括工作方式的設(shè)置、接受濾波方式的設(shè)置、接受屏蔽寄存器和接受代碼寄存器的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器的設(shè)置,SJA1000的初始化只能在復(fù)位模式下進(jìn)行。完成SJA1000的初始化設(shè)置后即返回工作狀態(tài),開始循環(huán)監(jiān)聽CAN總線上的信息。報(bào)文的接收采取中斷方式,以便系統(tǒng)的即時(shí)響應(yīng)。在報(bào)文接收的過程中同時(shí)要對(duì)總線關(guān)閉、錯(cuò)誤報(bào)警、接受溢出等情況進(jìn)行處理。報(bào)文的發(fā)送相對(duì)比較簡單,只需將待發(fā)送的數(shù)據(jù)組成一組報(bào)文送入SJA1000的發(fā)送緩存器中,啟動(dòng)發(fā)送即可。RS232通信軟件包括RS232初始化和與管理層中央服務(wù)器PC機(jī)的通信;控制器采用查詢方式接收中央服務(wù)器PC的數(shù)據(jù)。
EEPROM24C02存儲(chǔ)器數(shù)據(jù)和時(shí)鐘芯片DS1302的讀寫均簡單地采用同步串行的方式進(jìn)行通信。當(dāng)控制器收到節(jié)點(diǎn)的信息后,即將此信息上傳給管理層,同時(shí)將此信息寫入AT24C02存儲(chǔ)器,作為歷史信息保存,便于管理層的查詢??刂破鞯牧泓c(diǎn)校時(shí)功能是通過讀取DS1302的時(shí)鐘,當(dāng)時(shí)鐘為零點(diǎn)整時(shí),即統(tǒng)一對(duì)各現(xiàn)場CAN節(jié)點(diǎn)進(jìn)行校時(shí),避免了各CAN節(jié)點(diǎn)時(shí)鐘誤差的積累。
5 結(jié)束語
基于CAN總線的客房通信控制器已在賓館的客房控制和管理系統(tǒng)中得到了成功的應(yīng)用。實(shí)踐證明,由于采用了CAN總線技術(shù),不僅系統(tǒng)結(jié)構(gòu)簡單、適應(yīng)性和可擴(kuò)展性強(qiáng),而且CAN總線以其分時(shí)多主、非破壞性總線仲裁和自動(dòng)檢錯(cuò)重發(fā)的技術(shù)特點(diǎn)有效地提高了通信的可靠性,從而使現(xiàn)場調(diào)試更加方便、縮短了開發(fā)周期。