杜路泉,劉德春,莫建麟,王玉晶
(阿壩師范學(xué)院 電子信息與自動(dòng)化學(xué)院,四川 阿壩州 623002)
按照波長(zhǎng)由長(zhǎng)到短劃分,可見光依次分為紅、橙、黃、綠、青、藍(lán)、紫。紅光的波長(zhǎng)范圍為0.62~0.76 μm;紫光的波長(zhǎng)范圍為0.38~0.46 μm.紅外線的波長(zhǎng)比紅光的波長(zhǎng)長(zhǎng),紫外線的波長(zhǎng)比紫光的波長(zhǎng)短。利用波長(zhǎng)在0.76~1.5 μm之間的紅外線來傳輸控制信號(hào)稱為紅外線遙控技術(shù)[1]。
紅外遙控設(shè)備一般由發(fā)射器和接收器兩個(gè)部分組成,發(fā)射器通常由鍵盤電路、紅外編碼芯片、電源部分和發(fā)射部分構(gòu)成。當(dāng)按鍵被按下后,發(fā)射器在識(shí)別對(duì)應(yīng)的按鍵后通過編碼芯片產(chǎn)生相應(yīng)的控制信號(hào),生成的控制信號(hào)再經(jīng)過紅外發(fā)射電路的驅(qū)動(dòng)發(fā)射出去。接收器通常由紅外接收電路、執(zhí)行電路、電源電路和紅外解碼芯片組成。當(dāng)紅外接收器收到紅外光信號(hào)后,會(huì)將收到的光信號(hào)轉(zhuǎn)化為對(duì)應(yīng)脈沖電信號(hào)發(fā)送到紅外解碼芯片處進(jìn)行解調(diào)。解調(diào)后芯片會(huì)控制執(zhí)行電路產(chǎn)生對(duì)應(yīng)狀態(tài)來表示應(yīng)答[2]。
綜合考慮成本和資源使用程度等方面選擇了STC89C52單片機(jī)作為系統(tǒng)設(shè)計(jì)的編解碼芯片。將紅外發(fā)射模塊和紅外接收模塊分別用不同的電路板焊接成兩個(gè)獨(dú)立的模塊,使其在50~100 cm甚至更遠(yuǎn)范圍內(nèi)能穩(wěn)定控制。該方案提高了設(shè)備靈活性、節(jié)省人工、符合遙控概念,和目前電子行業(yè)發(fā)展理念相同[3]。表1給出了方案對(duì)比分析。
表1 設(shè)計(jì)方案對(duì)比分析
單片機(jī)最小系統(tǒng)是指使單片機(jī)正常工作所需最少元器件的組合。52單片機(jī)最小系統(tǒng)除了單片機(jī)以外還包括電源電路、復(fù)位電路、時(shí)鐘電路、下載電路。表2分析了硬件選型,考慮到價(jià)格以及基本功能實(shí)現(xiàn)即可的原則,選擇STC89C52單片機(jī)。
表2 硬件對(duì)比分析
紅外發(fā)射電路是由一個(gè)NPN三極管S9013、兩個(gè)1k電阻和一個(gè)紅外發(fā)射管構(gòu)成的開關(guān)電路,電路中三極管基級(jí)連一個(gè)電阻后與單片機(jī)P2.7引腳相連。當(dāng)P2.7引腳輸出為1時(shí),電路導(dǎo)通,紅外發(fā)射管會(huì)發(fā)出頻率為38 kHz的脈沖。
紅外接收電路主要由一個(gè)紅外接收頭HS0038連接在接收器的P3.2(外部中斷0)引腳。當(dāng)產(chǎn)生紅外信號(hào)的時(shí)候,HS0038會(huì)給出低電平,單片機(jī)進(jìn)行中斷解碼,并將產(chǎn)生的數(shù)據(jù)存在一個(gè)數(shù)組內(nèi)。圖1所示為電路原理圖[4],圖2為PCB設(shè)計(jì)。
圖1 電路原理圖
圖2 PCB設(shè)計(jì)
鍵盤設(shè)計(jì)電路由八個(gè)按鍵組成,每一個(gè)按鍵都有不同的功能。表3給出了各個(gè)按鍵的作用。
表3 按鍵功能說明
在硬件電路設(shè)計(jì)完成后,進(jìn)行最后電路板焊接,應(yīng)當(dāng)仔細(xì)檢查是否與仿真一致。在沒接電源的情況下用萬用表通斷開關(guān)檢查每條線路有沒有短路或者虛焊,并且檢查各元器件的值是否與仿真一致。以上檢查均準(zhǔn)確無誤時(shí)再給設(shè)備接上電源,打開開關(guān),檢查是否有短路現(xiàn)象,最后進(jìn)行性能測(cè)試。
為了讓通信信號(hào)高效準(zhǔn)確地到達(dá)接收端,將二進(jìn)制信號(hào)進(jìn)行編碼并轉(zhuǎn)換為脈沖信號(hào),然后經(jīng)過紅外發(fā)射管傳輸出去。通常有兩種方法進(jìn)行調(diào)制,以脈沖串之間的時(shí)間間隔來實(shí)現(xiàn)信號(hào)調(diào)制的脈位調(diào)制(PPM)和以脈沖寬度來實(shí)現(xiàn)信號(hào)調(diào)制的脈寬調(diào)制(PWM),軟件設(shè)計(jì)采用PPM調(diào)制[5]。圖3為發(fā)射接收波形圖。
發(fā)射端 接收端
發(fā)射程序?qū)?yán)格遵循NEC紅外編碼協(xié)議來完成。紅外發(fā)射設(shè)備通過識(shí)別按鍵后在38 kHz的載波上依次將引導(dǎo)碼、用戶碼、用戶反碼、數(shù)據(jù)碼、數(shù)據(jù)反碼以脈沖的形式傳給發(fā)送引腳。
Proteus仿真里面必須要求嚴(yán)格遵循NEC編碼和誤差,雖然實(shí)際面包板模擬設(shè)備能通訊仿真卻通不過。經(jīng)過測(cè)試發(fā)現(xiàn),一般紅外接收頭設(shè)計(jì)的信號(hào)載波頻率為38 kHz,實(shí)際上能接收36~40 kHz之間的載波信號(hào),并且每個(gè)指令的誤差可以增加到28 μs左右也能進(jìn)行通信,但是在仿真軟件上就需要精確無誤。圖4給出了發(fā)射主程序流程圖。
圖4 發(fā)射主程序流程圖
圖5 接收主程序流程
接收程序主要用到外部中斷0來解碼,當(dāng)接收到紅外信號(hào)時(shí)進(jìn)入中斷通過一個(gè)延遲函數(shù)來判斷每個(gè)電平變化的時(shí)間。對(duì)比相應(yīng)的紅外編碼時(shí)間來判斷出指令是0還是1.在程序編碼中主要是要掌握好信號(hào)每個(gè)高低電平變化的瞬間,計(jì)時(shí)并識(shí)別。在編碼的前期因?yàn)檫壿媶栴}導(dǎo)致很久都沒有解碼成功,一組指令32個(gè)是一次性發(fā)送,所以一個(gè)完整指令的解碼都需要在一個(gè)邏輯里完成,并且不能有延遲的錯(cuò)誤性,調(diào)試方法和發(fā)送類似[6~10]。解碼流程圖分為初始化和解碼兩個(gè)部分,初始化負(fù)責(zé)單片機(jī)的復(fù)位和外部中斷的初始化,并將執(zhí)行電路電平拉低。主程序主要負(fù)責(zé)信號(hào)的解碼和功能的執(zhí)行。圖5給出了接收主程序流程圖。
利用Proteus完成電路圖的設(shè)計(jì)和搭建。通過Keil編寫遙控編碼和遙控解碼的程序,編后顯示0錯(cuò)誤、0警告。將生成的HEX文件導(dǎo)入Proteus仿真,運(yùn)行仿真,觀察通信結(jié)果。將LED顯示需要修改的地方在Keil上重新編寫編譯后執(zhí)行。將發(fā)射程序和接收程序下載到發(fā)射設(shè)備和接收設(shè)備上。將所有功能都進(jìn)行測(cè)試,分析不符合或者不正常的現(xiàn)象。將燈光效果不滿意的地方進(jìn)行軟件或硬件調(diào)整再測(cè)試[11~15]。表4給出了功能測(cè)試。
表4 功能測(cè)試
圖6與圖7所示,給出了發(fā)射電路與測(cè)試電路。
圖6 發(fā)射器圖
圖7 發(fā)射電路圖
紅外遙控LED系統(tǒng)制作以單片機(jī)為核心,實(shí)現(xiàn)紅外發(fā)射電路與紅外接收電路設(shè)計(jì),同時(shí)完成紅外LED燈的紅外信號(hào)通信,燈組各種不同的功能和變化測(cè)試。但是該系統(tǒng)中仍然存在不足之處即遙控距離,通常要求系統(tǒng)的控制距離為5 m左右,而該系統(tǒng)遙控距離在1 m左右;另外針對(duì)系統(tǒng)功能的擴(kuò)展等都是后續(xù)研究需要改進(jìn)的部分。
湖北師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年1期