基于AT89C2051的解碼器設(shè)計(jì)
目前我國應(yīng)用極廣的編解碼器是Princeton公司生產(chǎn)的具有531441(312)種狀態(tài)的PT2262編碼芯片和與之配套的PT2272解碼芯片,但一片PT2262只能對一種地址的PT2272的15種狀態(tài)進(jìn)行解碼,對于較大的編解碼保安防盜控制系統(tǒng),通常使用多片PT2272組合解碼方式,但這種多片方案仍然滿足不了設(shè)計(jì)要求。因此,本文給出了采用AT89C2051單片機(jī)實(shí)現(xiàn) PT2272大容量解碼的設(shè)計(jì)方案。
1 PT2262的編碼原理
PT2262的工作原理電路如圖1所示,圖中,K0~K7為地址端,使用時(shí)應(yīng)該預(yù)置其狀態(tài);K8~K11為數(shù)據(jù)端。當(dāng)應(yīng)用時(shí)按下按鈕開關(guān)K8~K11 后,PT2262就會在第17腳輸出一串行編碼脈沖。開關(guān)K0~K11為12個(gè)位碼開關(guān),其0或1的狀態(tài)組合可用來確定不同的編碼結(jié)果,每傳送一組編碼就會自動連發(fā)四次字碼。4.7MΩ電阻為PT2262的外接振蕩電阻。MPSH10為 315MHz的高頻振蕩三極管。圖2是PT2262的編碼原理示意圖。
2解碼的實(shí)現(xiàn)
2.1位編碼信號的檢測
分析PT2262的編碼原理可以發(fā)現(xiàn),其輸出的每個(gè)0位或1位編碼信號均由二組脈沖組成,因此可使用單片機(jī)進(jìn)行解碼。本設(shè)計(jì)使用ATMEL半導(dǎo)體公司生產(chǎn)的AT89C2051單片機(jī),利用其“定時(shí)/計(jì)數(shù)器0”進(jìn)行脈寬的計(jì)時(shí),并判斷該脈寬的高字節(jié)是否相同,如相同則為PT2262的0或1位(本設(shè)計(jì)只考慮了“0”和“1”狀態(tài),其每個(gè)位的二組脈沖是相同的),然后由AT89C2051對0或1位編碼信號進(jìn)行12次判斷,如果全部正確,則確定該P(yáng)T2262編碼器就是本系統(tǒng)的信號之一。
2.2 SYNC同步信號的檢測
PT2262的SYNC同步編碼信號如圖2(c)所示。由于該位脈沖的低電平時(shí)間長達(dá)124個(gè)機(jī)器周期,因此只需判斷其脈寬時(shí)間是否大于8倍的“0”位或“1”位脈寬即可測出其同步信號。
2.3解碼信號的處理
可將12位解碼數(shù)據(jù)中的高8位與地址碼表中的地址數(shù)據(jù)進(jìn)行比較,如果相同,則將12位解碼數(shù)據(jù)中的低4位輸出到單片機(jī)的P1.0~P1.3,同時(shí)置 VT位。輸出的時(shí)間長短由控制系統(tǒng)的需要來決定。一般輸出的解碼數(shù)據(jù)有三種情況:第一種為脈沖型;第二種在發(fā)射器按鍵撤消后輸出便停止;第三種在下次按鍵后,其輸出將改變。本設(shè)計(jì)使用1秒的脈沖型輸出。
3基于單片機(jī)的解碼方案
3.1硬件電路
本設(shè)計(jì)的解碼電路原理圖如圖3所示,利用該電路可將高頻接收模塊變頻處理后的數(shù)字脈沖信號送入AT89C2051的P0.0口進(jìn)行解碼,再將滿足地址碼條件的控制脈沖信號輸出到P1.0~P1.3,同時(shí)輸出1秒的VT信號。
3.2軟件設(shè)計(jì)
基于單片機(jī)AT89C2051的解碼軟件流程圖如圖4所示。利用初始化可將AT89C2051的16位定時(shí)/計(jì)數(shù)器0設(shè)置為內(nèi)部計(jì)數(shù)器方式。
在編碼信號的采集時(shí),如果輸入信號為“1”,則定時(shí)/計(jì)數(shù)器0將開始計(jì)數(shù),同時(shí)將定時(shí)/計(jì)數(shù)器0的高8位存入內(nèi)存緩沖區(qū)。而當(dāng)輸入信號為“0”時(shí),定時(shí)/計(jì)數(shù)器0也進(jìn)行計(jì)數(shù),同時(shí)判斷是否有大于8倍的內(nèi)存緩沖區(qū)中的值。如不滿足條件,則繼續(xù)采集脈沖信號;否則將對24個(gè)內(nèi)存緩沖區(qū)中的數(shù)據(jù)進(jìn)行處理。
解碼信號的處理過程實(shí)際上是對24個(gè)內(nèi)存緩沖區(qū)中的數(shù)據(jù)進(jìn)行倆倆比較。如果不相等,則認(rèn)為編碼信號不是本系統(tǒng)中的信號。如果相等,則將其值設(shè)為“0”或“1”。而如果12組數(shù)據(jù)都相等,則可得到8個(gè)“0”或“1”的地址位和4個(gè)“0”或“1” 的數(shù)據(jù)位。此時(shí)便可將高8位的地址位與程序中地址碼表中的數(shù)據(jù)進(jìn)行比較。如果不相等,則認(rèn)為該編碼信號不是本系統(tǒng)中發(fā)射器的控制信號。如果相等,則將其低 4位的數(shù)據(jù)位輸出到P1.0~P1.3口,同時(shí)輸出一個(gè)高脈沖VT信號到P0.6口。
假設(shè)某保安防盜系統(tǒng)中有32種地址的PT2262發(fā)射器,其地址從45H~64H,如果地址為50H的發(fā)射器按下了K10開關(guān),且解碼系統(tǒng)所接收的高 8位地址的值與軟件地址表中50H的值相同,那么,對應(yīng)輸出的4位A、B、C、D的值將是0010B;而如果地址為63H的發(fā)射器按下了K8開關(guān),且解碼系統(tǒng)所接收的高8位地址的值與軟件地址表中63H的值相同,其輸出對應(yīng)的A、B、C、D值將是1000B;……。由此可見,該設(shè)計(jì)僅使用一片 AT89C2051單片機(jī)即可替代32片PT2272進(jìn)行工作。
實(shí)際上,該方案中PT2262的地址值可選00H~FFH共256個(gè)中的任意組合,因而通過該方案可實(shí)現(xiàn)256個(gè)PT2262,即至少256×4=1024個(gè)狀態(tài)的大容量的解碼功能。如果將PT2262的K8、K9、K10、K11任意組合,則其解碼容量還可以達(dá)到256×15=3840種狀態(tài)。
4結(jié)束語
本文所設(shè)計(jì)的單片機(jī)解碼方案已應(yīng)用于某保安防盜系統(tǒng),實(shí)際運(yùn)行表明:運(yùn)行狀態(tài)良好。同時(shí),該方案也適用于其它編碼系統(tǒng),如華智茂矽公司的VD5026和HOLTEK公司的HT12A/12E、HT6012/6014/6016等編碼芯片。
參考文獻(xiàn)
1.PT2262 Data Sheet
2.PT2272 Data Sheet
3.AT89C2051 Data Sheet
4.謝筑森.單片機(jī)開發(fā)與典型應(yīng)用設(shè)計(jì).北京航 空航天大學(xué)出版社