最近在使用遙控器時,突然想看看遙控器是傳送怎樣的Data來控制電視,剛好手邊有一塊開發版就動手來試試看,
我查了一下有關IR的資料,發現decode的protocol相當多種,就選擇了一個大家較常使用的NEC來decode,
圖(一)是IR 接收端收到的波形,當波形反向後才是真正傳送的訊號,
依照NEC的protocol定義先傳送Leader code再傳送custom code經過反向驗證後再傳送data code最後再反向驗證,
如圖中所示:紅色區間為Leader code、綠色區間為custom code、黃色區間為data code,
我們先來看綠色區間NEC是由低位元開始傳至高位元,以圖為例:傳送結果為00000010反向後為11111101,
但由於是低位元開始傳送因此decode需要顛倒過來看為10111111 = 0xBF,即為custom code,
Data code則是0xFE,為遙控器按鍵的data值,
此範例能夠透過UART的print來檢查傳送的IR 資料是否正確。
除了範例代碼之外檔案中還附贈了使用手冊,說明了硬體及軟體的部分。
希望對大家有一點點幫助~ |