新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT89C81的小區(qū)電話報(bào)警平臺(tái)

基于AT89C81的小區(qū)電話報(bào)警平臺(tái)

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
  引言

  在現(xiàn)今社會(huì)中,電話網(wǎng)絡(luò)報(bào)警以其快捷有效的優(yōu)點(diǎn)得到普遍的應(yīng)用。已逐步成為計(jì)算機(jī)的主流接口的通用串行總線USB很好地適應(yīng)了現(xiàn)代計(jì)算機(jī)多媒體功能的拓展。目前通用的報(bào)警平臺(tái)的接口是采用PCI卡價(jià)格貴,且不能即插即用。采用USB接口代替PCI卡,不僅降低了成本,而且可以提高管理平臺(tái)的易用性和可維護(hù)性。本文在VC++++下實(shí)現(xiàn)的小區(qū)報(bào)警管理平臺(tái)的主要功能為:接收從用戶報(bào)警系統(tǒng)通過(guò)電話網(wǎng)絡(luò)傳輸來(lái)的報(bào)警信息(包括用戶信息以及具體警報(bào)類型等),再將報(bào)警信息通過(guò)USB接口傳入監(jiān)控主機(jī),與預(yù)先存入ADO(Activex Data Objects)數(shù)據(jù)庫(kù)的用戶信息進(jìn)行查找,確定具體用戶信息,以便及時(shí)對(duì)小區(qū)內(nèi)警情進(jìn)行處理。系統(tǒng)主要由接收?qǐng)?bào)警信息預(yù)處理電路與PC機(jī)組成(如圖1)。報(bào)警信息接收預(yù)處理電路通過(guò)接收電話網(wǎng)絡(luò)傳來(lái)的報(bào)警信息,并將報(bào)警信息格式化,再通過(guò)USB接口將信息傳送給PC機(jī)。PC機(jī)接收傳送回來(lái)的格式化信息,進(jìn)行信息分析和差錯(cuò)處理,確認(rèn)格式正確后再與數(shù)據(jù)庫(kù)(ADO)中的用戶數(shù)據(jù)進(jìn)行比對(duì),將報(bào)警用戶的信息通過(guò)報(bào)警對(duì)話框彈出顯示。

本文引用地址:http://m.butianyuan.cn/article/201611/318906.htm

  
圖1 系統(tǒng)結(jié)構(gòu)框圖

  系統(tǒng)硬件

  前端電路主要由HT9032(FSK解調(diào)電路)、單片機(jī)AT89C81、模擬摘掛機(jī)電路、線路異常監(jiān)測(cè)電路和EZ-USB FX2(CY7C68013)(USB接口電路)組成,見(jiàn)圖2。HT9032是一種FSK解碼芯片,引腳及功能與Freescale公司的MC145447及EMC公司的EM92547A相兼容。圖3為其外圍電路以及與單片機(jī)的連接。

  
圖2 系統(tǒng)的前端電路

  
圖3 HT9032的電路連接圖

  主叫識(shí)別信息數(shù)據(jù)的格式有二種:?jiǎn)螖?shù)據(jù)消息格式(SDMF)和復(fù)合數(shù)據(jù)消息格式(MDMF),前者結(jié)構(gòu)簡(jiǎn)單,也比較常用,具體格式如圖4。

  
圖4 FSK的數(shù)據(jù)格式

  信道占用信號(hào):由一組300個(gè)連續(xù)的“0”和“1”交替組成,第一個(gè)比特為“0”,最后一個(gè)為“1”。在通話狀態(tài)下,信道占用信號(hào)不發(fā)送。接收端只在正確收到這個(gè)信號(hào)后才認(rèn)為后面緊跟的為有效信號(hào)。

  標(biāo)志信號(hào):由180個(gè)(掛機(jī)狀態(tài)下)或80個(gè)(通話狀態(tài)下)標(biāo)志位(邏輯1)組成,即持續(xù)的高電平消息類型字:?jiǎn)螖?shù)據(jù)格式情況下為“04H”,表示為主叫號(hào)碼傳送信息。

  消息長(zhǎng)度字:占一個(gè)字節(jié),為消息字的數(shù)目。

  消息內(nèi)容:?jiǎn)螖?shù)據(jù)消息格式。消息字內(nèi)容如下:日期、時(shí)間(月、日、時(shí)、分),共8個(gè)字節(jié);主叫號(hào)碼(如果允許顯示);如果不允許顯示主叫號(hào)碼,將傳送字符“P”;當(dāng)終端交換機(jī)無(wú)法得到主機(jī)號(hào)碼時(shí),將傳送字“O”。

  校驗(yàn)和:校驗(yàn)字的算法是將消息數(shù)據(jù)(即單數(shù)據(jù)格式的消息類型字、消息長(zhǎng)度字和消息數(shù)據(jù)字)按256的模求和取補(bǔ)來(lái)得到校驗(yàn)字。解碼后的數(shù)據(jù)經(jīng)過(guò)AT89C51的提取、整理,通過(guò)CYC68013的IO口傳送給68013的內(nèi)部RAM后再經(jīng)過(guò)USB總線傳送給PC機(jī)。

  電話線上的直流和交流電壓都高于報(bào)警主機(jī)的電壓,需要在接口處加光耦,將程控交換機(jī)和報(bào)警器的電源隔離。要避免戶外斷線或戶外非法并機(jī),并且報(bào)警器沒(méi)有摘機(jī)的情況下才報(bào)警。出現(xiàn)異常,光耦導(dǎo)通,集電極輸出低電平給單片機(jī),進(jìn)行異常報(bào)警中斷處理。

  用PNP的三極管控制繼電器常開(kāi)端的吸合和打開(kāi)。當(dāng)單片機(jī)發(fā)出摘機(jī)信號(hào)時(shí),給三極管的基極低電平,三極管導(dǎo)通,繼電器閉合,電話線兩端的電阻降至300 nΩ左右,從而實(shí)現(xiàn)模擬摘機(jī)。當(dāng)單片機(jī)發(fā)出掛機(jī)信號(hào)時(shí),給三極管的基極高電平,三極管截止,繼電器常開(kāi)端打開(kāi),電阻上升至無(wú)窮,從而實(shí)現(xiàn)模擬掛機(jī)。

  Cypress公司的EZ-USB FX2芯片,將USB外圍接口設(shè)備所需的各種功能包裝成一個(gè)簡(jiǎn)潔的集成電路。集成的USB收發(fā)器連接到USB總線中的D+和D-;串行接口引擎(SIE)進(jìn)行譯碼、編碼、錯(cuò)誤糾正和位填充,變換USB所需的信號(hào)電平;最終,從USB接口SIE發(fā)送和接收數(shù)據(jù)。CPU采用增強(qiáng)8051,提高了運(yùn)行速度,增強(qiáng)了功能。同時(shí),該芯片采用內(nèi)部RAM用于程序和數(shù)據(jù)存取。

  系統(tǒng)軟件的實(shí)現(xiàn)

  下位機(jī)程序

  下位機(jī)程序主要由單片機(jī)89C51的中斷接收發(fā)送程序,以及USB芯片68013的固件程序組成。89C51接收來(lái)自HT9032的中斷信號(hào),根據(jù)解碼數(shù)據(jù)格式,獲取報(bào)警電話號(hào)碼以及報(bào)警時(shí)間。HT9032解調(diào)出的FSK基帶信號(hào),送入單片機(jī)捕獲中斷,信號(hào)碼為1 200 b/s。由于采樣周期不可能是理想的1200 Hz,會(huì)使采樣位置漸漸偏離碼元中心,造成判決錯(cuò)誤。所以,每次下降沿捕獲中斷產(chǎn)生后,單片機(jī)計(jì)數(shù)時(shí)鐘重新復(fù)位,矯正其采樣相位;然后,延時(shí)0.4 ms(2.4 kHz),取碼元中點(diǎn),并開(kāi)始按1.2 kHz速率采樣,由此得到0、1比特流,將其按10 bit合成字節(jié)信啟,每個(gè)字節(jié)起始位是1,結(jié)束位為0,中間8位為信息。最后根據(jù)主叫識(shí)別的單數(shù)據(jù)消息格式提取所需的消息中斷處理程序。

  USB的固件框架包含初始化、處理標(biāo)準(zhǔn)USB設(shè)備請(qǐng)求以及USB掛起時(shí)的電源管理等,提供了現(xiàn)成的8051程序代碼,只需簡(jiǎn)單的提供USB描述符及編寫外設(shè)功能代碼,就可以開(kāi)發(fā)出一個(gè)功能完善的USB外設(shè)。

  上位機(jī)程序

  上位機(jī)程序包括USB接口驅(qū)動(dòng)和客戶端管理平臺(tái)。EZ-USB系列芯片都具有通過(guò)下載固件和重枚舉的方式來(lái)動(dòng)態(tài)改變?cè)O(shè)備特性的能力。我們希望最終的產(chǎn)品能自動(dòng)完成固件下載,以及設(shè)備重枚舉。在這里,我們利用EZ-USB軟件開(kāi)發(fā)包提供的一個(gè)固件下載驅(qū)動(dòng)程序的模板,即EZ-Loader Driver。利用這個(gè)模板,并且改寫原驅(qū)動(dòng)的inf文件,最后將新的VID/PID寫入串行EEPROM的前7個(gè)單元中。這樣將USB設(shè)備接入PC機(jī)時(shí),固件就可以自動(dòng)下載運(yùn)行了。

  管理平臺(tái)客戶端在微軟的VC++平臺(tái)上開(kāi)發(fā),主要功能有:通信線路故障自動(dòng)檢測(cè)、報(bào)警用戶信息顯示、報(bào)警地圖顯示、報(bào)警類型顯示、報(bào)警事件處理狀態(tài)記錄、報(bào)警信息存儲(chǔ)和檢索等。當(dāng)通信線路或計(jì)算機(jī)與報(bào)警平臺(tái)硬件之間的USB通信發(fā)生故障,PC端監(jiān)控軟件會(huì)自動(dòng)報(bào)警,保證系統(tǒng)工作可靠。當(dāng)收到報(bào)警信息時(shí),小區(qū)布局圖中報(bào)警客戶所在樓棟圖會(huì)發(fā)出紅色閃光報(bào)警。圖5所示為客戶端主界面中的小區(qū)布局圖。

  
a)沒(méi)有報(bào)警信號(hào)到來(lái)

  
b)有報(bào)警信號(hào)到來(lái)

  圖5 軟件界面示意圖

  應(yīng)用程序通過(guò)I/O控制訪問(wèn)EZ—USB GDP??蛻舳藨?yīng)用程序首先通過(guò)調(diào)用Win32函數(shù)CreateFile()取得訪問(wèn)設(shè)備驅(qū)動(dòng)程序的句柄。用戶程序使用Win32函數(shù)DeviceIoControl()提交I/O控制碼,并且為CreateFile()函數(shù)返回的設(shè)備句柄設(shè)置I/O緩沖區(qū)。用戶程序在打開(kāi)USB接口后建立一個(gè)新線程來(lái)等待接收USB總線發(fā)送過(guò)的報(bào)警信息。Access數(shù)據(jù)庫(kù)中建立了兩張表,一張是用戶信息表,一張是歷史記錄表。用戶程序通過(guò)ADO方式控制Access數(shù)據(jù)庫(kù),ADO最主要的優(yōu)點(diǎn)是易于使用、速度快、內(nèi)存支出少和磁盤遺跡小。并且,在前端和數(shù)據(jù)源之間使用最少的層數(shù),所有這些都是為了提供輕量、高性能的接口。當(dāng)?shù)却€程接收到報(bào)警信息并進(jìn)行數(shù)據(jù)整理后,通過(guò)ADO方式對(duì)用戶信息表進(jìn)行比對(duì),檢索出報(bào)警用戶信息,在平臺(tái)界面上顯示,并且自動(dòng)將報(bào)警信息記錄在歷史記錄表里。

  結(jié)語(yǔ)

  本系統(tǒng)可快速、高效的監(jiān)控家居安防狀況。通過(guò)電話網(wǎng)絡(luò)及時(shí)對(duì)小區(qū)內(nèi)的警情進(jìn)行反應(yīng)以及處理,并通過(guò)數(shù)據(jù)庫(kù)對(duì)住戶信息進(jìn)行管理。平臺(tái)采用USB接口,安裝方便,容錯(cuò)性好。監(jiān)控平臺(tái)具有價(jià)格低廉、安裝方便、操作簡(jiǎn)便、可靠性高和誤碼率低的優(yōu)點(diǎn),經(jīng)過(guò)長(zhǎng)期測(cè)試,工作正常,性能穩(wěn)定,通訊可靠。



評(píng)論


技術(shù)專區(qū)

關(guān)閉