首页 > 技术 > 内容

基于FPGA的红外遥控接收器模块数据传输

时间:2026-01-22  作者:Diven  阅读:0

简介

本例是FPGA之旅设计的第十四例,本例将红外遥控的使用,并将红外接收器接收到红外遥控的数据显示在数码管上。

红外遥控接收器模块,非常简单,也是由GND,VCC和数据三个引脚组成,通过杜邦线可以直接连接在FPGA的IO口上,产品细节如下

红外数据传输

数据传输过程如下

引导码:标志的数据传输的开始。

数据码:传输红外遥控发送的数据,一帧数据共有32bit,4个字节。分别为**地址,地址反码,数据,数据反码。**先发送**低**位。

停止码:标志着数据传输的完成。

重复码:当一直按下某个按键的时候,并不会再次发送数据,而且通过重复码标志按键一直处于按下的状态。如果一直按下的话,约110ms,发送一次重复码。

在对数据传输过程有了个大致的了解后,下面就对每个部分进行详细的讲解。

所有波形都是对于遥控器来说的

1

引导码

引导码波形如下,遥控器先发送9ms的信号,然后空闲4.5ms后,引导码结束。

这个时候在开发板上结束到的电平变化为,9ms的低电平,4.5ms的高电平。也就是说,遥控器发送信号的时候,接收器上为低电平,遥控器空闲时,接收器上为高电平,这点在处理的时候需要注意。

2

数据码

数据码主要是看,数据0和数据1是如何表示的。通过下图可知,数据1是560us的信号,加1.69ms的空闲。数据0是560us的信号,加560us的空闲。知道了数据是如何表示的后,在接收的时候,只需要按照波形接收32bit的数据即可。

3

结束码

在最后一个数据接收完成了,遥控器会发送560us的信号,然后空闲,表示发送结束。

4

重复码

重复码,是和引导码对应的,如果发送的是重复码的话,引导码中的空闲4.5ms,会变成2.25ms,然后直接进入结束吗。根据空闲时间的长短,可以判断是引导码,还是重复码。

了解了其发送的波形变换情况,就可以进行代码的编写了。

Verilog代码实现

1

端口信号确定

端口信号很简洁,当接到一次红外数据的时候,infrared_end,就会拉高一个周期。

 

 

Infrared_Reception(  input    sys_clk,  input    rst_n,    input    infrared,        //红外信号IO  output  infrared_end,      //接收数据完成    output[7:0]  infrared_data    //接收到的数据);

 

 

2

状态确定

通过上面的分析可知,一共可以分为如下四个状态。I_START其中包括引导码和重复码,根据时间可以确定,下一个状态该跳转到那。

通过上面的分析可知,一共可以分为如下四个状态。I_START其中包括引导码和重复码,根据时间可以确定,下一个状态该跳转到那。

 

 

localpaRAM  I_IDLE           =    'd0;    //空闲态localpaRAM  I_START          =    'd1;    //开始态,也就是引导码阶段localparam  I_DATA           =    'd2;    //数据态localparam  I_END            =    'd3;    //结束态

 

 

3

状态机跳转

 

 

always@(*)begin  case(state)  I_IDLE:    if(infrared_negedge == 1'b1)      next_state <= I_START;    else      next_state <= I_IDLE;  I_START:    if(infrared_negedge == 1'b1)            if(time_cnt < Infrared_Time2_25ms)  //表示重复码,直接放回上一次的接收值        next_state <= I_END;      else        next_state <= I_DATA;    else      next_state <= I_START;  I_DATA:    if(infrecv_bit_cnt == 'd31 && infrared_negedge == 1'b1)      next_state <= I_END;    else      next_state <= I_DATA;  I_END:    if(infrared_posedge == 1'b1)      next_state <= I_IDLE;    else      next_state <= I_END;  default: next_state <= I_IDLE;  endcaseend

 

 

效果图如下。

编辑:黄飞

猜您喜欢


划线器是应用于建筑、工程和设计领域的工具,主要用于精确划线。根据不同的用途和功能,划线器可以分为几种主要类型。手动划线器是最常见的,通常由金属或塑料制成,适合简...
2013-05-15 00:00:00
贴片电阻,顾名思义,就是表面贴装型的电阻器。它体积小巧,通常呈长方形,广泛应用于各种电子电路中。它的主要作用是限制电流的流动,并根据欧姆定律(电压=电流x电阻)...
2024-11-26 11:30:07
贴片电阻上的「104」并不是直接表示欧姆值,而是一种代码,需要进行解码才能得到实际阻值。这种编码方式使用数字和字母组合来表示阻值大小,方便标记在小型元件上。「1...
2024-11-26 11:29:46
贴片电阻作为电子元件中的重要组成部分,应用越来越。在众多贴片电阻品牌中,TA-I(大毅)凭借其优良的品质和丰富的规格,赢得了市场的认可。本文将围绕TA-I(大毅...
2012-09-24 04:31:27
来源:天津光电通信技术审核编辑:刘清
2023-07-31 10:23:00
电阻作为基础电子元器件,其性能的稳定性和可靠性显得尤为重要。特别是在恶劣环境下工作的电路,对电阻的防硫化性能提出了更高的要求。KOA(兴亚)作为知名的电阻制造商...
2019-07-24 22:01:30
合金电阻作为电子元件中的重要组成部分,应用于各种电子设备中。合美电机(HERMEI)作为国内知名的电阻制造品牌,其合金电阻产品凭借优良的性能和稳定的质量,赢得了...
2019-01-14 19:32:50
大多数为FPCA布局图(通常认为两个主要的布局图阶段:布局和布线)的实现工具提供设计者成打的优化选项,设计者利用这些选项运行中的问题类似于用综合优化运行中的问题...
2024-03-26 14:32:00
信号源/发生器是现代电子技术中不可少的工具,应用于多个领域。在通信领域,信号源被用于测试和验证无线电、电视和移动通信系统的性能,确保信号的稳定性和可靠性。在电子...
2009-09-10 00:00:00
贴片470电感是电子元件中常见的。用于各种电子设备中,尤其是手机和电脑。这种电感具有多种规格,适合不同的应用场景。本文将对贴片470电感的规格进行详细介绍。贴片...
2025-03-21 22:30:02