[OK210开发板体验]功能篇(6)Linux字符驱动之红外遥控驱动(待续)
[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],即当作外部总线接口使用,如下图所示:
二、软件基础
1 红外编解码基础
由于OK210板上的红外接收器HS0038BNEC支持大部分通用的红外遥控协议,而NEC协议是众多红外遥控协议中一种,除此之外,还有RC5、RC6等。市面上买到的非学习型万能电视遥控器大多集成一种或多种编码是NEC型的,在单片机学习过程中,也都是在讲NEC协议的解码,故以NEC为例。
从编码的角度(遥控器的角度)来说,NEC协议规定:
(1)协议规定低位首先发送。即如下遥控器按下某一按键,NEC协议要求首先发送9ms的AGC(自动增益控制)的高脉冲,接着发送4.5ms的起始低电平,接下来是发送四个字节的地址码和命令码,这四个字节分别为:地址码;地址码反码;命令码;命令码反码,如下图所示。即NEC编码的一帧(通常按一下遥控器按钮所发送的数据)由引导码、地址码及数据码组成,把地址码及数据码取反的作用是加强数据的正确性。
(4)逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us。所以我们根据脉冲时间长短来解码。推荐载波占空比为1/3至1/4。
2 红外驱动基础
(1)定时器的操作,
(2)Input子系统的操作
(3)NEC解码的操作
三、驱动编写(待续)