[OK210開(kāi)發(fā)板體驗(yàn)]功能篇(6)Linux字符驅(qū)動(dòng)之紅外遙控驅(qū)動(dòng)(待續(xù))

原創(chuàng) 2015-12-24 14:05:00 [OK210開(kāi)發(fā)板體驗(yàn)]功能篇(6)Linux字符驅(qū)動(dòng)之紅外遙控驅(qū)動(dòng)(待續(xù))
前面進(jìn)行了OK210試用體驗(yàn)的入門(mén)篇介紹,算是初步入門(mén),分別包含:


[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用戶手冊(cè),可知,該引腳位于MP0_4[1]引腳上,默認(rèn)為EBI_ADDR[1],即當(dāng)作外部總線接口使用,如下圖所示:
 

所以,我們要對(duì)紅外遙控進(jìn)行操作,就是通過(guò)對(duì)MP0_4[1]引腳配置,來(lái)實(shí)現(xiàn)對(duì)紅外遙控的接收。
二、軟件基礎(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ù)的正確性。
 
(2)如果一直按著搖控器上的某一按鍵,NEC協(xié)議規(guī)定,發(fā)送的則是以110ms為周期的重復(fù)碼,并不帶任何數(shù)據(jù),如下圖所示。
 
(3)NEC協(xié)議規(guī)定,搖控器上發(fā)送的重復(fù)由9ms高電平和2.25ms的低電平以及560us的高電平組成,如下圖所示。
 

(4)邏輯1為2.25ms,脈沖時(shí)間560us;邏輯0為1.12ms,脈沖時(shí)間560us。所以我們根據(jù)脈沖時(shí)間長(zhǎng)短來(lái)解碼。推薦載波占空比為1/3至1/4。
 
從解碼的角度(OK210開(kāi)發(fā)板)來(lái)說(shuō),由于接收到的信號(hào)是跟發(fā)送信號(hào)正好反向的,所以NEC協(xié)議解碼的時(shí)序圖,可參見(jiàn)下圖
 

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解決方案定制。

    了解詳情
    OKMX6UL-C開(kāi)發(fā)板
  • 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)景豐富。 了解詳情
    OKMX6ULL-C開(kāi)發(fā)板

推薦閱讀 換一批 換一批