在线问答
直播中

gjianw217

10年用户 688经验值
擅长:嵌入式技术 控制/MCU RF/无线
私信 关注

【OK210试用体验】功能篇(6)Linux字符驱动之红外遥控驱动(待续)

本帖最后由 gjianw217 于 2015-8-22 02:25 编辑

    前面进行了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引脚上,如下图所示:
21.png

XM0ADDR1引脚由S5PV210用户手册,可知,该引脚位于MP0_4[1]引脚上,默认为EBI_ADDR[1],即当作外部总线接口使用,如下图所示:
22.png

所以,我们要对红外遥控进行操作,就是通过对MP0_4[1]引脚配置,来实现对红外遥控的接收。
二、软件基础
1 红外编解码基础

    由于OK210板上的红外接收器HS0038BNEC支持大部分通用的红外遥控协议,而NEC协议是众多红外遥控协议中一种,除此之外,还有RC5、RC6等。市面上买到的非学习型万能电视遥控器大多集成一种或多种编码是NEC型的,在单片机学习过程中,也都是在讲NEC协议的解码,故以NEC为例。
    从编码的角度(遥控器的角度)来说,NEC协议规定:
(1)协议规定低位首先发送。即如下遥控器按下某一按键,NEC协议要求首先发送9ms的AGC(自动增益控制)的高脉冲,接着发送4.5ms的起始低电平,接下来是发送四个字节的地址码和命令码,这四个字节分别为:地址码;地址码反码;命令码;命令码反码,
如下图所示。即NEC编码的一帧(通常按一下遥控器按钮所发送的数据)由引导码、地址码及数据码组成,把地址码及数据码取反的作用是加强数据的正确性。
11.png
(2)如果一直按着摇控器上的某一按键,NEC协议规定,发送的则是以110ms为周期的重复码,并不带任何数据,如下图所示。
12.png
(3)NEC协议规定,摇控器上发送的重复由9ms高电平和2.25ms的低电平以及560us的高电平组成,如下图所示。
13.png

(4)
逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us。所以我们根据脉冲时间长短来解码。推荐载波占空比为1/3至1/4。
14.png
    从解码的角度(OK210开发板)来说,由于接收到的信号是跟发送信号正好反向的,所以NEC协议解码的时序图,可参见下图
23.png

2 红外驱动基础
(1)定时器的操作,
(2)Input子系统的操作
(3)NEC解码的操作

三、驱动编写(待续)


欢迎大家关注本人的微信公众号【口袋物联】,微信号为koudaiwulian

回帖(2)

longqizhong龙

2015-10-13 18:33:35
强大,真的强大的不得了了!!
举报

小虎嵌入式

2015-10-16 10:21:17
必须支持下,还等着楼主贴代码哦!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分