[OK210開發板體驗]功能篇(6)Linux字符驅動之紅外遙控驅動(待續)

原創 2015-12-24 14:05:00 [OK210開發板體驗]功能篇(6)Linux字符驅動之紅外遙控驅動(待續)
前面進行了OK210試用體驗的入門篇介紹,算是初步入門,分別包含:


[OK210開發板體驗]入門篇(1):開箱驗板
[OK210開發板體驗]入門篇(2):板載資源
[OK210開發板體驗]入門篇(3):開發環境(軟件安裝,開發環境,燒寫系統)
[OK210開發板體驗]入門篇(4):編程入門(NFS登錄,驅動入門)
[OK210開發板體驗]功能篇(1):Linux字符驅動之Led
[OK210開發板體驗]功能篇(2):Linux字符驅動之Key按鍵

[OK210開發板體驗]功能篇(3):Linux Input子系統之Key按鍵
[OK210開發板體驗]功能篇(4):Linux字符驅動之DS18B20
   

[OK210開發板體驗]功能篇(5):Linux字符驅動之PWM蜂鳴器
今天是功能篇的第六篇:Linux字符驅動之紅外遙控,本節主要分3部分:硬件分析,軟件基礎,驅動編程(待續)。
一、硬件分析
[OK210開發板體驗]的第二篇:板載資源中,簡單分析了紅外遙控的
功能和作用。其實對紅外遙控的操作,和對DS18B20的操作極其相似,主要區別是對協議時序的操作上。但是,對紅外遙控的操作,會更復雜,涉及到的知識點會更多,但作用也更大
首先從OK210的底板原理圖中可知,OK210開發板上的使用的是HS0038B紅外接收芯片,該芯片支持大部分編碼協議。從電路上可知,紅外遙控的接收端DS18B20連接通過一個上拉電阻連接到了核心板的XM0ADDR1引腳上,如下圖所示:

 

XM0ADDR1引腳由S5PV210用戶手冊,可知,該引腳位于MP0_4[1]引腳上,默認為EBI_ADDR[1],即當作外部總線接口使用,如下圖所示:
 

所以,我們要對紅外遙控進行操作,就是通過對MP0_4[1]引腳配置,來實現對紅外遙控的接收。
二、軟件基礎
1 紅外編解碼基礎

由于OK210板上的紅外接收器HS0038BNEC支持大部分通用的紅外遙控協議,而NEC協議是眾多紅外遙控協議中一種,除此之外,還有RC5、RC6等。市面上買到的非學習型萬能電視遙控器大多集成一種或多種編碼是NEC型的,在單片機學習過程中,也都是在講NEC協議的解碼,故以NEC為例。
從編碼的角度(遙控器的角度)來說,NEC協議規定:
(1)協議規定低位首先發送。即如下遙控器按下某一按鍵,NEC協議要求首先發送9ms的AGC(自動增益控制)的高脈沖,接著發送4.5ms的起始低電平,接下來是發送四個字節的地址碼和命令碼,這四個字節分別為:地址碼;地址碼反碼;命令碼;命令碼反碼,
如下圖所示。即NEC編碼的一幀(通常按一下遙控器按鈕所發送的數據)由引導碼、地址碼及數據碼組成,把地址碼及數據碼取反的作用是加強數據的正確性。
 
(2)如果一直按著搖控器上的某一按鍵,NEC協議規定,發送的則是以110ms為周期的重復碼,并不帶任何數據,如下圖所示。
 
(3)NEC協議規定,搖控器上發送的重復由9ms高電平和2.25ms的低電平以及560us的高電平組成,如下圖所示。
 

(4)邏輯1為2.25ms,脈沖時間560us;邏輯0為1.12ms,脈沖時間560us。所以我們根據脈沖時間長短來解碼。推薦載波占空比為1/3至1/4。
 
從解碼的角度(OK210開發板)來說,由于接收到的信號是跟發送信號正好反向的,所以NEC協議解碼的時序圖,可參見下圖
 

2 紅外驅動基礎
(1)定時器的操作,
(2)Input子系統的操作
(3)NEC解碼的操作

三、驅動編寫(待續)



相關產品 >

  • OKMX6UL-C開發板

    飛凌嵌入式專注imx6系列imx6ul開發板、飛思卡爾imx6ul核心板等ARM嵌入式核心控制系統研發、設計和生產,i.mx6UL系列產品現已暢銷全國,作為恩智浦imx6ul,imx6ul開發板,i.mx6提供者,飛凌嵌入式提供基于iMX6 iMX6UL解決方案定制。

    了解詳情
    OKMX6UL-C開發板
  • OKMX6ULL-C開發板

    40*29mm,雙網雙CAN,8路串口| i.MX6ULL開發板是基于NXP i.MX6ULL設計開發的的一款Linux開發板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對板連接器,適應場景豐富。 了解詳情
    OKMX6ULL-C開發板

推薦閱讀 換一批 換一批