文/陳韻文 肖順文 鄭瑞 王涌 羅春梅
(西華師范大學(xué)電子信息工程學(xué)院 四川省南充市 637009)
紅外遙控具有體積小、信息傳輸可靠、功耗低、成本低等顯著特點(diǎn)[1],廣泛應(yīng)用于家用家電、工業(yè)控制等領(lǐng)域。紅外線為不可見光,不受電磁環(huán)境的干擾,方向性好,同時也具有不干擾其他用電設(shè)備工作,不影響周邊環(huán)境的良好優(yōu)點(diǎn),因此,研究紅外遙控系統(tǒng)工作原理并設(shè)計(jì)實(shí)現(xiàn)顯得尤為必要。本文采用Verilog HDL來設(shè)計(jì)實(shí)現(xiàn)紅外遙控信號的解碼,這種基于FPGA實(shí)現(xiàn)的紅外解碼比傳統(tǒng)方式解碼速度更快、精確率更高。
紅外遙控系統(tǒng)一般分為發(fā)送端和接收端兩部分,如圖1所示。發(fā)送部分的發(fā)送元器件為紅外發(fā)光二極管,通過發(fā)送電路使其發(fā)出具有特定編碼信號的紅外線。接收電路接收光信號主要元件是紅外接收管,其接收到發(fā)送端發(fā)出的紅外線后經(jīng)一系列光電轉(zhuǎn)換電路、放大電路后,轉(zhuǎn)換成相應(yīng)電信號。
本系統(tǒng)采用的是基于NEC紅外通信協(xié)議而生產(chǎn)的HT6221遙控編碼芯片,其采用的PPM編碼方式,即脈沖相位調(diào)制。基于HT6221遙控芯片的遙控裝置發(fā)送的數(shù)據(jù)格式如圖2所示。數(shù)據(jù)幀由引導(dǎo)碼、8位低位地址碼、8位高位地址碼、8位數(shù)據(jù)碼、8位數(shù)據(jù)反碼構(gòu)成[2]。
引導(dǎo)碼由9ms高電平和4.5ms低電平組成,代表一幀數(shù)據(jù)的起始,也即是幀頭[3]。地址碼前8位是低位,后8位為高位。所以,理論上NEC協(xié)議可以支持216個不同用戶。數(shù)據(jù)碼由8位二進(jìn)制構(gòu)成,理論上可知NEC協(xié)議支持28個用戶指令。數(shù)據(jù)反碼是由數(shù)據(jù)碼波形取反而得,主要是用于數(shù)據(jù)校驗(yàn),增強(qiáng)紅外遙控的可靠性。
在NEC協(xié)議中,區(qū)別邏輯“0”和邏輯“1”是根據(jù)高低電平持續(xù)時間的長短,邏輯“0”用0.56ms高電平加上0.56ms低電平表示;邏輯“1”則用0.56ms高電平加上1.69ms低電平表示[4]。
通過對NEC協(xié)議的認(rèn)識,知道對引導(dǎo)碼和邏輯“0”邏輯“1”的識別是解碼的關(guān)鍵[5]。紅外線一體化接收頭接收到光信號后,經(jīng)一系列轉(zhuǎn)換、放大電路后輸出與發(fā)送信號倒向的數(shù)據(jù)信號,即發(fā)送端發(fā)送的高電平信號,紅外線一體化接收頭輸出低電平信號,發(fā)送端發(fā)送的低電平信號,紅外線一體化接收頭輸出高電平信號。所以,要能解碼出正確的紅外信號,關(guān)鍵是識別出9ms的低電平、4.5ms的高電平、560us的低電平、1690us的高電平、560us的高電平[6]。因此需要4個計(jì)數(shù)器分別對9ms、4.5ms、0.56ms、1.69ms進(jìn)行計(jì)數(shù)判斷,當(dāng)然,因?yàn)椴煌b控廠家精度不一定完全一致,這里給定計(jì)數(shù)器值的一定范圍來實(shí)現(xiàn)以兼容不同廠家生產(chǎn)的遙控設(shè)備。部分Verilog HDL源程序如下:



圖1:紅外遙控系統(tǒng)工作原理圖

圖2:NEC數(shù)據(jù)幀格式

圖3:紅外解碼狀態(tài)機(jī)跳轉(zhuǎn)圖

圖4:功能仿真波形

圖5:ISSP抓取數(shù)據(jù)

紅外解碼狀態(tài)機(jī)跳轉(zhuǎn)圖如圖3所示,從解碼流程分析,可以分為4個狀態(tài):
IDLE:空閑狀態(tài),等待一體化接收頭信號到來。
因此,以整體整合一體化自主調(diào)控為核心,整合基礎(chǔ)醫(yī)學(xué)各學(xué)科內(nèi)容,構(gòu)建了系統(tǒng)整合課程。例如將呼吸系統(tǒng)、心血管系統(tǒng)和血液系統(tǒng)充分整合,將消化系統(tǒng)、內(nèi)分泌系統(tǒng)、泌尿生殖系統(tǒng)充分整合,課程以整體整合的理念,將形態(tài)結(jié)構(gòu)、功能和治療緊密結(jié)合,密切結(jié)合臨床應(yīng)用,希望打破傳統(tǒng)教學(xué)中學(xué)科間的壁壘,使醫(yī)學(xué)知識更加系統(tǒng)與完整,以求打破學(xué)科界限以實(shí)現(xiàn)各學(xué)科、各系統(tǒng)知識點(diǎn)的橫向整合,打通基礎(chǔ)課程與臨床課程界限,以實(shí)現(xiàn)融會貫通的縱向整合。
CHECK_T9:識別9ms低電平引導(dǎo)碼到來,如果識別成功則繼續(xù)識別4.5ms的高電平引導(dǎo)碼,識別不成功則返回IDLE空閑狀態(tài)。
CHECK_T4_5:識別4.5ms高電平引導(dǎo)碼到來,如果識別成功則進(jìn)入數(shù)據(jù)碼解碼狀態(tài)REC_DATA,識別不成功則返回IDLE空閑狀態(tài)。
REC_DATA:數(shù)據(jù)碼解碼狀態(tài),32位碼字識別完成后,完成一次紅外解碼,回到IDLE空閑狀態(tài)。
在QuatursII軟件中編譯無誤后,設(shè)置好testbench腳本,然后調(diào)用OEM版本的仿真軟件Modelsim-Altera進(jìn)行功能仿真,可以看到部分仿真波形數(shù)據(jù),如圖4所示。從仿真波形看,一體化接收頭輸出數(shù)據(jù)iIR產(chǎn)生了一幀數(shù)據(jù),在一幀數(shù)據(jù)傳輸完成后,解碼完成標(biāo)志信號Rec_ok產(chǎn)生一個單時鐘高電平。Rec_ok產(chǎn)生一個單位時鐘后,可以看到解碼后的數(shù)據(jù)De_Data為1101_1010_0010_0101,高8位與低8位互為反碼,與NEC協(xié)議數(shù)據(jù)碼編碼規(guī)則一致。將低8位轉(zhuǎn)換為十六進(jìn)制后為25H,與在激勵文件中設(shè)置的數(shù)據(jù)一致。得出該設(shè)計(jì)結(jié)果符合設(shè)計(jì)的要求。
為了更進(jìn)一步檢驗(yàn)紅外信號解碼的正確性,將進(jìn)行板級驗(yàn)證。首先在QuatursII中分配好引腳,進(jìn)行全編譯,通過JTAG配置數(shù)據(jù)下載到FPGA芯片中。然后啟動QuatursII軟件中的ISSP進(jìn)行數(shù)據(jù)抓取,將數(shù)據(jù)顯示格式調(diào)整為Hexadecimal,使用遙控器按“9”,F(xiàn)PGA解碼后,ISSP抓取的B54AFF00h,如圖5所示,從使用HT6221遙控芯片的遙控器鍵碼圖中,知道按鍵“9”對應(yīng)鍵碼為4AH,計(jì)算出其反碼為B5H,與ISSP抓取的數(shù)據(jù)一致,符合設(shè)計(jì)要求。
本文介紹了紅外遙控信號解碼原理,分析了紅外遙控系統(tǒng)的組成以及紅外遙控信號的編碼規(guī)則,并采用硬件描述語言Verilog HDL完成了紅外遙控信號解碼電路的實(shí)現(xiàn)。通過紅外線接收頭接收遙控器發(fā)送的遙控信號,用FPGA對接收信號進(jìn)行解碼。經(jīng)過電路仿真,板級測試,符合設(shè)計(jì)要求。