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