將基于51單片機(jī)的解碼器應(yīng)用于安防系統(tǒng)
目前,我國(guó)應(yīng)用極廣的編解碼器是Princeton公司生產(chǎn)的具有531441(312)種狀態(tài)的PT2262編碼芯片和與之配套的PT2272解碼芯片。但一片PT2272只能對(duì)一種地址的PT2262的15種狀態(tài)進(jìn)行解碼,對(duì)于較大的編解碼保安防盜控制系統(tǒng),常使用多片PT2272組合解碼,但仍遠(yuǎn)遠(yuǎn)滿足不了大中型安防系統(tǒng)的設(shè)計(jì)要求。因此,采用AT89C2051單片機(jī),實(shí)現(xiàn)了PT2262的大容量解碼功能。
2 PT2262的編碼原理
PT2262的工作原理如圖1所示,圖中K0~K7為地址端,應(yīng)該預(yù)置其狀態(tài);K8~K11為數(shù)據(jù)端,按下按鈕開關(guān)K8~K11后,PT2262就在第17腳輸出一串行編碼脈沖。開關(guān)K0~K11為12個(gè)位碼開關(guān),其0或1的狀態(tài)值組合出不同的編碼結(jié)果,每傳送一組編碼都自動(dòng)連發(fā)四次字碼。4M7電阻為PT2262的外接振蕩電阻。MPSH10為315MHz的高頻振蕩三極管。圖2~圖5表示了PT2262的編碼原理。圖2是PT2262的字碼結(jié)構(gòu),圖3是PT2262的位碼信號(hào),圖4是PT2262的同步位信號(hào),圖5是PT2262的幀碼結(jié)構(gòu)。
3 解碼的實(shí)現(xiàn)
3.1 位編碼信號(hào)的檢測(cè)方法
根據(jù)PT2262的編碼原理,其輸出的每個(gè)0位或1位編碼信號(hào)由二組脈沖組成,因此可以使用單片機(jī)進(jìn)行解碼。本設(shè)計(jì)使用了ATMEL半導(dǎo)體公司生產(chǎn)的AT89C51單片機(jī),利用“定時(shí)/計(jì)數(shù)器0”進(jìn)行脈寬的計(jì)時(shí),并判斷該脈寬的高字節(jié)是否相同,相同則為PT2262的0或1位(本設(shè)計(jì)只考慮了“0”和“1”狀態(tài),其每個(gè)位的二組脈沖是相同的)。AT89C51對(duì)0或1位編碼信號(hào)必須進(jìn)行12次判斷,如果全部正確,則該P(yáng)T2262編碼器就是本系統(tǒng)的信號(hào)之一。
3.2 SYNC同步信號(hào)的檢測(cè)方法
PT2262的SYNC同步編碼信號(hào)如圖4所示。該位脈沖的低電平長(zhǎng)達(dá)124個(gè)機(jī)器周期,因此只需判斷其脈寬時(shí)間是否大于8倍的“0”位或“1”位的脈寬。
3.3 解碼信號(hào)的處理
將12位解碼數(shù)據(jù)(可參閱htpp://www.princeton.com.tw)中的高8位與E2PROM中地址碼表的地址數(shù)據(jù)進(jìn)行比較,如果相同,則將E2PROM中對(duì)應(yīng)的房間號(hào)、單元號(hào)、樓棟號(hào)等數(shù)據(jù),通過(guò)P0、P1、P2口輸出到16位7段顯示屏。
4 硬件電路
本設(shè)計(jì)的解碼、安防接警中心電路原理圖如圖6所示,將經(jīng)高頻接收模塊變頻處理的數(shù)字脈沖信號(hào)送入AT89C2051(可參閱http://www.a(chǎn)tmel.com)的P3.4 I/O口進(jìn)行解碼,再將滿足E2PROM中地址碼條件的數(shù)據(jù)通過(guò)RS232接口輸出到計(jì)算機(jī)。圖中省略了數(shù)字鍵盤和報(bào)警喇叭驅(qū)動(dòng)電路部分。
5 軟件設(shè)計(jì)
軟件流程圖如圖7所示。
5.1 初始化
將AT89C2051〔1〕的16位定時(shí)/計(jì)數(shù)器0設(shè)置為內(nèi)部計(jì)數(shù)器方式。
5.2 編碼信號(hào)的采集
當(dāng)輸入信號(hào)為“1”時(shí),定時(shí)/計(jì)數(shù)器0開始計(jì)數(shù),并將定時(shí)/計(jì)數(shù)器0的高八位存入內(nèi)存緩沖區(qū)中。當(dāng)輸入信號(hào)為“0”時(shí),定時(shí)/計(jì)數(shù)器0也進(jìn)行計(jì)數(shù),同時(shí)判斷是否有大于8倍的內(nèi)存緩沖區(qū)中的值。如不滿足條件,則繼續(xù)采集脈沖信號(hào),否則對(duì)24個(gè)內(nèi)存緩沖區(qū)中的數(shù)據(jù)進(jìn)行處理。
對(duì)24個(gè)內(nèi)存緩沖區(qū)中的數(shù)據(jù)兩兩進(jìn)行比較,如果不相等,則編碼信號(hào)不是本系統(tǒng)中的信號(hào)。如果相等,則將其值設(shè)為“0”或“1”。如果12組數(shù)據(jù)都相等,則得到8個(gè)“0”或“1”的地址位和4個(gè)“0”或“1”的數(shù)據(jù)位。
將高8位的地址位與E2PROM中地址碼表中的數(shù)據(jù)進(jìn)行比較,如果不相等,則該編碼信號(hào)不是本系統(tǒng)中發(fā)射器的控制信號(hào)。如果相等,則將E2PROM中對(duì)應(yīng)的房間號(hào)、單元號(hào)、樓棟號(hào)等數(shù)據(jù),通過(guò)段控制P0口和位控制P1、P2口輸出到16位7段顯示屏,同時(shí)鳴響報(bào)警喇叭。數(shù)字鍵盤用于向E2PROM中鍵入編碼地址、房間號(hào)、單元號(hào)、樓棟號(hào)等數(shù)據(jù)。
假設(shè)某保安防盜系統(tǒng)中有32種地址的PT2262發(fā)射器,其地址為45H~64H,在AT89C2051的軟件中設(shè)定其地址碼表的值為45H、46H、47H、……、64H。如果當(dāng)?shù)刂窞?0H的發(fā)射器按下了K10開關(guān),則解碼系統(tǒng)所接收的高8位地址的值與軟件中地址表中50H的值相同,則輸出對(duì)應(yīng)的4位A、B、C、D的值0010B;如果當(dāng)?shù)刂窞?3H的發(fā)射器按下了K8開關(guān),則解碼系統(tǒng)所接收的高8位地址的值與軟件中地址表中63H的值相同,則輸出對(duì)應(yīng)的A、B、C、D的值1000B;……。該設(shè)計(jì)使用一片AT89C2051單片機(jī),替代了32片PT2272解碼芯片。
故此,在實(shí)際應(yīng)用中,PT2262的地址值可選00H~FFH共256個(gè)中的任意組合,從而實(shí)現(xiàn)了256個(gè)PT2262,至少256×4=1024個(gè)狀態(tài)的大容量的解碼功能。如果將PT2262的K8、K9、K10、K11任意組合,則可以有256×15=3840種狀態(tài)。
6 計(jì)算機(jī)的數(shù)據(jù)處理〔2〕
Delphi是Borland公司推出的可視化開發(fā)工具,它提供了大量的組件,用戶可以輕松地開發(fā)出功能強(qiáng)大的應(yīng)用程序,而且通過(guò)它編譯出來(lái)的可執(zhí)行文件的工作效率相當(dāng)高。
建立一個(gè)用戶數(shù)據(jù)庫(kù),包含有用戶的防盜主機(jī)的編號(hào)、姓名、詳細(xì)住址、電話、手機(jī)、傳呼等信息。
利用SPCOMM串口控件,接收AT89C2051發(fā)送的串口數(shù)據(jù)——防盜主機(jī)的編號(hào),將該數(shù)據(jù)與數(shù)據(jù)庫(kù)中的所有防盜主機(jī)編號(hào)一一對(duì)比,再將數(shù)據(jù)相同的用戶記錄顯示在屏幕上,同時(shí)調(diào)用一個(gè)聲音播放控件,報(bào)警提示。
7 結(jié)束語(yǔ)
本設(shè)計(jì)方案已應(yīng)用于保安防盜系統(tǒng)的接警中心,運(yùn)行狀態(tài)良好。也適用于其它編碼系統(tǒng),如華智-茂矽公司的VD5026和HOLTEK公司的HT12A/12E、HT6012/6014/6016等編碼芯片。
參考文獻(xiàn)
2 吳旭東,等著.Delphi3.0/4.0多媒體和數(shù)據(jù)庫(kù)編程.北京:清華大學(xué)出版社,2001
3 王 輝,等譯.Delphi從入門到精通.北京:電子工業(yè)出版社,2000
評(píng)論