文|四川西華大學能源與環(huán)境學院 李曉虹 劉克福
基于單片機和CAN總線的智能家居控制系統
文|四川西華大學能源與環(huán)境學院 李曉虹 劉克福
本文針對智能家居系統集成度低,各系統間聯系不大的狀況,介紹了一種采用單片機為控制核心的,基于CAN總線的組網技術,并結合公用電話網絡,設計了一種能夠實現樓宇對講、電話遠程監(jiān)控和多點報警等功能的智能家居控制系統。
智能家居 CAN總線 單片機 系統集成
智能家居于20世紀80年代興起于日本和歐美,于90年代末進入中國,伴隨著經濟的發(fā)展和人們生活水平的提高逐漸為國人所了解和接受。目前國內的各種智能化系統和產品較多,但各系統相互獨立,集成度較低,彼此聯系不大。比如樓宇對講系統、安防系統、家用電器自動控制系統等,都各有自己的終端,沒有統一的智能控制平臺。對用戶而言,這種狀況增加了使用成本和操作的復雜性;對施工而言,則導致了重復布線。本文針對此種狀況,設計一種采用單片機AT89C52為控制核心,利用原有的電話網絡,將樓宇對講、安防報警和電話遠程監(jiān)控系統集成起來,形成一個統一的智能控制平臺,并通過CAN總線組網與門口機和管理機相連,能實現樓宇對講、電話遠程監(jiān)控和報警等功能的智能家居控制系統。此系統操作簡單,無需重復布線,成本有所降低,是一種真正適用于智能家居的系統。
樓宇對講采用小區(qū)聯網式系統,在各住宅單元門口及住戶家中安裝對講系統,以實現訪客身份驗明和與住戶對講,以及住戶遠程控制開鎖的功能,從而有效地防止非法人員進入住宅樓。
家居安防系統具有防盜、防火、遠程監(jiān)控及報警等功能。
家用電器自動控制系統的主要功能是控制家用電器、照明等電氣設備。該系統能夠實現本地集中控制家庭內部照明或家用電器,也可以在需要時通過電話遠程控制家庭內部家電設備,節(jié)約能源。
智能家居控制系統室內分機系統構成,如圖1所示。該系統主要由單片機及其I/O口擴展部分、樓宇對講部分、安防報警部分、電話遠程監(jiān)控部分、與CAN總線連接的節(jié)點部分,以及鍵盤、顯示部分組成。
單片機選用控制功能強大的AT89C52為主控制器,主要用于信號的采集、數據處理、控制信號的輸出等,是整個控制系統的核心。由于本系統所需的I/O口較多,單片機本身提供的I/O口不夠,故利用芯片8255對其I/O口進行擴展。其中8255的PA口工作于輸出方式,用于對家用電器進行開關控制;PB口工作于輸入方式,用于各種報警探測器的警情信號的輸入;PC口用于擴展鍵盤。
為了滿足樓宇對講系統中各部分的功能要求,本系統使用三根I/O口線和一個開鎖鍵。三根I/O口線中,一根做輸出,用于控制對講分機的振鈴;一根做輸入,用于檢測對講分機的摘機信號;一根用于控制對講分機的模擬音頻信號通道的控制繼電器,使用戶可以在其接通后通過音頻模擬通道直接進行對話。開鎖鍵設于鍵盤上,開鎖信號通過CAN總線傳到門口機,門口機接到開鎖信號后控制開啟樓門鎖。
安防報警部分的功能包括警情信號的輸入、本地報警、本地報警顯示、遠程報警。警情信號包括各種探測器,如窗磁開關、門磁開關、被動紅外傳感器、煤氣探測器、火災探測器等的信號。各種警情信號都接到8255的PB口。本地報警是單片機通過I/O口控制蜂鳴器進行聲音報警,同時由八段數碼管顯示器顯示報警類別。遠程報警包括遠程電話報警和通過CAN總線向集中控制室的管理人員進行報警。
實現遠程監(jiān)控的方案主要有基于Internet的遠程控制、基于電力線的遠程控制和基于電話網絡的遠程控制三種。前兩種組網方案較為復雜,技術難度大,而且成本較高,對維護者技術水平的要求也較高。而電話網絡是一種技術成熟、應用較廣、成本低的通信網絡,本設計采用電話網絡實現遠程監(jiān)控。當家里有警情時,用戶能通過電話實現遠程報警。當需要遠程控制家用電器時,用戶可通過電話將控制信號送入單片機,單片機再通過8255的PA口輸出控制信號,驅動繼電器對家用電器進行開關控制。電話遠程監(jiān)控部分的電路主要包括三部分:信號檢測、模擬摘掛機電路,用HT9170和HT9200A實現的雙音多頻DTMF信號收發(fā)電路,用ISD1420作為錄放音元件的語音錄放電路。
本設計利用CAN總線對等式的通信網絡實現智能家居控制系統室內各分機之間,以及分機與總機之間信息的互通,具有各節(jié)點地位均等,無主從節(jié)點的特點。由于主控制器AT89C52型單片機本身不帶CAN總線控制器,本設計采用SJA1000型CAN總線通信控制器和AT82C250型總線驅動器來實現單片機與CAN總線之間信息的互通。
鍵盤采用4×4矩陣鍵盤,共設16個按鍵,其中有十個數字鍵,其余的為設防按鈕、住戶呼叫對講按鈕、開鎖按鈕、確定按鈕、清除報警撤防按鈕和家電控制按鈕,分別用于各種控制信號、呼叫/求救信號、開鎖信號、撤防/布防信號的輸入。顯示器采用串入并出的74LS164移位寄存器來驅動一位LED八段數碼管,進行控制參數或報警類別的實時顯示。
為使程序清晰可讀且運行速率高,本系統軟件采用模塊化結構設計,由主程序和相關子程序(如鍵盤掃描子程序、顯示子程序、語音提示子程序、撥號報警子程序、電器控制子程序等)組成。主程序流程如圖2所示。該程序主要包括安防報警、樓宇對講和電話遠程控制三個模塊。
主程序工作過程為:系統上電復位后進行初始化,待初始化完成,系統分別對警情信號、樓宇對講呼叫信號和電話呼入信號進行檢測,如有信號輸入,則進入對應的處理模塊。在安防報警模塊中,設置延時程序以消除抖動和誤報警,延時程序主要通過調用鍵盤掃描子程序實現。如果延時完成后仍有警情,則按順序進行本地報警、通過CAN總線向中央控制室報警和撥號電話報警,從而實現多點報警的功能,將損失降到最低。樓宇對講模塊中,門口機的呼叫信號經CAN總線傳到分機,分機檢測到此信號后,接通對講機振鈴,然后再判斷是否摘機,如沒有摘機信號,則延時再判斷。當住戶摘機后,單片機輸出信號控制音頻通信線路的控制繼電器接通,使住戶與呼叫者得以進行通話。在通話期間,單片機判斷其是否掛機,如掛機則返回,未掛機則調用鍵盤掃描子程序,判斷開鎖鍵是否按下,如按下則通過CAN總線和門口機進行遠程開鎖。電話遠程控制程序模塊的工作過程是當有電話呼入時,先檢測是否振鈴4次,再模擬摘機,摘機后放錄音提示輸入密碼。如密碼不正確,則模擬掛機;如密碼正確,則放錄音提示輸入需控制電器的序號,然后檢測其返回的控制信號,并調用電器控制子程序,進行家用電器的開關控制,完成后模擬掛機。
本文設計的智能家居控制系統充分利用單片機強大的控制功能和CAN總線靈活方便、可靠性高、通信速率高、價格低廉、組網容易等的突出特點,并結合現有的公共電話網絡,對智能家居中各個相對獨立的系統進行集成,實現樓宇對講、電話遠程控制、多點報警等功能。CAN技術是一種新的控制網絡技術,與現有的成熟的公共電話網絡相結合,必將在智能小區(qū)的應用中逐漸顯示出其獨特的優(yōu)勢。
1 李彬.淺談智能家居——樓宇對講系統的發(fā)展方向[J].安防工程商,2006(3):64~65
2 張洪潤,劉秀英,張亞凡等.單片機應用設計200例(上冊)[M].北京:北京航空航天大學出版社,2006
3 林華,薛昭武.基于單片機的智能電話報警系統[J].國外電子元器件,2007(5):12~14
4 王福瑞.單片微機測控系統設計大全[M].北京:北京航空航天大學出版社,2001
5 李金剛,劉永鴻.基于AT89C51型單片機的CAN總線智能節(jié)點設計[J].國外電子元器件,2006(8):26~29