(江蘇沁恒股份有限公司,南京 210000)
酒店客房控制系統就是嵌入式Internet的一個典型應用,酒店客房控制系統是利用計算機控制、通信、管理等技術,基于客房內RCU(客房智能控制器)構成的專用網絡,對酒店的燈光、空調、門禁、消防、服務等系統進行智能化管理與控制,協助酒店對客房進行實時監控與分析。由于其功能豐富、兼容性強,已成為酒店智能化必不可少的一部分。
嵌入式TCP/IP協議棧的出現使得普通的嵌入式設備能夠和計算機PC進行網絡通信,基于CH563的RCU,接口資源豐富,可控制客房內多種設備,自帶以太網接口,組網方便。基于CH563的Web Server替代傳統的電腦服務器,管理員可以通過瀏覽器直接訪問CH563,查看相關網頁。與電腦服務器相比,CH563Web Server成本低、體積小,但可以實現相同的Web功能,而且CH563自帶TCP/IP協議棧庫,開發實現比較容易。
完整的酒店客房智能控制方案主要由四部分組成:單客房控制系統(以CH563RCU為核心)、控制服務器(CH563Web Server)、管理員控制端(瀏覽器)、通信傳輸系統。
RCU(客房控制器)是單客房控制系統的核心部件,RCU可以連接客房內部所有設備開關,集中控制。CH563外設接口數量多、種類豐富,自帶以太網接口,方便組網,可以很好地滿足RCU的各項指標需求,基于CH563設計的RCU如圖1所示。

圖1 RCU內部結構框圖
CH563作為Web Server接入到酒店局域網中,內置相關網頁文件。它不但要通過網絡收集各個房間內部智RCU傳來的數據信息,顯示在管理員的網頁上,還要負責向各個房間傳遞瀏覽器下發的控制命令。另外,CH563 Web 界面可以實現定時刷新或由用戶手動刷新,可以即時更新客房信息,實時監測。
CH563 Web Server支持管理員權限分級,可以根據不同登錄賬號設置不同的Web界面。不同等級的管理員擁有不同級別的控制權限,例如:安保人員只顯示客房門禁與消防控制,前臺只顯示客房入住信息管理,客房服務人員只顯示客房燈光、空調、通風調節,高級管理人員(例如酒店經理)擁有全部的控制權限。
控制端可以是局域網內任意網絡設備(例如電腦、手機、平板)的瀏覽器,管理員憑借管理賬號密碼可以在控制端設備上登錄CH563服務器,查詢并控制各客房內部狀態。
控制端與CH563 Web Server之間的數據通信采用HTTP協議,這是一種基于可靠性傳輸的TCP應用層協議,CH563在這個系統中作為Web Server,可以響應管理員從網頁上發過來的各項請求。網頁用戶名與密碼登錄方式保證了數據通信的安全性,管理員可以通過局域網內帶瀏覽器的網絡設備,密碼登錄Web Server,另外,Web Server也支持多個管理員同時登錄,但是受限于CH563內存資源的大小,同時支持的登錄端數量比不上電腦服務器。
CH563Web Server與各個房間內部RCU之間進行數據通信,采用基于可靠傳輸的TCP協議。CH563另開一個Socket,用作TCP Client,各房間內RCU做TCP服務器。當Web Server接收到一個客房的控制請求時,CH563即與該房間內RCU建立TCP連接, RCU接收到CH563發送的控制命令后就可以控制房間內的設備或者上報房間的狀態信息。當管理員退出該客房的Web界面后,CH563隨即關閉與該客房的TCP連接。
該系統還支持突發緊急情況的主動上報。CH563 Web Server新開一個Socket,用作TCP Server,當有消防、門禁異常情況出現時,客房內的CH563RCU會主動與CH563TCP Server建立TCP連接,上傳警報信息。CH563 Web Server會將收到的警報信息及時刷新到瀏覽器上提醒管理員采取相應的應對措施。總體架構如圖2和圖3所示。

圖2 系統連接框圖

圖3 控制傳輸關系圖
CH563系列單片機是 32 位 RISC 精簡指令集 CPU,指令集兼容 ARMv5TE,支持 16 位 Thumb 指令和增強 DSP 指令。默認系統主頻為 100 MHz,最高可達 130 MHz。高度集成的外設以及高性能,使其可以廣泛地應用于各種嵌入式應用。
CH563的外設組件包含最高 224 KB的 Flash閃存、64 KB的SRAM、28 KB的DataFlash、百兆以太網、高速/全速 USB 主機/從機接口、2 個 SPI 接口、2 個 UART 接口、3 通道 10 位 ADC、4 個通用定時器、8 位被動并行接口、8/16/32 位 Intel 時序的總線接口、在系統編程 ISP 接口和多達 74 個通用 I/O引腳[1]。
CH563芯片自帶以太網 MAC 和 PHY,支持 10/100 M、全雙工、半雙工、自動協商、線路自動轉換等功能,兼容 IEEE 802.3,802.3u和FDDI-TP-PMD協議,收發各獨立的2 KB FIFO,可以直接和網絡終端如 PC、嵌入式設備進行數據交互。CH563NET.LIB 提供了 TCP/IP 子程序庫,集成了 TCP、UDP、ICMP、ARP、RARP、ICMP、IGMP 等以太網協議棧。可以同時支持 TCP、UDP和IPRAW三種模式,最大支持 31個Socket。網絡庫函數可以由用戶直接調用,大大降低了網絡開發者的使用難度。
TCP/IP協議是一套把因特網上的各種系統互連起來的協議組,以保證因特網上數據的準確、快速傳輸。參考開放系統互連(OSI)模型,TCP/IP通常采用一種簡化的4層模型,分別為:應用層、運輸層、網絡層、鏈路層[2]。
鏈路層首要工作是在本地范圍內實現網絡,為在面向硬件的物理層以及更抽象的面向軟件的網絡層及上面各層的功能提供接口。網絡層的主要協議是IP(Internet Protocol),主要用于設備之間數據交互。運輸層主要包括兩個協議:傳輸控制協議(TCP)和用戶數據報協議(UDP),該層負責完成將數據從一個地方傳送到另一個地方的具體工作細節部分。應用層負責處理特定的應用程序細節,它需要有一個定義清晰的會話過程。在本系統中,運輸層使用TCP,應用層使用HTTP。
HTTP(Hyper Text Transfer Protocol,超文本傳輸協議)基于TCP協議,是客戶端瀏覽器與Web服務器之間的應用層通信協議[3]。在Web服務器上存放的都是超文本信息,客戶機需要通過HTTP協議傳輸所要訪問的超文本信息,瀏覽器接收Web服務器上的網頁代碼,并翻譯成網頁界面。
HTTP協議是基于請求/響應格式的,客戶端與服務

圖4 HTTP通信過程示意圖
器之間的信息交互分為4個過程:建立連接、發送請求信息、發送響應信息、關閉連接。通常,由HTTP客戶端(瀏覽器)發起一個連接請求,建立一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器(Web Server)端口監聽客戶端發過來的HTTP請求。一旦接收到請求,服務器向客戶端返回一個狀態行和響應消息,該消息可以是請求的文件,比如:HTML文件或者圖片。客戶端請求的文件傳輸完畢后,TCP連接隨即斷開,本次HTTP傳輸過程結束,瀏覽器可以隨時發起下一次HTTP請求。完整的HTTP通信過程如圖4所示。
硬件主要由CH563芯片以及其外圍電路組成,整個硬件結構簡單、成本低、功能強。
CH563單片機自帶以太網 MAC 和 PHY,無需外接其他網絡芯片,支持 10/100M速度、全雙工、半雙工、自動協商、線路自動轉換等功能。芯片的網絡差分信號引腳經過網絡變壓器,通過RJ45網絡接口便可以直接與外部使網絡設備進行通信。硬件原理圖如圖5所示。

圖5 硬件原理圖
2.5.1 主程序流程圖
CH563NET.LIB提供了 TCP/IP 子程序庫,集成了TCP、UDP、ICMP、ARP、RARP、ICMP、IGMP等以太網協議棧。CH563上電后先完成單片機與網絡功能的初始化,設置好CH563的IP地址、子網掩碼、網關。然后打開三個socket,分別建立兩個TCP Server與一個TCP Client。TCP Server本地端口設為80,用作Web服務器;另一個TCP Server 用作監聽警報信息,端口1000,TCP Client端口隨機,與各房間內RCU建立通信。

圖6 主程序流程圖
CH563NET初始化后,應用層需要開啟以太網中斷和全局中斷,并在相應的中斷函數中調用中斷服務函數,另外庫函數需要外部提供時鐘,用于和時間相關的任務,例如刷新 ARP 列表、TCP 超時等,所以還需要應用程序初始化一個定時器,在定時器溢出中斷中調用定時器中斷服務函數。
主程序中循環查詢網絡中斷狀態,中斷狀態主要分為兩大類:全局中斷與Socket中斷,Socket中斷主要有TCP連接、關閉,數據接收中斷。CH563查詢當前狀態并進入相應的處理函數。主程序流程圖如圖6所示。
2.5.2 Web Server處理流程
CH563實現Web Server功能,需要先打開Socket建立TCP Server,端口80,在此基礎上,通過程序實現HTTP協議,完成從瀏覽器到563的網頁信息交互。CH563會分析接收到的數據內容,如果解析的數據內容符合HTTP請求規范,那么CH563就會發送相應的HTTP消息,向瀏覽器返回網頁界面與顯示信息。如果瀏覽器的HTTP請求中包含了對客房的控制命令,那么CH563就會執行RCU處理函數,轉發瀏覽器的控制命令到各個房間的RCU。CH563的Web Server處理流程如圖7所示。

圖7 Web Server處理流程圖
2.5.3 TCP Client處理流程

圖8 TCP Client處理流程
CH563要想實現對客房的遠程控制,需要與房間內RCU建立TCP通信,傳輸控制命令。CH563從瀏覽器的HTTP請求中解析出控制命令以及對應的房間號,然后,CH563會建立TCP client連接到該房間的RCU控制器,房間內RCU會接收控制命令,控制繼電器、開關等完成相應的動作。TCP Client的處理流程如圖8所示。
酒店管理人員在局域網內使用任意帶瀏覽器的網絡設備(如電腦、手機、平板電腦),都可以登錄CH563 Web Server,通過瀏覽器網頁查看各房間信息,控制房間內設備的運轉。
基于HTTP和TCP的信息傳輸穩定、可靠、快速,使用起來十分方便,方便與遠程監控管理,不影響房客的正常休息,可隨時監控房間溫濕度以及設備運轉情況。同時,通過網頁可以實現酒店客房集中式的遠程管理,節省了大量的人力與時間,圖9是酒店經理(擁有全部權限)登錄CH563 Web Server之后的網頁酒店管理界面顯示。

圖9 酒店管理頁面效果圖

[1] 江蘇沁恒股份有限公司.CH563DS1.PDF,2017.
[2] Kevin R Fall,W. Richard Stevens. TCP/IP詳解(卷一)[M].北京:機械工業出版社,2016.
[3] RFC2616-Hypertext Transfer Protocol—HTTP/1.1[EB/OL].[2017-10]. http://www.docin.com/p-70057432.html&endpro=true.