基于A(yíng)RM的智能家居監控系統設計
1 引言
本文引用地址:http://dyxdggzs.com/article/201710/368523.htm信息技術(shù)已在人們生活的各個(gè)方面得到廣泛應用。人們對家庭居住環(huán)境的要求越來(lái)越高。智能家居應運而生,與普通家居相比,智能家居不僅具有傳統的居住功能,提供舒適安全、高品位且宜人的家庭生活空間;還由原來(lái)的被動(dòng)靜止結構轉變?yōu)榫哂心軇?dòng)智慧的工具,提供全方位的信息交互功能,幫助家庭與外部保持信息交流暢通,優(yōu)化人們的生活方式,幫助人們有效安排時(shí)間,增強家居生活的安全性,甚至為各種能源費用提供節約方案。簡(jiǎn)言之,智能家居就是以住宅為平臺,利用網(wǎng)絡(luò )、通信及控制技術(shù)管理家中設備,來(lái)創(chuàng )造一個(gè)高效、舒適、安全、便利、環(huán)保的居住環(huán)境。
智能家居在我國起步較晚,目前家居網(wǎng)絡(luò )的應用復雜而分散,沒(méi)有統一的標準。大體而言可分為高層的信息娛樂(lè )網(wǎng)絡(luò )和底層的數據采集與控制網(wǎng)絡(luò )。在底層以微控制器為核心作為智能家居網(wǎng)絡(luò )結點(diǎn)是目前家居網(wǎng)絡(luò )的主要實(shí)現方式。本文正是基于這種方式用NXP公司的ARM7微控制器LPC2478($10.7400)實(shí)現了智能家居監控系統。系統可以采集多路模擬量和開(kāi)關(guān)量經(jīng)處理后可以為本地用戶(hù)或通過(guò)CAN總線(xiàn)為遠程用戶(hù)如物業(yè)管理中心提供實(shí)時(shí)家居環(huán)境狀態(tài)信息。一旦家居環(huán)境狀態(tài)改變用戶(hù)可迅速做出反應,以最大限度地減少安全事故的發(fā)生。
2系統方案
本系統主控采用ARM微控制器中的LPC2478,它有512K字節的程序存儲空間,豐富的片上資源,片上具有LCD控制器和兩個(gè)CAN接口,它非常適合低功耗、低成本的嵌入式設計。圖1中有8個(gè)模擬量輸入,由于在實(shí)際家居狀態(tài)監控數據中模擬量較少,加之LPC2478片上有可復用8路10位模數轉換器,所以本系統直接以其片上資源實(shí)現A/D功能。采所采集的模擬量經(jīng)微控制器處理之后通過(guò)PA口輸出到LCD顯示模塊(LCM1)進(jìn)行本地顯示,以及經(jīng) CAN1口輸出到遠程主機,同時(shí)也可以通過(guò)UART0以RS-232串行通信方式傳送到本地PC機.開(kāi)關(guān)量經(jīng)過(guò)總線(xiàn)隔離驅動(dòng)芯片(74HC245($0.0942))輸入到微控制器的P0~P2口。微控制器處理之后經(jīng)P3口輸出到8D鎖存器74HC573($0.1082)中,然后經(jīng)過(guò)驅動(dòng)電路控制如照明、空調等僅需要開(kāi)關(guān)的家用電器.開(kāi)啟用邏輯“1”表示,關(guān)閉用邏輯“0”表示,與此同時(shí)微控制器同樣經(jīng)CAN1口輸出到遠程主機,鍵盤(pán)電路用于設置系統的工作狀態(tài)及對采集量進(jìn)行本地顯示。
3系統軟硬件設計
下位機軟件設計主要可分為數據采集模塊、通信模塊、鍵盤(pán)及LCD控制模塊、開(kāi)關(guān)量輸出控制模塊。限于篇幅只介紹數據采集模塊的具體實(shí)現方式。ARM微控制器應用輪詢(xún)方式進(jìn)行模擬量和開(kāi)關(guān)量的采集。通過(guò)設置定時(shí)器/計數器0中斷,每次中斷時(shí)間20毫秒,用于模擬量(AI)采樣定時(shí);定時(shí)器/計數器1中斷,中斷時(shí)間250毫秒,每次中斷時(shí)掃描開(kāi)關(guān)量輸入(DI)狀態(tài).主程序開(kāi)始時(shí)進(jìn)行定時(shí)/計數器0,定時(shí)/計數器1,AD,DI等的初始化,初始化主要是設置定時(shí)器的中斷方式(設置定時(shí)器0溢出中斷,定時(shí)器1比較中斷),外部中斷INT0,INT1中斷方式(INT0下降沿產(chǎn)生異步中斷請求,INT1上升沿產(chǎn)生異步中斷請求);AD,DI處于可以接收模擬量和開(kāi)關(guān)量的狀態(tài),然后程序進(jìn)入循環(huán)狀態(tài),等待上位機控制信息的到來(lái),如果有控制信息到來(lái)便把相應的標志位置 1,主程序跳轉到相應的服務(wù)程序產(chǎn)生相應操作。
l 定時(shí)器0中斷服務(wù)程序
定時(shí)器0中斷主要完成模擬量的數據采集與平均值計算,其程序流程圖如圖2所示,具體為:定時(shí)器0中斷時(shí)間為20毫秒,用于A(yíng)D采樣計時(shí);當AD采樣次數滿(mǎn) 15次后判斷采樣結束標志,如果采樣結束則計算平均值然后在LCD上進(jìn)行顯示后,產(chǎn)生AD中斷,最后中斷返回。
l 定時(shí)器1中斷服務(wù)程序
定時(shí)器1主要完成掃描開(kāi)關(guān)量輸入狀態(tài),其中斷程序流程圖如圖3所示.具體為:中斷時(shí)間為250毫秒,如果有開(kāi)關(guān)量輸入,則置開(kāi)關(guān)量輸入標志為1,然后中斷返回。
圖2定時(shí)/計數器0中斷服務(wù)程序流程圖
圖3定時(shí)/計數器1中斷服務(wù)程序流程圖
上位機監控管理軟件設計采用分層結構,三個(gè)功能模塊從下至上依次分布在三層之中.由下向上三層依次為底層,通信層和圖形用戶(hù)界面層(GUI層),如圖4所示:
圖4 上位機軟件層次結構
系統設計在底層之上加通信層,這樣就可以完成本系統自定義的通信協(xié)議,由于系統要完成數據采集功能,這里的通信層也包括了數據處理模塊,這樣做可以簡(jiǎn)化一些設計,減小代碼編寫(xiě)量.通信層之上是圖形用戶(hù)界面層(GUI層),這層的功能是把數據流從通信層中讀出來(lái),以圖形方式向用戶(hù)表示,這樣在用戶(hù)使用系統的時(shí)候就會(huì )感到自由清晰,很好地完成工作。
本系統主要應用的是串行通信協(xié)議,這個(gè)協(xié)議是定義在物理層之上的,其具體協(xié)議行為發(fā)生在底層,我們不必關(guān)心它,只需對它的設置參數進(jìn)行相應的設置.另外,為完成系統的功能要求還須自定義一個(gè)數據幀或命令幀格式.所以這里通信層中的通信協(xié)議包括了兩方面的內容:一個(gè)是串行端口參數設置,另一個(gè)就是自定義的數據幀或命令幀。
串行端口設置參數主要有以下幾個(gè):波特率、數據位、奇偶校驗位、停止位以及編碼方式.本系統中的波特率設置為19200($2.0300) bit/s;數據位設置為8位;由于通信距離較近所以沒(méi)有奇偶校驗;停止位設為1位;編碼方式采用ASCII碼方式。這里的設置通過(guò)對Visual Basic 2005中SerialPort類(lèi)中的公共屬性BaudRate、DataBits、Parity、StopBits、Encoding的設置即可完成。
Visual Basic 2005 中的SerialPort類(lèi)用于控制串行端口文件資源.它具有如下特性:提供同步 I/O 和事件驅動(dòng)的 I/O,對管腳和中斷狀態(tài)的訪(fǎng)問(wèn)以及對串行驅動(dòng)程序屬性的訪(fǎng)問(wèn)。
4 結論
基于A(yíng)RM核心的微控制器無(wú)論在運算速度還是系統實(shí)現成本上都優(yōu)于傳統的8位單片機。本文利用NXP公司ARM7微控制器LPC2478設計完成了家居網(wǎng)絡(luò )的底層監控系統。本系統充分利用LPC2478的豐富片上資源,如LCD控制器、CAN總線(xiàn)接口,輔之簡(jiǎn)單的外圍電路實(shí)現監控系統的硬件部分。整個(gè)監控電路板的實(shí)現成本及功耗體積相比8位單片機實(shí)現方案,大大縮小,很適合家居智能化的工程實(shí)施。另外本文還提出了PC機監控管理軟件的通信層結構及實(shí)現細節,可以為家居智能化改造提供技術(shù)基礎。
評論