紅外遙控信號(hào)轉(zhuǎn)發(fā)的自學(xué)習(xí)及還原新方法
概述
隨著遠(yuǎn)程教育系統(tǒng)的不斷發(fā)展和日趨完善,利用多媒體作為教學(xué)手段在各級(jí)各類學(xué)校都得到了廣泛應(yīng)用。近年來(lái),我們?cè)诙嗝襟w教學(xué)系統(tǒng)的開(kāi)發(fā)和研制中,經(jīng)常遇到同時(shí)使用多種紅外遙控設(shè)備,如:數(shù)字投影機(jī)、DVD、VCD、錄像機(jī)、電視機(jī)等,由于各種設(shè)備都自帶遙控器,而且不同的設(shè)備所遵循的紅外傳輸規(guī)約也不盡相同,操縱這些設(shè)備得使用多種遙控器,給使用者帶來(lái)了諸多不便。我們采用各設(shè)備集中控制的方式如圖 (1)所示解決了該問(wèn)題。集中控制各設(shè)備的方法是首先對(duì)各設(shè)備的紅外遙控信號(hào)進(jìn)行識(shí)別并存儲(chǔ)(自學(xué)習(xí)),然后在需要時(shí)進(jìn)行還原。圖1中由PC或集中控制器,發(fā)送設(shè)備信號(hào)及控制命令信號(hào)至紅外遙控信號(hào)自學(xué)習(xí)及還原電路,再由此電路恢復(fù)對(duì)應(yīng)的紅外遙控信號(hào)并發(fā)射出去,控制指定的紅外遙控設(shè)備動(dòng)作。
紅外遙控信號(hào)的自學(xué)習(xí)及還原
紅外遙控信號(hào)編碼、發(fā)射原理
通常,紅外遙控器將遙控信號(hào)(二進(jìn)制脈沖碼)調(diào)制在38KHz的載波上,經(jīng)緩沖放大后送至紅外發(fā)光二極管,轉(zhuǎn)化為紅外信號(hào)發(fā)射出去。二進(jìn)制脈沖碼的形式有多種,其中最為常用的是PWM碼(脈沖寬度調(diào)制碼)和PPM碼(脈沖位置調(diào)制碼)。前者以寬脈沖表示1,窄脈沖表示0。后者脈沖寬度一樣,但是碼位的寬度不一樣,碼位寬的代表1,碼位窄的代表0。
遙控編碼脈沖信號(hào)(以PPM碼為例)通常由引導(dǎo)碼、系統(tǒng)碼、系統(tǒng)反碼、功能碼、功能反碼等信號(hào)組成。引導(dǎo)碼也叫起始碼,由寬度為9ms的高電平和寬度為 4.5ms的低電平組成(不同的遙控系統(tǒng)在高低電平的寬度上有一定區(qū)別),用來(lái)標(biāo)志遙控編碼脈沖信號(hào)的開(kāi)始。系統(tǒng)碼也叫識(shí)別碼,它用來(lái)指示遙控系統(tǒng)的種類,以區(qū)別其它遙控系統(tǒng),防止各遙控系統(tǒng)的誤動(dòng)作。功能碼也叫指令碼,它代表了相應(yīng)的控制功能,接收機(jī)中的微控制器可根據(jù)功能碼的數(shù)值完成各種功能操作。系統(tǒng)反碼與功能反碼分別是系統(tǒng)碼與功能碼的反碼,反碼的加入是為了能在接收端校對(duì)傳輸過(guò)程中是否產(chǎn)生差錯(cuò)。為了提高抗干擾性能和降低電源消耗,將上述的遙控編碼脈沖對(duì)頻率為38KHz(周期為26.3ms)的載波信號(hào)進(jìn)行脈幅調(diào)制(PAM),再經(jīng)緩沖放大后送到紅外發(fā)光管,將遙控信號(hào)發(fā)射出去。
紅外遙控信號(hào)自學(xué)習(xí)及還原的硬件實(shí)現(xiàn)
根據(jù)遙控信號(hào)編碼和發(fā)射過(guò)程,遙控信號(hào)的識(shí)別——即解碼過(guò)程是去除38KHz載波信號(hào)后識(shí)別出二進(jìn)制脈沖碼中的0和1。遙控信號(hào)識(shí)別、存儲(chǔ)、還原的硬件電路如圖2所示,由MCS—51系列單片機(jī)AT89C51、一體化紅外接收頭、存儲(chǔ)器、還原調(diào)制與紅外發(fā)光管驅(qū)動(dòng)電路組成。
一體化紅外接收頭采用SIEMENS SFH 506-38,它負(fù)責(zé)紅外遙控信號(hào)的解調(diào)。將調(diào)制在38kHz上的紅外脈沖信號(hào)解調(diào)并反向后再輸入到AT89C51的INT0(P3.2)引腳,由單片機(jī)進(jìn)行高電平與低電平寬度的測(cè)量。
圖中使用具有I2C總線接口的E2PROM 芯片24C32作為存儲(chǔ)器,其容量為4KB,用來(lái)保存識(shí)別的遙控信號(hào)的高電平與低電平的寬度數(shù)據(jù)。通常遙控信號(hào)的二進(jìn)制脈沖碼長(zhǎng)為32位,每位由一個(gè)高電平與一個(gè)低電平組成,應(yīng)保存的信號(hào)寬度數(shù)據(jù)為64個(gè),再加上引導(dǎo)碼2個(gè)數(shù)據(jù),共計(jì)66個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)用一個(gè)字節(jié)來(lái)表示。一個(gè)遙控信號(hào)命令需要66個(gè)字節(jié)來(lái)保存??紤]到不同的遙控系統(tǒng)有區(qū)別,有些遙控信號(hào)命令較長(zhǎng),所以存儲(chǔ)空間應(yīng)留有適當(dāng)余量,來(lái)決定E2PROM 芯片的容量和型號(hào)。
遙控信號(hào)的還原是通過(guò)P0口(如圖中為P0.1)輸出二進(jìn)制脈沖碼的高電平與低電平及維持時(shí)間,再與38KHz調(diào)制脈沖相與,即P0口輸出高電平時(shí)允許 38KHz調(diào)制脈沖通過(guò),輸出低電平時(shí)關(guān)斷38KHz調(diào)制脈沖。調(diào)制后的信號(hào)驅(qū)動(dòng)紅外發(fā)射管。圖中LED用用來(lái)指示自學(xué)習(xí)中的各狀態(tài)。
P2口連結(jié)一組按鈕,數(shù)量與需要集中控制的紅外遙控設(shè)備數(shù)相同,用來(lái)控制單片機(jī)進(jìn)入或退出自學(xué)習(xí)狀態(tài),按鈕號(hào)與設(shè)備號(hào)對(duì)應(yīng)。
單片機(jī)與上位機(jī)或集中控制器通過(guò)RS—485總線通信,轉(zhuǎn)發(fā)紅外遙控設(shè)備的遠(yuǎn)程控制。
軟件設(shè)計(jì)
單片機(jī)上電復(fù)位后,首先對(duì)其內(nèi)部定時(shí)器、串行口初始化,并開(kāi)發(fā)串行口中斷。然后監(jiān)測(cè)P2口,進(jìn)入自學(xué)習(xí)狀態(tài)(P2口有一引腳輸入為低電平并維持1s以上) 時(shí),用定時(shí)器及軟件計(jì)數(shù)的方法,測(cè)量INT0引腳上輸入高、低電平的寬度。INT0引腳平時(shí)為高電平,當(dāng)接收到紅外遙控信號(hào)時(shí),由于一體化紅外接收頭的反向作用,INT0引腳下跳至低電平,此為引導(dǎo)碼。將測(cè)得的高低電平的寬度保存在存儲(chǔ)器中,并將每次測(cè)得的低電平的寬度與引導(dǎo)碼低電平寬度比較,若相等則識(shí)別為遙控命令碼、存儲(chǔ)后結(jié)束。再次監(jiān)測(cè)P2口,若為低電平并維持1s以上,為退出自學(xué)習(xí)狀態(tài)。
串行口中斷服務(wù)程序根據(jù)接收到的設(shè)備號(hào)及命令號(hào)查表得到一組事先存儲(chǔ)的高、低電平寬度數(shù)據(jù),然后在P0口還原出紅外遙控信號(hào)去控制紅外遙控設(shè)備,動(dòng)作。
結(jié)束語(yǔ)
我們用上述紅外遙控信號(hào)的自學(xué)習(xí)及還原方法,成功地實(shí)現(xiàn)了新科VCD、DVD、金正DVD、松下系列錄像機(jī)以及多種型號(hào)數(shù)字投影機(jī)、彩色電視機(jī)遙控信號(hào)的轉(zhuǎn)發(fā),從而在遠(yuǎn)程教學(xué)系統(tǒng)中實(shí)現(xiàn)了遠(yuǎn)程控制。