新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)用作通用紅外遙控接收器的設(shè)計(jì)

單片機(jī)用作通用紅外遙控接收器的設(shè)計(jì)

作者: 時(shí)間:2013-09-30 來(lái)源:網(wǎng)絡(luò) 收藏
紅外線(xiàn)遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外線(xiàn)遙控裝置具有體積小、功耗低、功能強(qiáng)、成本低等特點(diǎn),因而,繼彩電、錄像機(jī)之后,在錄音機(jī)、音響設(shè)備、空凋機(jī)以及玩具等其它小型電器裝置上也紛紛采用紅外線(xiàn)遙控。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線(xiàn)遙控不僅完全可靠而且能有效地隔離電氣干擾
。
1 系統(tǒng)
通用系統(tǒng)由發(fā)射和接收兩大部分組成,應(yīng)用編/解碼專(zhuān)用集成電路芯片來(lái)進(jìn)行控制操作,如圖1所示。發(fā)射部分包括鍵盤(pán)矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部分包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。

2 遙控發(fā)射器及其編碼
遙控發(fā)射器專(zhuān)用芯片很多,現(xiàn)以日本NEC的UPD6121G.htm" target="_blank" title="uPD6121G貨源和PDF資料">uPD6121G組成發(fā)射電路為例說(shuō)明編碼原理。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:
采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其波形如圖2所示。

上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行調(diào)制,提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后,再通過(guò)紅外發(fā)射二極管進(jìn)行二次調(diào)制,產(chǎn)生紅外線(xiàn)向空間發(fā)射,如圖3所示。UPD6121G產(chǎn)生的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為8位用戶(hù)識(shí)別碼及其反碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶(hù)識(shí)別碼固定為十六進(jìn)制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6121G最多額128種不同組合的編碼。

遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在45~63ms之間,圖4為發(fā)射波形圖。

3 及解碼
TSOP1738是VISHAY公司推出的一體化紅外線(xiàn),集紅外線(xiàn)接收和放大于一體,不需要任何外接元件,就能完成從紅外線(xiàn)接收到輸出與TTL電平信號(hào)兼容的所有工作,而體積和普通的塑封三極管大小一樣,其功能如圖1所示的虛線(xiàn)部分。它適合于各種紅外線(xiàn)遙控和紅外線(xiàn)數(shù)據(jù)傳輸。

解碼就是識(shí)別二進(jìn)制碼“0”和“1”以及遙控信號(hào)起始位。由8051對(duì)脈沖間隔計(jì)數(shù),由計(jì)數(shù)值的大小區(qū)別脈沖間隔的時(shí)間,從而識(shí)別出二進(jìn)制碼“0”、“1”和遙控信號(hào)起始位。如前所述,的32位二進(jìn)制串行碼是脈寬調(diào)制的,脈沖寬度固定(0.56ms),而脈沖的間隔不同。因此,只要設(shè)法測(cè)出脈沖隔時(shí)間,即可判斷是二進(jìn)制的“0”還是“1”。考慮到適當(dāng)?shù)娜莶?,可把脈沖間隔為0.256~0.768ms的判為“0”,脈沖間隔為1.28~1.792ms的判為“1”。

3.1 解碼系統(tǒng)配置及接口
解碼系統(tǒng)由8051、TSOP1739和74LS00等組成,接口電路如圖5所示。TSOP1738的輸出端通過(guò)74LS00的兩個(gè)反相電路接至解碼8051的INT0和INT1,作為輸入接口。8051解碼單片機(jī)通過(guò)P0口作為輸出接口,傳送解碼所得的指令控制碼去控制電器設(shè)備。8051單片機(jī)的TCON中有一個(gè)控制位,該位由軟件設(shè)置為“1”,設(shè)置INT0和INT1為下降沿觸發(fā)中斷,其相應(yīng)的定時(shí)/計(jì)數(shù)器0就可以測(cè)量對(duì)應(yīng)的INT引腳上正脈沖的寬度。利用這一特點(diǎn),用定時(shí)器T0來(lái)測(cè)量INT1引腳上正脈沖的寬度,即前后兩脈沖的間隔時(shí)間,據(jù)此可判斷它對(duì)應(yīng)于二進(jìn)制的是“1”還是“0”。

由圖5可知,TSOP1738送往8051解碼單片機(jī)INT0和INT1兩引腳上的波形相反,由INT0引腳上脈沖的下降沿所觸發(fā)的中斷服務(wù)程序完成啟動(dòng)計(jì)數(shù)器T0,以測(cè)量INT1引腳上正脈沖的寬度。由INT1引腳上脈沖的下降沿所觸發(fā)的中斷服務(wù)程序完成關(guān)計(jì)數(shù)器T0,并根據(jù)計(jì)數(shù)值來(lái)判斷是對(duì)應(yīng)于二進(jìn)制的“0”還是“1”。

3.2 軟件設(shè)計(jì)
解碼單片機(jī)8051的軟件包括主程序、INT0中斷服務(wù)程序和INT1中斷服務(wù)程序等3部分。在8051單片機(jī)內(nèi)部RAM區(qū)建立的工作單元和標(biāo)志位。

*BUF0~BUF3——接收緩沖移位寄存器單元(32bit),每次由INT1中斷服務(wù)程序解出的存于CY的二進(jìn)制位,通過(guò)累加器連同CY的右移操作,傳送到BUF0——BUF3內(nèi)。
*LENG——碼長(zhǎng)計(jì)數(shù)器,用于計(jì)數(shù)器解出的二進(jìn)制位數(shù)。

*(29H).0——碼間隔標(biāo)志位,當(dāng)收到碼組間隔時(shí)該標(biāo)志被置位。

*(29H).1——用戶(hù)識(shí)別碼標(biāo)志位,當(dāng)收到一組碼的前8位為01H時(shí)該標(biāo)志被置位
。
以下是主程序的設(shè)計(jì)要點(diǎn):
*正確地解碼必須從一組碼的起始進(jìn)行。為此程序在初始化后,首先檢測(cè)碼間隔標(biāo)志(29H).0,如果為1,表明是一組碼的開(kāi)始,程序就將碼長(zhǎng)計(jì)數(shù)器清零,以例從頭開(kāi)始計(jì)數(shù)。

*為防止其它遙控碼的干擾,當(dāng)接收到前8位碼后,要檢查它的值是否為01H。如果是,則置位用戶(hù)碼標(biāo)志(29H).1。只有用戶(hù)碼標(biāo)志為1時(shí),收到的后8位碼才作為有效操作碼處理。

*為了得到正確的解碼結(jié)果,要檢查32位遙控編碼中用戶(hù)碼和操作碼各自的反相一致性。正極性的用戶(hù)碼留在BUF3中,負(fù)極性的用戶(hù)碼留在BUF2中;正極性的操作碼留在BUF1中,負(fù)極性的操作碼留在BUF0中。然后比較BUF3和BUF2中的內(nèi)容,比較BUF1和BUF0中的內(nèi)容,如果都滿(mǎn)足反相一致才進(jìn)入下一步,否則,作無(wú)效碼處理。

以上所述方法非常簡(jiǎn)單地實(shí)現(xiàn)了紅外遙控信號(hào)的接收解碼,極大地節(jié)約了硬件實(shí)現(xiàn)的資源開(kāi)銷(xiāo)。只要修改匯編代碼的部分參數(shù),就可以適用于多種紅外遙控器信號(hào)的接收和解碼。

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

萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼


塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理


評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉