时间:2024-05-04
文/陈韵文 肖顺文 郑瑞 王涌 罗春梅
(西华师范大学电子信息工程学院 四川省南充市 637009)
红外遥控具有体积小、信息传输可靠、功耗低、成本低等显著特点[1],广泛应用于家用家电、工业控制等领域。红外线为不可见光,不受电磁环境的干扰,方向性好,同时也具有不干扰其他用电设备工作,不影响周边环境的良好优点,因此,研究红外遥控系统工作原理并设计实现显得尤为必要。本文采用Verilog HDL来设计实现红外遥控信号的解码,这种基于FPGA实现的红外解码比传统方式解码速度更快、精确率更高。
红外遥控系统一般分为发送端和接收端两部分,如图1所示。发送部分的发送元器件为红外发光二极管,通过发送电路使其发出具有特定编码信号的红外线。接收电路接收光信号主要元件是红外接收管,其接收到发送端发出的红外线后经一系列光电转换电路、放大电路后,转换成相应电信号。
本系统采用的是基于NEC红外通信协议而生产的HT6221遥控编码芯片,其采用的PPM编码方式,即脉冲相位调制。基于HT6221遥控芯片的遥控装置发送的数据格式如图2所示。数据帧由引导码、8位低位地址码、8位高位地址码、8位数据码、8位数据反码构成[2]。
引导码由9ms高电平和4.5ms低电平组成,代表一帧数据的起始,也即是帧头[3]。地址码前8位是低位,后8位为高位。所以,理论上NEC协议可以支持216个不同用户。数据码由8位二进制构成,理论上可知NEC协议支持28个用户指令。数据反码是由数据码波形取反而得,主要是用于数据校验,增强红外遥控的可靠性。
在NEC协议中,区别逻辑“0”和逻辑“1”是根据高低电平持续时间的长短,逻辑“0”用0.56ms高电平加上0.56ms低电平表示;逻辑“1”则用0.56ms高电平加上1.69ms低电平表示[4]。
通过对NEC协议的认识,知道对引导码和逻辑“0”逻辑“1”的识别是解码的关键[5]。红外线一体化接收头接收到光信号后,经一系列转换、放大电路后输出与发送信号倒向的数据信号,即发送端发送的高电平信号,红外线一体化接收头输出低电平信号,发送端发送的低电平信号,红外线一体化接收头输出高电平信号。所以,要能解码出正确的红外信号,关键是识别出9ms的低电平、4.5ms的高电平、560us的低电平、1690us的高电平、560us的高电平[6]。因此需要4个计数器分别对9ms、4.5ms、0.56ms、1.69ms进行计数判断,当然,因为不同遥控厂家精度不一定完全一致,这里给定计数器值的一定范围来实现以兼容不同厂家生产的遥控设备。部分Verilog HDL源程序如下:
图1:红外遥控系统工作原理图
图2:NEC数据帧格式
图3:红外解码状态机跳转图
图4:功能仿真波形
图5:ISSP抓取数据
红外解码状态机跳转图如图3所示,从解码流程分析,可以分为4个状态:
IDLE:空闲状态,等待一体化接收头信号到来。
因此,以整体整合一体化自主调控为核心,整合基础医学各学科内容,构建了系统整合课程。例如将呼吸系统、心血管系统和血液系统充分整合,将消化系统、内分泌系统、泌尿生殖系统充分整合,课程以整体整合的理念,将形态结构、功能和治疗紧密结合,密切结合临床应用,希望打破传统教学中学科间的壁垒,使医学知识更加系统与完整,以求打破学科界限以实现各学科、各系统知识点的横向整合,打通基础课程与临床课程界限,以实现融会贯通的纵向整合。
CHECK_T9:识别9ms低电平引导码到来,如果识别成功则继续识别4.5ms的高电平引导码,识别不成功则返回IDLE空闲状态。
CHECK_T4_5:识别4.5ms高电平引导码到来,如果识别成功则进入数据码解码状态REC_DATA,识别不成功则返回IDLE空闲状态。
REC_DATA:数据码解码状态,32位码字识别完成后,完成一次红外解码,回到IDLE空闲状态。
在QuatursII软件中编译无误后,设置好testbench脚本,然后调用OEM版本的仿真软件Modelsim-Altera进行功能仿真,可以看到部分仿真波形数据,如图4所示。从仿真波形看,一体化接收头输出数据iIR产生了一帧数据,在一帧数据传输完成后,解码完成标志信号Rec_ok产生一个单时钟高电平。Rec_ok产生一个单位时钟后,可以看到解码后的数据De_Data为1101_1010_0010_0101,高8位与低8位互为反码,与NEC协议数据码编码规则一致。将低8位转换为十六进制后为25H,与在激励文件中设置的数据一致。得出该设计结果符合设计的要求。
为了更进一步检验红外信号解码的正确性,将进行板级验证。首先在QuatursII中分配好引脚,进行全编译,通过JTAG配置数据下载到FPGA芯片中。然后启动QuatursII软件中的ISSP进行数据抓取,将数据显示格式调整为Hexadecimal,使用遥控器按“9”,FPGA解码后,ISSP抓取的B54AFF00h,如图5所示,从使用HT6221遥控芯片的遥控器键码图中,知道按键“9”对应键码为4AH,计算出其反码为B5H,与ISSP抓取的数据一致,符合设计要求。
本文介绍了红外遥控信号解码原理,分析了红外遥控系统的组成以及红外遥控信号的编码规则,并采用硬件描述语言Verilog HDL完成了红外遥控信号解码电路的实现。通过红外线接收头接收遥控器发送的遥控信号,用FPGA对接收信号进行解码。经过电路仿真,板级测试,符合设计要求。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!