采用ad方式進行紅外學習的方法
【專利摘要】本發明公開了一種采用AD方式進行紅外學習的方法,包括步驟:采用紅外電路對空氣中紅外信號進行感應并轉換成模擬電壓信號;紅外電路包括一光電二極管和第一電阻,第一電阻的兩端和光電二極管的兩端相連,光電二極管接收空氣中紅外信號并將空氣中紅外信號轉換為流過第一電阻的電流從而形成模擬電壓信號,并將模擬電壓信號輸入到處理器的AD轉換通道中;處理器對模擬電壓信號進行AD采樣;處理器根據AD采樣檢測到的模擬電壓信號的各脈沖信號的起始位置和結束位置進行計時并計算得到紅外控制碼的各高電平和各低電平的時間從而實現對紅外控制碼和載波信號的頻率的學習。本發明能夠采用AD方式學習紅外控制碼以及載波頻率。
【專利說明】采用AD方式進行紅外學習的方法
【技術領域】
[0001]本發明涉及紅外遙控系統,特別是涉及一種采用AD(模擬信號到數字信號的轉換)方式進行紅外學習的方法。
【背景技術】
[0002]紅外遙控器(IR Remote Control)是利用波長為0.76?L 5 μ m之間的近紅外線來傳送控制信號的遙控設備。
[0003]學習型遙控器(Self-Learning Remote Control)是一種通用的紅外遙控器,相當于鑰匙坯子,可以刻出任意形狀的鑰匙。只要將學習型遙控器出廠碼清除,然后拷貝現有的紅外遙控器,則學習型遙控器就具有原遙控器的所有功能。
[0004]學習型遙控器分為兩類:固定碼格式學習的和波形拷貝方式學習的。
[0005]固定碼格式學習的紅外遙控器是先對市場上所使用的紅外遙控信號進行收集總結和分類,然后對每一類別都預制一種解碼程序和發射程序。其學習過程是:判斷現有的紅外遙控信號的類別、選擇該類別紅外遙控信號的解碼程序和發射程序、存儲到EEPROM中。其優點是對主控芯片的工作頻率、EEPROM的容量的要求低,缺點是只能對事先已收集的紅外遙控信號進行學習。這種學習型遙控器的典型代表為HTC公司的New HTC One手機。
[0006]波形拷貝方式學習的紅外遙控器是不管原遙控器所發出的紅外遙控信號是什么格式,將其進行完全拷貝,并經壓縮后存儲在存儲器內。當需要發射時,由存儲器內讀出壓縮的紅外遙控信號,經解壓后還原為原始的紅外遙控信號發射出去。其優點是可以學習任意種類的紅外遙控信號,缺點是對主控芯片的工作頻率、EEPROM的容量的要求較高。這種學習型遙控器的典型代表為恬家(上海)信息科技有限公司的手機OTG學習型遙控配件。
[0007]現有的波形拷貝方式學習的紅外遙控器通常采用一體化的紅外接收頭,其具有兩個缺點:
[0008]其一,一體化的紅外接收頭只能接收紅外信號,而不能發送紅外信號。
[0009]其二,紅外信號是通過載波來調制的,一體化的紅外接收頭直接濾掉載波,導致現有的波形拷貝方式學習的紅外遙控器需要在學習后通過輔助手段將載波信息補充進去。
【發明內容】
[0010]本發明所要解決的技術問題是提供一種采用AD方式進行紅外學習的方法,能夠采用AD方式學習紅外控制碼以及載波頻率。
[0011]為解決上述技術問題,本發明提供的采用AD方式進行紅外學習的方法,包括如下步驟:
[0012]步驟一、采用紅外電路對空氣中紅外信號進行感應并轉換模擬電壓信號。
[0013]所述紅外電路包括一光電二極管和第一電阻,所述第一電阻的兩端和所述光電二極管的兩端相連,所述光電二極管接收所述空氣中紅外信號,所述第一電阻的第一端接電源電壓或地、第二端輸出所述模擬電壓信號。
[0014]所述空氣中紅外信號由紅外控制碼對載波信號進行調制后形成,在所述紅外控制碼高電平處所述空氣中紅外信號對應為無所述載波信號、在所述紅外控制碼低電平處所述空氣中紅外信號對應為所述載波信號。
[0015]在所述空氣中紅外信號的無所述載波信號處,所述模擬電壓信號的電位和所述第一電阻的第一端所接電位相同;在所述空氣中紅外信號為所述載波信號處,所述空氣中紅外信號的正脈沖使所述光電二極管感應產生并形成流過所述第一電阻的電流并使所述第一電阻的兩端形成電壓差,該電壓差形成所述模擬電壓信號的脈沖信號,在所述第一電阻的第一端接電源電壓時所述模擬電壓信號的脈沖信號為負脈沖,在所述第一電阻的第一端接地時所述模擬電壓信號的脈沖信號為正脈沖。
[0016]所述紅外電路和處理器連接并將所述模擬電壓信號輸入到所述處理器的AD轉換通道中。
[0017]步驟二、采用AD采樣方式對所述模擬電壓信號的脈沖信號進行識別:所述處理器對所述模擬電壓信號進行AD米樣;當所述模擬電壓信號的脈沖信號為正脈沖時,對于每一個脈沖信號,AD采樣值從OV上升到大于等于第一設定值時認為檢測到對應脈沖信號的開始位置,在該開始位置之后檢測到第一個從高于所述第一設定值的電位下降到小于等于第二設定值時認為檢測到對應脈沖信號的結束位置;當所述模擬電壓信號的脈沖信號為負脈沖時,對于每一個脈沖信號,AD采樣值從AD采樣最大值下降到小于等于第三設定值時認為檢測到對應脈沖信號的開始位置,在該開始位置之后檢測到第一個從低于所述第三設定值的電位上升到大于等于第四設定值時認為檢測到對應脈沖信號的結束位置。
[0018]所述處理器根據AD采樣檢測到的所述模擬電壓信號的各脈沖信號的起始位置和結束位置進行計時并計算得到所述紅外控制碼的各高電平和各低電平的時間從而實現對所述紅外控制碼的學習、以及計算得到所述載波信號的頻率。
[0019]進一步的改進是,所述紅外電路為紅外收發電路,還包括PNP管,所述PNP管的發射極通過第二電阻連接電源電壓,所述PNP管的集電極連接所述光電二極管的陽極以及所述第一電阻的第二端,所述光電二極管的陰極和所述第一電阻的第一端都接地,所述PNP管的基極通過第三電阻連接處理器的1端口,所述處理器通過發送脈寬調制的紅外載波信號到所述PNP管的基極實現對所述紅外電路進行發射紅外信號的控制。
[0020]進一步的改進是,所述紅外電路為紅外收發電路,還包括NPN管,所述NPN管的發射極通過第四電阻接地,所述NPN管的集電極連接所述光電二極管的陰極以及所述第一電阻的第二端,所述光電二極管的陽極和所述第一電阻的第一端都接電源電壓,所述NPN管的基極通過第五電阻連接處理器的1端口,所述處理器通過發送脈寬調制的紅外載波信號到所述NPN管的基極實現對所述紅外電路進行發射紅外信號的控制。
[0021]進一步的改進是,所述紅外電路還包括第六電阻和第一電容,所述第六電阻的第一端連接所述第一電阻的第二端,所述第一電容的第一端接地,所述第六電阻的第二端和所述第一電容的第二端連接在一起并連接到所述處理器的AD轉換通道,由第六電阻和第一電容組成濾波器對輸入到所述處理器的所述模擬電壓信號進行濾波以減少干擾。
[0022]進一步的改進是,所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的步驟包括:
[0023]步驟211、所述處理器一直保持對所述模擬電壓信號進行AD采樣,當采樣得到第一個脈沖信號的開始位置時,啟動第一計時器進行計時;當采樣得到第一個脈沖信號的結束位置時,啟動第二計時器進行計時。
[0024]步驟212、對于第一個脈沖信號之后的各脈沖信號的計時方式為:當采樣得到前一個脈沖信號的結束位置并啟動所述第二計時器啟動后,如果在所述第二計時器的時間值小于溢出時間的條件下所述處理器采集到當前脈沖信號的開始位置,則停止所述第二計時器的計時,此時所述第二計時器的時間值為前一個脈沖信號和當前脈沖信號之間的間隔;當所述處理器采集到當前脈沖信號的結束位時,所述第二計時器清零并重新開始計時;如果所述第二計時器的時間值等于所述溢出時間,此時所述第二計時器起始計時處所對應的脈沖信號為采樣到的所述紅外控制碼的一個低電平所對應的載波時間內最后一個脈沖信號,則記錄下所述第一計時器的第一時間值,從所述第一脈沖信號的開始位置處到最后一個脈沖信號之后的所述溢出時間位置處對應于所述紅外控制碼的一個低電平,所述第一時間值為所對應的所述紅外控制碼的低電平的持續時間。
[0025]步驟213、記錄下所述第一計時器的第一時間值的同時對所述第一計時器進行清零以及重新開始計時,當采樣得到所述紅外控制碼的下一個低電平所對應的第一個載波脈沖信號的開始位置時,記錄下所述第一計時器的第二時間值,所述第二時間值所對應的所述第一計時器的計時開始到計時結束之間對應于所述紅外控制碼的一個高電平的,所述第二時間值為所對應的所述紅外控制碼的高電平的持續時間;記錄下所述第一計時器的第二時間值的同時對所述第一計時器進行清零并轉換到步驟21重新開始計算,直至對所述紅外控制碼的各高電平和各低電平學習完成,由學習得到的各高電平和各低電平表征所述紅外控制碼。
[0026]步驟214、用所述第一時間值除以從所述第一脈沖信號到最后一個脈沖信號之間的脈沖信號個數得到所述載波信號的周期,由該周期的倒數得到所述載波信號的頻率。
[0027]進一步的改進是,所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的步驟包括:
[0028]步驟221、所述處理器一直保持對所述模擬電壓信號進行AD采樣,當采樣得到第一個脈沖信號的開始位置時,啟動第一計時器進行計時;當采樣得到第一個脈沖信號的結束位置時,記錄此時的所述第一計時器的時間值,該時間值為所述第一個脈沖信號的寬度,記錄的同時所述第一計時器清零并重新開始計時。
[0029]步驟222、對于第一個脈沖信號之后的各脈沖信號的計時方式為:當采樣得到前一個脈沖信號的結束位置并使所述第一計時器清零并重新開始計時后,如果在所述第一計時器的時間值小于溢出時間的條件下所述處理器采集到當前脈沖信號的開始位置,則記錄此時的所述第一計時器的時間值,該時間值為前一個脈沖信號和當前脈沖信號之間的間隔,記錄的同時所述第一計時器清零并重新開始計時;當所述處理器采集到當前脈沖信號的結束位置時,記錄此時的所述第一計時器的時間值,該時間值為所述當前脈沖信號的寬度,記錄的同時所述第一計時器清零并重新開始計時。
[0030]當采樣得到前一個脈沖信號的結束位置并使所述第一計時器清零并重新開始計時后,如果在所述第一計時器的時間值等于溢出時間,此時所述第一計時器起始計時處所對應的脈沖信號為采樣到的所述紅外控制碼的一個低電平所對應的載波時間內最后一個脈沖信號,從所述第一脈沖信號的開始位置處到最后一個脈沖信號之后的所述溢出時間位置處對應于所述紅外控制碼的一個低電平,將該低電平所對應的各所述脈沖信號的寬度、各所述脈沖信號之間的間隔以及一個所述溢出時間相加得當第一時間值;所述第一時間值所對應的所述紅外控制碼的低電平的持續時間。
[0031]步驟223、檢測到最后一個脈沖信號之后的所述溢出時間位置處的同時對所述第一計時器進行清零以及重新開始計時,當采樣得到所述紅外控制碼的下一個低電平所對應的第一個脈沖信號的開始位置時,記錄下所述第一計時器的第二時間值,所述第二時間值所對應的所述第一計時器的計時開始到計時結束之間對應于所述紅外控制碼的一個高電平,所述第二時間值為所對應的所述紅外控制碼的高電平的持續時間;記錄下所述第一計時器的第二時間值的同時對所述第一計時器進行清零并轉換到步驟221重新開始計算,直至對所述紅外控制碼的各高電平和各低電平學習完成,由學習得到的各高電平和各低電平表征所述紅外控制碼。
[0032]步驟224、用所述第一時間值除以從所述第一脈沖信號到最后一個脈沖信號之間的脈沖信號個數得到所述載波信號的周期,由該周期的倒數得到所述載波信號的頻率。
[0033]進一步的改進是,在所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的軟件處理上采取查詢方式或采用中斷方式。
[0034]進一步的改進是,在所述第一時間值中增加一補償值;當所述模擬電壓信號的脈沖信號為正脈沖時,所述補償值用于補償所述第一脈沖信號的從OV電壓上升到大于等于第一設定值時的寬度;當所述模擬電壓信號的脈沖信號為負脈沖時,所述補償值用于補償所述第一脈沖信號的從AD采樣最大值下降到小于等于第三設定值時的寬度。
[0035]進一步的改進是,所述溢出時間設置在大于一個脈沖間隔而小于等于一個所述載波信號的周期;或者,所述溢出時間設置為大于一個所述載波信號的周期,此時將所述溢出時間分成兩部分,所述溢出時間的第一部分大于一個脈沖間隔而小于等于一個所述載波信號的周期,第二部分為所述溢出時間和所述第一部分的差值,將所述第一部分計算到所述第一時間值中,將所述第二部分計算到所述第二時間值中。
[0036]本發明通過采用紅外電路對空氣中紅外信號進行感應并轉換模擬電壓信號、通過采用AD采樣方式對模擬電壓信號的脈沖信號進行識別并最終實現紅外學習;由于本發明實施例通過AD采樣來對模擬電壓信號的脈沖信號即模擬脈沖信號進行識別的,由于AD采用具有高分辨率,本發明很容易通過提高AD采樣分辨率來實現對微小的模擬脈沖信號的識別,從而實現紅外學習的功能,不僅能實現紅外控制碼的學習,還能學習載波頻率;而現有技術不是采用AD采樣方法而是采用數字方法直接對方波脈沖信號進行識別,現有技術不能對微小的脈沖信號進行識別,即本發明的AD采用方式所能識別的脈沖信號即模擬脈沖信號的能力要大于現有技術中對脈沖信號即數字方波脈沖信號的識別能力。
[0037]另外,本發明方法的紅外電路僅需輸出模擬電壓信號,不需轉換為數字信號電路結構簡單。
【專利附圖】
【附圖說明】
[0038]圖1是本發明實施例一方法流程圖;
[0039]圖2是本發明實施例一方法的紅外電路的結構示意圖;
[0040]圖3是本發明實施例一方法的步驟一中模擬電壓信號的時序圖;
[0041]圖4A是本發明實施例一方法的步驟二中進行AD采樣學習的時序圖一;
[0042]圖4B是本發明實施例一方法的步驟二中進行AD采樣學習的時序圖二 ;
[0043]圖5是本發明實施例三方法的紅外電路的結構示意圖。
【具體實施方式】
[0044]如圖1所示,是本發明實施例一方法流程圖;本發明實施例一采用AD方式進行紅外學習的方法,包括如下步驟:
[0045]步驟一、采用紅外電路對空氣中紅外信號進行感應并轉換模擬電壓信號adl。
[0046]如圖2所述,是本發明實施例一方法的紅外電路的結構示意圖;所述紅外電路包括一光電二極管I和第一電阻R1,所述第一電阻Rl的兩端和所述光電二極管I的兩端相連,所述光電二極管I接收所述空氣中紅外信號,所述第一電阻Rl的第一端接地、第二端輸出所述模擬電壓信號adl。
[0047]如圖3所示,是本發明實施例一方法的步驟一中模擬電壓信號adl的時序圖,所述空氣中紅外信號由紅外控制碼即圖3中的紅外控制信號對載波信號進行調制后形成,在所述紅外控制碼高電平處所述空氣中紅外信號對應為無所述載波信號、在所述紅外控制碼低電平處所述空氣中紅外信號對應為所述載波信號。
[0048]在所述空氣中紅外信號的無所述載波信號處,所述模擬電壓信號adl的電位和所述第一電阻Rl的第一端所接電位相同;在所述空氣中紅外信號為所述載波信號處,所述空氣中紅外信號的正脈沖使所述光電二極管I感應產生并形成流過所述第一電阻Rl的電流并使所述第一電阻Rl的兩端形成電壓差,該電壓差形成所述模擬電壓信號adl的脈沖信號,所述模擬電壓信號adl的脈沖信號為正脈沖。
[0049]所述紅外電路和處理器(CPU)連接并將所述模擬電壓信號adl輸入到所述處理器的AD轉換通道中。本發明實施例方法中,所述紅外電路可以集成在智能電子設備(如手機)中,處理器采用智能設備的CPU。
[0050]所述紅外電路為紅外收發電路,還包括PNP管Q1,所述PNP管Ql的發射極通過第二電阻R2連接電源電壓VCC,所述PNP管Ql的集電極連接所述光電二極管I的陽極以及所述第一電阻Rl的第二端,所述光電二極管I的陰極和所述第一電阻Rl的第一端都接地,所述PNP管Ql的基極通過第三電阻R3連接處理器的1端口,所述處理器通過發送脈寬調制的紅外載波信號PWMl到所述PNP管Ql的基極實現對所述紅外電路進行發射紅外信號的控制。
[0051]所述紅外電路能夠同時實現紅外發射和接收的功能,發射紅外時,CPU通過1將紅外載波信號PWMl連接到所述PNP管Ql的基極,通過控制所述PNP管Ql的導通和關斷發送紅外信號到空氣中,即所述PNP管Ql的導通時所述光電二極管I導通并發射紅外光信號、所述PNP管Ql的關斷時所述光電二極管I不導通并停止發射紅外光信號,這樣就能形成紅外載波信號PWMl相對應的紅外信號并發射到空氣中。在發送紅外信號時,會對模擬電壓信號adl產生影響,但CPU此時忽略模擬電壓信號adl上的信號,即在紅外發射時CPU不處理模擬電壓信號adl。
[0052]主要講一下紅外信號學習時候的信號轉換原理,在紅外學習時,紅外載波信號PWMl置高,所述PNP管Ql關斷。當空氣中有紅外信號時,被所述光電二極管I感應到,由于所述光電二極管I的光電感應效應,將產生一個從所述光電二極管I的陰極到陽極的電流,這個電流將通過所述第一電阻Rl形成一個電流回路,于是就在所述第一電阻Rl上產生了一個電壓差并通過所述第一電阻Rl的第二端輸出所述模擬電壓信號adl。
[0053]較佳為,所述第一電阻Rl的第二端并不直接連接到CPU的AD轉換通道,而是通過由第六電阻R4和第一電容Cl組成濾波器后將所述模擬電壓信號adl連接到CPU的AD轉換通道,圖2中模擬電壓信號adl’為所述模擬電壓信號adl濾波后的信號。所述第六電阻R4的第一端連接所述第一電阻Rl的第二端,所述第一電容Cl的第一端接地,所述第六電阻R4的第二端和所述第一電容Cl的第二端連接在一起并連接到所述處理器的AD轉換通道,由第六電阻R4和第一電容Cl組成濾波器對輸入到所述處理器的所述模擬電壓信號adl進行濾波以減少干擾。
[0054]步驟二、采用AD采樣方式對所述模擬電壓信號的脈沖信號進行識別:
[0055]首先、所述處理器對所述模擬電壓信號adl進行AD采樣。
[0056]如圖4A所示,是本發明實施例一方法的步驟二中進行AD采樣學習的時序圖一;如圖4B所示,是本發明實施例一方法的步驟二中進行AD采樣學習的時序圖二 ;本發明實施例一方法中所述模擬電壓信號adl的脈沖信號為正脈沖,對于每一個脈沖信號,AD采樣值從OV上升到大于等于第一設定值時認為檢測到對應脈沖信號的開始位置,如圖4A中所示的trl、tr2、trn和tr(n+l)都為對應的脈沖信號的開始位置。在該開始位置之后檢測到第一個從高于所述第一設定值的電位下降到小于等于第二設定值時認為檢測到對應脈沖信號的結束位置;如圖4A中所示的tfl、tf2、tfn和tf (n+1)都為對應的脈沖信號的結束位置。所述第一設定值和所述第二設定值可以根據采樣的精度以及脈沖信號的高度設定,上升沿和下降沿的位置,例如可以將所述第一設定值和所述第二設定值分別設置為所述模擬電壓信號adl為0.1V時對應的A/D采樣值,主要用于比較準確的確定脈沖信號的。
[0057]所述處理器根據AD采樣檢測到的所述模擬電壓信號adl的各脈沖信號的起始位置和結束位置進行計時并計算得到所述紅外控制碼的各高電平和各低電平的時間從而實現對所述紅外控制碼的學習、以及計算得到所述載波信號的頻率。
[0058]本發明實施例一方法中,所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的步驟包括:
[0059]步驟211、所述處理器一直保持對所述模擬電壓信號adl進行AD采樣,當采樣得到第一個脈沖信號的開始位置時,啟動第一計時器進行計時,如時間Tl區段的第一個脈沖信號的開始位置trl ;當采樣得到第一個脈沖信號的結束位置時,啟動第二計時器進行計時,第一個脈沖信號的結束位置如時間Tl區段的第一個脈沖信號的結束位置tfl。
[0060]步驟212、對于第一個脈沖信號之后的各脈沖信號的計時方式為:當采樣得到前一個脈沖信號如第k-1個脈沖信號的結束位置即tf (k-1)并啟動所述第二計時器啟動后,其中k為圖4A中的2至η之一,如果在所述第二計時器的時間值小于溢出時間如圖4Α所示T的條件下所述處理器采集到當前脈沖信號即第k個脈沖信號的開始位置即trk,則停止所述第二計時器的計時,此時所述第二計時器的時間值為前一個脈沖信號和當前脈沖信號之間的間隔;當所述處理器采集到當前脈沖信號的結束位置即tfk時,所述第二計時器清零并重新開始計時。其中所述溢出時間能夠根據各脈沖的寬度和脈沖間隔進行設定,例如:所述溢出時間設置在大于一個脈沖間隔而小于等于一個所述載波信號的周期。或者,所述溢出時間設置為大于一個所述載波信號的周期,此時將所述溢出時間分成兩部分,所述溢出時間的第一部分大于一個脈沖間隔而小于等于一個所述載波信號的周期,第二部分為所述溢出時間和所述第一部分的差值,后續計算時需要將所述第一部分計算到所述第一時間值中,將所述第二部分計算到所述第二時間值中。
[0061]如果所述第二計時器的時間值等于所述溢出時間,此時所述第二計時器起始計時處所對應的脈沖信號為采樣到的所述紅外控制碼的一個低電平所對應的載波時間內最后一個脈沖信號,如圖4A中的時間Tl區間中的第η個脈沖信號為對應的載波時間內的最后一個脈沖信號,則記錄下所述第一計時器的第一時間值,第一時間值所對應的區間如圖4Α和4Β中的Tl、Tm等,依次類推。從所述第一脈沖信號的開始位置處到最后一個脈沖信號之后的所述溢出時間位置處對應于所述紅外控制碼的一個低電平,所述第一時間值為所對應的所述紅外控制碼的低電平的持續時間。
[0062]步驟213、記錄下所述第一計時器的第一時間值的同時對所述第一計時器進行清零以及重新開始計時,當采樣得到所述紅外控制碼的下一個低電平所對應的第一個脈沖信號的開始位置時如時間Tl區段之后的下一個低電平所對應的第一個脈沖信號的開始位置為tr (n+1),記錄下所述第一計時器的第二時間值,第二時間值所對應的區間如圖4A和4B中的T2、T(m-l)等,依次類推。所述第二時間值所對應的所述第一計時器的計時開始到計時結束之間對應于所述紅外控制碼的一個高電平,所述第二時間為所對應的所述紅外控制碼的高電平的持續時間;記錄下所述第一計時器的第二時間值的同時對所述第一計時器進行清零并轉換到步驟21重新開始計算,直至對所述紅外控制碼的各高電平和各低電平學習完成,由學習得到的各高電平和各低電平表征所述紅外控制碼,即最后得到圖3中所示的紅外控制信號。
[0063]步驟214、用所述第一時間值除以從所述第一脈沖信號到最后一個脈沖信號之間的脈沖信號個數得到所述載波信號的周期,如4A所述,即所述載波信號的周期可以表示為Tl/n,其中Tl為時間Tl區段的第一時間值,η表示時間Tl區段的脈沖信號個數。由該周期的倒數得到所述載波信號的頻率即η/Tl。圖3中所示的紅外控制信號的低電平處所對應的所述空氣中紅外信號的脈沖方波即為載波信號,也即得到該載波信號的頻率。
[0064]較佳為,在所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的軟件處理上采取查詢方式或采用中斷方式。
[0065]所述第一時間值中增加一補償值;如圖4A所示,所述補償值用于補償所述第一脈沖信號的從低電平上升到大于等于第一設定值即開始位置時的寬度。這樣能夠提高檢測精度。
[0066]本發明實施例二方法和本發明實施例一方法的區別之處為,本發明實施例二方法中所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的步驟包括:
[0067]步驟221、所述處理器一直保持對所述模擬電壓信號adl進行AD采樣,當采樣得到第一個脈沖信號的開始位置時,啟動第一計時器進行計時,如時間Tl區段的第一個脈沖信號的開始位置trl ;當采樣得到第一個脈沖信號的結束位置時,第一個脈沖信號的結束位置如時間Tl區段的第一個脈沖信號的結束位置tfl,記錄此時的所述第一計時器的時間值,該時間值為所述第一個脈沖信號的寬度,記錄的同時所述第一計時器清零并重新開始計時。
[0068]步驟222、對于第一個脈沖信號之后的各脈沖信號的計時方式為:當采樣得到前一個脈沖信號如第k-Ι個脈沖信號的結束位置即tf(k-l)并使所述第一計時器清零并重新開始計時后,其中k為圖4A中的2至η之一,如果在所述第一計時器的時間值小于溢出間如圖4Α所示T的的條件下所述處理器采集到當前脈沖信號的開始位置即第k個脈沖信號的開始位置即trk,則記錄此時的所述第一計時器的時間值,該時間值為前一個脈沖信號和當前脈沖信號之間的間隔,記錄的同時所述第一計時器清零并重新開始計時;當所述處理器采集到當前脈沖信號的結束位置即tfk時,記錄此時的所述第一計時器的時間值,該時間值為所述當前脈沖信號的寬度,記錄的同時所述第一計時器清零并重新開始計時。
[0069]當采樣得到前一個脈沖信號的結束位置并使所述第一計時器清零并重新開始計時后,如果在所述第一計時器的時間值等于溢出時間,此時所述第一計時器起始計時處所對應的脈沖信號為采樣到的所述紅外控制碼的一個低電平所對應的載波時間內最后一個脈沖信號,如圖4A中的時間Tl區間中的第η個脈沖信號為對應的載波時間內的最后一個脈沖信號,從所述第一脈沖信號的開始位置處到最后一個脈沖信號之后的所述溢出時間位置處對應于所述紅外控制碼的一個低電平,將該低電平所對應的各所述脈沖信號的寬度、各所述脈沖信號之間的間隔以及一個所述溢出時間相加得當第一時間值;第一時間值所對應的區間如圖4Α和4Β中的Tl、Tm等,依次類推。所述第一時間值所對應的所述紅外控制碼的低電平的持續時間。
[0070]步驟223、檢測到最后一個脈沖信號之后的所述溢出時間位置處的同時對所述第一計時器進行清零以及重新開始計時,當采樣得到所述紅外控制碼的下一個低電平所對應的第一個脈沖信號的開始位置時如時間Tl區段之后的下一個低電平所對應的第一個脈沖信號的開始位置為tr (n+1),記錄下所述第一計時器的第二時間值,所述第二時間值所對應的所述第一計時器的計時開始到計時結束之間對應于所述紅外控制碼的一個高電平,所述第二時間值為所對應的所述紅外控制碼的高電平的持續時間;第二時間值所對應的區間如圖4A和4B中的T2、T(m-l)等,依次類推。
[0071]記錄下所述第一計時器的第二時間值的同時對所述第一計時器進行清零并轉換到步驟221重新開始計算,直至對所述紅外控制碼的各高電平和各低電平學習完成,由學習得到的各高電平和各低電平表征所述紅外控制碼。
[0072]步驟224、用所述第一時間值除以從所述第一脈沖信號到最后一個脈沖信號之間的脈沖信號個數得到所述載波信號的周期,由該周期的倒數得到所述載波信號的頻率。
[0073]本發明實施例三方法和本發明實施例一方法的區別之處為:
[0074]本發明實施例三方法的步驟一中所采用的紅外電路的結構為:
[0075]如圖5所述,是本發明實施例三方法的紅外電路的結構示意圖;所述紅外電路包括一光電二極管101和第一電阻R101,所述第一電阻RlOl的兩端和所述光電二極管101的兩端相連,所述光電二極管101接收所述空氣中紅外信號,所述第一電阻RlOl的第一端接電源電壓VDD、第二端輸出模擬電壓信號ad2。
[0076]所述模擬電壓信號ad2為負脈沖,如圖3所示,在所述空氣中紅外信號的無所述載波信號處,所述模擬電壓信號ad2的電位和所述第一電阻RlOl的第一端所接電位即電源電壓VDD相同;在所述空氣中紅外信號為所述載波信號處,所述空氣中紅外信號的正脈沖使所述光電二極管101感應產生并形成流過所述第一電阻RlOl的電流并使所述第一電阻RlOl的兩端形成電壓差,該電壓差形成所述模擬電壓信號ad2的脈沖信號。
[0077]所述紅外電路和處理器(CPU)的AD轉換通道連接并將所述模擬電壓信號ad2輸入到所述處理器中。
[0078]所述紅外電路還包括NPN管Q2,所述NPN管Q2的發射極通過第四電阻R102接地,所述NPN管Q2的集電極連接所述光電二極管101的陰極以及所述第一電阻RlOl的第二端,所述光電二極管101的陽極和所述第一電阻RlOl的第一端都接電源電壓VCC,所述NPN管Q2的基極通過第五電阻R103連接處理器的1端口,所述處理器通過發送脈寬調制的紅外載波信號PWM2到所述NPN管Q2的基極實現對所述紅外電路進行發射紅外信號的控制。
[0079]對于每一個所述模擬電壓信號ad2的脈沖信號,AD米樣值從AD米樣最大值下降到小于等于第三設定值時認為檢測到對應脈沖信號的開始位置,在該開始位置之后檢測到第一個從低于所述第三設定值的電位上升到大于等于第四設定值時認為檢測到對應脈沖信號的結束位置。所述第三設定值和所述第四設定值可以根據采樣的精度以及脈沖信號的高度設定,主要用于比較準確的確定脈沖信號的下降沿和上升沿的位置,例如可以將所述第三設定值和所述第四設定值分別設置為所述模擬電壓信號ad2為0.1V時對應的AD采樣值。
[0080]所述紅外電路能夠同時實現紅外發射和接收的功能,發射紅外時,CPU通過1將紅外載波信號PWM2連接到所述NPN管Q2的基極,通過控制所述NPN管Q2的導通和關斷發送紅外信號到空氣中,即所述NPN管Q2的導通時所述光電二極管101導通并發射紅外光信號、所述NPN管Q2的關斷時所述光電二極管101不導通并停止發射紅外光信號,這樣就能形成紅外載波信號PWM2相對應的紅外信號并發射到空氣中。在發送紅外信號時,會對模擬電壓信號ad2產生影響,但CPU此時忽略模擬電壓信號ad2上的信號,即在紅外發射時CPU不處理模擬電壓信號ad2。
[0081]主要講一下紅外信號學習時候的信號轉換原理,在紅外學習時,紅外載波信號PWM2置高,所述NPN管Q2關斷。當空氣中有紅外信號時,被所述光電二極管101感應到,由于所述光電二極管101的光電感應效應,將產生一個從所述光電二極管101的陰極到陽極的電流,這個電流將通過所述第一電阻RlOl形成一個電流回路,于是就在所述第一電阻RlOl上產生了一個電壓差并通過所述第一電阻RlOl的第二端輸出所述模擬電壓信號ad2。
[0082]較佳為,所述第一電阻RlOl的第二端并不直接連接到CPU的AD轉換通道,而是通過由第六電阻R104和第一電容ClOl組成濾波器后將所述模擬電壓信號ad2連接到CPU的AD轉換通道,圖5中模擬電壓信號ad2’為所述模擬電壓信號ad2濾波后的信號。所述第六電阻R104的第一端連接所述第一電阻RlOl的第二端,所述第一電容ClOl的第一端接地,所述第六電阻R104的第二端和所述第一電容ClOl的第二端連接在一起并連接到所述處理器的AD轉換通道,由第六電阻R104和第一電容ClOl組成濾波器對輸入到所述處理器的所述模擬電壓信號ad2進行濾波以減少干擾。
[0083]本發明實施例三方法的步驟二和本發明實施例一方法的區別之處為:本發明實施例方法三的所述模擬電壓信號ad2的脈沖信號為負脈沖,而本發明實施例方法一的所述模擬電壓信號adl的脈沖信號為正脈沖。對于本發明實施例方法三的所述模擬電壓信號ad2的每一個脈沖信號,AD采樣值從AD采樣最大值下降到小于等于第三設定值時認為檢測到對應脈沖信號的開始位置,在該開始位置之后檢測到第一個從低于所述第三設定值的電位上升到大于等于第四設定值時認為檢測到對應脈沖信號的結束位置。用本發明實施例方法三的脈沖信號的開始位置和結束位置的檢測分別替換本發明實施例一方法的脈沖信號的開始位置和結束位置的檢測就能得到本發明實施例三方法的步驟二。
[0084]本發明實施例三方法中也能在所述第一時間值中增加一補償值;所述補償值用于補償所述第一脈沖信號的從AD采樣最大值下降到小于等于第三設定值時的寬度,這樣能夠提高檢測精度。
[0085]本發明實施例四方法的步驟一和本發明實施例三的步驟一相同,本發明實施例四方法的步驟二和本發明實施例二方法的步驟二類似,本發明實施例四方法的步驟二和本發明實施例二方法的區別之處為:本發明實施例方法四的所述模擬電壓信號ad2的脈沖信號為負脈沖,而本發明實施例方法二的所述模擬電壓信號adl的脈沖信號為正脈沖。對于本發明實施例方法四的所述模擬電壓信號ad2的每一個脈沖信號,AD米樣值從AD米樣最大值下降到小于等于第三設定值時認為檢測到對應脈沖信號的開始位置,在該開始位置之后檢測到第一個從低于所述第三設定值的電位上升到大于等于第四設定值時認為檢測到對應脈沖信號的結束位置。用本發明實施例方法四的脈沖信號的開始位置和結束位置的檢測分別替換本發明實施例二方法的脈沖信號的開始位置和結束位置的檢測就能得到本發明實施例四方法的步驟二。
[0086]以上僅為本發明的優選實施例,并不用于限定本發明。對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種采用AD方式進行紅外學習的方法,其特征在于,包括如下步驟: 步驟一、采用紅外電路對空氣中紅外信號進行感應并轉換模擬電壓信號; 所述紅外電路包括一光電二極管和第一電阻,所述第一電阻的兩端和所述光電二極管的兩端相連,所述光電二極管接收所述空氣中紅外信號,所述第一電阻的第一端接電源電壓或地、第二端輸出所述模擬電壓信號; 所述空氣中紅外信號由紅外控制碼對載波信號進行調制后形成,在所述紅外控制碼高電平處所述空氣中紅外信號對應為無所述載波信號、在所述紅外控制碼低電平處所述空氣中紅外信號對應為所述載波信號; 在所述空氣中紅外信號的無所述載波信號處,所述模擬電壓信號的電位和所述第一電阻的第一端所接電位相同;在所述空氣中紅外信號為所述載波信號處,所述空氣中紅外信號的正脈沖使所述光電二極管感應產生并形成流過所述第一電阻的電流并使所述第一電阻的兩端形成電壓差,該電壓差形成所述模擬電壓信號的脈沖信號,在所述第一電阻的第一端接電源電壓時所述模擬電壓信號的脈沖信號為負脈沖,在所述第一電阻的第一端接地時所述模擬電壓信號的脈沖信號為正脈沖; 所述紅外電路和處理器連接并將所述模擬電壓信號輸入到所述處理器的AD轉換通道中; 步驟二、采用AD采樣方式對所述模擬電壓信號的脈沖信號進行識別:所述處理器對所述模擬電壓信號進行AD米樣;當所述模擬電壓信號的脈沖信號為正脈沖時,對于每一個脈沖信號,AD采樣值從OV上升到大于等于第一設定值時認為檢測到對應脈沖信號的開始位置,在該開始位置之后檢測到第一個從高于所述第一設定值的電位下降到小于等于第二設定值時認為檢測到對應脈沖信號的結束位置;當所述模擬電壓信號的脈沖信號為負脈沖時,對于每一個脈沖信號,AD采樣值從AD采樣最大值下降到小于等于第三設定值時認為檢測到對應脈沖信號的開始位置,在該開始位置之后檢測到第一個從低于所述第三設定值的電位上升到大于等于第四設定值時認為檢測到對應脈沖信號的結束位置; 所述處理器根據AD采樣檢測到的所述模擬電壓信號的各脈沖信號的起始位置和結束位置進行計時并計算得到所述紅外控制碼的各高電平和各低電平的時間從而實現對所述紅外控制碼的學習、以及計算得到所述載波信號的頻率。
2.如權利要求1所述的采用AD方式進行紅外學習的方法,其特征在于:所述紅外電路為紅外收發電路,還包括PNP管,所述PNP管的發射極通過第二電阻連接電源電壓,所述PNP管的集電極連接所述光電二極管的陽極以及所述第一電阻的第二端,所述光電二極管的陰極和所述第一電阻的第一端都接地,所述PNP管的基極通過第三電阻連接處理器的1端口,所述處理器通過發送脈寬調制的紅外載波信號到所述PNP管的基極實現對所述紅外電路進行發射紅外信號的控制。
3.如權利要求1所述的采用AD方式進行紅外學習的方法,其特征在于:所述紅外電路為紅外收發電路,還包括NPN管,所述NPN管的發射極通過第四電阻接地,所述NPN管的集電極連接所述光電二極管的陰極以及所述第一電阻的第二端,所述光電二極管的陽極和所述第一電阻的第一端都接電源電壓,所述NPN管的基極通過第五電阻連接處理器的1端口,所述處理器通過發送脈寬調制的紅外載波信號到所述NPN管的基極實現對所述紅外電路進行發射紅外信號的控制。
4.如權利要求1或2或3所述的采用AD方式進行紅外學習的方法,其特征在于:所述紅外電路還包括第六電阻和第一電容,所述第六電阻的第一端連接所述第一電阻的第二端,所述第一電容的第一端接地,所述第六電阻的第二端和所述第一電容的第二端連接在一起并連接到所述處理器的AD轉換通道,由第六電阻和第一電容組成濾波器對輸入到所述處理器的所述模擬電壓信號進行濾波以減少干擾。
5.如權利要求1所述的采用AD方式進行紅外學習的方法,其特征在于:所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的步驟包括: 步驟211、所述處理器一直保持對所述模擬電壓信號進行AD采樣,當采樣得到第一個脈沖信號的開始位置時,啟動第一計時器進行計時;當采樣得到第一個脈沖信號的結束位置時,啟動第二計時器進行計時; 步驟212、對于第一個脈沖信號之后的各脈沖信號的計時方式為:當采樣得到前一個脈沖信號的結束位置并啟動所述第二計時器啟動后,如果在所述第二計時器的時間值小于溢出時間的條件下所述處理器采集到當前脈沖信號的開始位置,則停止所述第二計時器的計時,此時所述第二計時器的時間值為前一個脈沖信號和當前脈沖信號之間的間隔;置當所述處理器采集到當前脈沖信號的結束位時,所述第二計時器清零并重新開始計時;如果所述第二計時器的時間值等于所述溢出時間,此時所述第二計時器起始計時處所對應的脈沖信號為采樣到的所述紅外控制碼的一個低電平所對應的載波時間內最后一個脈沖信號,則記錄下所述第一計時器的第一時間值,從所述第一脈沖信號的開始位置處到最后一個脈沖信號之后的所述溢出時間位置處對應于所述紅外控制碼的一個低電平,所述第一時間值為所對應的所述紅外控制碼的低電平的持續時間; 步驟213、記錄下所述第一計時器的第一時間值的同時對所述第一計時器進行清零以及重新開始計時,當采樣得到所述紅外控制碼的下一個低電平所對應的第一個載波脈沖信號的開始位置時,記錄下所述第一計時器的第二時間值,所述第二時間值所對應的所述第一計時器的計時開始到計時結束之間對應于所述紅外控制碼的一個高電平的,所述第二時間值為所對應的所述紅外控制碼的高電平的持續時間;記錄下所述第一計時器的第二時間值的同時對所述第一計時器進行清零并轉換到步驟21重新開始計算,直至對所述紅外控制碼的各高電平和各低電平學習完成,由學習得到的各高電平和各低電平表征所述紅外控制碼; 步驟214、用所述第一時間值除以從所述第一脈沖信號到最后一個脈沖信號之間的脈沖信號個數得到所述載波信號的周期,由該周期的倒數得到所述載波信號的頻率。
6.如權利要求1所述的采用AD方式進行紅外學習的方法,其特征在于:所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的步驟包括: 步驟221、所述處理器一直保持對所述模擬電壓信號進行AD采樣,當采樣得到第一個脈沖信號的開始位置時,啟動第一計時器進行計時;當采樣得到第一個脈沖信號的結束位置時,記錄此時的所述第一計時器的時間值,該時間值為所述第一個脈沖信號的寬度,記錄的同時所述第一計時器清零并重新開始計時; 步驟222、對于第一個脈沖信號之后的各脈沖信號的計時方式為:當采樣得到前一個脈沖信號的結束位置并使所述第一計時器清零并重新開始計時后,如果在所述第一計時器的時間值小于溢出時間的條件下所述處理器采集到當前脈沖信號的開始位置,則記錄此時的所述第一計時器的時間值,該時間值為前一個脈沖信號和當前脈沖信號之間的間隔,記錄的同時所述第一計時器清零并重新開始計時;當所述處理器采集到當前脈沖信號的結束位置時,記錄此時的所述第一計時器的時間值,該時間值為所述當前脈沖信號的寬度,記錄的同時所述第一計時器清零并重新開始計時; 當采樣得到前一個脈沖信號的結束位置并使所述第一計時器清零并重新開始計時后,如果在所述第一計時器的時間值等于溢出時間,此時所述第一計時器起始計時處所對應的脈沖信號為采樣到的所述紅外控制碼的一個低電平所對應的載波時間內最后一個脈沖信號,從所述第一脈沖信號的開始位置處到最后一個脈沖信號之后的所述溢出時間位置處對應于所述紅外控制碼的一個低電平,將該低電平所對應的各所述脈沖信號的寬度、各所述脈沖信號之間的間隔以及一個所述溢出時間相加得當第一時間值;所述第一時間值所對應的所述紅外控制碼的低電平的持續時間; 步驟223、檢測到最后一個脈沖信號之后的所述溢出時間位置處的同時對所述第一計時器進行清零以及重新開始計時,當采樣得到所述紅外控制碼的下一個低電平所對應的第一個脈沖信號的開始位置時,記錄下所述第一計時器的第二時間值,所述第二時間值所對應的所述第一計時器的計時開始到計時結束之間對應于所述紅外控制碼的一個高電平,所述第二時間值為所對應的所述紅外控制碼的高電平的持續時間;記錄下所述第一計時器的第二時間值的同時對所述第一計時器進行清零并轉換到步驟221重新開始計算,直至對所述紅外控制碼的各高電平和各低電平學習完成,由學習得到的各高電平和各低電平表征所述紅外控制碼; 步驟224、用所述第一時間值除以從所述第一脈沖信號到最后一個脈沖信號之間的脈沖信號個數得到所述載波信號的周期,由該周期的倒數得到所述載波信號的頻率。
7.如權利要求5或6所述的采用AD方式進行紅外學習的方法,其特征在于:在所述處理器實現對所述紅外控制碼的學習以及計算得到所述載波信號的頻率的軟件處理上采取查詢方式或采用中斷方式。
8.如權利要求5或6所述的采用AD方式進行紅外學習的方法,其特征在于:在所述第一時間值中增加一補償值;當所述模擬電壓信號的脈沖信號為正脈沖時,所述補償值用于補償所述第一脈沖信號的從OV電壓上升到大于等于第一設定值時的寬度;當所述模擬電壓信號的脈沖信號為負脈沖時,所述補償值用于補償所述第一脈沖信號的從AD采樣最大值下降到小于等于第三設定值時的寬度。
9.如權利要求5或6所述的采用AD方式進行紅外學習的方法,其特征在于:所述溢出時間設置在大于一個脈沖間隔而小于等于一個所述載波信號的周期; 或者,所述溢出時間設置為大于一個所述載波信號的周期,此時將所述溢出時間分成兩部分,所述溢出時間的第一部分大于一個脈沖間隔而小于等于一個所述載波信號的周期,第二部分為所述溢出時間和所述第一部分的差值,將所述第一部分計算到所述第一時間值中,將所述第二部分計算到所述第二時間值中。
【文檔編號】G08C23/04GK104299402SQ201410403555
【公開日】2015年1月21日 申請日期:2014年8月15日 優先權日:2014年8月15日
【發明者】曲金山, 吳曙斌, 趙國權 申請人:恬家(上海)信息科技有限公司