摘 要: 設計、研發了一套基于CAN總線的酒店客房智能化系統,介紹了該系統實現的功能、網絡架構、硬件和軟件設計方案,并對其硬件成本進行可行性分析,研發的客戶終端在實際應用中取得了良好的效果。
關鍵詞: CAN總線;酒店客房;智能化系統
隨著社會的進步和人們生活品質的提高,酒店客房以及家居逐步實現智能化控制。房間的燈光控制(諸如臺燈、地燈、廊燈、夜燈、頂燈、吧燈)、家電控制(諸如空調、電視、排風扇)及服務控制(諸如呼叫、請勿打擾、清理衛生)等都實現了在客人的床頭位置自動控制,也可以通過遙控器控制,并實時把房間里面的狀態通過總線上傳到酒店的服務臺。如果酒店或家庭配有藝術化色調的燈具,就可以達到更人性化的燈光效果,例如:讀書時一鍵選擇“閱讀燈光背景模式”;用餐時一鍵選擇“餐廳燈光背景模式”;睡覺前半小時一鍵選擇“暖色調燈光背景模式”等。
酒店的服務臺也可以在計算機上面的“酒店客房管理系統軟件”上實時掌握客房內狀態,操作控制客房內的家電、燈光、應答客人服務。如果計算機連接互聯網,進而還可以實現遠程控制,實現智能家居。
相對于485總線,CAN總線以其具有“成本低廉、數據傳輸距離遠(最遠長達10 km)、數據傳輸速率高(最高達1 Mb/s)、無破壞性的基于優先權的逐位仲裁、借助驗收濾波器的多地址幀傳遞、遠程數據請求、可靠的錯誤檢測和出錯處理功能、發送的信息遭到破壞后自動重發、暫時錯誤和永久性故障節點的判別以及故障節點的自動脫離、脫離總線的節點不影響總線的正常工作”等優點,將逐步取代基于485總線構建的酒店客房智能化管理系統。
1 CAN總線酒店客房智能化系統網絡結構分析
圖1是酒店客房智能化系統網絡連接結構示意圖,系統主要包括酒店服務臺、CAN轉以太網、客房終端。
客房終端把房間內的各種燈具、家電、服務需求按鍵綜合到一塊控制板(客戶終端),各種燈具、家電、服務需求的控制信息通過CAN總線發送至CAN轉以太網轉換器CANET-200,實現開關、按鈕、傳感器、照明設備、其他執行器和多控制系統之間的數據交換,以及各操作單元之間的協作,并對各單元不斷變化的狀態實時控制。
如果酒店一個樓層內房間較多(例如多于80個,小于110個),每一個樓層內的所有房間通過CAN總線連接組網,然后連接一臺CAN轉以太網轉換器。如果一個樓層內房間較少,可以相鄰樓層內的房間通過CAN總線組網,再連接到CAN轉以太網轉換器。但是房間總數不要超過110個,因為一條CAN總線上最多接110個節點。
不同樓層之間通過以太網和酒店服務臺的計算機連接組網,服務臺處的計算機是可以直接控制客房終端,以及實時讀取客房終端狀態的前臺設備。
CAN總線在較低的通信波特率下,例如5 kb/s,通信距離可以達到10 km。圖1中可以用CAN中繼器代替CAN轉以太網轉換器,以實現低成本組網連接。之所以選擇使用CAN轉以太網轉換器,是考慮到通過網絡遠程控制客房終端,或者將來適用于網絡控制家庭用戶內的設備,實現遠程智能化家居控制。
2 酒店智能化系統通信協議及CAN地址分配
Basiccan和Pelican都是CAN總線通信協議,CAN控制器SJA1000支持兩種協議的通信。Basiccan具有11位標識符,占有2 B,支持標準幀格式;Pelican具有29位標識符,占有4 B,支持標準幀和擴展幀。
考慮到Pelican通信協議在組網的靈活方便和可擴充性方面的優勢,酒店客房智能化系統客戶終端的CAN總線通信協議選用Pelican。但是Pelican通信協議也有其弊端:其標識符相對于標準幀格式下多占用兩個字節,在通信時間上相對較長。酒店客房智能化系統客戶終端的CAN總線通信波特率為400 b/s。多占用的兩個字節,16 bit,通信占用的時間僅有16 bit/(400 b/s*1 024 bit/K)=39 μs。因此,這對通信速率的影響微不足道。
CAN總線酒店智能化系統地址分配表如表1所示。CAN地址分配在寄存器方面涉及到ACR和AMR;在地址識別方面涉及到Pelican模式下29位標識符的分配使用問題。使用ID28~ID21高8位作為樓層ID識別,共可以識別256個樓層;使用ID20~ID0作為樓層內的客房終端ID識別;CAN轉以太網轉換器CANET-200也可以設置不同的TCP/IP地址,用于一臺CAN轉以太網轉換器連接的多個客戶終端群的地址識別。分層式的CAN地址配置,以及CAN轉以太網轉換器的TCP/IP地址,可以實現故障終端的快速定位,方便售后的維護使用。
3 客戶終端硬件電路設計
3.1 客戶終端硬件電路
酒店客房智能化系統客戶終端采用STC89C58單片機作為節點的微處理器,主要涉及到6大部分硬件電路:多控制按鍵、多繼電器驅動、CAN總線傳輸、燈具調光、多電源電路、ADC采集設計。客戶端的硬件構成示意圖如圖2所示。
多按鍵中斷設計采用兩片74LS48和一片74HC08搭建編碼電路,實現16路按鍵(SW0~SW15)輸入,4位BCD編碼(74HC08_A0~74HC08_A3)輸出和一個中斷(74HC08_INT)輸出,在中斷程序中識別具體按鍵狀態。
多繼電器驅動電路設計通過串聯3片74HC595實現24路輸出,其中的16路輸出通過驅動芯片UN2003驅動16個繼電器;8路輸出用于控制服務狀態指示燈。
CAN總線傳輸電路設計中采用PHILIPS公司的“獨立CAN總線通信控制器SJA1000”芯片、CAN總線收發器選用TJA1040芯片;為了增加抗干擾特性,采用6N137高速光耦及DC-DC隔離模塊構成光電隔離電路。
客戶終端需要3種電源:直流5 V、直流9 V、CAN電路隔離直流5 V。為此,選用市電交流220 V輸入,兩路交流輸出8 V、9 V的電源模塊。8 V交流輸出經過整流、濾波、穩壓后,調理輸出5 V直流電源,用于單片機等芯片的供電;經過DC-DC隔離模塊B0505_25W后,輸出的隔離5 V電源,用于CAN總線部分電路的供電;9 V交流輸出經過調理后,用于驅動控制16路繼電器。
3.2 客戶終端硬件成本分析
項目的開發一般分為需求分析、解決方案、項目的實現、項目的總結和改進。其中在解決方案階段中的“開發成本分析”是影響企業利潤的關鍵。
16路按鍵、16路繼電器、CAN總線芯片SJA1000數據/地址和控制總線占用13個I/O,另外還有主副開關、ADC0832芯片等占用多個I/O。如果選用引腳I/O豐富的MCU,諸如LPC2100、LPC2292等,則可以使硬件設計變得簡單。但是考慮到芯片的價格,以及與之對應的利潤、售后換件維修成本因素等,決定選用STC89C58單片機,其價格只有6~8元人民幣。
STC89C58單片機只有40個引腳,怎樣解決I/O不夠用的問題呢?
16路按鍵設計,采用74LS148和74HC08搭建“16轉4”帶有中斷的按鍵設計,配合中斷只需讀出4個I/O的編碼,即可識別出按鍵狀態;
16路繼電器和LED指示燈設計,采用8位串行輸入-移位輸出寄存器74HC595和驅動芯片UN2003設計,只需占用3個I/O即可實現要求的控制功能。選用74HC595的弊端是串行驅動繼電器速度相對較慢,但是足以滿足酒店客房智能化系統的需求。
STC89C58單片機的其他I/O資源供芯片SJA1000、主副開關、ADC0832芯片等使用。
4 CAN總線酒店客房智能化系統軟件設計
系統的軟件設計包括“上位機管理軟件設計”、“CAN總線通信軟件設計”、“客戶終端數據的采集、控制與信息處理軟件設計”。CAN總線通信程序流程圖如圖3所示。
上位機管理軟件設計采用C#編寫,主要完成酒店客房內的門鎖、燈具、家電、溫度傳感器、服務需求等信息的管理,以及顯示實時的動態數據;向客戶終端下發控制狀態字;存儲歷史數據和打印報表。
CAN總線通信軟件設計采用C語言編寫,主要實現CAN總線通信協議、與上位機的握手協議的制定。在CAN總線通信軟件設計中,SJA1000的初始化程序至關重要,其流程圖如圖4所示。
客戶終端數據的采集、控制、信息處理軟件用C語言編寫,主要實現3種功能:一是采集客房內的門鎖、燈具、家電、溫度傳感器、服務需求的實時狀態;二是接收上位機的控制狀態字,控制客房內的燈具、家電的開關狀態;三是對采集的狀態信息進行編碼信息處理,以及對接收到的控制狀態字進行解碼信息處理。
CAN總線作為一種技術先進、可靠性高、功能完善、成本較低的網絡通信控制方式,將在智能家居、樓宇自動化領域得到越來越廣泛應用。本系統經過研發、試驗、調試,已經在酒店客房智能化系統中得到應用,系統工作穩定、高效,滿足實用要求。
參考文獻
[1] Philips Semiconductors. CAN Specification Version 2.0, Parts A and B. 1992.
[2] Philips Semiconductors. Data Sheet SJA1000, Stand-alone CAN Controller.
[3] Philips Semiconductors. Preliminary Data Sheet TJA1040, High speed CAN transceiver. 2001 Nov 12.
[4] 宏晶科技.STC89C51RC/RD+系列單片機器件手冊.2007.
[5] 廣州致遠電子有限公司,群星系列CAN接口應用.2009.