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