[OK210開發(fā)板體驗]功能篇(6)Linux字符驅(qū)動之紅外遙控驅(qū)動(待續(xù))
[OK210開發(fā)板體驗]入門篇(1):開箱驗板
[OK210開發(fā)板體驗]入門篇(2):板載資源
[OK210開發(fā)板體驗]入門篇(3):開發(fā)環(huán)境(軟件安裝,開發(fā)環(huán)境,燒寫系統(tǒng))
[OK210開發(fā)板體驗]入門篇(4):編程入門(NFS登錄,驅(qū)動入門)
[OK210開發(fā)板體驗]功能篇(1):Linux字符驅(qū)動之Led
[OK210開發(fā)板體驗]功能篇(2):Linux字符驅(qū)動之Key按鍵
[OK210開發(fā)板體驗]功能篇(3):Linux Input子系統(tǒng)之Key按鍵
[OK210開發(fā)板體驗]功能篇(4):Linux字符驅(qū)動之DS18B20
[OK210開發(fā)板體驗]功能篇(5):Linux字符驅(qū)動之PWM蜂鳴器
今天是功能篇的第六篇:Linux字符驅(qū)動之紅外遙控,本節(jié)主要分3部分:硬件分析,軟件基礎(chǔ),驅(qū)動編程(待續(xù))。
一、硬件分析
在[OK210開發(fā)板體驗]的第二篇:板載資源中,簡單分析了紅外遙控的功能和作用。其實對紅外遙控的操作,和對DS18B20的操作極其相似,主要區(qū)別是對協(xié)議時序的操作上。但是,對紅外遙控的操作,會更復雜,涉及到的知識點會更多,但作用也更大。
首先從OK210的底板原理圖中可知,OK210開發(fā)板上的使用的是HS0038B紅外接收芯片,該芯片支持大部分編碼協(xié)議。從電路上可知,紅外遙控的接收端DS18B20連接通過一個上拉電阻連接到了核心板的XM0ADDR1引腳上,如下圖所示:
而XM0ADDR1引腳由S5PV210用戶手冊,可知,該引腳位于MP0_4[1]引腳上,默認為EBI_ADDR[1],即當作外部總線接口使用,如下圖所示:
二、軟件基礎(chǔ)
1 紅外編解碼基礎(chǔ)
由于OK210板上的紅外接收器HS0038BNEC支持大部分通用的紅外遙控協(xié)議,而NEC協(xié)議是眾多紅外遙控協(xié)議中一種,除此之外,還有RC5、RC6等。市面上買到的非學習型萬能電視遙控器大多集成一種或多種編碼是NEC型的,在單片機學習過程中,也都是在講NEC協(xié)議的解碼,故以NEC為例。
從編碼的角度(遙控器的角度)來說,NEC協(xié)議規(guī)定:
(1)協(xié)議規(guī)定低位首先發(fā)送。即如下遙控器按下某一按鍵,NEC協(xié)議要求首先發(fā)送9ms的AGC(自動增益控制)的高脈沖,接著發(fā)送4.5ms的起始低電平,接下來是發(fā)送四個字節(jié)的地址碼和命令碼,這四個字節(jié)分別為:地址碼;地址碼反碼;命令碼;命令碼反碼,如下圖所示。即NEC編碼的一幀(通常按一下遙控器按鈕所發(fā)送的數(shù)據(jù))由引導碼、地址碼及數(shù)據(jù)碼組成,把地址碼及數(shù)據(jù)碼取反的作用是加強數(shù)據(jù)的正確性。
(4)邏輯1為2.25ms,脈沖時間560us;邏輯0為1.12ms,脈沖時間560us。所以我們根據(jù)脈沖時間長短來解碼。推薦載波占空比為1/3至1/4。
2 紅外驅(qū)動基礎(chǔ)
(1)定時器的操作,
(2)Input子系統(tǒng)的操作
(3)NEC解碼的操作
三、驅(qū)動編寫(待續(xù))
相關(guān)產(chǎn)品 >
-
OKMX6UL-C開發(fā)板
飛凌嵌入式專注imx6系列imx6ul開發(fā)板、飛思卡爾imx6ul核心板等ARM嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計和生產(chǎn),i.mx6UL系列產(chǎn)品現(xiàn)已暢銷全國,作為恩智浦imx6ul,imx6ul開發(fā)板,i.mx6提供者,飛凌嵌入式提供基于iMX6 iMX6UL解決方案定制。
了解詳情 -
OKMX6ULL-C開發(fā)板
40*29mm,雙網(wǎng)雙CAN,8路串口| i.MX6ULL開發(fā)板是基于NXP i.MX6ULL設(shè)計開發(fā)的的一款Linux開發(fā)板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對板連接器,適應場景豐富。 了解詳情