葉仁春,張 莉,陸云龍
(1.華中科技大學(xué) 現(xiàn)代教育技術(shù)中心,湖北 武漢 430074;2.武漢第二輕工業(yè)學(xué)校 計(jì)算機(jī)中心,湖北 武漢 430080)
不少學(xué)校的多媒體教室,配置了投影機(jī)、電動(dòng)屏幕、影碟機(jī)、展示臺(tái)等教學(xué)設(shè)備。這些教學(xué)設(shè)備都有紅外控制功能,但與多媒體教室設(shè)備中央控制系統(tǒng)(簡稱中控)集成時(shí)無法實(shí)現(xiàn)最佳搭配。因紅外線只能在視距10m內(nèi)無遮擋范圍內(nèi)有效[1],要么牽拉密密麻麻的長線來為紅外控制提供條件,要么干脆廢掉紅外控制功能了事,使得教學(xué)設(shè)備的紅外功能受到了極大的限制。
顯然,需要借助無線通信技術(shù)[2]來解決紅外通信的技術(shù)瓶頸。在中控端設(shè)置無線發(fā)射電路功能模塊,而在需要被控的教學(xué)設(shè)備端設(shè)置無線轉(zhuǎn)紅外電路功能模塊,通過無線編碼到紅外編碼的轉(zhuǎn)化,完成教學(xué)設(shè)備無視距限制的控制,從而實(shí)現(xiàn)教學(xué)設(shè)備與中控的無縫集成。
因各個(gè)廠家生產(chǎn)的教學(xué)設(shè)備的紅外編碼不一樣,要實(shí)現(xiàn)無線轉(zhuǎn)紅外技術(shù),就必須解決能發(fā)送大多數(shù)教學(xué)設(shè)備的紅外遙控編碼,即要解決紅外編碼的“自學(xué)習(xí)”功能[3]。為了敘述方便,介紹常見的紅外遙控編碼格式(見圖1)。紅外遙控編碼是由特殊時(shí)間的高低電平引導(dǎo)碼(引導(dǎo)碼9ms和4.5ms),以及連續(xù)的32位二進(jìn)制串行碼組成,其中前16位的高8位是用戶碼及其低8位的反碼,后16位為8位控制操作的數(shù)據(jù)碼及其反碼[4]。用戶碼由制作紅外遙控設(shè)備廠家來確定,是區(qū)別不同的被控電子設(shè)備,以防止不同的被控電子設(shè)備紅外遙控編碼相互形成干擾,數(shù)據(jù)碼是遙控被控設(shè)備動(dòng)作的指令碼。用戶碼和數(shù)據(jù)碼都有其對應(yīng)的反碼,是一種簡單的識(shí)錯(cuò)機(jī)制,在被控接收端單片機(jī)可以識(shí)別當(dāng)前紅外編碼是否有誤,從而增加紅外編碼的可靠性。當(dāng)紅外遙控器的按鍵有用戶按下時(shí),周期性地發(fā)出同一種32位2進(jìn)制串行碼,周期為108ms。
圖1 紅外編碼格式
每位碼由8個(gè)發(fā)射寬度調(diào)制的串行碼脈沖組成,用載波發(fā)射脈沖時(shí)間是0.5 6ms、載波不發(fā)射脈沖時(shí)間是0.565ms、周期為1.125ms的組合形式來表示低電平“0”。用載波發(fā)射脈沖時(shí)間是0.56ms、載波不發(fā)射脈沖時(shí)間是1.685ms、周期為2.25ms的組合形式來表示高電平“1”。而一般普通單片機(jī)處理速度已達(dá)1μs以下,有足夠時(shí)間來處理紅外編碼的高低脈沖電平,所以適合于“自學(xué)習(xí)”常見遙控的紅外編碼[5]。對于其他類型的紅外編碼也可以如此類似解決。
在被控教學(xué)設(shè)備的無線接收端,可采用集光電轉(zhuǎn)換、解碼和放大于一體的紅外接收頭HS0038B[6]。其外圍電路只需要很少元器件就能完成紅外接收和整形放大,然后輸出TTL電平串行信號,接到單片機(jī)的普通IO口;使用單片機(jī)內(nèi)部定時(shí)器,來分別計(jì)時(shí)脈沖的高低電平寬度,同時(shí)判斷計(jì)時(shí)值是否超過范圍,也可以判斷是否接收完畢。
一般記錄1個(gè)遙控器的紅外編碼至少需要1個(gè)字節(jié)用戶碼和相對應(yīng)字節(jié)的按鍵數(shù),而單片機(jī)(例如PIC16F系列單片機(jī))內(nèi)置的EEPROM寫一個(gè)字節(jié)最少需要4ms,所以單片機(jī)一邊接收數(shù)據(jù),同時(shí)判斷和分析數(shù)據(jù),再存儲(chǔ),在單片機(jī)時(shí)序和EEPROM時(shí)序上是無法做到。故只能將接收到的計(jì)時(shí)數(shù)值暫時(shí)存放在單片機(jī)的RAM中,待接收完畢后再轉(zhuǎn)存寫入到EEPROM中,就此完成紅外編碼的“自學(xué)習(xí)”。本文研究設(shè)計(jì)的采用PIC16F636單片機(jī),紅外編碼“自學(xué)習(xí)”的流程方法如圖2所示[7]。
圖2 “自學(xué)習(xí)”紅外編碼系統(tǒng)設(shè)計(jì)流程圖
本文中將EEPROM劃分為若干個(gè)不同的空間,這樣相同遙控器的按鍵碼可以存放在同一區(qū)域中。因相同遙控器的用戶碼是相同的,可以將用戶碼作為本遙控編碼的索引。常用的遙控器一般最多有32個(gè)鍵,一共需要33個(gè)字節(jié)(1個(gè)用戶碼,32個(gè)按鍵數(shù)據(jù)碼)。而單片機(jī)PIC16F636內(nèi)置EEPROM有256個(gè)字節(jié),那么最多可以存儲(chǔ)7個(gè)遙控器的按鍵碼(256/33=7.757 6),完全適合實(shí)際情況的應(yīng)用。
在中控的無線發(fā)射端,可以使用比較常用的PT2262編碼芯片[8],后接無線發(fā)射模塊。在被控設(shè)備的無線接收端,使用同通信頻率的無線接收模塊,只要無線接收端單片機(jī)解讀出無線發(fā)射端發(fā)來的地址碼,與本接收端設(shè)置的地址碼一致,就認(rèn)為是發(fā)給自己的無線編碼,就把無線編碼內(nèi)的遙控端按鍵編碼解讀出來,轉(zhuǎn)化為相對應(yīng)的紅外編碼,由紅外編碼完成對教學(xué)設(shè)備的控制任務(wù)。圖3為無線轉(zhuǎn)紅外智能中央控制系統(tǒng)。無線發(fā)射接收原理,有許多文獻(xiàn)講述,這里不再贅述。
圖3 無線轉(zhuǎn)紅外智能中央控制系統(tǒng)
圖4 EEPROM區(qū)域數(shù)據(jù)存儲(chǔ)
由無線接收端來完成無線編碼到紅外編碼的轉(zhuǎn)化,那么無線接收端的單片機(jī)內(nèi)置的EEPROM必須先存儲(chǔ)與無線發(fā)射端對應(yīng)的無線編碼,如圖4的EEPROM區(qū)域數(shù)據(jù)的無線編碼區(qū)。紅外編碼通過“自學(xué)習(xí)”后,生成一個(gè)用戶碼和與按鍵相對應(yīng)的數(shù)據(jù)碼,一一寫到單片機(jī)內(nèi)置的EEPROM區(qū)。因設(shè)備測試有限,這里只學(xué)習(xí)2種用戶碼0x08和0x0F。這2個(gè)用戶碼各自組成與按鍵對應(yīng)的數(shù)據(jù)區(qū),存儲(chǔ)在EEPROM區(qū)域數(shù)據(jù)的紅外編碼區(qū)[9]。
在中控?zé)o線發(fā)射端,其控制面板除了常規(guī)按鍵外,不可能設(shè)置與紅外遙控器那么多的控制按鍵,按鍵數(shù)量必然少于紅外遙控器的按鍵數(shù)量。為了使中控面板按鍵能完成紅外遙控器面板那么多的按鍵任務(wù),可通過軟件設(shè)計(jì)方式設(shè)置為功能復(fù)合鍵。
被控設(shè)備里PIC系列單片機(jī)EEPROM存儲(chǔ)區(qū),存儲(chǔ)著無線編碼和多種紅外遙控器的紅外編碼。為了使中控?zé)o線發(fā)射端可以控制不同的設(shè)備,被控設(shè)備開機(jī)后首先必須識(shí)別中控?zé)o線端發(fā)給自己的地址碼,才能實(shí)現(xiàn)無線編碼到紅外編碼的轉(zhuǎn)化,并完成相應(yīng)的控制動(dòng)作[10],如圖5所示的被控設(shè)備的接收端無線轉(zhuǎn)紅外控制所示的工作流程。
圖5 無線轉(zhuǎn)紅外控制工作流程
被控設(shè)備與中控通過無線收發(fā)通信對碼識(shí)別后,就進(jìn)入主循環(huán)等待監(jiān)聽發(fā)射機(jī)信號,或者進(jìn)入睡眠狀態(tài)。如果被控設(shè)備有用戶自己操作,就會(huì)發(fā)送被控設(shè)備已經(jīng)更新工作狀態(tài)。如果被控設(shè)備接收中控發(fā)來的無線編碼信號,經(jīng)過地址碼識(shí)別確認(rèn)是發(fā)給自己的,讀入最新的8421編碼的二進(jìn)制按鍵數(shù)據(jù)編碼,根據(jù)開機(jī)識(shí)別到被控設(shè)備的用戶碼,檢索對應(yīng)被控設(shè)備的紅外編碼數(shù)據(jù)[11]。單片機(jī)把讀到的紅外編碼數(shù)據(jù),按紅外控制格式組成串行碼輸出,來控制被控設(shè)備的工作狀態(tài),同時(shí)發(fā)送被控設(shè)備已經(jīng)更新了工作狀態(tài)的信息。
由上面論述可知,在中控端設(shè)置無線發(fā)送模塊,各個(gè)被控教學(xué)設(shè)備端設(shè)置無線轉(zhuǎn)紅外接收模塊,采用能夠穿透障礙物的無線收發(fā)通信技術(shù),并且以“自學(xué)習(xí)”方式解讀教學(xué)設(shè)備的紅外控制編碼,完成無線編碼到紅外編碼的轉(zhuǎn)化[12],實(shí)現(xiàn)多媒體教室設(shè)備無障礙、遠(yuǎn)距離的集成控制。同時(shí)也為教學(xué)設(shè)備生產(chǎn)廠家提供了教學(xué)設(shè)備研發(fā)上的技術(shù)參考。研究實(shí)踐表明,無線轉(zhuǎn)紅外技術(shù)是中央控制系統(tǒng)與教學(xué)設(shè)備無縫集成的有效解決途徑。
(
)
[1]李海峰,周革,井文才等.基于以太網(wǎng)的紅外無線通信系統(tǒng)[J].紅外與激光工程,2003,32(4):339-342.
[2]李東陽,姚凱學(xué).基于單片機(jī)實(shí)現(xiàn)PT2262通用編碼器的軟件解碼[J].微電子學(xué)與計(jì)算機(jī),2011,28(8):77-79,82.
[3]李楠,鄭建立.基于單片機(jī)的紅外遙控自學(xué)習(xí)系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2008(6):43-45,75.
[4]黃海陽,吳錘紅.一種基于單片機(jī)的紅外遙控信號解碼新方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(7):30-33.
[5]王健.基于單片機(jī)的紅外自學(xué)習(xí)設(shè)計(jì)[J].中國儀器儀表,2006(4):95-96.
[6]劉萬斌,于群.紅外遙控器解碼軟件設(shè)計(jì)及應(yīng)用[J].微型機(jī)與應(yīng)用,2011,30(2):14-16.
[7]朱高中.基于單片機(jī)的紅外遙控解碼電路的設(shè)計(jì)[J].計(jì)算技術(shù)與自動(dòng)化,2011(6):68-71.
[8]安穎,王研.遙控編碼芯片PT2262的單片機(jī)譯碼模塊[J].計(jì)算機(jī)與數(shù)字工程,2005,33(8):121-123.
[9]陳祖爵,王建毅.智能型紅外遙控器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(1/2):305-307.
[10]徐偉恒,趙璠,蘇志芳,等.具有自學(xué)習(xí)功能的編碼集成電路PT2262解碼器設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(7):100-102,106.
[11]蒼利民,王獻(xiàn)會(huì),楊柯,等.無線射頻中軟件解碼功能的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(14):31-34.
[12]張毅,李晉.基于射頻的學(xué)習(xí)型紅外線遙控器設(shè)計(jì)[J].計(jì)算機(jī)時(shí)代,2011(2):193-194.