專利名稱:波形學習電路對紅外線解碼的方法
技術領域:
本發(fā)明涉及對紅外遙控器發(fā)射波形進行解碼并學習的實現(xiàn)方法。
背景技術:
目前,學習型遙控器主要用單片機通過軟件編程實現(xiàn);在需求較高的情況下,其芯片價 格相對于掩膜IC來說成本更高。因此,用全硬件實現(xiàn)學習型遙控器將成為各遙控器廠商的首 選,而學習型遙控器的芯片其關鍵電路部分是對遙控器發(fā)射波形的解碼并學習,波形學習電 路的質量直接關系到遙控器的學習成功率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種全硬件實現(xiàn)的紅外線解碼的方法。 本發(fā)明為解決上述技術問題所采用的技術方案是,波形學習電路對紅外線解碼的方法, 包括以下步驟
a、 波形學習啟動;
b、 采樣邏輯發(fā)現(xiàn)有波形輸入,進入下一步驟;
c、 啟動與輸入波形同相位的時鐘,啟動頭碼高電平計數(shù)器記錄高電平時的時鐘脈沖個 數(shù),啟動頭碼低電平計數(shù)器記錄低電平時的時鐘脈沖個數(shù);
d、 邏輯判斷接收的頭碼數(shù)據(jù)是否有效,如是,保存高電平時的時鐘脈沖個數(shù)至頭碼高 電平計數(shù)器,保存低電平時的時鐘脈沖個數(shù)至頭碼低電平計數(shù)器,進入下一步驟;如否,回 到步驟a;
e、 接收第一位控制數(shù)據(jù),啟動位高電平計數(shù)器記錄高電平時的時鐘脈沖個數(shù);啟動位 低電平計數(shù)器記錄低電平時的時鐘脈沖個數(shù);
f、 邏輯判斷接收的第一位控制數(shù)據(jù)是否有效,如是,將高電平時的時鐘脈沖個數(shù)保存 至第一緩存器,將低電平時的時鐘脈沖個數(shù)保存至第二緩存器,位計數(shù)器加l,移入第一默 認數(shù)據(jù)至移位寄存器;如否,回到步驟a;
g、 接收下一位控制數(shù)據(jù),位高電平計數(shù)器記錄高電平時的時鐘脈沖個數(shù);位低電平計 數(shù)器記錄低電平時的時鐘脈沖個數(shù);將記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲 的值比較、將記錄的低電平時的時鐘脈沖個數(shù)分別與第二緩存器中存儲的值比較;當記錄的 高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值相近,且低電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值相近時,則移入第一默認數(shù)據(jù)至移位寄存器,同時位計數(shù)器加l;當記錄 的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值相近,低電平時的時鐘脈沖個數(shù)與第二 緩存器中存儲的值不相近時,則移入第二默認數(shù)據(jù)至移位寄存器,同時位計數(shù)器加l,將低 電平時的時鐘脈沖個數(shù)存入第三緩存器;當記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中 存儲的值不相近,低電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值相近時,則移入第二默 認數(shù)據(jù)至移位寄存器,同時位計數(shù)器加l,將高電平時的時鐘脈沖個數(shù)存入第三緩存器;
h、 接收其余控制數(shù)據(jù),位高電平計數(shù)器記錄高電平時的時鐘脈沖個數(shù);位低電平計數(shù) 器記錄低電平時的時鐘脈沖個數(shù),并分別與對應的第一緩存器、第二緩存器中存儲的值比較 ,如相近,則如向移位寄存器移入第一默認數(shù)據(jù),同時位計數(shù)器加l;否則移入第二默認數(shù) 據(jù),同時位計數(shù)器加l;進入一下步驟;
i、 判斷是否收到結束碼,如是,控制數(shù)據(jù)接收完畢,結束碼高電平計數(shù)器啟動,記錄 高電平時時鐘脈沖個數(shù)至結束碼高電平計數(shù)器,結束碼低電平計數(shù)器啟動,記錄低電平時時 鐘脈沖個數(shù)至結束碼低電平計數(shù)器,并保存結束碼高電平計數(shù)器與結束碼低電平計數(shù)器中的 值;如否,返回本步驟;
所述頭碼高電平計數(shù)器與頭碼低電平計數(shù)器用于還原頭碼波形;所述移位寄存器、第一 緩存器、第二緩存器用于還原控制第一默認數(shù)據(jù);所述步驟g中,當記錄的高電平時的時鐘 脈沖個數(shù)與第一緩存器中存儲的值相近,低電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值 不相近時,所述位計數(shù)器、移位寄存器、第一緩存器、第三緩存器用于還原控制第二默認數(shù) 據(jù);所述步驟g中,當記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值不相近,低 電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值相近時,所述位計數(shù)器、移位寄存器、第二 緩存器、第三緩存器用于還原控制第二默認數(shù)據(jù);所述結束碼高電平計數(shù)器與結束碼高電平 計數(shù)器用于還原結束碼。
所述第一默認數(shù)據(jù)為數(shù)據(jù)O;第二默認數(shù)據(jù)為數(shù)據(jù)l;或者,所述第一默認數(shù)據(jù)為數(shù)據(jù)l
;第二默認數(shù)據(jù)為數(shù)據(jù)o。
本發(fā)明的有益效果是,能簡單、高效地實現(xiàn)全硬件的遙控器紅外線波形學習。
圖l為第一種情況的遙控器編碼示意圖; 圖2為第二種情況的遙控器編碼示意圖; 圖3為本發(fā)明流程圖4為實施例NEC6122的編碼波形。
具體實施例方式
紅外線遙控器發(fā)射波形(以下稱為波形)的一般結構由頭碼、系統(tǒng)碼、鍵碼、結束碼組 成,其中系統(tǒng)碼、鍵碼在此統(tǒng)稱為控制信息。其中,頭碼為波形開始標志, 一般由一個高電 平和一個低電平組成;結束碼為波形結束標志, 一般為一定寬度的脈沖。波形的載波頻率在 本實施例中為38KHZ。波形的編碼通常采用脈沖寬度調(diào)制方式。如附圖l、 2所示,數(shù)據(jù)"0" 和數(shù)據(jù)"1"的編碼有兩種情況, 一種以低電平寬度的不同來區(qū)分編碼, 一種以高電平寬度 的不同來區(qū)分編碼。
實現(xiàn)波形學習,需先對波形進行解碼,再記錄頭碼高低電平寬度,以及控制信息的的具 體數(shù)值。如圖3所示,整個學習過程一共有6個狀態(tài)(S0、 Sl、 S2、 S3、 S4、 S5),系統(tǒng)復位 后處于狀態(tài)S0,等待波形輸入。 一旦采樣邏輯發(fā)現(xiàn)波形輸入遙控器隨即處于狀態(tài)S1,同時與 輸入波形載波同相位的38K時鐘啟動;頭碼高電平計數(shù)器啟動,計數(shù)器負責記錄38K載波的時 鐘脈沖個數(shù),在波形處于頭碼低電平階段時,頭碼低電平計數(shù)器啟動,記錄內(nèi)部38K時鐘脈 沖個數(shù);在狀態(tài)S1,遙控器完成對有效的頭碼進行學習記數(shù),其結果保存在頭碼高電平計數(shù) 器和頭碼低電平計數(shù)器中。頭碼接收完畢后,判斷邏輯判斷接收的數(shù)據(jù)是否有效,如果有效 則遙控器進入狀態(tài)S2,開始接收控制數(shù)據(jù)的第一位,否則遙控器處于狀態(tài)SO,重新等待輸入 。狀態(tài)S2與頭碼接收相似,位高電平計數(shù)器負責記錄控制數(shù)據(jù)的高電平38K載波的時鐘脈沖 個數(shù),位低電平計數(shù)器負責記錄波形處于低電平時內(nèi)部38K時鐘脈沖個數(shù)。數(shù)據(jù)接收完畢后 ,判斷邏輯判斷接收是否有效,如果有效計數(shù)器中的值被存入緩存器1與緩存器2,位計數(shù)器 加l,移位寄存器對第一位數(shù)據(jù)默認為數(shù)據(jù)"0",因此移入一個數(shù)據(jù)"0",然后遙控器進 入狀態(tài)S3;無效則進入狀態(tài)SO。在狀態(tài)S3,遙控器持續(xù)接收剩余的控制數(shù)據(jù),每接收完一位 數(shù)據(jù)都將把高電平計數(shù)器和低電平計數(shù)器中的值與緩存器l、緩存器2中的值進行比較,如果 兩者相近則移位積存器移入一個數(shù)據(jù)"0",否則移入數(shù)據(jù)"1"同時位計數(shù)器加l。由圖l、 2可知,數(shù)據(jù)"1"與數(shù)據(jù)"0"要么高電平不同,要么低電平不同,當向移位積存器中移入 第一個數(shù)據(jù)"1"的時候,將與緩存器數(shù)值相差很大的計數(shù)器中的值存入第三個緩存器。待 所有數(shù)據(jù)接收完畢后,遙控器進入狀態(tài)S4,接收結束碼。結束碼的接收與頭碼接收相似(圖 3中未示出),其結果被保存至結束碼高電平計數(shù)器與結束碼低電平計數(shù)器,當結束碼為遙 控器的一位數(shù)據(jù)時,結束碼將作為一位控制數(shù)據(jù)被移入到移位積存器中,保存結束碼的存儲 器將沒有數(shù)據(jù)(即為0)。結束碼接收完畢后,如果此時波形接收完畢,遙控器進入狀態(tài)S5 ,否則返回狀態(tài)S4;狀態(tài)S5用于遙控器保存學得的結果,保存完畢后遙控器進入狀態(tài)SO,進 行下一輪波形的學習。遙控器需要保存頭碼高、低電平計數(shù)器,全部緩存器,位計數(shù)器,移位寄存器,結束碼高、低電平計數(shù)器的值。在將這些值還原為波形時候,首先還原頭碼,然 后根據(jù)位計數(shù)器中的值,移出移位寄存器的有效數(shù)據(jù)位,如果移位寄存器移出數(shù)據(jù)"0"則 遙控器用緩存器1和2中的數(shù)據(jù)還原波形,如果移出數(shù)據(jù)"1",則遙控器用緩存器l (或2) 和3中的數(shù)據(jù)還原。在所有有效位被移出后,再還原結束碼。從而得到與最初接收波形相同 的遙控器控制波形。 實施例
以常用的NEC6122編碼格式的波形為列,來更為清楚的說明該算法的學習過程。如附圖4 所示為NEC6122的編碼波形,圖中的黑色部分為38K載波。
當有波形輸入后,遙控器學習功能啟動,頭碼高、低電平計數(shù)器先后啟動,記下頭碼的 寬度,分別為342和171;判斷邏輯得出該數(shù)值有效,遙控器隨即進入接收第一位數(shù)據(jù)狀態(tài), 接收完畢后緩存器1和2中的值分別為21、 21,判斷邏輯得出該值有效,位計數(shù)器加l,移位 寄存器為XXX0 (假定該寄存器寬度為64位);遙控器進入接收其它數(shù)據(jù)位狀態(tài),在接收到第 7位數(shù)據(jù)的時候,位高、低電平計數(shù)器中的值分別為21、 63,與緩存器1和2相比相差很遠因 此向移位寄存器移入一個數(shù)據(jù)"1" , 63這個值也將被保存在緩存器3。當所有數(shù)據(jù)接收完后 移位寄存器中的值為X00000010—11111101—10000000—011111111—1,位計數(shù)器中的值為33位。 控制數(shù)據(jù)接收完畢后,開始接收結束碼,由于該波形結束碼被當作一位控制數(shù)據(jù)被接收。因 此在該狀態(tài)保存在結束碼高、低電平計數(shù)器的值為O。那么最終將保存的數(shù)據(jù)有342、 171 、21、 21、 63、 33、 X00000010—11111101—10000000—011111111—1、 0和0。 342和171還原為 波形頭碼,21、 21還原為數(shù)據(jù)"0"的波形,21、 63還原為數(shù)據(jù)"1"的波形,33為波形的控 制位數(shù),O和O表明無結束碼或者結束碼已被發(fā)送控制數(shù)據(jù)代替。
權利要求
1.波形學習電路對紅外線解碼的方法,其特征在于,包括以下步驟a、波形學習啟動;b、采樣邏輯發(fā)現(xiàn)有波形輸入,進入下一步驟;c、啟動與輸入波形同相位的時鐘,啟動頭碼高電平計數(shù)器記錄高電平時的時鐘脈沖個數(shù),啟動頭碼低電平計數(shù)器記錄低電平時的時鐘脈沖個數(shù);d、邏輯判斷接收的頭碼數(shù)據(jù)是否有效,如是,保存高電平時的時鐘脈沖個數(shù)至頭碼高電平計數(shù)器,保存低電平時的時鐘脈沖個數(shù)至頭碼低電平計數(shù)器,進入下一步驟;如否,回到步驟a;e、接收第一位控制數(shù)據(jù),啟動位高電平計數(shù)器記錄高電平時的時鐘脈沖個數(shù);啟動位低電平計數(shù)器記錄低電平時的時鐘脈沖個數(shù);f、邏輯判斷接收的第一位控制數(shù)據(jù)是否有效,如是,將高電平時的時鐘脈沖個數(shù)保存至第一緩存器,將低電平時的時鐘脈沖個數(shù)保存至第二緩存器,位計數(shù)器加1,移入第一默認數(shù)據(jù)至移位寄存器;如否,回到步驟a;g、接收下一位控制數(shù)據(jù),位高電平計數(shù)器記錄高電平時的時鐘脈沖個數(shù);位低電平計數(shù)器記錄低電平時的時鐘脈沖個數(shù);將記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值比較、將記錄的低電平時的時鐘脈沖個數(shù)分別與第二緩存器中存儲的值比較;當記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值相近,且低電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值相近時,則移入第一默認數(shù)據(jù)至移位寄存器,同時位計數(shù)器加1;當記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值相近,低電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值不相近時,則移入第二默認數(shù)據(jù)至移位寄存器,同時位計數(shù)器加1,將低電平時的時鐘脈沖個數(shù)存入第三緩存器;當記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值不相近,低電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值相近時,則移入第二默認數(shù)據(jù)至移位寄存器,同時位計數(shù)器加1,將高電平時的時鐘脈沖個數(shù)存入第三緩存器;h、接收其余控制數(shù)據(jù),位高電平計數(shù)器記錄高電平時的時鐘脈沖個數(shù);位低電平計數(shù)器記錄低電平時的時鐘脈沖個數(shù),并分別與對應的第一緩存器、第二緩存器中存儲的值比較,如相近,則如向移位寄存器移入第一默認數(shù)據(jù),同時位計數(shù)器加1;否則移入第二默認數(shù)據(jù),同時位計數(shù)器加1;進入一下步驟;i、判斷是否收到結束碼,如是,控制數(shù)據(jù)接收完畢,結束碼高電平計數(shù)器啟動,記錄高電平時時鐘脈沖個數(shù)至結束碼高電平計數(shù)器,結束碼低電平計數(shù)器啟動,記錄低電平時時鐘脈沖個數(shù)至結束碼低電平計數(shù)器,并保存結束碼高電平計數(shù)器與結束碼低電平計數(shù)器中的值;如否,返回本步驟。
2.如權利要求l所述波形學習電路對紅外線解碼的方法,其特征在于 ,所述第一默認數(shù)據(jù)為數(shù)據(jù)0;第二默認數(shù)據(jù)為數(shù)據(jù)l。
3.如權利要求l所述波形學習電路對紅外線解碼的方法,其特征在于 ,所述第一默認數(shù)據(jù)為數(shù)據(jù)l;第二默認數(shù)據(jù)為數(shù)據(jù)0。
4.如權利要求l、 2或3所述波形學習電路對紅外線解碼的方法,其特 征在于,所述頭碼高電平計數(shù)器與頭碼低電平計數(shù)器用于還原頭碼波形;所述位計數(shù)器、移 位寄存器、第一緩存器、第二緩存器用于還原控制第一默認數(shù)據(jù);所述步驟g中,當記錄的 高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲的值相近,低電平時的時鐘脈沖個數(shù)與第二緩 存器中存儲的值不相近時,所述位計數(shù)器、移位寄存器、第一緩存器、第三緩存器用于還原 控制第二默認數(shù)據(jù);所述步驟g中,當記錄的高電平時的時鐘脈沖個數(shù)與第一緩存器中存儲 的值不相近,低電平時的時鐘脈沖個數(shù)與第二緩存器中存儲的值相近時,所述位計數(shù)器、移 位寄存器、第二緩存器、第三緩存器用于還原控制第二默認數(shù)據(jù);所述結束碼高電平計數(shù)器 與結束碼高電平計數(shù)器用于還原結束碼。
全文摘要
本發(fā)明涉及對紅外遙控器發(fā)射波形進行解碼并學習的實現(xiàn)方法。本發(fā)明所要解決的技術問題是提供一種全硬件實現(xiàn)的紅外線解碼的方法。波形學習電路對紅外線解碼的方法中,頭碼高電平計數(shù)器與頭碼低電平計數(shù)器用于還原頭碼波形;移位寄存器、第一緩存器、第二緩存器用于還原控制第一默認數(shù)據(jù);位計數(shù)器、移位寄存器、第一緩存器或第二緩存器、第三緩存器用于還原控制第二默認數(shù)據(jù);結束碼高電平計數(shù)器與結束碼高電平計數(shù)器用于還原結束碼。本發(fā)明適用于紅外遙控器波形學習電路的實現(xiàn)。
文檔編號G08C23/00GK101320516SQ20081030267
公開日2008年12月10日 申請日期2008年7月9日 優(yōu)先權日2008年7月9日
發(fā)明者勇 蔡 申請人:四川長虹電器股份有限公司