APP下载

基于FPGA的红外控制LED点阵系统设计与实现

2020-02-28李营周鹏权循忠吕兆承陈帅

关键词:低电平遥控器解码

李营,周鹏,权循忠,吕兆承,陈帅

(淮南师范学院 电子工程学院,安徽 淮南,232038)

点阵显示屏因其具有使用时间长、价格低廉、功耗低等特点,被广泛用于广告宣传和信息显示。传统的控制电路多采用单片机实现,虽然编程简单,但整个电路实时性价比差,若采用专用集成电路控制,其无法升级且功能固定[1]。FPGA作为可编程处理器,具有容量大、周期短等特点,其编程控制电路较灵活,不依赖芯片,利用其设计的电路集成度高、实时性好、扩展性高[2]。因此,本文在Quartus下利用Verilog HDL实现各功能模块,并通过实验验证各模块,最终基于FPGA实现红外控制点阵屏显示不同汉字功能。

1 基本原理

1.1 通用的红外遥控系统构成

通用红外遥控系统其构成如图1所示,由图1可知该系统由两部分构成:第一部分是红外遥控器发射,第二部分是红外接收头。发射端采用PWM(脉冲宽度)或者PPM(脉冲位置)调制,接收端将接收到的信号解调后以二进制数字信号后输出[3-5]。发射端往往如图2类似的遥控器构成,内含键盘、红外编码芯片和LED红外发送器,接收端由光电转化放大器电路、红外解码芯片构成。

图1 通用红外遥控系统构成Fig.1 Composition of general infrared remote control system

图2 红外遥控键码图Fig.2 Infrared remote control key code diagram

1.2 红外通信协议(NEC协议)

文中采用HT6221 编码芯片的红外遥控键码图如图2所示。该芯片采用PPM进行编码,编码协议是NEC红外通信协议。该协议发送数据的数据帧定义如图3所示,由帧头、地址码和数据码以及数据反码构成。其中,数据帧的起始为引导码,它由9 ms 高电平和4.5 ms低电平的间隙组成。NEC编码协议发送数据0和1的脉冲间隔如图4所示,接收端接收信号后输出的波形与图4所示波形反相[6]。因此,文中红外解码模块的设计实际就是对图3发送数据的提取。发射数据时“0”用1.12 ms表示(0.56 ms的低电平+0.56 ms的高电平),“1”用2.25 ms表示(0.56 ms的低电平+1.12 ms 的高电平)。 接收数据时根据高低电平持续时间的长短不同,识别0和1数据。

图3 数据帧定义Fig.3 Data frame definition

图4 数据编码波形Fig.4 Data encoding waveform

1.3 LED点阵显示原理

系统仿真使用的16×16 LED 点阵由 4 块8×8的点阵块组成,由2个74HC595芯片和2个74LS138芯片构成,其原理图如图5所示,其中74LS138芯片实现点阵行控制,74HC595芯片实现列控制。

图5 16×16 LED点阵显示原理Fig.5 Principle of 16×16 LED dot-matrix display

图6 系统总体结构图Fig.6 The architecture of the whole system

2 系统方案设计

系统由FPGA芯片及其外围时钟、红外发射电路、红外接收电路和16×16 LED点阵显示屏等构成。各底层模块关系框图如图6所示,包含红外解码模块、字模读取控制模块、74HC595驱动模块,最终通过顶层模块声明输入输出端口,并调用各底层模块构建完成系统功能。

系统设计中首先在Quartus下使用Verilog HDL对各个子模块编程实现,并分别对其进行仿真与调试以保证其功能正确性;然后,将各子模块集成为一个整体系统,并将其下载到FPGA芯片验证其功能[2]。

2.1 红外解码模块设计(Ir_Module.v)

根据1.2节相关理论可知,接收头接收到信号后需解码,其中一帧数据的解码过程如图7所示。本模块采用有限状态机设计完成数据解码,最终完成的状态迁移图如图8所示。图中各状态的含义如下。

图7 一帧数据的解码过程图Fig.7 1 Decoding process diagram of frame data

图8 解码过程状态迁移图Fig.8 State migration diagram of decoding process

1)IDLE:解码空闲状态,等待红外一体化输出信号IR下降沿到来。

2)LEADER_BIT状态和LEADER_T4_5状态:分别识别9 ms低电平和4.5 ms的高电平引导码,若识别成功则进行读码状态DATA_GET,否则分别返回解码空闲状态。

3)DATA_GET状态:读数据状态,连续读取共 32 位的地址和数据信号,若读完或读取过程发生错误,则返回空闲状态,重新识别。

红外遥控解码模块接口框图功能如图9所示,其中CLK_50M和RST_N分别为系统输入50 MHz时钟和复位信号,IR_DADA为红外遥控器按键输入信号,遥控器8位的按键解码值o_ir_data[7:0]数据送入字模读取控制模块的按键输入端口key[7:0]。

图9 Ir_Module模块接口框图Fig.9 Interface block diagram of Ir_Module module

2.2 字模读取控制模块设计(led_control.v)

系统点阵屏由2块74LS138芯片和2块74HC595芯片构成,汉字字模的获取及存储见文献[2]。本模块接口框图如图10所示,功能是连接红外解码模块(IR_Module)和74HC595驱动模块(hc595_driver),通过Ir_Module模块输入数据key[7:0]控制16×16点阵内部的行地址a,b,c和d4个端口,并将汉字字模中的列数据col[15:0]送入74HC595驱动模块。

图10 led_control接口框图Fig.10 Interface block diagram of led_control

图11 hc595_driver接口框图Fig.11 Interface block diagram of hc595_driver

2.3 74HC595驱动模块设计(hc595_driver)

本设计16×16点阵芯片内部含有74HC595芯片,该芯片具有串并转换功能。为了驱动74HC595芯片,需设计其对应驱动模块,该模块的接口框图如图11所示,其中输入端口sel[7:0]和seg[7:0]连接字模读取控制的输出col[15:0]。由于74HC595芯片在SH_CP的上升沿数据输入移位,在ST_CP的上升沿数据进入存储寄存器[7-12],故hc595_driver模块中输出端口DS控制数据的串行输入,输出端口SH_CP和ST_CP分别实现相应功能,最终利用使能端口en,当其为低电平时,相应的存储寄存器中的汉字字模列数据输出到总线,传输完成。

2.4 顶层模块设计(top)

顶层模块的作用是连接上述3个底层模块,同时调用ROM存储的汉字信息,最终实现系统要求。系统最终生成的RTL图如图12所示。由图12可知系统由输入时钟clk和复位端口rst_n,74LS138输出端口A,B,C和D和点阵输出ds、sh_cp、st_cp等构成,该RTL图功能与图6所示的系统总结构图功能一致。

图12 系统RTL图Fig.12 RTL diagram of the system

3 系统仿真实验

3.1 系统开发工具

系统开发工具包括:1) 仿真软件(QuartusⅡ13.1);2) 硬件描述语言(Verilog HDL);3)LED点阵屏;4)红外遥控器及接收头;5) FPGA核心板 (EP4CE6E22C8)。

3.2 系统时序信号仿真

系统设计完成后编写测试文件对红外解码模块进行时序仿真,且仿真时假定红外遥控器发送的数据为16’h24。仿真结果如图13所示,图中的Clk是50 MHz输入时钟信号,Rst_n为输入复位信号,iIR为红外遥控器发送的数据,o_ir_data为解码后的输出数据,i为计数器。由图13中的分析线可知:当红外遥控器发送数据iIR为16’h24时,首先需对数据中的1和0编码,对应的时间分别是2.25 ms和1.12 ms,且此时16’h24对应的8 bit数据反码是8’b_1101_1011,与1.2节中数据编码和数据帧定义相关要求一致,说明编码完全正确。同理,16’h24解码后应输出数据为8’b0010_0100,与图中o_ir_data输出完全一致。综上说明红外解码模块可完全实现相关功能。

图13 系统红外解码模块时序仿真图Fig.13 Time series simulation diagram of infrared decoding module of system

3.3 系统仿真结果

当红外遥控器按下为1键时,点阵显示的汉字为“淮南师范学院”,当按下2键时,点阵显示的汉字为“电子工程学院”。硬件显示结果如图14所示。其他按键效果类似,系统功能达到预期目的。若要显示其他汉字组,则可按照文献[2]中方法定制类似LPM_ROM。

图14 硬件显示效果图Fig.14 Hardware display rendering

4 结语

本文使用红外遥控器和16×16 LED显示屏,利用自顶向下层次化建模思想,设计出一种基于FPGA的红外遥控汉字显示器。仿真结果表明,利用该系统可实现使用红外遥控器控制汉字显示。本文研究结果为红外遥控控制汉字显示提供了一种新思路,但系统仅能显示ROM内预先存储的汉字,所显示汉字个数有限,因此,今后将进一步拓展和完善本系统功能。

猜你喜欢

低电平遥控器解码
《解码万吨站》
我是“糊涂虫”
时间遥控器
爸妈有个“遥控器”
解码eUCP2.0
一种实用的电脑接口判断方法
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
行走的飞行遥控器
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图