国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

可識(shí)別載波的紅外遙控自學(xué)習(xí)模塊研究與設(shè)計(jì)*

2013-12-07 06:18:16程小輝康燕萍
電子技術(shù)應(yīng)用 2013年2期
關(guān)鍵詞:遙控載波紅外

程小輝,康燕萍

(桂林理工大學(xué) 信息科學(xué)與工程學(xué)院,廣西 桂林 541004)

紅外遙控器是人們?nèi)粘I钪谐R姷囊环N遙控設(shè)備,可以用來(lái)遙控電視機(jī)、DVD、空調(diào)、風(fēng)扇等生活電器。但是紅外遙控的傳輸協(xié)議沒有統(tǒng)一的標(biāo)準(zhǔn),不同的生產(chǎn)廠家設(shè)計(jì)的遙控也各有異同,主要表現(xiàn)在載波頻率的不同和紅外信號(hào)傳輸協(xié)議的不同,常用的紅外遙控器中載波頻率主要有38 kHz和40 kHz。常用的紅外遙控信號(hào)傳輸協(xié)議有 NEC協(xié)議、Philips協(xié)議、ITT協(xié)議、Nokia NRC協(xié)議等。

目前的自學(xué)習(xí)紅外遙控器,只能針對(duì)單一的載波頻率進(jìn)行學(xué)習(xí),而不能識(shí)別不同的載波頻率的遙控信號(hào)。這樣的自學(xué)習(xí)遙控器存在一定的局限性,學(xué)習(xí)遙控的數(shù)量也相對(duì)較少。

1 模塊硬件設(shè)計(jì)

1.1 硬件結(jié)構(gòu)設(shè)計(jì)

本模塊硬件結(jié)構(gòu)設(shè)計(jì)基于STC單片機(jī),芯片型號(hào)為STC12C5410AD。硬件結(jié)構(gòu)框圖如圖1所示。

1.2 單片機(jī)芯片介紹

選擇單片機(jī)型號(hào)為STC12C5410AD。32腳LQFP封裝,CPU 最大頻率 35 MHz,10 KB Flash,512 B RAM,共 6個(gè)16位普通定時(shí)器,具有UART和SPI接口。該芯片是本模塊的核心部件,主要作用是計(jì)算紅外載波頻率和信號(hào)波形測(cè)量分析。

E2PROM存儲(chǔ)芯片選擇24C16,具有16 KB存儲(chǔ)空間,使用I2C總線通信。芯片的主要作用是存儲(chǔ)復(fù)制后的紅外二進(jìn)制編碼波形。

1.3 單片機(jī)最小系統(tǒng)

STC12C5410AD支持的最大外部時(shí)鐘頻率為35 MHz,具有單時(shí)鐘機(jī)器周期,運(yùn)行速度是普通51單片機(jī)速度的12倍。最小系統(tǒng)原理圖如圖2所示。

1.4 紅外接收及發(fā)射電路

紅外接收電路使用傳統(tǒng)的紅外接收管,接收信號(hào)經(jīng)三極管偏置電路放大。紅外發(fā)射電路波形信號(hào)從CLK引腳輸入,CS為門控端,信號(hào)經(jīng)三極管放大后驅(qū)動(dòng)紅外發(fā)射管,如圖3所示。

1.5 E2PROM存儲(chǔ)電路

外部存儲(chǔ)器使用24C16芯片,通信接口使用模擬I2C總線,24C16的SDA引腳和SCL引腳分別與單片機(jī)的P3.7和P1.0相連,并用10 kΩ電阻上拉。

2 模塊軟件設(shè)計(jì)

本紅外自學(xué)習(xí)模塊主要工作模式分為:自學(xué)習(xí)模式和紅外遙控模式。自學(xué)習(xí)模式是學(xué)習(xí)紅外遙控的載波頻率和波形復(fù)制。工作步驟分為:載波頻率檢測(cè)、紅外波形檢測(cè)、檢測(cè)數(shù)據(jù)分析和數(shù)據(jù)儲(chǔ)存。軟件總體設(shè)計(jì)流程如圖4所示。

2.1 載波頻率檢測(cè)

因?yàn)椴煌募t外遙控使用的載波頻率有所不同,所以載波頻率的檢測(cè)是模塊主要功能之一。利用外部觸發(fā)中斷和定時(shí)器聯(lián)合使用來(lái)實(shí)現(xiàn)檢測(cè)載波頻率。

理論計(jì)算:假如紅外信號(hào)的載波頻率為40 kHz。則周期T=25μs。單片機(jī)時(shí)鐘頻率為 24 MHz,定時(shí)器計(jì)數(shù)周期為1/24 MHz=0.041 7μs。假如在載波的一個(gè)下降沿啟動(dòng)定時(shí)器計(jì)數(shù),到下一個(gè)下降沿停止計(jì)時(shí),并讀取定時(shí)器的計(jì)數(shù)值,這個(gè)定時(shí)器的理論計(jì)數(shù)值為 25μs/0.041 7μs=600。

為了減小定時(shí)器計(jì)數(shù)值轉(zhuǎn)換成時(shí)間或頻率的計(jì)算誤差,本設(shè)計(jì)方案中存儲(chǔ)的頻率是定時(shí)器的計(jì)數(shù)值而并非實(shí)際的載波頻率。載波頻率檢測(cè)方法如下:

(1)將單片機(jī)的定時(shí)器0配置為16位計(jì)數(shù)器,計(jì)數(shù)時(shí)鐘不進(jìn)行12分頻;外部中斷1配置為下降沿觸發(fā)。

(2)當(dāng)接收到紅外波形時(shí),下降沿觸發(fā)外部中斷1,在中斷函數(shù)中啟動(dòng)定時(shí)器0開始計(jì)數(shù)。下一個(gè)下降沿時(shí)停止計(jì)數(shù),并讀出計(jì)數(shù)值存入緩沖區(qū)。

(3)連續(xù)測(cè)量14個(gè)數(shù)據(jù),將14個(gè)數(shù)據(jù)進(jìn)行冒泡法排列,分別去掉2個(gè)最大值和2個(gè)最小值,對(duì)剩下的數(shù)據(jù)求平均值。

(4)計(jì)算出來(lái)的平均值加上一個(gè)誤差補(bǔ)償值則為載波在一個(gè)周期內(nèi)定時(shí)器0的計(jì)數(shù)值。直接將計(jì)數(shù)值進(jìn)行存儲(chǔ)。

圖4 軟件總體設(shè)計(jì)流程圖

2.2 波形測(cè)量

波形測(cè)量是指對(duì)紅外信號(hào)的編碼波形進(jìn)行測(cè)量。實(shí)際測(cè)量調(diào)制信號(hào)高低電平的時(shí)間。以紅外NEC[1]協(xié)議為例,紅外NEC協(xié)議編碼波形如圖5所示。

圖5所示的黑色部分是載波,空白部分是低電平。波形測(cè)量的方法:采用外部中斷觸發(fā)的方式分別記錄不同黑塊中載波脈沖的個(gè)數(shù)和不同低電平的時(shí)間。具體測(cè)量步驟如下:

(1)配置單片機(jī)的定時(shí)器0和外部中斷1,與測(cè)量載波頻率時(shí)的配置相同。

(2)當(dāng)接收到紅外波形時(shí)下降沿觸發(fā)外部中斷1,在中斷函數(shù)中啟動(dòng)定時(shí)器0開始計(jì)數(shù),中斷計(jì)數(shù)器值自增1。

(3)下一個(gè)下降沿時(shí)定時(shí)器0停止計(jì)數(shù),中斷計(jì)數(shù)器值自增1,并讀出定時(shí)器計(jì)數(shù)值。將計(jì)數(shù)值與載波頻率中測(cè)量值比較,若前者數(shù)值大于后者兩倍,則表明測(cè)量的是低電平,執(zhí)行步驟(4);否則,重置定時(shí)器0初值,并返回執(zhí)行步驟(3)。

(4)存儲(chǔ)外部中斷1和定時(shí)器0的計(jì)數(shù)值,并判斷數(shù)據(jù)緩存是否存滿,若存滿則執(zhí)行步驟(5);否則重置定時(shí)器0初值并返回步驟(3)。

(5)分析測(cè)出的數(shù)據(jù),并提取一段完整的波形存入E2PROM中,執(zhí)行步驟(6)。若不能分析出一段完整波形,則執(zhí)行步驟(7)。

(6)通過(guò)串口反饋學(xué)習(xí)成功,并傳回按鍵編號(hào)。

(7)通過(guò)串口反饋學(xué)習(xí)失敗。

2.3 波形數(shù)據(jù)分析與存儲(chǔ)

波形測(cè)量后得到兩組數(shù)據(jù),分別是調(diào)制段的載波脈沖個(gè)數(shù)和低電平的時(shí)間計(jì)數(shù)值。所測(cè)波形數(shù)據(jù)中包含一段完整的波形數(shù)據(jù),之后會(huì)出現(xiàn)一個(gè)較長(zhǎng)時(shí)間的低電平,這個(gè)低電平的時(shí)間一般都會(huì)大于10 ms。通過(guò)判別低電平時(shí)間,就可以提取出一段完整的波形數(shù)據(jù)。

存儲(chǔ)波形數(shù)據(jù)時(shí),先定義一個(gè)結(jié)構(gòu)體,其成員有:載波頻率、按鍵編號(hào)、波形存儲(chǔ)首地址和存儲(chǔ)數(shù)據(jù)長(zhǎng)度。其中按鍵編號(hào)和存儲(chǔ)數(shù)據(jù)長(zhǎng)度采用無(wú)符號(hào)字符型,其余兩個(gè)采用無(wú)符號(hào)整型,因此一個(gè)結(jié)構(gòu)體變量的字節(jié)長(zhǎng)度是6 B。24C16的存儲(chǔ)容量是16 KB,將存儲(chǔ)空間分成兩個(gè)區(qū)域,前2 KB來(lái)存儲(chǔ)波形的結(jié)構(gòu)體變量數(shù)據(jù),后14 KB來(lái)存儲(chǔ)波形數(shù)據(jù)。理論上計(jì)算存儲(chǔ)器至少能存儲(chǔ)55個(gè)波形。

2.4 紅外信號(hào)發(fā)射

發(fā)射紅外信號(hào)時(shí),先根據(jù)按鍵編號(hào)從24C16中讀取相應(yīng)按鍵的載波頻率、按鍵編號(hào)、波形數(shù)據(jù)存儲(chǔ)首地址和存儲(chǔ)數(shù)據(jù)長(zhǎng)度。然后對(duì)按鍵編號(hào)進(jìn)行比較,確認(rèn)無(wú)誤后根據(jù)波形數(shù)據(jù)存儲(chǔ)首地址將波形數(shù)據(jù)讀取出來(lái)。再根據(jù)波形數(shù)據(jù)給定時(shí)器0賦不同的初值,在定時(shí)器0的定時(shí)中斷函數(shù)里對(duì)P3.5進(jìn)行電平翻轉(zhuǎn),從而輸出編碼波形。波形信號(hào)經(jīng)過(guò)三極管功率放大驅(qū)動(dòng)紅外發(fā)光二極管發(fā)射波形。

2.5 模塊UART通信協(xié)議設(shè)置

2.5.1 串口參數(shù)設(shè)置

串口參數(shù)設(shè)置為:波特率1 200 b/s、數(shù)據(jù)位 8 bit、停止位1 bit、無(wú)校驗(yàn)位、無(wú)流控制。

2.5.2 通信協(xié)議設(shè)置

(1)模塊接收數(shù)據(jù)格式

起始位 (0xfe)+命令位+數(shù)據(jù)長(zhǎng)度+數(shù)據(jù)域+數(shù)據(jù)校驗(yàn)。

命令位詳解:①0x00:模塊進(jìn)入學(xué)習(xí)模式;②0x01:模塊按照接收到的按鍵編碼發(fā)送紅外信號(hào);③0x02:獲取指定按鍵編號(hào)的波形數(shù)據(jù)。

數(shù)據(jù)長(zhǎng)度:通信協(xié)議中數(shù)據(jù)域的數(shù)據(jù)字節(jié)總數(shù)。

數(shù)據(jù)域:要發(fā)送的數(shù)據(jù)。當(dāng)命令位為0x00,數(shù)據(jù)域中數(shù)據(jù)無(wú)效,可為一個(gè)字節(jié)的任意數(shù)據(jù)。

數(shù)據(jù)校驗(yàn):數(shù)據(jù)域中所有數(shù)據(jù)的校驗(yàn)和。

例如,模塊進(jìn)入學(xué)習(xí)模式接收到的數(shù)據(jù)應(yīng)該是0xfe 0x00 0x01 0x00 0x00;控制模塊發(fā)送編碼為2的按鍵信號(hào)數(shù)據(jù)應(yīng)該是0xfe 0x01 0x01 0x02 0x02。

(2)模塊發(fā)送數(shù)據(jù)格式

起始位(0xfe)+狀態(tài)位+數(shù)據(jù)長(zhǎng)度+數(shù)據(jù)域+數(shù)據(jù)校驗(yàn)。

狀態(tài)位詳解:①0x00:紅外信號(hào)學(xué)習(xí)成功;②0x01:紅外信號(hào)學(xué)習(xí)失敗;③0x02:數(shù)據(jù)域中發(fā)送指定按鍵的編碼波形數(shù)據(jù)。

3 實(shí)驗(yàn)分析與性能測(cè)試

3.1 載波頻率學(xué)習(xí)測(cè)試對(duì)比與分析

測(cè)試方法:用一個(gè)模塊編寫程序發(fā)出固定頻率的信號(hào),該信號(hào)需要經(jīng)過(guò)示波器測(cè)量確認(rèn),并讓另一模塊接收,測(cè)量該頻率相應(yīng)的定時(shí)器計(jì)數(shù)值,通過(guò)串口發(fā)送到PC機(jī)的串口調(diào)試助手顯示。再計(jì)算出該頻率相應(yīng)的定時(shí)器理論計(jì)數(shù)值,將兩個(gè)數(shù)值進(jìn)行比較。測(cè)試結(jié)果如表1所示。

表1 載波頻率測(cè)試結(jié)果

理論值的計(jì)算方法:載波頻率為F,一個(gè)周期的時(shí)間T=1/F;單片機(jī)的時(shí)鐘頻率 f=24 MHz,定時(shí)器 0不采用12分頻方式,定時(shí)器計(jì)一個(gè)數(shù)的時(shí)間t=1/f。因此在一個(gè)T時(shí)間內(nèi)定時(shí)器0的計(jì)數(shù)值為C=T/t。

通過(guò)實(shí)驗(yàn)數(shù)據(jù)可得出,測(cè)量值與理論值存在偏差,但是這個(gè)偏差值接近一個(gè)固定值34,通過(guò)軟件對(duì)測(cè)量數(shù)據(jù)加34來(lái)達(dá)到理論計(jì)算值。經(jīng)過(guò)補(bǔ)償后,將測(cè)量的頻率數(shù)據(jù)轉(zhuǎn)換成信號(hào)發(fā)出,用示波器測(cè)量發(fā)出的頻率與接收到的頻率一致。通過(guò)實(shí)驗(yàn)測(cè)得模塊學(xué)習(xí)載波的范圍是30 kHz~65 kHz。

載波頻率的數(shù)據(jù)測(cè)量可通過(guò)補(bǔ)償來(lái)達(dá)到理論要求。下面對(duì)實(shí)際的紅外遙控進(jìn)行載波頻率識(shí)別測(cè)試,使用示波器捕捉載波波形進(jìn)行比較。載波識(shí)別是本模塊的一大亮點(diǎn),參考文獻(xiàn)[1-7]中的紅外學(xué)習(xí)模塊都使用紅外一體化接收頭進(jìn)行數(shù)據(jù)采集,它們的共同點(diǎn)是載波頻率固定,不能學(xué)習(xí)多種載波的遙控信號(hào)。而載波學(xué)習(xí)的一個(gè)重要指標(biāo)是經(jīng)過(guò)學(xué)習(xí)后的載波頻率必須與原載波一致。

圖6所示為學(xué)習(xí)模塊識(shí)別載波頻率后發(fā)送的載波波形,頻率為38.46 kHz,占空比為1/2。用示波器測(cè)量紅外遙控發(fā)射的載波頻率為38.64 kHz,占空比為1/3。由圖6可見,該學(xué)習(xí)模塊能夠識(shí)別載波頻率。占空比的差異只與遙控器的功耗有關(guān),但不影響遙控功能。

圖6 學(xué)習(xí)模塊學(xué)習(xí)后發(fā)送的載波

3.2 紅外波形學(xué)習(xí)測(cè)試對(duì)比與分析

紅外遙控自學(xué)習(xí)模塊另一重要功能是將學(xué)習(xí)到的紅外波形完整地發(fā)送出去,并且與原來(lái)的波形一致。通過(guò)示波器實(shí)驗(yàn)可以比對(duì)學(xué)習(xí)轉(zhuǎn)發(fā)的波形與原有波形。圖7所示為按下遙控器1號(hào)鍵時(shí),通過(guò)紅外接收管接收到的部分波形。圖8所示為模塊學(xué)習(xí)復(fù)制信號(hào)后發(fā)送的部分波形。經(jīng)過(guò)比較,兩種波形基本一致。

圖7 紅外遙控按鍵1發(fā)送的部分波形

圖8 模塊學(xué)習(xí)后發(fā)送的部分波形

實(shí)際功能測(cè)試:紅外遙控自學(xué)習(xí)模塊的主要功能是學(xué)習(xí)紅外遙控器的相關(guān)按鍵,并且能控制相關(guān)的紅外遙控設(shè)備。使用該模塊學(xué)習(xí)彩色電視機(jī)的遙控,能夠成功控制電視機(jī)頻道選擇;學(xué)習(xí)空調(diào)遙控,能成功控制空調(diào)的開關(guān)和調(diào)溫等操作。

本文介紹的紅外遙控自學(xué)習(xí)模塊具有自動(dòng)識(shí)別載波頻率和波形學(xué)習(xí)的功能。實(shí)驗(yàn)證明,紅外自學(xué)習(xí)模塊具有良好的通用性和寬載波學(xué)習(xí)范圍,解決了目前遙控器只識(shí)別單一載波的問題。通過(guò)實(shí)際功能測(cè)試,驗(yàn)證了該模塊設(shè)計(jì)方案的可行性。

[1]鄭偉,謝利理,張震.一種具有自學(xué)習(xí)功能的智能紅外遙控器設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2007,15(12):1758-1759.

[2]吳彪,朱立新,趙佳.基于 CPLD的紅外遙控發(fā)射接收設(shè)計(jì)與仿真[J].計(jì)算機(jī)仿真,2006,23(8):269-272.

[3]朱光忠,呂梅蕾,楊子鳴.基于單片機(jī)的紅外遙控開關(guān)控制器[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(11):2097-2099.

[4]吳愛萍,朱曉春.基于AT89S51的多功能紅外遙控器設(shè)計(jì)[J].儀表技術(shù)與傳感器,2008(8):78-80.

[5]高建榮.基于單片機(jī)控制紅外線遙控的編碼實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004,25(11):2105-2107.

[6]李從宏.基于功能碼的紅外遙控軟件解碼技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(9):72-73.

[7]聶詩(shī)良,李磊民.紅外遙控信號(hào)的一種編碼解碼方法[J].儀表技術(shù)與傳感器,2004(8):28-29,32.

猜你喜歡
遙控載波紅外
如何遙控引爆的
網(wǎng)紅外賣
閃亮的中國(guó)紅外『芯』
金橋(2021年4期)2021-05-21 08:19:20
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
他是如何遙控引爆的
基于快速遞推模糊2-劃分熵圖割的紅外圖像分割
應(yīng)急廣播系統(tǒng)中副載波的構(gòu)建與應(yīng)用
遙控賽車
低壓載波通訊測(cè)試儀的開發(fā)與應(yīng)用
基于最優(yōu)化搜索的迭代載波同步算法
景洪市| 石嘴山市| 高雄市| 九台市| 措美县| 祁门县| 丽江市| 乌审旗| 新田县| 普兰县| 同江市| 炉霍县| 丽江市| 朝阳区| 廊坊市| 天祝| 张家口市| 丹东市| 虎林市| 伊川县| 友谊县| 托克逊县| 宜兰县| 蒙山县| 昔阳县| 西乡县| 云梦县| 张家港市| 乌鲁木齐市| 津南区| 邵东县| 延津县| 巴楚县| 马鞍山市| 泾源县| 邹平县| 临桂县| 腾冲县| 壤塘县| 神农架林区| 濮阳市|