|
1、編碼格式
現(xiàn)有的紅外遙控包括兩種方式:PWM(脈沖寬度調(diào)制)和PPM(脈沖位置調(diào)制)。
兩種形式編碼的代表分別為NEC 和PHILIPS 的RC-5、RC-6 以及將來的RC-7。
PWM(脈沖寬度調(diào)制):以發(fā)射紅外載波的占空比代表“0”和“1”。為了節(jié)省能量,一般情況下,發(fā)射紅外載波的時間固定,通過改變不發(fā)射載波的時間來改變占空比。例如常用的電視遙控器,使用NEC upd6121,其“0”為載波發(fā)射0.56ms,不發(fā)射0.56ms;其“1”為載波發(fā)射0.56ms,不發(fā)射1.68ms;此外,為了解碼的方便,還有引導(dǎo)碼,upd6121 的引導(dǎo)碼為載波發(fā)射9ms,不發(fā)射4.5ms。upd6121 總共的編碼長度為108ms。
但并不是所有的編碼器都是如此,比如TOSHIBA 的TC9012,其引導(dǎo)碼為載波發(fā)射4.5ms,不發(fā)射4.5ms,其“0”為載波發(fā)射0.52ms,不發(fā)射0.52ms,其“1”為載波發(fā)射0.52ms,不發(fā)射1.04ms。
PPM(脈沖位置調(diào)制):以發(fā)射載波的位置表示“0”和“1”。從發(fā)射載波到不發(fā)射載波為“0”,從不發(fā)射載波到發(fā)射載波為“1”。其發(fā)射載波和不發(fā)射載波的時間相同,都為0.68ms,也就是每位的時間是固定的。
通過以上對編碼的分析,可以得出以某種固定格式的“0”和“1”去學(xué)習(xí)紅外,是很有可能不成功的。即市面上所宣傳的可以學(xué)習(xí)64 位、128 位必然是不可靠的。
另外,由于空調(diào)的狀態(tài)遠(yuǎn)多于電視、音像,并且沒有一個標(biāo)準(zhǔn),所以各廠家都按自己的格式去做一個,造成差異更大。比如:美的的遙控器采用PWM 編碼,碼長120ms 左右;新科的遙控器也采用PWM 編碼,碼長500ms 左右。如此大的差異,如果按“位”的概念來講,應(yīng)該是多少位呢?64?128?顯然都不可能包含如此長短不一的編碼。
2、學(xué)習(xí)模式
現(xiàn)在用來學(xué)習(xí)紅外的CPU,無外乎以下幾種:MCS-51系列、microchip pic16 系列、winbond w741 系列、holtek ht48 系列,以上的CPU 由于價格便宜、使用量大,被廣泛使用在遙控器上。
以上的CPU 的基本點是:執(zhí)行速度在1us 左右,數(shù)據(jù)存儲器一般為256 個字節(jié)。如果按固定格式學(xué)習(xí),一般可以學(xué)到128 位(其他程序會占用一些數(shù)據(jù)存儲器);如果不按固定的格式,需要找出編碼的最小公約數(shù)作為基本單位,則可以學(xué)習(xí)到的位數(shù)大大降低,達(dá)不到實用的效果。但是,即使如此,找到的最小公約數(shù)不可能滿足所有的紅外設(shè)備,除非最小單位為26us(1000000/38k)。如果達(dá)到這個速度,以上CPU 的速度遠(yuǎn)遠(yuǎn)不夠,并且由于存儲量的加大,數(shù)據(jù)存儲器也遠(yuǎn)遠(yuǎn)不夠用。
對于電視、音響等,一般使用專用的遙控芯片,比nec,philips,toshiba,sanyo,mitsubish,pana sonic 的芯片,其編碼格式固定,一個鍵只有一個編碼,學(xué)習(xí)比較容易。
而空調(diào)不一樣,各家空調(diào)廠商都是按自己的要求用cpu 做遙控芯片,編碼形式就有很多種。比如可能沒有引導(dǎo)碼(電視音響類都有)、校驗方式取累加和(電視音響類一般取反碼)等。因為空調(diào)的狀態(tài)多,必須一次發(fā)送完畢,有制冷、溫度、風(fēng)速、自動、定時、加濕、制熱等,所以編碼很長,并且同一個按鍵,在不同狀態(tài)下發(fā)送的編碼不一樣,造成學(xué)習(xí)上的困難。
紅外遙控編碼格式
紅外遙控器的編碼格式通常有兩種格式:NEC 和RC5
NEC 格式的特征:
1:使用38 kHz 載波頻率
2:引導(dǎo)碼間隔是9 ms + 4.5 ms
3:使用16 位客戶代碼
4:使用8 位數(shù)據(jù)代碼和8 位取反的數(shù)據(jù)代碼
不過需要將波形反轉(zhuǎn)一下才方便分析:
NEC 協(xié)議通過脈沖串之間的時間間隔來實現(xiàn)信號的調(diào)制(英文簡寫PWM)。邏輯“0”是由0.56ms的38KHZ 載波和0.560ms 的無載波間隔組成;邏輯“1”是由0.56ms 的38KHZ 載波和1.68ms 的無載波間隔組成;結(jié)束位是0.56ms 的38K 載波。
下面實例是已知 NEC 類型遙控器所截獲的波形:遙控器的識別碼是 Address=0xDD20;其中一個鍵值是Command=0x0E;
注意:波形先是發(fā)低位地址再發(fā)高位地址。所以0000,0100,1011,1011 反轉(zhuǎn)過來就是1101,1101,0010,000 十六進制的DD20;
鍵值波形如下:
也是要將0111,0000 反轉(zhuǎn)成0000,1110 得到十六進制的0E;另外注意8 位的鍵值代碼是取反后再發(fā)一次的,如圖0111,0000 取反后為1000,1111。最后一位是一個邏輯“1”。
RC5 編碼相對簡單一些:同樣由于取自紅外接收頭的波形需要反相一下波形以便于分析:
反相后的波形:
根據(jù)編碼規(guī)則:
得到一組數(shù)字:110,11010,001101
根據(jù)編碼定義:
第一位是起始位S通常是邏輯1
第二位是場位F通常為邏輯1,在RC5 擴展模式下它將最后6位命令代碼擴充到7 位代碼(高位MSB),這樣可以從64 個鍵值擴充到128 個鍵值。
第三位是控制位C它在每按下了一個鍵后翻轉(zhuǎn),這樣就可以區(qū)分一個鍵到底是一直按著沒松手還是松手后重復(fù)按。
如圖所示是同一按鍵重復(fù)按兩次所得波形,只有第三位是相反的邏輯,其它的位邏輯都一樣。
其后是五個系統(tǒng)地址位:11010=1A,最后是六個命令位:001101=0D。
紅外線一開始發(fā)送一段13.5ms 的引導(dǎo)碼,引導(dǎo)碼由9ms 的高電平和4.5ms 的低電平組成,跟著引導(dǎo)碼是系統(tǒng)碼,系統(tǒng)反碼,按鍵碼,按鍵反碼,如果按著鍵不放,則遙控器則發(fā)送一段重復(fù)碼,重復(fù)碼由9ms 的高電平,2.25ms 的低電平,跟著是一個短脈沖,本程序是免費給大家,版權(quán)所有,不得用于商業(yè)目的,如需用到本程序到商業(yè)上請與本人聯(lián)系經(jīng)本人同意后方可用于商業(yè)目的,本程序經(jīng)過試用,能解大部分遙控器的編碼!
|
評分
-
查看全部評分
|