第七章 IR接收器应用

不小心拿着电视的遥控器对着电视盒子一顿猛按,结果没有反应,当你开始懊恼是才发现自己拿错了遥控器?为什么不同电器不用同一个遥控器控制!
这正是因为IR接收器协议不同,NEC,SONY SIRC,PHILIPS RC5等,IR遥控器也是不可以混着用的!

本章介绍重点:
介绍IR的遥控原理和NEC协议
基本实验:将IR接收器所接受到的客户码和按键码显示在DE2-115开发版的七段数码管上
进阶实验:以IR遥控器来控制音乐合成器

7-1IR遥控器的原理与NEC协议

IR遥控器被广泛应用,她有什么独特的魅力呢?
体积下,成本低,耗电少及硬件设计容易就是她最大的特色
IR遥控系统包括:发射器(Transmitter或称 IR LED)和接收器(Receiver)

7-1-1 IR发射器

正式介绍前,可以先想下IR发射器如何控制‘亮’,‘暗’,可以正确的将信息发送到IR接收端?
若亮为1暗为0
则传输的指令为“11111000”时,LED应作何反应
LED一直亮着的是一个1那还是5个连续的1那?后边暗着的是一个0还是一排0?
那么NEC协议如何解决这个问题那,在开始传输指令之前,会先传输一个指令码,叫做前置码(Leader Code),即LED开头会先亮9ms,接下来会暗4.5ms,来告诉IR接收器[你要接受指令了],另一种方法使用‘变动长度’,即不管0或者1,LED都会先亮560μs,接下来会暗一段时间,0的话会比较短,只暗560μs,1的话比较长,会亮560*3=1680μs

7-1-2 IR接收器

IR 接收器一般是红外线接收头,而在DE2-115中采用的一体化IR接收头,除了发射信号外,还有解调变的功能,并且可以将信号放大,不同的IR接收器所能解调的载波频率不同,本次板子所解调载波频率为38KHz

FPGA所设计的IR接收器译码部分,要注意IR接收头会将信号发反向,所以从IR接收器端看,收到的信号与发射端反向

7-1-3 NEC IR协议

特点摘要如下:
1.使用16-bit客户码与8-bit按键码
2.利用38kHz的载波来调变
3.传输的0与1使用‘变动长度’的方式
详细描述如下:
NEC格式由前置码、16-bit 客户码、8-bit按键码组成。先传输前置码包含9ms载波和4.5ms为0,接着传输16-bit客户码,之后8-bit按键码传输两次第二次传输是反向后的结果,所以真正传输8-bit按键码与8-bit反向按键码(Inversed Key Code ),目的是为了让IR接收端可以验证数据。560us的载波加上1690us的0代表传输1,560us的载波加上560us的0则代表0。由于IR接收头会将信号反向,所以从IR接收器这端所接收到的信号会与上述相反

7-2IR接收器范例

将用户所按的IR接收器的按键的相关信息显示在DE2-115开发版上。
用户在按下遥控器上的按键后,经过FPGA译码后相关信息会以16进制显示在七段数码管上
FPGA中实现IR接收器的译码器部分,区块结构如图

首先IR接收器将调变后的信号传输到按键码侦测器,键码侦测器会检测IR接收器是否发射信号,当侦测到有信号时,状态从IDLE转移到GUIDANCE;
当检测到有前置码时,状态机会从GUIDANCE转移到DATAREAD
在DETAREAD状态,会依次对输入的客户码,按键码及反向按键保存在移位寄存器,最后显示在七段数码管,状态机会从DATAREAD状态变回IDLE

实验流程:
1.复制工程
2.打开Quartus II
3.编译
4.硬件连接
5.打开烧录窗口
6.实验结果
7.尝试其他遥控器

7-3 以遥控器控制音乐合成器

以IR遥控器的按键来代替开发版上的滑动开关,实现滑动开关和按键开关的对应

按键名称 说明
KEY[0] 复位电路
KEY[1] 重复演奏演奏的音乐
SW[0] 下:管乐/上:弦乐
SW[9] 下:音乐展示/上:PS/2键盘演奏
SW[1] Channel-1 开/关
SW[2] 复位电路
管乐
弦乐
音乐展示
PS/2键盘弹奏
↑channel channel-1 开
↓channel channel-1 关
↑Volume channel-2开
↓Volume channel-2 关

编辑流程如下:
1,打开Quartus II 10.0
2,复制工程目录
3,再打开另一个Quartus II 10.0
4,复制文字
5,命名文件
6,保存文件
7,复制文件
8,增加文件
9,编译
10,新建Verilog HDL程序
11,保存
12,编辑文件
13,引用模块
14,取代滑动开关的控制文字
15,绿色LED灯观察变数值
16,保存
17,编译
18,硬件连接
19,打开烧录软件
20,实验结果

第七章 IR接收器应用相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第七章、Linux 文件与目录管理

    第七章.Linux文件与目录管理 最近升级日期:2009/08/26 在第六章我们认识了Linux系统下的文件权限概念以及目录的配置说明.在这个章节当中,我们就直接来进一步的操作与管理文件与目录吧!包 ...

  2. Android 渗透测试学习手册 第七章 不太知名的 Android 漏洞

    第七章 不太知名的 Android 漏洞 作者:Aditya Gupta 译者:飞龙 协议:CC BY-NC-SA 4.0 在本章中,我们将了解一些不太知名的 Android 攻击向量,这在 Andr ...

  3. 期末安卓习题--第七章

    第七章 安卓第七章 选择题 判断题 填空题 安卓第七章 选择题 1.关于BroadcastReceiver的说法不正确的是(D ). A. 广播接收器是android四大组件之一 B. 对有序广播,系 ...

  4. 数字图像处理——第七章 小波和多分辨处理

    数字图像处理--第七章 小波和多分辨率处理 文章目录 数字图像处理--第七章 小波和多分辨率处理 写在前面 1 多分辨率处理 1.1 图像金字塔 1.2 多尺度和多分辨率的区别 2 小波 2.1 连续 ...

  5. 现实迷途 第七章 特殊客户

    第七章 特殊客户 注:原创作品,请尊重原作者,未经同意,请勿转载,否则追究责任. 江北一般都是上午待在办公室里,搜集信息或整理以前做过的系统,下午才出去站街招客. 站街站了一段时间后,江北有点不想去了 ...

  6. stm32 工业按键检测_「正点原子STM32Mini板资料连载」第七章 按键输入实验

    1)实验平台:正点原子STM32mini开发板 2)摘自<正点原子STM32 不完全手册(HAL 库版)>关注官方微信号公众号,获取更多资料:正点原子 第七章 按键输入实验 上一章,我们介 ...

  7. 第七章——DMVs和DMFs(2)——用DMV和DMF监控索引性能

    原文: 第七章--DMVs和DMFs(2)--用DMV和DMF监控索引性能 本文继续介绍使用DMO来监控,这次讲述的是监控索引性能.索引是提高查询性能的关键性手段.即使你的表上有合适的索引,你也要时时 ...

  8. 2017上半年软考 第七章 重要知识点

    第七章项目范围管理 []项目范围管理概念 [][]项目范围管理的含义和作用 项目范围管理内容p289 项目范围对项目管理的重要性?p289 [][]项目范围管理的主要过程 项目范围管理的6个过程是? ...

  9. 服务器架构之性能扩展-第七章(8)

    第七章Cacti系统监控邮件报警和压力测试 7.1 Cacti工作原理 原理简单来说,Cacti就是rrdtool的一个forefront,它内置了快速的获数据取工具.优秀的绘图模板以及许多设计精良的 ...

最新文章

  1. CV01-语义分割笔记和两个模型VGG ResNet的笔记
  2. 设备树下字符设备驱动
  3. esp8266手册_ESP8266_前言
  4. 使用DOS命令找到占用80端口的程序,关闭该程序
  5. 程序员面试题精选100题(20)-最长公共子串[算法]
  6. swagger报错 java.lang.NumberFormatException: For input string: ““
  7. php 获取字符串长度 包含空格,php中常用的字符串长度函数strlen()与mb_strlen()实例解释...
  8. 如何利用 Visual Studio 自带工具提高开发效率
  9. 物理层接口特性、数据通信模型、物理层基本概念(数据、信号、码元 、信源、信道、信宿 、速率、波特、带宽)...
  10. 【mysql处理远程登陆授权及数据库迁移备份问题】
  11. 作为IT人员,专业和不专业的差别有多大?
  12. word文档怎么一分为二_word文档转pdf要怎么实现?word转pdf好方法推荐
  13. 我只会SQL,到底能不能找到工作?
  14. 微博推荐算法学习(Weibo Recommend Algolrithm)
  15. CentOS7.x 安装 openssh8.4、openssl1.1.1
  16. 想要学习视频剪辑?可以从什么剪辑软件开始?
  17. lr0文法分析表示例_LR0分析表
  18. Win 10操作系统与艾字节大数据的密切关系
  19. 防止电子邮件网络钓鱼攻击的10种方法
  20. D17 LeetCode 2043.简易银行系统(中等)

热门文章

  1. 投资人哑火、创业者狂欢、孵化器饥渴,大模型下的大变革
  2. 微信公众平台接口开发基础
  3. linux修改文件所有者
  4. AUTO_TUNE 配置参数
  5. 大枣补血又补气 四类人吃了帮倒忙
  6. STM32使用I2C和PWM捕获读取MLX90615温度值
  7. 622Mbps:NASA创造地月通信速率新纪录
  8. C# 微信公众号导出历史文章
  9. 远程连接SQL Server (以sql server2008 Express为例)
  10. 【VerilogHDL】Verilog开发流程