1 引言 PT2262是紅外遙控編碼器,PT2272是其接收解碼器,兩者常常配對使用,現已廣泛用于汽車門控、遙控門鎖、門禁管理等領域,也可用于傳送數字信息。PT2262具有19位二進制編碼功能;PT2272的解碼只有4~6位,這就限制了數據傳輸的應用。在此從PT2262接收的信號特征入手,利用8051F330單片機直接對接收到的信號進行解碼,解釋出PT2262發出的全部19位數據,從而使其應用于數字通信、智能化控制等領域。 2 硬件電路 圖1是發射裝置的原理圖,PT2262作為編碼器,當按下按鍵時,設定的地址碼和數據碼從17引腳串行輸出,經紅外發射元件IRED發出信號。通過電阻Rosc調節發射頻率,適當提高PT2262工作電壓(2.6 V~15 V),以增大發射距離。其中A0~A12可設置為高電平、低電平、懸空三種狀態,因此可以發送531 441種編碼組合,完全滿足設計需求。 接收裝置采用集紅外線接收、放大、整形于一體的集成電路TL0038,無需任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,故適用于各種紅外線遙控和紅外線數據傳輸。譯碼采用8051F330D單片機,11.059 2 MHz晶體振蕩器,接收信號送至I/0端口P1.0進行軟件解碼。接收和譯碼電路如圖2所示。 3 解碼原理 編碼器PT2262發送的編碼信號是由:地址碼、數據碼、同步碼組成的一個完整碼字,最多可以有12位(A0~A11)三態地址端引腳(懸空、高電平、低電平),任意組合可提供531 441個地址碼。將編碼器PT2262的A8拉高,D3拉高,D0拉高,D1拉低,其余懸空。截取一段接收模塊信號輸出波形如圖3所示,PT2262每發射一次,至少發送4組相同編碼字碼。每組字碼間隔(低電平)約14 ms。 將其截獲波形每組字碼放大,如圖4所示,一組字碼有12位A/D碼,每個A/D位是由2個脈沖表示:2個窄脈沖則表示“0”:2個寬脈沖表示“1”;1個窄脈沖和1個寬脈沖表示“F”,即地址碼“懸空”:除此之外,每組字碼之間還有1個同步碼隔開,所以每組字碼共計有25個寬度不同的脈沖。窄脈沖寬為200μs,寬脈沖寬為1 200μs;兩個窄脈沖之間寬1 200μs;兩個寬脈沖間寬200μs;寬窄脈沖間寬為200μs;在4組字碼中,每組的字碼間隔為14 000μs。因此,采用單片機軟件解碼時,只要判斷出起始碼,并且識別其后面的字碼脈沖寬度即可。 4 抗干擾措施 常用抗干擾措施,是在硬件電路中采用電源濾波、電源穩壓、數字地與模擬地隔離。在設計中,除采用上述方法外,還根據干擾信號與有效信號波形特征異同點,采用軟件識別干擾信號和有效信號,從而實現“抗干擾”目的。 當遙控器不發射時,由于空氣中各雜波干擾,接收模塊的信號輸出端仍然會有干擾信號,截獲波形如圖5所示。 觀察其特征,低電平最長為3 000μs,最短數十微秒;高電平最長500μs,最短數微秒.與發射時接收到的規則波形(即非有效信號)相比較,低電平為1 400μs的信號,是有效信號,而不是干擾信號。 并將A0~A34個地址焊接到高電平上作為發射編碼信號的幀前碼,可解決誤碼率和干擾問題。 5 軟件解碼 步驟1:單片機循環記錄接收模塊信號電平脈沖的長度。高低電平都記錄。 步驟2:從記錄高低電平組成的波形中,找出連續8個1 200μs時長的脈沖信號為特征波形段,即幀前碼。 步驟3:確認幀前碼之前是否存在一個時長為14 000μs的低電平,如果有(則說明不是干擾碼),將解碼并存儲結果,然后根據指令碼執行相應控制功能。如沒有,則放棄記錄的數據,重復步驟1,直到滿足條件為止。 以下給出了相關軟件解碼的程序代碼: } } 6 結束語 該軟件解碼部分已在8051F330D單片機(11.059 2 MHz晶體振蕩器)上通過現場測試,設計方案可應用于門禁管理系統。實踐表明,應用方便、可靠性好、代碼識別準確。 |