• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)實(shí)現(xiàn)遙控編碼器PT2262的軟件解碼

    基于單片機(jī)實(shí)現(xiàn)遙控編碼器PT2262的軟件解碼

    作者: 時(shí)間:2008-10-16 來源:網(wǎng)絡(luò) 收藏
    1 引言
    PT2262是紅外遙控編碼器,PT2272是其接收解碼器,兩者常常配對使用,現(xiàn)已廣泛用于汽車門控、遙控門鎖、門禁管理等領(lǐng)域,也可用于傳送數(shù)字信息。PT2262具有19位二進(jìn)制編碼功能;PT2272的解碼只有4~6位,這就限制了數(shù)據(jù)傳輸?shù)膽?yīng)用。在此從PT2262接收的信號特征入手,利用8051F330單片機(jī)直接對接收到的信號進(jìn)行解碼,解釋出PT2262發(fā)出的全部19位數(shù)據(jù),從而使其應(yīng)用于數(shù)字通信、智能化控制等領(lǐng)域。


    2 硬件電路
    圖1是發(fā)射裝置的原理圖,PT2262作為編碼器,當(dāng)按下按鍵時(shí),設(shè)定的地址碼和數(shù)據(jù)碼從17引腳串行輸出,經(jīng)紅外發(fā)射元件IRED發(fā)出信號。通過電阻Rosc調(diào)節(jié)發(fā)射頻率,適當(dāng)提高PT2262工作電壓(2.6 V~15 V),以增大發(fā)射距離。其中A0~A12可設(shè)置為高電平、低電平、懸空三種狀態(tài),因此可以發(fā)送531 441種編碼組合,完全滿足設(shè)計(jì)需求。


    接收裝置采用集紅外線接收、放大、整形于一體的集成電路TL0038,無需任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,故適用于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。譯碼采用8051F330D單片機(jī),11.059 2 MHz晶體振蕩器,接收信號送至I/0端口P1.0進(jìn)行軟件解碼。接收和譯碼電路如圖2所示。

    3 解碼原理
    編碼器PT2262發(fā)送的編碼信號是由:地址碼、數(shù)據(jù)碼、同步碼組成的一個(gè)完整碼字,最多可以有12位(A0~A11)三態(tài)地址端引腳(懸空、高電平、低電平),任意組合可提供531 441個(gè)地址碼。將編碼器PT2262的A8拉高,D3拉高,D0拉高,D1拉低,其余懸空。截取一段接收模塊信號輸出波形如圖3所示,PT2262每發(fā)射一次,至少發(fā)送4組相同編碼字碼。每組字碼間隔(低電平)約14 ms。

    將其截獲波形每組字碼放大,如圖4所示,一組字碼有12位A/D碼,每個(gè)A/D位是由2個(gè)脈沖表示:2個(gè)窄脈沖則表示“0”:2個(gè)寬脈沖表示“1”;1個(gè)窄脈沖和1個(gè)寬脈沖表示“F”,即地址碼“懸空”:除此之外,每組字碼之間還有1個(gè)同步碼隔開,所以每組字碼共計(jì)有25個(gè)寬度不同的脈沖。窄脈沖寬為200μs,寬脈沖寬為1 200μs;兩個(gè)窄脈沖之間寬1 200μs;兩個(gè)寬脈沖間寬200μs;寬窄脈沖間寬為200μs;在4組字碼中,每組的字碼間隔為14 000μs。因此,采用單片機(jī)軟件解碼時(shí),只要判斷出起始碼,并且識(shí)別其后面的字碼脈沖寬度即可。

    4 抗干擾措施
    常用抗干擾措施,是在硬件電路中采用電源濾波、電源穩(wěn)壓、數(shù)字地與模擬地隔離。在設(shè)計(jì)中,除采用上述方法外,還根據(jù)干擾信號與有效信號波形特征異同點(diǎn),采用軟件識(shí)別干擾信號和有效信號,從而實(shí)現(xiàn)“抗干擾”目的。
    當(dāng)遙控器不發(fā)射時(shí),由于空氣中各雜波干擾,接收模塊的信號輸出端仍然會(huì)有干擾信號,截獲波形如圖5所示。

    觀察其特征,低電平最長為3 000μs,最短數(shù)十微秒;高電平最長500μs,最短數(shù)微秒.與發(fā)射時(shí)接收到的規(guī)則波形(即非有效信號)相比較,低電平為1 400μs的信號,是有效信號,而不是干擾信號。
    并將A0~A34個(gè)地址焊接到高電平上作為發(fā)射編碼信號的幀前碼,可解決誤碼率和干擾問題。


    5 軟件解碼
    步驟1:單片機(jī)循環(huán)記錄接收模塊信號電平脈沖的長度。高低電平都記錄。
    步驟2:從記錄高低電平組成的波形中,找出連續(xù)8個(gè)1 200μs時(shí)長的脈沖信號為特征波形段,即幀前碼。
    步驟3:確認(rèn)幀前碼之前是否存在一個(gè)時(shí)長為14 000μs的低電平,如果有(則說明不是干擾碼),將解碼并存儲(chǔ)結(jié)果,然后根據(jù)指令碼執(zhí)行相應(yīng)控制功能。如沒有,則放棄記錄的數(shù)據(jù),重復(fù)步驟1,直到滿足條件為止。
    以下給出了相關(guān)軟件解碼的程序代碼:

    }

    }


    6 結(jié)束語
    該軟件解碼部分已在8051F330D單片機(jī)(11.059 2 MHz晶體振蕩器)上通過現(xiàn)場測試,設(shè)計(jì)方案可應(yīng)用于門禁管理系統(tǒng)。實(shí)踐表明,應(yīng)用方便、可靠性好、代碼識(shí)別準(zhǔn)確。

    紅外遙控器相關(guān)文章:紅外遙控器原理


    評論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 濮阳县| 玉屏| 平安县| 永安市| 繁昌县| 定南县| 鄯善县| 客服| 南安市| 浑源县| 上思县| 南通市| 郧西县| 丰都县| 乌兰浩特市| 岗巴县| 玛纳斯县| 云阳县| 兴城市| 大名县| 齐齐哈尔市| 龙川县| 临澧县| 南宫市| 班玛县| 吴江市| 乌鲁木齐市| 衡南县| 建平县| 佛山市| 闻喜县| 文水县| 黄骅市| 同仁县| 贡嘎县| 五大连池市| 澜沧| 姚安县| 鄂伦春自治旗| 莆田市| 桂平市|