| 摘 要: 介紹了紅外遙控發(fā)射和接收的原理,提出了一種用PLD(可編程邏輯器件)進行解碼的方案,并分別用EPROM和GAL實現(xiàn)。該方案思路新穎、原理簡單、工作可靠,可用于各種以鍵盤掃描為輸入方式的智能儀器系統(tǒng)中。 關(guān)鍵詞: 紅外遙控 可編程邏輯器件 遙控解碼 鍵盤掃描 紅外遙控技術(shù)已經(jīng)在日常家用電器中得到了廣泛應(yīng)用,其使用方便、功耗低、抗干擾能力強的優(yōu)點也越來越在智能儀器系統(tǒng)中受到重視。市場上的各種家電紅外遙控系統(tǒng)技術(shù)成熟、成本低廉,但都是針對各自的遙控對象(彩電、冰箱、空調(diào)等),不能直接用于智能儀器。本文探討了如何借鑒家電紅外遙控系統(tǒng)的原理,自行設(shè)計解碼電路,使智能儀器具有遙控功能。 1 紅外遙控原理 一般的紅外遙控系統(tǒng)是由紅外遙控信號發(fā)射器、紅外遙控信號接收器和微控制器及其外圍電路等三部分構(gòu)成的,如圖1所示。 遙控信號發(fā)射器用來產(chǎn)生遙控編碼脈沖,驅(qū)動紅外發(fā)射管輸出紅外遙控信號,遙控接收頭完成對遙控信號的放大、檢波、整形、解調(diào)出遙控編碼脈沖。遙控編碼脈沖是一組組串行二進制碼,對于一般的紅外遙控系統(tǒng),此串行碼輸入到微控制器,由其內(nèi)部CPU完成對遙控指令解碼,并執(zhí)行相應(yīng)的遙控功能。 在紅外遙控系統(tǒng)中,解碼的核心是CPU。它接收解調(diào)出的串行二進制碼,在內(nèi)部根據(jù)本系統(tǒng)的遙控信號編碼格式將串行碼對應(yīng)成遙控器上的按鍵。顯然,這種在CPU內(nèi)部解碼出的遙控指令是不便我們利用的,而且我們也不需要獲取它。我們只需利用一般紅外遙控系統(tǒng)中的遙控發(fā)射器、遙控接收頭,自行設(shè)計解碼電路直接對遙控接收頭解調(diào)出的遙控編碼脈沖進行解碼,就可以得到原始的按鍵信息。 2 紅外遙控編碼 目前應(yīng)用中的各種紅外遙控系統(tǒng)的原理都大同小異,區(qū)別只是在于各系統(tǒng)的信號編碼格式不同。下面我們就以本文采用的紅外遙控系統(tǒng)為例說明它的編碼體制。 紅外遙控發(fā)射器以TC9012為核心組成了鍵掃描、編碼、發(fā)射電路。當按下遙控器上任一按鍵時,TC9012即產(chǎn)生一串脈沖編碼如圖2所示。 TC9012形成的遙控編碼脈沖對40kHz載波進行脈沖幅度調(diào)制(PAM)后便形成遙控信號,經(jīng)驅(qū)動電路由紅外發(fā)射管發(fā)射出去。紅外遙控接收頭接收到調(diào)制后的遙控信號,經(jīng)前置放大、限幅放大、帶通濾波、峰值檢波和波形整形,從而解調(diào)出與輸入遙控信號反相的遙控脈沖。 在圖2中,一次按鍵動作的遙控編碼信息為32位串行二進制碼。對于二進制信號“0”,一個脈沖占1.2ms;對于二進制信號“1”,一個脈沖占2.4ms,而每一脈沖內(nèi)低電平均為0.6ms。從起始標志到32位編碼脈沖發(fā)完大約需80ms,此后遙控信號維持高電平。若按鍵未釋放,則從起始標志起每隔108ms發(fā)出3個脈沖的重復(fù)標志。 在32位的編碼脈沖中,前16位碼不隨按鍵的不同而變化,我們稱之為用戶碼。它是為了表示特定用戶而設(shè)置的一個辨識標志,以區(qū)別不同機種和不同用戶發(fā)射的遙控信號,防止誤操作。后16位碼隨著按鍵的不同而改變,我們就是要讀取這16位按鍵編碼,經(jīng)解碼得到按鍵鍵號,轉(zhuǎn)而執(zhí)行相應(yīng)控制動作。 那么,不同的按鍵編碼脈沖是怎樣和遙控器上不同的按鍵一一對應(yīng)的呢?我們借助于邏輯分析儀記錄下來遙控器上每一個按鍵的編碼脈沖序列,破譯出了各按鍵的編碼。表1是解碼后得到的紅外遙控器上各鍵的編碼(前16位用戶碼均為0000001011111101,表1只列出后16位鍵碼)。 由表1按鍵編碼可看出,后16位鍵碼的前8位與后8位互為補碼,這樣加大編碼的冗余度是為了增強遙控系統(tǒng)的抗干擾能力。實際上,我們只須截取16位鍵碼的8位(比如后8位)就可達到識別按鍵的目的。當然,要加強遙控系統(tǒng)的抗干擾能力,還需接收全16位鍵碼甚至16位用戶碼加以識別。 3 紅外遙控解碼 紅外遙控接收頭解調(diào)出的編碼是串行二進制碼,包含著遙控器按鍵信息。但它還不便于CPU讀取識別,因此需要先對這些串行二進制碼進行解碼。本文的紅外遙控信號解碼電路如圖3所示,它主要包括遙控編碼脈沖串并轉(zhuǎn)換電路與PLD解碼電路。 3.1 遙控編碼脈沖的串并轉(zhuǎn)換 紅外遙控接收頭解調(diào)出的遙控編碼脈沖經(jīng)一非門反相后引入計數(shù)器4020的復(fù)位端(RST),4020的腳10(CP)端引入1MHz計數(shù)脈沖。遙控信號(已反相)中每一正脈沖到來時其高電平對4020復(fù)位,經(jīng)過0.6ms遙控信號變?yōu)榈碗娖?4020復(fù)位結(jié)束,開始以1MHz的頻率計數(shù),直到下一個正脈沖到來時為止。二進制碼“0”每一脈沖周期低電平時間為0.6ms,二進制碼“1”每一脈沖周期低電平時間為1.8ms,4020的Q11端即可以區(qū)分二進制碼“0”或“1”。每一遙控編碼正脈沖上升沿到來時,若Q11端為“1”,說明前一位遙控碼為“1”;若Q11端為“0”,說明前一位遙控碼為“0”。 將4020的Q11端作為74HCS9S的串行移位輸入端(SER),便可在每一個遙控編碼脈沖上升沿到來時并在4020復(fù)位之前,將74HC595中的數(shù)據(jù)沿Q0到Q7方向依次移一位,且4020的Q11端數(shù)據(jù)移入74HC595的Q0端。對于一組遙控編碼脈沖,共有33次上升沿(包括起標志),而74HC595僅為8位移位寄存器,所以移位的最終結(jié)果,只有遙控編碼脈沖的最后8位保留在74HC595中。 當一組遙控編碼脈沖(反相后)來到時,其起始標志的上跳沿觸發(fā)了雙單穩(wěn)74HC123的1B,在1Q上產(chǎn)生了一個寬度為120ms的正脈沖。1Q同時又觸發(fā)了74HC123的2B,在 |