一種基于AT89S52和CAN總線的家居安防系統(tǒng)設計
1 引言
現(xiàn)在,人們對工作和生活環(huán)境不僅要求舒適健康、可靠便利, 而且更加看重安全性,并利用安防系統(tǒng)來提高家庭抵御各種意外情況的能力?,F(xiàn)在的安防系統(tǒng)可借助計算機技術、IC 卡技術、通信技術等來實現(xiàn),CAN總線應用于安防系統(tǒng)對家居智能化發(fā)展起到了良好的促進作用。CAN總線是一種應用較為廣泛的現(xiàn)場總線, 它支持多主節(jié)點, 有完善的錯誤處理機制, 通信速率快, 傳送距離遠, 可掛接控制設備多 。而把DTMF 技術應用于安防系統(tǒng), 不需要專門的布線, 不占用無線電頻率資源, 沒有電磁污染。文中設計了一種基于CAN 總線和DTMF技術的以AT89S52單片機為核心的新型智能家居安防系統(tǒng), 使原來小區(qū)安防系統(tǒng)的實時性和可靠性有了一個新層次的提高。本系統(tǒng)可以對整個家居的安全環(huán)境進行實時監(jiān)控, 監(jiān)控的范圍包括室內防盜、火災報警、煤氣泄露等一系列不安全因素。一旦有上述事故發(fā)生, 該報警系統(tǒng)就會發(fā)出相應的報警信息, 用語音播出警情類別, 向遠方用戶和相關部門提供警情語音。
2 系統(tǒng)總體構成
系統(tǒng)框圖如圖1所示。單片機控制DTMF收發(fā)電路、數(shù)字語音電路、摘掛機控制電路。探測器能夠快速、準確地監(jiān)測到住宅的異常狀況, 經(jīng)確認后及時通知控制器, 再由單片機來控制電話接口電路, 實現(xiàn)模擬摘機, 自動撥打預先設置的電話號碼進行語音報警并通知管理中心。當監(jiān)測到對方回應后, 自動恢復警戒狀態(tài)。
圖1 家居安防系統(tǒng)框圖
3 硬件設計
系統(tǒng)主控部分采用AT89S52單片機, 無需擴展外部存儲器??撮T狗電路采用具有可編程的串行EEPROM - X25045。X25045依次存儲了標志字段、話機號碼、警情代號、系統(tǒng)設置等數(shù)據(jù)信息。數(shù)字語音電路采用數(shù)字語音芯片ISD1420。系統(tǒng)中 ISD1420僅作為基本錄放音電路, 所以所有的地址線全部置為0, 因此放音的起始地址是0。語音信號由駐極話筒拾取, 從M IC 和M IC REF兩端輸入芯片內部的放大器放大, 經(jīng)過功放后的音頻信號從SP+ 被用來與通話電路相連, 以送出語音信號。
3. 1 振鈴檢測及模擬摘掛機單元
系統(tǒng)并于電話線兩端, 時刻處于監(jiān)控狀態(tài), 不會影響電話的正常工作。當系統(tǒng)接收到振鈴信號時,會進行振鈴檢測。振鈴信號經(jīng)三個反相器后接入AT89S52的P3. 4口。若5次振鈴后無人接聽, 則系統(tǒng)進入自動摘機狀態(tài)。單片機P1. 2 引腳輸出高電平, 三極管V501導通則繼電器K1 動作, 將負載電阻接入電路實現(xiàn)模擬摘機。此后電話線上就會出現(xiàn)大于10mA 的電流, 交換中心檢測到這一電流后就不再輸出振鈴信號而是轉為接通電話。如果振鈴信號沒有達到預設值就消失, 則單片機的計數(shù)值清零,控制器不動作。
3. 2 DTMF收發(fā)單元
DTMF收發(fā)電路采用DTMF 信號編/解碼芯片MT8880[ 5] 芯片, 單片機通過DTMF收發(fā)電路撥出電話號碼進行電話報警, DTMF 收發(fā)電路如圖2所示。
圖2 DTMF收發(fā)電路
MT8880提供了與微處理器相連的接口, 以對其發(fā)送、接收和工作模式進行控制。它的接收部分采用單端輸入, 由R27、R28和C16 組成, 其輸入電壓增益為1, 通過改變R28可調節(jié)輸入信號的增益。它的發(fā)送部分由R29、C17、C18和XTAL2構成。它的控制部分由R30 和C19 構成。IRQ /CP 與單片機P3. 5 腳相連。當MT8880接收到有效的雙音多頻信號時, 單片機進行中斷處理。MT8880 的IN - 端和通話電路TEA 1062 的QR 端相連, MT8880 的TONE端和TEA1062的DTMF端相連。
3. 3 通話單元
通話電路使用電話機專用通話集成電路TEA1062。送話時, 語音信號(來自ISD1420)通過M IC + 引腳輸入, DTMF信號(來自MT8880)通過DTMF引腳輸入, 經(jīng)過TEA1062 放大后從LN 引腳一起送到電話外線上。受話時, 信號通過消側音網(wǎng)絡, 從IR 引腳輸入, 放大后從引腳QR 輸出, 分兩路: 一路送到ISD1420的ANA IN 端供語音錄制用,另一路送到MT8880的IN - 端提取DTMF信號。
3. 4 CAN 總線數(shù)據(jù)傳輸單元
CAN 總線數(shù)據(jù)傳輸單元由兩部分構成, 一部分是CAN 控制器, 實現(xiàn)對總線數(shù)據(jù)的交互與控制, 另一部分是CAN 數(shù)據(jù)收發(fā)器, 實現(xiàn)數(shù)據(jù)的網(wǎng)絡傳輸。
單片機AT89S52通過控制CAN 控制器來實現(xiàn)對總線的訪問, 同時還負責功能單元的測量和控制, CAN 總線接口電路如圖3所示。
圖3 CAN總線接口電路
AT89S52 通過中斷方式訪問CAN 控制器SJA1000, 為了增強CAN 總線節(jié)點的抗干擾能力,SJA1000通過高速光耦6N137 與CAN 總線驅動器PCA82C50 相連。PCA82C50 的CANH 和CANL引腳各自接了一個5 的電阻與CAN 總線相連, 可以起到限流作用, 以免PCA82C50受到過電流沖擊。
4 軟件設計
系統(tǒng)的軟件采用模塊化設計, 主要包括主程序模塊、CAN 通信模塊、振鈴檢測模塊、語音報警模塊、DTMF收發(fā)模塊等, 這里主要介紹主程序和CAN通信模塊設計。
4. 1 主程序設計
主程序主要完成各功能模塊的調用, 檢測系統(tǒng)輸入, 然后根據(jù)系統(tǒng)狀態(tài)進行判斷處理。程序進行主循環(huán)之前還要進行必要的初始化, 如MT8880、ISD1420、SJA1000、相關標志位等。主程序流程如圖4所示。
圖4 主程序流程圖
4. 2 CAN 通信模塊設計
CAN 通信模塊包括控制器初始化、數(shù)據(jù)接收和發(fā)送子程序。SJA1000有復位模式和工作模式兩種狀態(tài), 兩種狀態(tài)下寄存器配置不同。當參數(shù)設置完后, CPU 發(fā)出命令, SJA1000 處于工作狀態(tài), 進行正常通信。如果通信出錯, CPU 會使SJA1000 回到復位模式。接收模塊負責節(jié)點報文的接收及相關處理。接收過程中CPU 會讀數(shù)據(jù), 根據(jù)命令字判斷數(shù)據(jù)幀的類型進行不同處理。發(fā)送模塊負責報文的發(fā)送, SJA1000 發(fā)送數(shù)據(jù)前, 要判斷是否滿足發(fā)送條件, 如果滿足, 則把報文幀信息、標識符和要發(fā)送的數(shù)據(jù)寫入緩沖區(qū), 即可發(fā)送。JA 1000的收發(fā)流程圖如圖5所示。
圖5 JA 1000的收發(fā)流程圖
5 結束語
本系統(tǒng)以AT89S52單片機為核心, 不用對電話網(wǎng)進行任何改造, 實現(xiàn)對家居設防點進行自動檢測和語音報警。設計中用CAN 總線結構組成安防系統(tǒng), 有較好的靈活性和擴展性, 同時利用CAN 總線引入實時的數(shù)據(jù)處理, 提高了系統(tǒng)的可靠性??蓪怯羁梢晫χv、智能小區(qū)管理、門禁管理等有較大的應用推廣價值。