花了一個多月的時間研究基于NEC協(xié)議的紅外遙控,下面是這次實習技術(shù)方面的總結(jié)。
一、NEC協(xié)議特征:
8位地址和8位命令長度
每次傳輸兩遍地址(用戶碼)和命令(按鍵值)
通過脈沖串之間的時間間隔來實現(xiàn)信號的調(diào)制(PPM)
38Khz載波
每位的周期為1.12ms(低電平)或者2.25ms(高電平)
二、NEC協(xié)議的典型脈沖鏈:
上圖所示為NEC協(xié)議的典型脈沖鏈。協(xié)議規(guī)定低位首先發(fā)送。首先發(fā)送9ms+4.5ms的引導碼,接下來是兩字節(jié)用戶碼,第三字節(jié)是數(shù)據(jù)碼,用來判斷按鍵值,第四字節(jié)是數(shù)據(jù)反碼,可以用來校驗,提高按鍵的準確性。
三、NEC協(xié)議脈沖鏈的其他圖片
除了引導碼、用戶碼和數(shù)據(jù)碼以外,協(xié)議最后還有一個1bit的停止位,用于數(shù)據(jù)發(fā)送完畢判斷。另外在NEC協(xié)議中,似乎沒有說明停止位的高低電平持續(xù)時間。
四、NEC協(xié)議的高低電平辨別方式
用戶碼和數(shù)據(jù)碼中的‘0’和‘1’是利用脈沖的時間間隔來區(qū)分,這種編碼方式稱為脈沖位置調(diào)制方式(PPM)。
其中位0首先為0.56ms的高電平,然后是0.565ms的低電平;位1首先是0.56ms的高電平,然后是1.69ms的低電平。
五、編程注意事項
1.紅外接收頭引腳信號是相反的電平。以上電平是從發(fā)射頭角度來看,紅外接收頭引腳輸出的是相反的電平。
如圖,即沒有數(shù)據(jù)傳輸時,P3.2引腳保持為高電平,當接收到數(shù)據(jù)時,首先是引導碼,9ms的低電平和4.5ms的高電平,然后是32位數(shù)據(jù)和1位停止位。一般來說,P3.2與單片機的某中斷引腳相連,當接收數(shù)據(jù)時,低電平會觸發(fā)中斷。
2.數(shù)據(jù)從LSB(低位)開始發(fā)送,所以選擇右移方式接收數(shù)據(jù)。
四個字節(jié)的數(shù)據(jù)都是先發(fā)送D0,最后發(fā)送D7。所以接收到1位數(shù)據(jù)后,給變量的最高位賦值,右移。或者先右移,再給變量的最高位賦值。
3.可以用一個數(shù)組保存32個數(shù)據(jù)的持續(xù)時間,用于后面判斷高低電平。
用定時器對兩個數(shù)據(jù)(中斷)之間的時間計時,并保存這個持續(xù)時間用于以后判斷是位1還是位0。
4.可以用2字節(jié),4字節(jié)變量存儲32個數(shù)據(jù),以節(jié)省代碼空間。
可以用兩個16位的int型變量存儲數(shù)據(jù),第一個int變量存儲用戶碼,第二個存儲數(shù)據(jù)碼和數(shù)據(jù)反碼。也可以用一個32位long型的變量存儲所有數(shù)據(jù)。
5.判斷停止位。
接收到停止位后可以屏蔽紅外引腳的中斷,防止后面數(shù)據(jù)的干擾,解碼成功后在開啟中斷。
-
電平
+關(guān)注
關(guān)注
5文章
367瀏覽量
40592 -
NEC
+關(guān)注
關(guān)注
0文章
238瀏覽量
99828 -
紅外遙控
+關(guān)注
關(guān)注
22文章
349瀏覽量
46479
原文標題:紅外遙控NEC協(xié)議使用總結(jié)
文章出處:【微信號:eet-china,微信公眾號:電子工程專輯】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何連接PSoc4的紅外接收器,以檢查通過NEC協(xié)議輸入遙控器的數(shù)據(jù)?
藍牙學習型紅外線遙控器(NEC協(xié)議編解碼)
什么是紅外遙控?紅外信號是怎么傳輸?shù)模?/a>
講述人機界面的概念以及紅外遙控相關(guān)的背景知識
NEC MCU在馬達方面的應用
基于STM32的紅外遙控和解碼遙控程序解析

評論