採用ad方式進行紅外學習的方法
2023-07-04 14:09:41 4
採用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日
【發明者】曲金山, 吳曙斌, 趙國權 申請人:恬家(上海)信息科技有限公司