基于VHDL语言和CPLD器件实现频谱电平动态显示电路的设计

描述

1.引言

LED点阵显示屏具有醒目、动态效应好、省电节能、亮度较高、用途广等优点,是现代 化城市的主要标志之一。利用VHDL硬件描述语言设计了以CPLD器件为核心的控制电路, 在LED点阵屏上实现了音频信号的频谱型电平动态显示, 而且具有显示模式多样化、易编程 修改,颜色可变、动态效果好等优点。

2.系统组成

本设计所用的EPM570T100C5采用了Altera公司的MAXII (Multiple Array Matrix II) 系列器件作为目标CPLD,采用双色8*8LED点阵作为终端显示器件,配合一些必需的外围器件 和电路,实现了对音频信号的选频、AD转换、各频段的电平显示模式控制、最终实现了音频 信号的频谱型电平的动态显示。本系统的基本组成如图1所示:

vhdl

2.1 音频输入与预处理模块

由于本设计采用8个频段电平显示,因此,笔者对音频信号进行了8个中心频率分别为 100Hz、200Hz、500Hz、1000Hz、1500Hz、3000Hz、6000Hz、12000Hz的带通电路的选频处理, 经电压保持电路后送至以ADC0809为核心的八通道8位输出数模转换电路,由于ADC0809具有 八个输入通道,受CPLD输出的列选信号控制,从而实现了LED的八根列选线(共阴极)分别 对应音频信号的8个中心频率,为频谱型电平显示实现了列选扫描控制。

由于列选信号的切换频率设定为200Hz,即频段切换周期为5ms,ADC0809 完全能够胜 任音频信号各频段直流电平的A/D 转换处理,因此,ADC0809 一直处于主动转换状态,无需 接受CPLD 芯片的转换控制。

2.2 核心控制模块

本设计的核心模块采用Altera公司的CPLD器件,型号为EPM570T100C5,它基于突破性的 CPLD架构,提供业界所有CPLD系列中单个I/O管脚最低成本和最小功耗。这些器件采用新的 查表(LUT)体系,采用TSMC的0.18μm嵌入Flash工艺,使其裸片尺寸仅为同样工艺器件的1/4, 而且包括非易失性Flash存储模块和JTAG控制电路。

本电路采用12MHz的有源晶振,为CPLD提供主时钟。EPM570T100C5芯片主要集成了分频、 列选扫描、按键去抖、数字电平信号的线性比较、显示模式控制、显示数据ROM等功能模块。

分频电路对12MHz时钟信号进行分频处理后得到200Hz的列选计数脉冲,送至74HC138译 码器的输入端和ADC0809的通道地址选择控制端,实现8*8LED点阵的列扫描动态控制和 ADC0809的通道选择控制。

按照人眼的视觉习惯,线性比较电路主要负责将A/D转换后的8位数据电平信号(共256 个组态)转换为8个梯级的数据信号,经显示模式控制电路处理后作为地址数送至显示数据 ROM,从而直接调用ROM中寄存的显示模式数据。

2.3 输出与显示模块

本设计采用双色(红色和绿色)8*8LED 点阵作为终端显示器件,在CPLD 的ROM 数据控 制下,8*8LED 点阵的每个像素点能产生红色、绿色、$(红绿混合色),能够再现颜色 的多样化。

由于一般的I/O 的驱动能力是有限的,CPLD 中的ROM 输出的显示数据需要经过驱动电 路后送至8*8LED 点阵的行选端(阳极),列选线(阴极)则受74HC138 输出的低电平译码 信号的控制。

3.软件设计

本设计采用Altera 公司的Quartus II 7.0 (32-Bit)集成开发系统,它具有简洁、合 理的操作界面,多语言支持的环境及其高效代码生成编译内核使得所有的设计输人、编译、 综合和仿真都可以在项目管理器中完成。另外,QuartusⅡ7.0 (32-Bit)支持几乎所有的FPGA 和CPLD 芯片,与MATLAB 和DSP Builder 结合可以进行基于FPGA 的DSP 系统开发,是DSP 硬件系统实现的关键EDA 工具,与SOPC Builder 结合,可实现SOPC 系统开发,是一款较受 用户欢迎的开发工具。

本文采用VHDL 语言作为硬件描述语言,采用自顶向下的层次化设计方法。为了突出各 模块之间的连接关系,顶层模块(Top.tdf)采用原理图方式对各个功能模块进行综合和调 用,如图2 所示。

vhdl

可以看出,软件设计的功能模块与系统组成中的核心模块非常接近。

3.1 分频与列选 扫描控制模块

分频模块的作用是将12MHz的有源晶振时钟信号通过软件设计的方法分频得到200Hz的 列选扫描时钟信号。 列选扫描控制模块的作用是设计一软件计数器,将200Hz内部信号转换为列选扫描信号 (SEL[2 downto 0]),仿真波形如图3所示。该信号送至74HC138以后能够动态选中LED点阵的 某一列(共阴极),送至A/D0809以后能够选择相应中心频率的音频信号进行数模转换。

vhdl

3.2 按键去抖模块

去抖的基本思路是设计一个移动寄存器,移位脉冲的周期约为5ms,当按键输入的低电 平信号持续三个以上的脉冲周期时才输出一个低电平脉冲,达到去抖的目的。部分程序如下:

--****设计一个3位移位D寄存器****--

process(CLK_200Hz)

begin

IF(CLK_200Hz'EVENT AND CLK_200Hz='1')THEN

Q<=Keyin&Q(2 downto 1);

END IF;

end process;

flag<=Q(2) or Q(1) or Q(0);

Keyout<='0'when flag='0' else--如果连续3个CLK后Q仍为低电平,则输出低电平'1';

END a;

3.3 线性比较模块

由于A/D转换后的8位数据电平信号共有256个组态,而终端显示模块为8*8LED点阵, 8*8LED点阵的每列显示梯级最多为8级,若加上全灭状态,8*8LED点阵的显示梯级状态共有9 种,因此,需要将A/D转换后的8位数据电平信号按照人眼的视觉习惯转换为9个梯级的数据 信号,本设计采用函数(function)的方法实现了信号转换功能,部分程序如下:

function DATA_YM (indata :std_logic_vector(7 downto 0))

return integer is

variable result :integer range 0 to 8;---比较函数输出begin

if indata<16 then result :=0;

elsif indata>=16 and indata<48 then

result :=1;

elsif indata>=48 and indata<80 then

result :=2;

elsif indata>=80 and indata<112 then

result :=3;

elsif indata>=112 and indata<144 then

result :=4;

elsif indata>=144 and indata<176 then

result :=5;

elsif indata>=176 and indata<208 then

result :=6;

elsif indata>=208 and indata<240 then

result :=7;

else

result :=8;

end if;

return result;

end function;

3.4 显示控制模块

本模块由显示模式控制、显示数据ROM模块组成。显示模式控制模块采用一个Process 进程语句循环定义了12种显示模式,具体显示的模式由按键按下的次数决定,即按键次数作 为内部计数信号,每种计数状态则对应一种ROM地址的起始值,从而实现了ROM地址能随按键 次数而变化的确定关系。

显示数据ROM模块将所有的显示模式数据以ROM表格数据的形式进行片内存储,以便根据 A/D转换后的数据信号直接调用该表格数据。本模块的功能仿真如图4所示:

vhdl

结果表明,该模块能够根据不同的地址值输出相应的显示模式数据,经驱动电路后送至 LED点阵的16个阳极,能实现相应的显示模式的自动切换或按键输入切换。

4.实物调试

笔者利用北京R&C百科融创公司的EDA实验箱,通过扩展导线与外部电路进行连接,将程 序下载到芯片EPM570T100C5进行实物模拟调试,得到如图5所示的显示模式位图。

vhdl

结果表明,本系统达到了设计要求,完成了音频信号的频谱型电平动态显示,具有正常 显示、倒影显示、单点显示、双点显示等四大类显示模式,每一大类显示模式又能实现单红 色、单绿色、$(红绿混合色)三种颜色的自动切换,动态视觉效果好等特点。

5.结论

本文基于VHDL硬件描述语言,利用CPLD器件EPM570T100C5和LED点阵屏实现了对音频信 号的频谱显示,并在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的 正确性,拓展了CPLD在显示领域的应用。若将设计思路进一步深入和扩展,则能完成更大屏 幕、更多像素的LED频谱显示,能够方便地应用于商店、商场、卡拉OK等公共场所的LED显示 区域,从而强化视觉效果。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分