当前位置:首页 > EDA > 电子设计自动化
[导读]现场可编程器件(FPGA和CPLD)等ISP器件无须编程器,利用器件厂商提供的编程套件,采用自顶而下的模块化设计方法,使用原理图或硬件描述语言(VHDL)等方法来描述电路逻辑关系,可直接对安装在目标板上的器件编程。它易学

现场可编程器件(FPGA和CPLD)等ISP器件无须编程器,利用器件厂商提供的编程套件,采用自顶而下的模块化设计方法,使用原理图或硬件描述语言(VHDL)等方法来描述电路逻辑关系,可直接对安装在目标板上的器件编程。它易学、易用、简化了系统设计,减小了系统规模,缩短设计周期,降低了生产设计成本,从而给电子产品的设计和生产带来了革命性的变化。

1、系统结构及工作原理

LED点阵显示控制的传统方式是采用单片机或系统机作为CPU来实现,当系统显示的信息比较多时,由于单片机的输入/输出端口(I/O)有限,采用此方式的成本将大大增加,系统和程序的设计难度也急剧增加;而且,当系统完成后修改、改变显示方式或扩展时,所需改动的地方比较大,甚至有可能需要重新设计;另外,在以显示为主的系统中,单片机的运算和控制等主要功能的利用率很低,单片机的优势得不到发挥,相当于很大得资源浪费。如果采用现场可编程逻辑器件作为CPU来设计控制器,选择合适的器件,利用器件

丰富的I/O口、内部逻辑和连线资源,采用自顶而下的模块化设计方法,可以方便地设计整个显示系统。

由于PLD器件的外围器件很少,且可以利用PLD的编程端口(可复用)进行在系统编程,使得系统的修改、显示方式的改变和扩展都变的非常简单、方便。

本系统采用单个16×16LED点阵逐列左移(或右移)显示汉字或字符,需显示汉字或符号的16×16点阵字模已经存放在字模存储器中。显示控制器由复杂可编程逻辑器件(CPLD)EPM7128SLC84-15来实现,系统组成原理框图如图1所示。

系统原理是PLD控制模块首先产生点阵字模地址,并从存储器读出数据存放在16位寄存器中,然后输出到LED点阵的列,同时对点阵列循环扫描以动态显示数据,当需要显示数据字模的列和被选中的列能够协调配合起来,就可以正确显示汉字或符号。

 


图1 点阵显示控制器原理框图

2、控制器设计及工作原理

从框图中可以看出,系统的关键在于控制器的设计。LED点阵显示数据地址的产生、点阵列扫描和需显示数据的配合以及点阵显示方式控制的实现都必须由控制器来实现。对单个16×16LED点阵显示控制器进行设计的顶层逻辑原理图如图2所示。

 


图2 控制器顶层电路原理图

原理图中包含5个模块,其中sequ模块产生读信号RDN和10位地址线(AD[9..0])中的最低位地址AD0,AD0和其它模块产生的地址配合,通过8位数据线(DATA[7..0])从存储器读出列高字节(AD0=1时)和低字节(AD0=0时),由于16×16点阵字模数据为32个字节,每列含两个字节即16位,它由HOUT[7..0]和LOUT[7..0] 来构成;模块add16由adclk提供一个慢时钟构成16进制计数器,它的输出送给addr16模块,为变模计数器addr16提供一个模,通过模的规律变化以控制点阵按照左移或右移等显示方式进行显示;模块decode4_16是一个4—16译码器,其输出ROUT[15..0]连接到LED点阵的列,可选中16×16LED点阵的某列,并显示sequ模块输出的点阵高低字节(字模)数据;模块addr16为点阵显示控制的核心,为了实现点阵汉字从右到左逐列移动显示,它由add16模块提供的模,在addr16内部构成两个变模计数器,其中一个用来产生读字模数据的地址AD[4..1],另外一个产生16×16LED点阵列扫描选择地址SUABAD[3..0],列扫描选择地址由decode4_16译码后输出;模块addr1为字选择计数器,其输出可以控制多块LED显示器的显示及其显示方式。

控制核心模块addr16采用AHDL语言设计,在开发软件MAX+plus Ⅱ10.2中实现,程序如下所示。

SUBDESIGN addr16

(

ckdsp,reset,in[3..0]:INPUT;

ad[4..1],subad[3..0]:OUTPUT;

)

VARIABLE

reg1[3..0]: DFF;

reg2[3..0]: DFF;

reg3[3..0]: DFF;

BEGIN

reg1[].clk=ckdsp;

reg1[].clrn=reset;

reg2[].clk=ckdsp;

reg2[].clrn=reset;

reg3[].clk=!ckdsp;

reg3[].clrn=reset;

reg2[].d=15-in[];

if reg1[].q>=in[] then

reg1[].d=0;

else

reg1[].d=reg1[].q+1;

end if;

ad[]=reg1[];

reg3[].d=reg1[].q+reg2[].q;

subad[]=reg3[].q;

END;

为了实现字符由右到左逐列移动显示,模块addr16内部设计了两个由add16控制的变模加法计数器,其中一个输出为ad[4..1](4位地址线),另一个输出为subad[3..0](列扫描控制线)。

从程序可以看出,当模输入in[3..0]=0时,ad[4..1]=0,而subad[3..0]=15,此时ad[9..5]亦等于零,AD0 在0和1间变化,即读出第一个字符的第一列并显示在LED的第16列;当模输入in[3..0]=1时,在记数脉冲AD0的作用下,ad[4..1]和 subad[3..0]都为二进制加法计数器,但ad[4..1]由0加到1返回到0,同时subad[3..0]由14加到15返回到14,此时 ad[9..5]仍然等于零,AD0在0和1间变化,即读出第一个字符的第一、二列并显示在LED的第15、16列…由此类推,可见当模块add16的加法记数输出由0变到15时,LED点阵字符将由左到右逐列移动显示。

以上程序在MAX+plusⅡ10.2上仿真验证结果如图3所示。由仿真结果可以看到,由计数模控制输入in[3..0]控制的两个变模计数器输出ad[4..1]和subad[3..0]的结果正确无误。

 


图3 addr16模块仿真时序图

在设计中,应注意模块sequ的记数时钟CLK频率的选择应远远大于模块add16的记数时钟adclk的频率,addr16的记数时钟为地址最低位AD0,字选择计数器的时钟脉冲为16进制模块add16的最高位OUT3。这样,ad[4..1]和subad[3..0]同步变化的足够快,在点阵 LED上可以看到完整的字符,并当add16记数到15产生进位返回到0时,字选择模块addr1获得一个记数脉冲并加1(上升沿触发),此后将显示下一个字符。

3、系统扩展

以上为显示单个字符系统,若要同时显示多个字符时,可以按照图1加入虚线框内部分,并且模块addr1设计成addr16的格式,把AD4作为 addr1的记数脉冲即可。按照EPM7128SLC84—15的资源(64个I/O口,2个全局时钟,1个全局复位和5个可复用专用端口,5000个等效逻辑门,192个内部寄存器),若不外部扩展译码器,可以有效控制约16个字符的显示;而采用外部译码器时,可以控制的字符数将大大增加,但须注意时钟 CLK的频率需要提高,以视觉不能看到整个字符的闪烁为基准。

4、结论

以上点阵字符显示系统在开发软件MAX+plusⅡ10.2上经仿真验证无误,并且已经成功地应用在煤矿电力监控系统的大屏幕显示中。另外,由于器件含有丰富的可编程连线资源,当系统显示方式和显示字符个数变化时,只需要通过开发工具修改控制器的控制逻辑和连接关系,再将修改完成的程序通过下载电缆下载到器件即可,而电路板可以不做任何改动,可见,系统的维护和修改是极其方便和容易的。当然,由于CLPD的驱动能力有限,当点阵LED显示亮度不够时,需要添加LED驱动电路以得到合适的LED显示亮度。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

新的 DLP® 控制器相比上一代尺寸缩小 90%,可助力家用投影仪、游戏投影仪和增强现实眼镜等消费类应用实现紧凑设计。 设计人员可以在尺寸大幅缩小的情况下复刻出沉浸...

关键字: 德州仪器 投影仪 显示控制器 HD

中国上海(2024 年 8 月 28 日)– 德州仪器 (TI)(纳斯达克股票代码:TXN)今日推出一款新的显示控制器,可适配超小型、高速且低功耗的 4K 超高清 (UHD) 投影仪。德州仪器的 DLPC8445 显示控...

关键字: 显示控制器 DLP

正弦信号发生器是一种用于产生正弦波信号的电子设备,广泛应用于通信、测试和测量等领域。该发生器主要由两部分组成:正弦波信号发生器和调频、调相、键控等信号产生部分。

关键字: 正弦波信号发生器 CPLD

CPLD(可编程逻辑器件)无刷直流电机驱动设计是一种基于硬件可编程逻辑电路的电机驱动方法。CPLD无刷直流电机驱动设计的主要目的是实现高效率、高可靠性和精确控制。以下是CPLD无刷直流电机驱动设计及原理的一些基本信息:

关键字: 无刷直流电机 CPLD 可编程逻辑电路

我们知道 Flash 读时序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡讲过《串行NOR Flash的Continuous read模式》,Continuous r...

关键字: CMD ADDR Flash

摘要:基于DSP和CPLD设计了CAN一1553B网关,选择了1553B总线作为电机控制系统的主总线,其主要用于操作系统与子控制系统之间的通信。为了更好地完成各节点之间的通信,采用CAN总线作为子系统总线,构建基于CAN...

关键字: 电机控制网络 1553B总线 CPLD

FPGA(Field Programmable Gate Array)是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服...

关键字: FPGA ASIC CPLD

在掌握了基于TCP的套接字通信流程之后,为了方便使用,提高编码效率,可以对通信操作进行封装,本着有浅入深的原则,先基于C语言进行面向过程的函数封装,然后再基于C进行面向对象的类封装。1.基于C语言的封装基于TCP的套接字...

关键字: 封装 通信 ADDR SOCKET

1.单线程/进程在TCP通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通信,但是在介绍TCP通信流程的时候,提供的服务器代码却不能完成这样的需求,先简单的看一下之前的服务器代码的处理思路,再来分析代...

关键字: ADDR INCLUDE 代码 TCP

摘要:针对传统基于单片机设计的出租车计费器系统的诸多不足,提出了一种利用VHDL设计的基于CPLD的出租车计费器系统的设计方案。该方案模拟了出租车的启动、停止、暂停、换挡等功能,并用动态扫描电路显示出租车所走的里程及其所...

关键字: VHDL CPLD 出租车计费器 QuartusII
关闭