3334|1

305

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

STM32F107VC金龙开发板 第十六章 红外解码 [复制链接]

本帖最后由 旺宝电子 于 2015-4-22 17:25 编辑

第十六章 红外解码


16.1红外遥控简介:
1、红外编解码
在光谱中波长自0.76至400微米的一段称为红外线,红外线是不可见光线。为了防止自然界中的红外线干扰,一般对红外线进行编码调制后进行通信,一般使用38KHz进行调制,如今使用红外遥控有两种编码方式:PWM编码(脉宽调制)和PPM编码(脉冲位置调制)
二进制数调制
PWM编码:发射载波的占空比代表”0”和”1”,发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。
PPM编码:发射载波脉冲之间的时间的长短来代表”0”和”1”,本次实验使用的红外遥控是PPM格式的编码格式,编码格式参考http://www.cublog.cn/u3/105675/showart_2420421.html,当发射器按键按下后,将发射一组108ms的编码脉冲(对于不同的遥控器其编码格式不同)。遥控编码脉冲由前导码、16位地址码(8位地址码、8 位地址码的反码)和16位操作码(8位操作码、8位操作码的反码)组成。
如下图,当第一次发送时引导码9ms 的载波波形和4.5ms的关断时间构成,在发重复码时,引导码由一个9ms的载波波形和2.25ms的关断时间构成。
如下图以脉宽为0.56ms、周期为1. 12ms 的组合表示二进制的“0”,以脉宽为1. 68ms 、周期为2. 24ms 的组合表示二进制的“1”。
2、HS0038
红外接收探头,接收红外信号频率为38kHz,周期约26μs,同时能对信号进行放大、检波、整形,得到TTL电平的编码信号。
红外线信号被红外接收头接收到后,经过HS0038内部的放大、检波、整型后滤除了38KHz的载波,如下图是接收到的波形与对应输出波形,输出的有用信号与原PPM编码信号相反。


16.2实验说明:
本实验采用外部中断功能实现红外解码,并在 LCD 上显示键值和所代表的意义,以及按键次数等信息。同时用 LED1来指示程序正在运行。
16.3硬件说明:
16.4程序说明:
本次实验使用stm32的PB0脚与红外接收头,通过配置PB0为外部中断,当没有红外信号时HS0038输出高电平,接收到红外信号的引导码后触发下降沿中断,进入中断函数对信号进行解码,信号接收完成后PB0为高电平,通过判断高电平时间大于5ms时退出中断函数,并将接收到的32位数据存放在Remote_Odr
当进入中断程序后,通过判断高电平持续时间即高脉冲宽度来判断信号类型,使用Pulse_Width_Check函数来检测高电平时间,使用宏定义#define RDATA GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0)读取PB0的状态,如下当PB0为高电平时,延时20us,同时t加一,直到PB0变为低电平或高电平时间达到5ms退出返回t,高电平时间t*20us,实验使用系统定时器作为延时,确保延时的精准,这里不做介绍。
这里介绍红外解码的相关时序
1)当res=250时,高电平时间大于5ms为无用信号,退出处理函数;
2)当250>res>200时,即5ms>t>4ms被认为是引导码4.5ms,并且OK=1,表明后面的为数据信号可以接收;
3)当200>res>85时,即4ms>t>1.7ms被认为是第二次发送引导码2.25ms;
4)当85>res>50时,即1.7ms>t>1ms被认为是1.5ms代表“1”;
5)当50>res>10时,即1ms>t>0.2ms被认为是0.5ms代表“0”;
在发送完成后Remote_Rdy置1来标志接收到了数据,在主程序中循环判断是否接收到数据,若接收到则进入Remote_Process进行键值处理,Remote_Odr中的24-31位为地址码,16-23位为地址反码,8-15位为键值,0-7位为键值反码。判断并返回键值,在主程序中显示出对应键值对应的按键码。
16.5、实验现象:
下载程序后,安装3.2寸彩屏模块,重新上电,使用实验遥控对着开发板的红外接收头按下按键,在LCD屏上显示按键对应的标号,对于不同的遥控器编码也会有区别,本次使用“car mp3遥控器”。
                           

               

此帖出自stm32/stm8论坛

最新回复

好东东  详情 回复 发表于 2015-4-29 11:39

赞赏

1

查看全部赞赏

点赞 关注
个人签名http://openmcu.taobao.com]77[/url]
 

回复
举报

67

帖子

2

TA的资源

一粒金砂(中级)

沙发
 
好东东
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表