渠海榮
【摘要】 本文主要研究基于FPGA的紅外遙控器解碼實(shí)現(xiàn)研究。主要介紹紅外遙控器的工作協(xié)議,通過紅外接收頭接收紅外遙控器發(fā)送的紅外波形,用FPGA對其進(jìn)行解調(diào)和編碼模擬紅外遙控器的工作時序,并用Modelsim進(jìn)行仿真驗(yàn)證與實(shí)際的信號進(jìn)行比較判斷。
【關(guān)鍵詞】 紅外遙控器 VS1838B FPGA Modelsim
一、引言
紅外遙控器已被廣泛使用在各種類型的家電產(chǎn)品上,它的出現(xiàn)給使用電器提供了極大便利,因此研究紅外遙控器的實(shí)現(xiàn)原理有其必要性。紅外遙控系統(tǒng)一般由紅外發(fā)射裝置和紅外接收設(shè)備兩大部分組成,如圖1所示。
二、紅外遙控器協(xié)議
目前的紅外遙控器大多數(shù)采用NEC協(xié)議,該協(xié)議采用脈寬調(diào)制的傳行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“O”;以脈寬為0.565ms、
當(dāng)遙控器按下按鍵時,遙控器將發(fā)出一串二進(jìn)制代碼,稱為一幀數(shù)據(jù)。可將它們分為5部分,分別為引導(dǎo)碼、用戶碼、用戶反碼、數(shù)據(jù)碼和數(shù)據(jù)反碼,共32bit。
遙控器發(fā)射代碼時,均是低位在前。高位在后。其中引導(dǎo)碼高電平為9ms,低電平為4.5ms,當(dāng)接收到此碼時,表示一幀數(shù)據(jù)的開始。解碼的關(guān)鍵是如何識別“0”和“1”,從位的定義我們可以發(fā)現(xiàn)“O”和“l(fā)”均以0.565ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“O”和“l(fā)”。
三、FPGA紅外解碼
本文采用的的是VS1838B通用一體化紅外接收頭,將一體化紅外接收頭VS1838B的輸入引腳接至FPGA的一個管腳,由于VS1838B的反相作用,在無紅外信號時為高電平,一旦檢測到有紅外信號,起始輸入變成低電平。系統(tǒng)便進(jìn)入接收狀態(tài),檢測到FPGA引腳點(diǎn)平變化,并計(jì)算每一個高、低電平的脈沖寬度。通過脈沖寬度來識別引導(dǎo)碼、用戶碼和數(shù)據(jù)碼。
對紅外信號的解碼本文主要是通過狀態(tài)機(jī)來實(shí)現(xiàn),狀態(tài)機(jī)主要依據(jù)紅外編碼規(guī)則,實(shí)現(xiàn)紅外編碼的解碼,利用狀態(tài)轉(zhuǎn)換方式區(qū)分不同區(qū)域的紅外編碼,實(shí)現(xiàn)相應(yīng)的譯碼。通過分析可以將紅外信號分為6個狀態(tài)過程,分別是idel,red_posedge,check_9ms,red_negedge,check_4ms,red_c.ode.
狀態(tài)圖工作流程:系統(tǒng)上電復(fù)位后進(jìn)入idel狀態(tài),等待紅外信號的到來,一旦到來進(jìn)入red_posedge狀態(tài),等待紅外信號上升沿的到來,一旦到來,將進(jìn)入check_9ms狀態(tài),判斷時間是否達(dá)到9ms,如果沒有達(dá)到9ms,將回到idel狀態(tài),如果是將進(jìn)入red_negedge狀態(tài),在red_negedge狀態(tài)等待紅外信號下降沿的到來,一旦到來,將進(jìn)入check_4ms狀態(tài),判斷時間是否達(dá)到4ms,如果沒有達(dá)到4ms,將回到idel狀態(tài),如果是將進(jìn)入red_code狀態(tài),在red_code狀態(tài)下實(shí)現(xiàn)對紅外信號的解碼。
四、紅外解碼的仿真實(shí)現(xiàn)
為了保證FPGA紅外解碼的正確性,需要用Modelsim對代碼進(jìn)行仿真驗(yàn)證,在Modelsim中模擬紅外信號作為輸入,在FPGA中獲得輸入,進(jìn)行仿真驗(yàn)證,引導(dǎo)碼仿真結(jié)果如圖5所示。
從圖5可以看出在時鐘的作用下先產(chǎn)生9ms的低電平在產(chǎn)生4ms的高電平。
在產(chǎn)生引導(dǎo)碼之后,還需對紅外數(shù)據(jù)進(jìn)行仿真驗(yàn)證,如圖6所示
從圖6可以看出產(chǎn)生用戶碼Ox00、用戶反碼Ox00、數(shù)據(jù)碼Oxll和數(shù)據(jù)反碼Oxll,共一幀數(shù)據(jù)。
仿真整體結(jié)果如圖7所示。從圖7可以看出,紅外信號的代碼是正確的,符合紅外信號的數(shù)據(jù)規(guī)則。
五、小結(jié)
基于FPCA的紅外遙控器解碼實(shí)現(xiàn)研究,對紅外信號的工作過程進(jìn)行詳細(xì)的說明,實(shí)現(xiàn)紅外信號的F'PCA代碼,并對FPCA代碼進(jìn)行了仿真驗(yàn)證,實(shí)現(xiàn)紅外遙控器的解碼。