基于FPGA实现红外遥控信号接收功能

FPGA- 红外遥控(附代码) 1. 实验核心部分在于红外接收模块,要理解何时进行状态跳转以及判断其跳转的条件。*2. 代码编写上有些新的知识点,注意学习。说明:本人使用的是野火家Xilinx Spartan6系列开发板及配套教程,以下内容如有疑惑或错误欢迎评论区指出。开发软件:ise14.7 仿真:modelsim 10.5如需上述资料私信或留下邮箱! 阅读详情


前言

人的眼睛能看到的可见光,若按波长排列,依次(从长到短)为红、橙、黄、绿、青、蓝、紫,红光的波长范围为 0.62μm~0.7μm,比红光波长还长的光叫红外线。红外线遥控器就是利用波长 0.76μm~1.5μm 之间的近红外线来传送控制信号的。红外线的特点是不干扰其他电器设备工作,也不会影响周边环境,若对发射信号进行编码,可实现多路红外遥控功能。

红外遥控系统分为发射和接收两部分。发射部分的发射元件为红外发光二极管,它发出
的是红外线而不是可见光。接收电路的红外接收管是一种光敏二极管,使用时要给红外接收
二极管加反向偏压,它才能正常工作而获得高的灵敏度。然而现在不论是业余制作或正式的
产品,大都采用成品的一体化接收头。红外线一体化接收头是集红外接收、放大、滤波和比
较器输出等的模块,性能稳定、可靠。

本章将使用 FPGA 来对脉冲编码的数字序列进行解码。根据解码结果与红外遥控实际发出的数值进行比较从而判断解码是否正确,本段前言引用小梅哥开发教程。

一、红外接收原理

本章节主要是采用HT6221器件实现红外线接收,HT6221 为 Holtek 公司生产的一款基于 NEC 红外通信协议的遥控编码芯片,其采用PPM(Pulse Position Modulation)进行编码。基于 HT6221 芯片的红外遥控发送一次数据的数据帧定义如下图所示:一帧数据由帧头、地址码、数据码、数据反码以及 1bit 结束位(可忽略)组成,以上段落源自小梅哥开发教程。
在这里插入图片描述
其中,引导码由 9ms 高电平的头码和 4.5ms 低电平的间隙组成,其代表一个数据帧的帧头;地址码共 16 位,低位在前,高位在后。因此,NEC 协议理论上支持最高 65536 个不同的用户;8 位数据码及其反码也是低位在前,高位在后。因此,理论上该协议支持高达 256 个用户指令。该协议采用脉冲之间不同时长的时间间隔来区分“1”和“0”,下图为其编码协议中“1”和“0”的编码发送波形。
数据编码发送波形
而在实际接收时,接收头接收到信号后输出的波形刚好与此波形反相。因此,本模块的设计实际就是对下图 1 以及下图 2 波形的提取。数据 0 是 0.56ms 的低电平和 0.56ms 的高电平,数据 1 是0.56ms 的低电平和 1.69ms 的高电平。可见 0 和 1 的区别在于高电平持续时间的长短不同,根据这个区别就可以见别出 0 和 1 了。
在这里插入图片描述
在这里插入图片描述
以上说明了按键短按时数据波形,当按键长按时输出波形如下图所示,此处不再详述。为了简化设计方便理解,本模块设计先不对这种情况解析。
在这里插入图片描述

二、代码设计思路

这篇红外接收代码是比较简单的代码,相对于IIC来说,太简单了,只要知道协议是怎样的,那么通过modelsim对着仿真进行设计是易如反掌的,这里先补充说明一下,在设计当中很容易联想到通过计数器实现9ms等时钟统计,例如主时钟是125M,那么计数到9ms对应的计数器值

【红外遥控器】基于FPGA的红外遥控verilog附代码及解析 红外遥控:红外遥控是一种无线、非接触控制技术。特点:抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等;由于它不能穿过障碍物去控制被控对象的能力,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。红外光波长为760nm到1mm,人眼可见波长为400nm到760nm。输入的由系统时钟、复位、红外信号,输出的repeat_en重复码标志信号,数据有效信号data_en,及红外控制码。input sys_clk , //系统时钟。 阅读详情

相关推荐

FPGA之红外遥控

红外遥控系统由红外发射部分和红外接收部分组成。发射部分由遥控案件、编码以及调制电路、红外发光二极管等组成。接收部分由光敏二极管、解调电路等组成,最后将解调的信号输入FPGA内进行解码输出。使用的红外接收头要购买一体化红外接收头...

qq_52450571的博客 2776

FPGA上基于Verilog的红外遥控格力空调以及蓝牙通信

FPGA上基于Verilog的红外遥控格力空调以及蓝牙通信红外爬编码调制FPGA蓝牙通信源码 红外 基于FPGA编写Verilog语言的红外发送程序是本小小小项目的一个重要组成部分,我们通过FPGA的signaltap解析了格力空调遥控器的红外编码,然后模仿地发出了编码,编写了控制空调开关以及调节设定温度的功能,其实其他的功能也可以在我们程序的基础上酌情增加,十分简单,下面简要描述一下实现过程。具体状态机编写什么的就不详述了,可以参考代码。 爬编码 通过查阅资料,我们知道了(格力YB-02遥控器)的编码的大

htwsfre的博客 2857

红外NEC通信协议

IR协议是指红外线通信协议的总称,而NEC协议是IR协议中的一种具体实现。NEC协议的编码格式包括一个起始标记、一个地址码、一个命令码和一个校验码,这些都是IR协议通用的编码要素。因此,NEC协议可以看作是IR协议的一种具体实现,它定义了红外线通信的具体细节和规范,使得不同厂商的设备可以互相兼容。

STATEABC的博客 1万+

红外遥控设计

文章目录1. SOC常见问题 1. SOC常见问题 1.SOC FPGA中的ARM是软核还是硬核?ARM核的外设是软核还是硬核? SOC FPGA中的ARM是硬核,所以简称HPS,Hardware Processor System. 2.ARM处理器核是包含FPGA逻辑单元内部的吗? 刚开始接触SOC FPGA就可以认为,FPGA和ARM处理器只是封装到同一个芯片中,JTAG接口、电源引脚和外设的接口引脚都是独立的。 ...

gemengxia的博客 2680

学习型红外遥控器的FPGA设计与实现

为了解决这个问题,本文将介绍一种基于FPGA的学习型红外遥控器的设计与实现,该遥控器可以学习和模拟其他红外遥控器的信号,从而实现更大程度的灵活性和可扩展性。此外,通过适当的编码和解码算法,可以确保红外信号的准确传输和解析。状态机可以实现学习模式和发送模式之间的切换,并控制红外信号接收模块、数据存储模块和红外信号发送模块的操作。请注意,本文提供的代码示例只是一个概念性的示例,实际的设计和实现可能需要进一步的开发和调试。这只是一个简化的示例,实际的学习型红外遥控器设计可能需要更多的模块和逻辑来实现完整的功能。

COWizard的博客 365

Verilog实现的红外遥控器接收器代码设计

模块是Verilog中构成硬件描述的最基本单元,它定义了电路的接口和内部逻辑。模块的实例化是将模块复用到更复杂系统中的过程。// 模块内部的加法逻辑endmodule// 在其他模块中实例化adder模块。

weixin_35019679的博客 814

C2051微控制器红外遥控系统综合设计包

C2051系列微控制器以其高性能和低功耗而闻名,是众多嵌入式系统开发者的首选。它采用精简指令集计算机(RISC)架构,相较于复杂指令集计算机(CISC)微控制器,C2051提供更快的指令执行速度,为设计者在数据处理和控制任务中提供了高效的选择。

weixin_42576186的博客 403

C红外接收、解码、显示及遥控相关源代码.rar

基于C的红外接收、解码、显示及遥控相关源代码: 1602遥控解码:使用12MHZ晶振,实验前请更换系统晶振为12MHZ 否则会解码出错; 红外接收1602LCD显示:适用于NEC的upd6121及其兼容芯片的解码,支持大多数遥控器 实验板采用11.0592MHZ晶振; 红外遥控解码数码管显示实验,晶振11.0592MHZ; 数码管遥控解码,烧写程序到89S52中 运行即可 晶振为12M; 遥控解码通过电脑串口显示,此实验 采用11.0592MHZ晶振,程序下载到芯片后 在电脑上运行串口调试软件,选择好COM口号,设置波特率为57600 把HEX显示选项打钩 在接收框里 就可以看到结果了。

红外发送,红外接收!

红外模块!可以用来发送信息,例如我们的遥控器!如你想用红外,这个资料必不可少!

基于FPGA的红外线接收

红外遥控器按下数字键,FPGA接收红外信号并在数码管上面显示相应的数字

【目标检测】yoloV5算法详解

一、与yoloV4相比,yoloV5的改进 输入端:在模型训练阶段,使用了Mosaic数据增强、自适应锚框计算、自适应图片缩放 基准网络:使用了FOCUS结构和CSP结构 Neck网络:在Backbone和最后的Head输出层之间插入FPN_PAN结构 Head输出层:训练时的损失函数GIOU_Loss,预测筛选框的DIOU_nns 二、yoloV5结构框架 CBL:CBL模块是由Conv+BN+Leaky_relu激活函数组成 Res unit:借鉴ResNet中的残差结构,用来构建深层网络,CBM是

qq_40373651的博客 2万+

RK3308B开发板WiFi+蓝牙一体模组RTL8821CS驱动移植保姆级教程(含DTS配置与避坑点)

本文提供RK3308B开发板RTL8821CS WiFi+蓝牙模组驱动移植的完整教程,涵盖SDK环境配置、DTS设备树设置、内核编译优化及功能验证全流程。重点解析引脚复用冲突、电源管理等关键配置,并给出常见错误解决方案,帮助开发者快速实现双模通信功能。

weixin_42531163的博客 397

同花顺自动化交易避坑指南:pywinauto实战中验证码识别与界面弹窗处理

本文深入探讨同花顺自动化交易中的关键稳定性问题,重点解决验证码识别与弹窗处理两大难题。通过优化Tesseract OCR、整合打码平台API以及设计pywinauto弹窗监控体系,提供了一套完整的自动化交易解决方案,帮助交易者有效规避资金账户和持仓信息操作中的常见陷阱。

weixin_33734785的博客 485

Adobe Acrobat Pro(Adobe PDF) - 使用技巧

Adobe Acrobat Pro为Adobe出品的PDF查看和编辑软件,下文简称Adobe PDF,该软件功能强大,拥有查看PDF、编辑PDF、打印PDF、导出PDF、合并文件、组织页面、文本标注、注释、动作向导、等功能。本文介绍Adobe PDF的一些使用技巧,最后介绍软件设置。

NSJim的博客 4万+

一、适配显示服务

基于rk3568适配显示服务,调动gpu;

XiaoC_Android的博客 1001

S32K1XX Autosar开发实战|全网独家复现EB MCAL Port/Dio配置、详解引脚分层原理、实现经典跑马灯助力车载IO电控落地

在NXP S32K1XX系列车规MCU的AUTOSAR标准开发体系中,MCAL(微控制器抽象层)是软硬件解耦的核心载体,而Port端口模块与Dio数字IO模块是MCAL最基础、最核心的入门模块,也是车载指示灯、按键检测、继电器驱动、外设硬件启停控制的底层支撑。区别于传统裸机直接操作寄存器的开发方式,AUTOSAR架构采用分层隔离设计,Port负责硬件静态初始化、Dio负责动态电平操控,严格遵循车规级开发规范,杜绝硬件资源冲突、引脚配置混乱等问题。

getusushu的博客 42

Agisoft Metashape 基于RTK技术的无人机航测免像控技术流程

利用无人机进行航空摄影测量,其使用方便、快速获得成果,已经是测绘行业外业生产的主要方式。RTK定位系统的出现,其厘米级的定位系统,使得航测无人机在作业时,能够准确获取拍照时的GPS位置,能够大量减少像控点,即使不使用像控点也能满足规范对精度的要求。可以有效解决特殊地形(如山川、峡谷、河流、沼泽、水库等)外业人员很难布设像控点的情况。

penglu366366的博客 2187

17、Nimble 包开发与并行编程指南

本文介绍了Nimble包的开发与版本管理流程,涵盖语义化版本控制规范及发布步骤;深入探讨了Nim中的并行编程基础,包括并发与并行的区别、threads模块与threadpool模块的使用方法及其差异;分析了线程执行的不确定性、线程池的优势,并提供了线程同步和资源管理的实践示例,帮助开发者高效构建稳定、高性能的Nim应用程序。

wine的专栏 54

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 基于FPGA的可调在线时钟的数码管动态显示
下一篇: 基于matlab和FPGA实现FIR滤波器
junpingc
博客等级 码龄4年 58粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值