亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STM32的軟件載波紅外學(xué)習(xí)系統(tǒng)設(shè)計(jì)

        2018-07-31 01:33:58張賽劉達(dá)姚國棟
        電氣自動(dòng)化 2018年2期
        關(guān)鍵詞:系統(tǒng)

        張賽, 劉達(dá), 姚國棟

        (1.北京航空航天大學(xué) 機(jī)械工程及自動(dòng)化學(xué)院, 北京 100191; 2. 中國科學(xué)院電工研究所, 北京 100080)

        0 引 言

        紅外遙控是家用電器通信控制中應(yīng)用最廣泛的方式,電視機(jī)、空調(diào)、風(fēng)扇等家用電器均采用紅外遙控形式進(jìn)行控制,具有結(jié)構(gòu)簡單、體積小、功耗小、功能強(qiáng)、成本低等特點(diǎn),隨著家電數(shù)目日益增多,不同家電的遙控器編碼格式不同[1],常用的紅外編碼協(xié)議有NEC協(xié)議、Philips協(xié)議、ITT協(xié)議等[2],這些協(xié)議的不同阻礙了智能家居控制系統(tǒng)的研究與發(fā)展。

        為解決此問題,促進(jìn)智能家居智能化的發(fā)展,本文設(shè)計(jì)一種基于低功耗STM32的紅外學(xué)習(xí)系統(tǒng),將不同家電不同編碼的紅外控制信號(hào)進(jìn)行學(xué)習(xí),存儲(chǔ)在控制系統(tǒng)Flash中,達(dá)到通過智能終端控制家電設(shè)備的目的。

        1 紅外學(xué)習(xí)系統(tǒng)的原理

        從控制器原理出發(fā),紅外學(xué)習(xí)方式有兩種:固定編碼式學(xué)習(xí)和波形復(fù)制學(xué)習(xí)[3]。固定編碼式學(xué)習(xí)主要是搜集各種已知類型的紅外信號(hào),預(yù)先存儲(chǔ)在控制系統(tǒng)中。這種學(xué)習(xí)方式的缺點(diǎn)是對(duì)于未知紅外信息無效;波形復(fù)制學(xué)習(xí)可以完全不用考慮設(shè)備及其紅外碼信息,專注于波形的脈沖序列記錄與重現(xiàn),不受遙控編碼協(xié)議的限制[4],只需要記錄紅外信號(hào)高低電平的時(shí)間,存儲(chǔ)在Flash中。與固定式編碼學(xué)習(xí)相比,這種學(xué)習(xí)方式適用性更廣。本文即采用波形復(fù)制的思路進(jìn)行系統(tǒng)設(shè)計(jì)。

        波形復(fù)制式學(xué)習(xí)方式控制系統(tǒng)的功能主要分為學(xué)習(xí)和發(fā)送兩部分。在學(xué)習(xí)過程中,控制系統(tǒng)接收來自設(shè)備遙控器發(fā)送過來的紅外信號(hào)。接收電路收到信號(hào)后經(jīng)過放大并解調(diào)出TTL電平信號(hào),處理器對(duì)信號(hào)進(jìn)行處理并存儲(chǔ)在內(nèi)部Flash中。當(dāng)需要發(fā)射時(shí),讀取相應(yīng)Flash存儲(chǔ)區(qū)的數(shù)據(jù),調(diào)制到38 kHz載波信號(hào),通過放大電路驅(qū)動(dòng)紅外發(fā)射二極管發(fā)射紅外信號(hào)。完成紅外信號(hào)的學(xué)習(xí)與發(fā)射,從而可以實(shí)現(xiàn)控制系統(tǒng)學(xué)習(xí)多種設(shè)備遙控器紅外信號(hào)。

        2 紅外學(xué)習(xí)系統(tǒng)的硬件設(shè)計(jì)

        紅外學(xué)習(xí)系統(tǒng)的系統(tǒng)結(jié)構(gòu)如圖1所示,主要由以下五部分組成:STM32F0最小系統(tǒng)、紅外接收電路、紅外發(fā)送電路、電源模塊以及蜂鳴器和LED指示。Flash是STM32內(nèi)置的高性能閃存,可提供10萬次以上的擦寫次數(shù)[5],在紅外學(xué)習(xí)系統(tǒng)中對(duì)紅外脈沖時(shí)間進(jìn)行存儲(chǔ)和讀取。此次設(shè)計(jì)采用的STM32F0內(nèi)置32 kB的容量,經(jīng)實(shí)驗(yàn)測(cè)試不同遙控器紅外協(xié)議紅外信號(hào)的時(shí)間長度不同,其紅外信號(hào)高低電平時(shí)間數(shù)組長度小于300,因此設(shè)定臨時(shí)數(shù)組長度300,F(xiàn)lash半字寫入,理論計(jì)算可得最大存儲(chǔ)128個(gè)紅外信號(hào)。紅外接收電路:一體化接收頭將輸出信號(hào)進(jìn)行檢波、整形、放大、解調(diào),輸出信號(hào)直接為TTL高低電平。紅外發(fā)射電路:軟件調(diào)制38 kHz載波,經(jīng)三極管放大,驅(qū)動(dòng)紅外發(fā)光二極管。

        圖1 紅外學(xué)習(xí)系統(tǒng)結(jié)構(gòu)圖

        3 紅外學(xué)習(xí)系統(tǒng)的軟件設(shè)計(jì)

        系統(tǒng)采用定時(shí)器中斷與MCU輪詢方式運(yùn)行。串口無輸入數(shù)據(jù)時(shí),控制系統(tǒng)指示燈規(guī)律閃爍,等待指令。串口接收到相應(yīng)數(shù)據(jù)時(shí),系統(tǒng)進(jìn)入學(xué)習(xí)模式或者發(fā)送模式。調(diào)用相應(yīng)的程序完成紅外學(xué)習(xí)或者紅外發(fā)送任務(wù),總體流程如圖2所示。

        圖2 主程序流程圖

        3.1 紅外信號(hào)編碼結(jié)構(gòu)分析

        盡管不同設(shè)備不同協(xié)議的紅外信號(hào)不同,但其有相同的編碼類型。紅外信號(hào)編碼脈沖由起始碼、系統(tǒng)碼、系統(tǒng)反碼、功能碼、功能反碼組成[6],如圖3所示,波形高電平表示發(fā)射紅外載波,波形低電平表示不發(fā)射紅外載波信號(hào),以發(fā)射紅外載波的不同占空比表示數(shù)據(jù)“0”和“1”,如圖4所示。以NEC TC9012紅外協(xié)議為例,位0為0.56 ms高電平,0.565 ms低電平,位1為0.56 ms高電平,1.69 ms低電平。

        圖4 紅外數(shù)據(jù)位定義

        圖3 紅外數(shù)據(jù)格式

        通過分析大量不同類型的紅外遙控器波形,發(fā)現(xiàn)不同的遙控器紅外信號(hào)區(qū)別在于引導(dǎo)碼的高低電平時(shí)間不同,位0與位1的定義不同。這些編碼都是經(jīng)38 kHz載波調(diào)制發(fā)射,因此可以直接考慮紅外信號(hào)的高低電平寬度,不考慮其編碼形式。

        3.2 編碼學(xué)習(xí)軟件分析

        紅外發(fā)射脈沖與紅外接收頭輸出的脈沖高低電平相反。如圖5所示,在設(shè)計(jì)中采用定時(shí)器中斷捕獲接收信號(hào)的上升沿和下降沿,捕獲之后進(jìn)入中斷處理函數(shù),分別對(duì)高低電平時(shí)間進(jìn)行測(cè)量,將捕獲的結(jié)果暫存到臨時(shí)數(shù)組中,進(jìn)行壓縮處理后寫入Flash相應(yīng)存儲(chǔ)區(qū)。

        圖5 紅外發(fā)射與接收脈沖信號(hào)

        初始設(shè)置為定時(shí)器下降沿捕獲,當(dāng)系統(tǒng)進(jìn)入紅外輸入下降沿捕獲中斷后,獲取計(jì)數(shù)器數(shù)值temp[2i],再次進(jìn)入定時(shí)器上升沿捕獲中斷獲取計(jì)數(shù)器數(shù)值temp[2i+1],考慮到計(jì)數(shù)器可能溢出,因此其差值temp[m+1]-temp[m]或0xFFFF-temp[m]+temp[m+1]為高低電平的計(jì)數(shù)差值,利用定時(shí)器頻率求出高低電平時(shí)間,當(dāng)不再進(jìn)入中斷時(shí),完成學(xué)習(xí)過程,其程序流程如圖6所示。

        圖6 定時(shí)器中斷紅外學(xué)習(xí)過程

        3.3 軟件載波紅外信號(hào)發(fā)射

        通過系統(tǒng)定時(shí)器產(chǎn)生38 kHz占空比為1∶3的載波頻率,用存儲(chǔ)在Flash中的紅外高低電平時(shí)間控制定時(shí)器的開啟或關(guān)閉時(shí)長,實(shí)現(xiàn)調(diào)制過程。具體實(shí)現(xiàn)過程為:讀取相應(yīng)Flash存儲(chǔ)的數(shù)據(jù)到發(fā)射數(shù)組IR_OUT[],由圖5中接收的脈沖信號(hào)可以得知,發(fā)射數(shù)組的偶數(shù)位為紅外信號(hào)發(fā)射高電平時(shí)間,發(fā)射數(shù)組的奇數(shù)位為紅外發(fā)射信號(hào)低電平時(shí)間,若為高電平則開啟定時(shí)器,低電平則關(guān)閉定時(shí)器。這種方式不用考慮紅外編碼的方式,只考慮紅外高低電平寬度,進(jìn)行調(diào)制發(fā)射。調(diào)制的信號(hào)經(jīng)過三極管放大控制紅外發(fā)射二極管實(shí)現(xiàn)信號(hào)的發(fā)射,主要程序代碼如下[7]:

        Flash_Read(ADDR_FLASH_PAGE_24,&IR_OUT[0],300); //讀取Falsh數(shù)據(jù)

        if(IR_OUT[0]!=0)

        {

        for(int i=0;i<300;i++)

        {

        if(IR_OUT[i]!=0)

        {

        if(i%2==0)

        {

        TIM_Cmd(TIM2, ENABLE); //使能定時(shí)器

        delay_us(IR_OUT[i]*10); //延時(shí)μs時(shí)間

        }

        else

        {

        TIM_Cmd(TIM2,DISABLE); //禁止定時(shí)器

        delay_us(IR_OUT[i]*10);

        }

        }

        }

        }

        這樣以軟件的形式實(shí)現(xiàn)載波,有效實(shí)現(xiàn)了紅外信號(hào)的發(fā)射,簡化了設(shè)計(jì),降低了硬件復(fù)雜度。

        3.4 通信協(xié)議

        智能終端與紅外學(xué)習(xí)系統(tǒng)采用串口通信,串口配置為:波特率9 600 bps,數(shù)據(jù)位8位,一個(gè)停止位,無奇偶校驗(yàn)位,定義接收命令格式如表1所示。

        表1 通信命令格式

        字頭為命令識(shí)別,固定字節(jié)。模式0x53為紅外發(fā)送模式,0x4C為紅外學(xué)習(xí)模式。位置為指定要存儲(chǔ)或者讀取的數(shù)據(jù)在Flash中的位置。例如串口發(fā)送指令41 4C 00 00 45,表示學(xué)習(xí)模式,將學(xué)習(xí)的紅外信號(hào)存儲(chǔ)在Flash定義存儲(chǔ)區(qū)的第0個(gè)位置。串口發(fā)送指令41 53 00 02 45,表示從Flash定義存儲(chǔ)區(qū)的第2個(gè)位置讀取數(shù)組數(shù)值,進(jìn)而完成調(diào)制發(fā)射。

        4 試驗(yàn)結(jié)果及分析

        紅外學(xué)習(xí)系統(tǒng)功能是否有效取決于學(xué)習(xí)和還原2個(gè)過程的正確,即學(xué)習(xí)過程能夠正確學(xué)習(xí)紅外信號(hào)生成數(shù)組存儲(chǔ)在Flash中,發(fā)送過程能無誤差讀出Flash中的數(shù)組,通過控制定時(shí)器中斷軟件載波方式實(shí)現(xiàn)紅外信號(hào)發(fā)送。試驗(yàn)以格蘭仕空調(diào)遙控器“開”按鍵作為測(cè)試,分別試驗(yàn)紅外學(xué)習(xí)與紅外發(fā)射功能。

        4.1 紅外學(xué)習(xí)試驗(yàn)

        串口發(fā)送指令41 4C 00 00 45,進(jìn)入紅外學(xué)習(xí)模式,按下按鍵,獲取的紅外信號(hào)高低電平脈沖計(jì)數(shù)器差值存儲(chǔ)在臨時(shí)數(shù)組中,如圖7所示。由于捕獲定時(shí)器分頻系數(shù)為480,定時(shí)器頻率為0.1 MHz,即捕獲精度為10 μs,臨時(shí)數(shù)組值乘以10即為時(shí)間μs??梢缘贸鲈摷t外信號(hào)的起始碼為高電平3.61 ms,低電平1.59 ms。位0為550 μs低電平,500 μs高電平,位1為550 μs低電平,1 180 μs高電平。通過Flash寫入函數(shù)將臨時(shí)數(shù)組值以半字寫入Flash存儲(chǔ)區(qū)中,存儲(chǔ)結(jié)果如圖8所示,數(shù)組中的每個(gè)值占兩個(gè)地址。

        圖7 臨時(shí)數(shù)組捕獲值

        圖8 Flash 存儲(chǔ)結(jié)果

        學(xué)習(xí)系統(tǒng)接收到完整的紅外波形,波形如圖9所示,放大波形圖,如圖10所示,脈沖信號(hào)較為清晰直觀,利用示波器光標(biāo)測(cè)量紅外接收端起始碼的低電平時(shí)間Δt為3.600 ms,與紅外捕獲臨時(shí)數(shù)組第一個(gè)數(shù)值相等,證明捕獲紅外高低電平時(shí)間正確,完成紅外信號(hào)學(xué)習(xí)試驗(yàn)。

        圖9 紅外接收波形

        圖10 紅外接收波形放大圖

        4.2 紅外發(fā)射試驗(yàn)

        圖11 紅外發(fā)射數(shù)組圖

        將學(xué)習(xí)的遙控器“開”按鍵紅外信號(hào)讀取并進(jìn)行發(fā)射。串口發(fā)送指令41 53 00 00 45,讀取Flash定義存儲(chǔ)區(qū)第0個(gè)位置數(shù)組值,讀取的發(fā)射數(shù)組如圖11所示,與圖7中捕獲的臨時(shí)數(shù)組值完全相同,讀取完整無誤,再通過軟件載波的形式經(jīng)三極管放大電路控制紅外二極管發(fā)送紅外信號(hào),試驗(yàn)測(cè)試系統(tǒng)紅外發(fā)射距離達(dá)到8 m,用一體化紅外接收頭獲取紅外發(fā)射二極管發(fā)送的紅外信號(hào),如圖12所示,對(duì)比紅外發(fā)射波形與紅外接收波形,可知兩種脈沖編碼完全一致,完成紅外信號(hào)發(fā)射試驗(yàn)。

        圖12 紅外發(fā)射波形

        5 結(jié)束語

        本文設(shè)計(jì)了基于STM32F0的紅外控制系統(tǒng),介紹了系統(tǒng)的整體框架,硬件組成及軟件流程,經(jīng)過反復(fù)測(cè)試,系統(tǒng)可以有效學(xué)習(xí)不同家電不同協(xié)議的紅外信號(hào),對(duì)各種電器進(jìn)行控制,具有很好的通用性,為智能家居提供一種可行的解決方案。

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動(dòng)化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
        人伦片无码中文字幕| 日韩精品一区二区亚洲av| 国产精品成人亚洲一区| 波多野结衣av一区二区全免费观看 | av天堂线上| 扒开非洲女人大荫蒂视频| 国产精品视频一区二区久久| 国产精品国产自产自拍高清av| 中字乱码视频| 亚洲热线99精品视频| 欧美丰满熟妇aaaaa片| 国产亚洲欧美在线观看的| AV熟妇导航网| 色佬易精品视频免费在线观看| 国产精品成人av大片| 插鸡网站在线播放免费观看| 人妻aⅴ中文字幕| 亚洲中文字幕无码永久在线| 国产精品爆乳在线播放| 久久精品国产亚洲av成人擦边 | 狠狠爱婷婷网五月天久久| 国产精品久久国产精品99 gif| 在线看片免费人成视频久网下载| 国产山东熟女48嗷嗷叫| 天天中文字幕av天天爽| 日本女优中文字幕有码| 九九综合va免费看| 久久综合给合综合久久| 色综合久久丁香婷婷| 国产午夜精品久久久久| 99久久久69精品一区二区三区| 精人妻无码一区二区三区| 极品av麻豆国产在线观看| 精品无码国产污污污免费| 久热爱精品视频在线观看久爱 | 国内精品久久久久影院薰衣草| 性一交一乱一透一a级| 伊人久久大香线蕉免费视频 | 亚洲精品永久在线观看| 国产精品一卡二卡三卡| 色噜噜精品一区二区三区|