(江蘇沁恒股份有限公司,南京 210000)
酒店客房控制系統(tǒng)就是嵌入式Internet的一個(gè)典型應(yīng)用,酒店客房控制系統(tǒng)是利用計(jì)算機(jī)控制、通信、管理等技術(shù),基于客房?jī)?nèi)RCU(客房智能控制器)構(gòu)成的專用網(wǎng)絡(luò),對(duì)酒店的燈光、空調(diào)、門禁、消防、服務(wù)等系統(tǒng)進(jìn)行智能化管理與控制,協(xié)助酒店對(duì)客房進(jìn)行實(shí)時(shí)監(jiān)控與分析。由于其功能豐富、兼容性強(qiáng),已成為酒店智能化必不可少的一部分。
嵌入式TCP/IP協(xié)議棧的出現(xiàn)使得普通的嵌入式設(shè)備能夠和計(jì)算機(jī)PC進(jìn)行網(wǎng)絡(luò)通信,基于CH563的RCU,接口資源豐富,可控制客房?jī)?nèi)多種設(shè)備,自帶以太網(wǎng)接口,組網(wǎng)方便?;贑H563的Web Server替代傳統(tǒng)的電腦服務(wù)器,管理員可以通過瀏覽器直接訪問CH563,查看相關(guān)網(wǎng)頁(yè)。與電腦服務(wù)器相比,CH563Web Server成本低、體積小,但可以實(shí)現(xiàn)相同的Web功能,而且CH563自帶TCP/IP協(xié)議棧庫(kù),開發(fā)實(shí)現(xiàn)比較容易。
完整的酒店客房智能控制方案主要由四部分組成:?jiǎn)慰头靠刂葡到y(tǒng)(以CH563RCU為核心)、控制服務(wù)器(CH563Web Server)、管理員控制端(瀏覽器)、通信傳輸系統(tǒng)。
RCU(客房控制器)是單客房控制系統(tǒng)的核心部件,RCU可以連接客房?jī)?nèi)部所有設(shè)備開關(guān),集中控制。CH563外設(shè)接口數(shù)量多、種類豐富,自帶以太網(wǎng)接口,方便組網(wǎng),可以很好地滿足RCU的各項(xiàng)指標(biāo)需求,基于CH563設(shè)計(jì)的RCU如圖1所示。
圖1 RCU內(nèi)部結(jié)構(gòu)框圖
CH563作為Web Server接入到酒店局域網(wǎng)中,內(nèi)置相關(guān)網(wǎng)頁(yè)文件。它不但要通過網(wǎng)絡(luò)收集各個(gè)房間內(nèi)部智RCU傳來(lái)的數(shù)據(jù)信息,顯示在管理員的網(wǎng)頁(yè)上,還要負(fù)責(zé)向各個(gè)房間傳遞瀏覽器下發(fā)的控制命令。另外,CH563 Web 界面可以實(shí)現(xiàn)定時(shí)刷新或由用戶手動(dòng)刷新,可以即時(shí)更新客房信息,實(shí)時(shí)監(jiān)測(cè)。
CH563 Web Server支持管理員權(quán)限分級(jí),可以根據(jù)不同登錄賬號(hào)設(shè)置不同的Web界面。不同等級(jí)的管理員擁有不同級(jí)別的控制權(quán)限,例如:安保人員只顯示客房門禁與消防控制,前臺(tái)只顯示客房入住信息管理,客房服務(wù)人員只顯示客房燈光、空調(diào)、通風(fēng)調(diào)節(jié),高級(jí)管理人員(例如酒店經(jīng)理)擁有全部的控制權(quán)限。
控制端可以是局域網(wǎng)內(nèi)任意網(wǎng)絡(luò)設(shè)備(例如電腦、手機(jī)、平板)的瀏覽器,管理員憑借管理賬號(hào)密碼可以在控制端設(shè)備上登錄CH563服務(wù)器,查詢并控制各客房?jī)?nèi)部狀態(tài)。
控制端與CH563 Web Server之間的數(shù)據(jù)通信采用HTTP協(xié)議,這是一種基于可靠性傳輸?shù)腡CP應(yīng)用層協(xié)議,CH563在這個(gè)系統(tǒng)中作為Web Server,可以響應(yīng)管理員從網(wǎng)頁(yè)上發(fā)過來(lái)的各項(xiàng)請(qǐng)求。網(wǎng)頁(yè)用戶名與密碼登錄方式保證了數(shù)據(jù)通信的安全性,管理員可以通過局域網(wǎng)內(nèi)帶瀏覽器的網(wǎng)絡(luò)設(shè)備,密碼登錄Web Server,另外,Web Server也支持多個(gè)管理員同時(shí)登錄,但是受限于CH563內(nèi)存資源的大小,同時(shí)支持的登錄端數(shù)量比不上電腦服務(wù)器。
CH563Web Server與各個(gè)房間內(nèi)部RCU之間進(jìn)行數(shù)據(jù)通信,采用基于可靠傳輸?shù)腡CP協(xié)議。CH563另開一個(gè)Socket,用作TCP Client,各房間內(nèi)RCU做TCP服務(wù)器。當(dāng)Web Server接收到一個(gè)客房的控制請(qǐng)求時(shí),CH563即與該房間內(nèi)RCU建立TCP連接, RCU接收到CH563發(fā)送的控制命令后就可以控制房間內(nèi)的設(shè)備或者上報(bào)房間的狀態(tài)信息。當(dāng)管理員退出該客房的Web界面后,CH563隨即關(guān)閉與該客房的TCP連接。
該系統(tǒng)還支持突發(fā)緊急情況的主動(dòng)上報(bào)。CH563 Web Server新開一個(gè)Socket,用作TCP Server,當(dāng)有消防、門禁異常情況出現(xiàn)時(shí),客房?jī)?nèi)的CH563RCU會(huì)主動(dòng)與CH563TCP Server建立TCP連接,上傳警報(bào)信息。CH563 Web Server會(huì)將收到的警報(bào)信息及時(shí)刷新到瀏覽器上提醒管理員采取相應(yīng)的應(yīng)對(duì)措施??傮w架構(gòu)如圖2和圖3所示。
圖2 系統(tǒng)連接框圖
圖3 控制傳輸關(guān)系圖
CH563系列單片機(jī)是 32 位 RISC 精簡(jiǎn)指令集 CPU,指令集兼容 ARMv5TE,支持 16 位 Thumb 指令和增強(qiáng) DSP 指令。默認(rèn)系統(tǒng)主頻為 100 MHz,最高可達(dá) 130 MHz。高度集成的外設(shè)以及高性能,使其可以廣泛地應(yīng)用于各種嵌入式應(yīng)用。
CH563的外設(shè)組件包含最高 224 KB的 Flash閃存、64 KB的SRAM、28 KB的DataFlash、百兆以太網(wǎng)、高速/全速 USB 主機(jī)/從機(jī)接口、2 個(gè) SPI 接口、2 個(gè) UART 接口、3 通道 10 位 ADC、4 個(gè)通用定時(shí)器、8 位被動(dòng)并行接口、8/16/32 位 Intel 時(shí)序的總線接口、在系統(tǒng)編程 ISP 接口和多達(dá) 74 個(gè)通用 I/O引腳[1]。
CH563芯片自帶以太網(wǎng) MAC 和 PHY,支持 10/100 M、全雙工、半雙工、自動(dòng)協(xié)商、線路自動(dòng)轉(zhuǎn)換等功能,兼容 IEEE 802.3,802.3u和FDDI-TP-PMD協(xié)議,收發(fā)各獨(dú)立的2 KB FIFO,可以直接和網(wǎng)絡(luò)終端如 PC、嵌入式設(shè)備進(jìn)行數(shù)據(jù)交互。CH563NET.LIB 提供了 TCP/IP 子程序庫(kù),集成了 TCP、UDP、ICMP、ARP、RARP、ICMP、IGMP 等以太網(wǎng)協(xié)議棧??梢酝瑫r(shí)支持 TCP、UDP和IPRAW三種模式,最大支持 31個(gè)Socket。網(wǎng)絡(luò)庫(kù)函數(shù)可以由用戶直接調(diào)用,大大降低了網(wǎng)絡(luò)開發(fā)者的使用難度。
TCP/IP協(xié)議是一套把因特網(wǎng)上的各種系統(tǒng)互連起來(lái)的協(xié)議組,以保證因特網(wǎng)上數(shù)據(jù)的準(zhǔn)確、快速傳輸。參考開放系統(tǒng)互連(OSI)模型,TCP/IP通常采用一種簡(jiǎn)化的4層模型,分別為:應(yīng)用層、運(yùn)輸層、網(wǎng)絡(luò)層、鏈路層[2]。
鏈路層首要工作是在本地范圍內(nèi)實(shí)現(xiàn)網(wǎng)絡(luò),為在面向硬件的物理層以及更抽象的面向軟件的網(wǎng)絡(luò)層及上面各層的功能提供接口。網(wǎng)絡(luò)層的主要協(xié)議是IP(Internet Protocol),主要用于設(shè)備之間數(shù)據(jù)交互。運(yùn)輸層主要包括兩個(gè)協(xié)議:傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP),該層負(fù)責(zé)完成將數(shù)據(jù)從一個(gè)地方傳送到另一個(gè)地方的具體工作細(xì)節(jié)部分。應(yīng)用層負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié),它需要有一個(gè)定義清晰的會(huì)話過程。在本系統(tǒng)中,運(yùn)輸層使用TCP,應(yīng)用層使用HTTP。
HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)基于TCP協(xié)議,是客戶端瀏覽器與Web服務(wù)器之間的應(yīng)用層通信協(xié)議[3]。在Web服務(wù)器上存放的都是超文本信息,客戶機(jī)需要通過HTTP協(xié)議傳輸所要訪問的超文本信息,瀏覽器接收Web服務(wù)器上的網(wǎng)頁(yè)代碼,并翻譯成網(wǎng)頁(yè)界面。
HTTP協(xié)議是基于請(qǐng)求/響應(yīng)格式的,客戶端與服務(wù)
圖4 HTTP通信過程示意圖
器之間的信息交互分為4個(gè)過程:建立連接、發(fā)送請(qǐng)求信息、發(fā)送響應(yīng)信息、關(guān)閉連接。通常,由HTTP客戶端(瀏覽器)發(fā)起一個(gè)連接請(qǐng)求,建立一個(gè)到服務(wù)器指定端口(默認(rèn)是80端口)的TCP連接。HTTP服務(wù)器(Web Server)端口監(jiān)聽客戶端發(fā)過來(lái)的HTTP請(qǐng)求。一旦接收到請(qǐng)求,服務(wù)器向客戶端返回一個(gè)狀態(tài)行和響應(yīng)消息,該消息可以是請(qǐng)求的文件,比如:HTML文件或者圖片??蛻舳苏?qǐng)求的文件傳輸完畢后,TCP連接隨即斷開,本次HTTP傳輸過程結(jié)束,瀏覽器可以隨時(shí)發(fā)起下一次HTTP請(qǐng)求。完整的HTTP通信過程如圖4所示。
硬件主要由CH563芯片以及其外圍電路組成,整個(gè)硬件結(jié)構(gòu)簡(jiǎn)單、成本低、功能強(qiáng)。
CH563單片機(jī)自帶以太網(wǎng) MAC 和 PHY,無(wú)需外接其他網(wǎng)絡(luò)芯片,支持 10/100M速度、全雙工、半雙工、自動(dòng)協(xié)商、線路自動(dòng)轉(zhuǎn)換等功能。芯片的網(wǎng)絡(luò)差分信號(hào)引腳經(jīng)過網(wǎng)絡(luò)變壓器,通過RJ45網(wǎng)絡(luò)接口便可以直接與外部使網(wǎng)絡(luò)設(shè)備進(jìn)行通信。硬件原理圖如圖5所示。
圖5 硬件原理圖
2.5.1 主程序流程圖
CH563NET.LIB提供了 TCP/IP 子程序庫(kù),集成了TCP、UDP、ICMP、ARP、RARP、ICMP、IGMP等以太網(wǎng)協(xié)議棧。CH563上電后先完成單片機(jī)與網(wǎng)絡(luò)功能的初始化,設(shè)置好CH563的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)。然后打開三個(gè)socket,分別建立兩個(gè)TCP Server與一個(gè)TCP Client。TCP Server本地端口設(shè)為80,用作Web服務(wù)器;另一個(gè)TCP Server 用作監(jiān)聽警報(bào)信息,端口1000,TCP Client端口隨機(jī),與各房間內(nèi)RCU建立通信。
圖6 主程序流程圖
CH563NET初始化后,應(yīng)用層需要開啟以太網(wǎng)中斷和全局中斷,并在相應(yīng)的中斷函數(shù)中調(diào)用中斷服務(wù)函數(shù),另外庫(kù)函數(shù)需要外部提供時(shí)鐘,用于和時(shí)間相關(guān)的任務(wù),例如刷新 ARP 列表、TCP 超時(shí)等,所以還需要應(yīng)用程序初始化一個(gè)定時(shí)器,在定時(shí)器溢出中斷中調(diào)用定時(shí)器中斷服務(wù)函數(shù)。
主程序中循環(huán)查詢網(wǎng)絡(luò)中斷狀態(tài),中斷狀態(tài)主要分為兩大類:全局中斷與Socket中斷,Socket中斷主要有TCP連接、關(guān)閉,數(shù)據(jù)接收中斷。CH563查詢當(dāng)前狀態(tài)并進(jìn)入相應(yīng)的處理函數(shù)。主程序流程圖如圖6所示。
2.5.2 Web Server處理流程
CH563實(shí)現(xiàn)Web Server功能,需要先打開Socket建立TCP Server,端口80,在此基礎(chǔ)上,通過程序?qū)崿F(xiàn)HTTP協(xié)議,完成從瀏覽器到563的網(wǎng)頁(yè)信息交互。CH563會(huì)分析接收到的數(shù)據(jù)內(nèi)容,如果解析的數(shù)據(jù)內(nèi)容符合HTTP請(qǐng)求規(guī)范,那么CH563就會(huì)發(fā)送相應(yīng)的HTTP消息,向?yàn)g覽器返回網(wǎng)頁(yè)界面與顯示信息。如果瀏覽器的HTTP請(qǐng)求中包含了對(duì)客房的控制命令,那么CH563就會(huì)執(zhí)行RCU處理函數(shù),轉(zhuǎn)發(fā)瀏覽器的控制命令到各個(gè)房間的RCU。CH563的Web Server處理流程如圖7所示。
圖7 Web Server處理流程圖
2.5.3 TCP Client處理流程
圖8 TCP Client處理流程
CH563要想實(shí)現(xiàn)對(duì)客房的遠(yuǎn)程控制,需要與房間內(nèi)RCU建立TCP通信,傳輸控制命令。CH563從瀏覽器的HTTP請(qǐng)求中解析出控制命令以及對(duì)應(yīng)的房間號(hào),然后,CH563會(huì)建立TCP client連接到該房間的RCU控制器,房間內(nèi)RCU會(huì)接收控制命令,控制繼電器、開關(guān)等完成相應(yīng)的動(dòng)作。TCP Client的處理流程如圖8所示。
酒店管理人員在局域網(wǎng)內(nèi)使用任意帶瀏覽器的網(wǎng)絡(luò)設(shè)備(如電腦、手機(jī)、平板電腦),都可以登錄CH563 Web Server,通過瀏覽器網(wǎng)頁(yè)查看各房間信息,控制房間內(nèi)設(shè)備的運(yùn)轉(zhuǎn)。
基于HTTP和TCP的信息傳輸穩(wěn)定、可靠、快速,使用起來(lái)十分方便,方便與遠(yuǎn)程監(jiān)控管理,不影響房客的正常休息,可隨時(shí)監(jiān)控房間溫濕度以及設(shè)備運(yùn)轉(zhuǎn)情況。同時(shí),通過網(wǎng)頁(yè)可以實(shí)現(xiàn)酒店客房集中式的遠(yuǎn)程管理,節(jié)省了大量的人力與時(shí)間,圖9是酒店經(jīng)理(擁有全部權(quán)限)登錄CH563 Web Server之后的網(wǎng)頁(yè)酒店管理界面顯示。
圖9 酒店管理頁(yè)面效果圖
[1] 江蘇沁恒股份有限公司.CH563DS1.PDF,2017.
[2] Kevin R Fall,W. Richard Stevens. TCP/IP詳解(卷一)[M].北京:機(jī)械工業(yè)出版社,2016.
[3] RFC2616-Hypertext Transfer Protocol—HTTP/1.1[EB/OL].[2017-10]. http://www.docin.com/p-70057432.html&endpro=true.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2018年1期