基于CPLD和Embedded System的LED点阵显示

发布者:devilcore最新更新时间:2011-08-06 关键字:CPLD  LED  嵌入式系统 手机看文章 扫描二维码
随时随地手机看文章

   摘要:采用自顶向下的设计思想,综合运用EDA 技术、CPLD技术和共享式双口RAM,解决了大屏幕LED点阵显示屏无闪烁显示的技术难题。给出了系统设计方法及实际电路。

   LED点阵显示屏是显示公共信息的一种重要显示终端,其中大屏幕LED点阵显示屏在许多场合得以应用。大屏幕显示所采用的技术比中小屏幕显示难度更大,因为其屏幕大、LED点数多,要求在极短的时间内刷新每个点,使得其扫描速率必须非常高,所以只有设计合理的控制电路才能达到这个要求。本文着重解决大屏幕LED点阵显示这一技术难题。通过采用自顶向下的设计思想,综合运用高速CPLD、双口RAM等技术和芯片,设计出了大、小屏幕皆适合的显示控制电路。特别是利用单片机、CPLD与双口RAM的无缝结合,将复杂的任务分配给不同的硬件处理,满足了对实时性的要求。本系统不仅给大屏幕LED点阵显示提供了优良的控制电路,而且为CPLD器件和EDA技术提供了切实的应用实例。其中,共享双口RAM的应用,为高速总线与低速总线的通信提供了一个新的解决方案。

1 硬件设计
   显示系统由信号处理电路和扫描电路两大块构成,其系统原理框图如图1所示,实际电路框图如图2所示。微处理器MCU采用8 位单片机AT89C51,它通过串口接收来自PC机的待显示数据。由于PC机串行总线标准RS232 的逻辑电平与单片机电路使用的TTL电平不同,所以PC机与MCU之间的通信数据必须经过RS232 电平转换芯片MAX232进行转换。从PC机接收到的数据存放在8K字节的电可擦写内存EEPROM 28C64中,这样可方便地随时修改待显示的信息,并且在掉电情况下不至于丢失数据。由于系统软件要进行大批量的数据处理,所以扩充了单片机缓存区大小,采用了8K字节的外部静态RAM 6264。

1.1 双口RAM的应用
      采用双口RAM是本设计的一个主要特色。一般的RAM(如6116)只有一套地址总线、数据总线和控制总线,在同一时间只能执行同一总线操作。而标准双口RAM有左侧和右侧两套地址总线、数据总线和控制总线,可供两套总线对其进行访问。在本系统中,单片机通过共享的双口RAM IDT7132与CPLD通信,单片机将数据写入IDT7132中,而CPLD则从IDT7132中读取数据并通过扫描逻辑电路输出出去。

      由于CPLD扫描模块可以达到很高的扫描速率,而单片机的运行速度则相对较低,并且两个模块间需要有大量的数据交换,为此选择双口RAM芯片IDT7132SA35JS,它的速度等级是35ns,完全满足两个模块实时通信的要求。双口RAM是两个数据模块间的数据信道,必须是共享的,它在本设计中起到了关键作用。

1.2 基于CPLD的独立扫描模块
      显示部分的点阵模块采用双色LED共阴点阵模块(实际上可显示红、黄、绿三色)。 8 块8×8点阵模块连接成32×32点阵。为易于控制,将公共接口作为行控制,且行的接地引脚经过一个开关三极管接地(设计中简称行扫描管),实现对相应列的控制。因为一个行扫描管同时控制着一行中多个LED的通断,所以它承载较大电流。以每个发光二极管流过的电流为10mA计算,一个128列的点阵屏中,每个行扫描管所承受的电流是10mA×128=1.28A,为此选用高速中功率达林顿管TIP127,它的集电极吸收电流最大可达5A,保证了行的驱动能力。由于显示点阵的每一行都需要用一个三极管来控制,所以32×32点阵共需要32个TIP127。

     行扫描电路采用通用数字电路译码输出来控制。在32×32点阵显示时,扫描输出需要大量的I/O埠,而ATMEL公司生产的CPLD 芯片ATF1508AS15JC84(与ALTERA公司的MAX7128SLC84-15功能及封装等完全兼容)的外部I/O埠不够用,所以采用两片CPLD,一片专用于行扫描,另一片用于读取双口RAM IDT7132中的数据并进行列扫描。

    列扫描电路的功能是在选中某行时送该行对应的列数据,由于采用的是8位微处理器,一次只能送一个字节的数据,即每次只能扫描8列。本设计中,采用8550三极管矩阵驱动方式,从而节省了大量控制信号引脚资源。

   独立扫描模块的功能是以双口RAM 为中介将单片机送来的资料在LED 点阵显示屏上显示出来,其电路原理图如图3所示。单片机总线将处理好的待显示数据存放在U5(双口RAM IDT7132SA35JS中,然后U6(CPLD芯片ATF1508AS15JC84,用Verilog HDL语言编写其总线读逻辑)读取存放在U5中的待显示数据并驱动显示屏。整个显示屏为128×32点阵,一次扫描一个字节即8位,为此全屏显示需要128×32÷8=512字节。将地址线A9R、A10R 接地,这样只允许访问U5中的低512K 字节。 CA0~CA8是CPLD 输出到U5中的地址总线,CD0~CD7是从U5读出数据的数据总线。 J1是行扫描信号接口,CH0~CH4 为行扫描计数器输出信号,时钟信号可从CLK 输出给行扫描计数器。 J2为列扫描控制信号V0~V7输出接口。 DR0~DR15为一色的列选通控制信号输出,由于I/O端口引脚不够,所以另一色的列选通信号采用译码电路译码输出,用J3的四线输出。 CON1为JTAG 接口,J6为时钟源选择接口,可接单片机的ALE信号,也可接有源晶振CR2的输出。有源晶振CR2相当于一信号产生电路,只要其2脚接地,4脚接电源,3脚就有额定的输出波形。

由于采用CPLD 设计扫描逻辑,所以扫描逻辑的关键不再取决于硬件连接,而是取决于芯片的设计。

1.3 基于单片机的通信与信号处理电路
本系统采用ATMEL公司的8位单片机AT89C52,主要完成数据处理、存储和通信功能,其原理图如图4所示。

U4是AT89C51单片机;U3是地址锁存器,用来锁存单片机的低8位地址信号。因为要显示的数据量很大,特别是当设计复杂的显示效果时需要处理的资料量更大,而AT89C51内部缓存容量不足,所以扩展外部RAM,采用容量为8K字节的HM6264,即U7。 U2是容量为8K字节的EEPROM 28C64,用来存储字模数据,而不用作程序内存。U5是双口RAM,U1是将RS232电平转换为TTL电平的电平转换器。

PC机将欲显示的字或图形的点阵数据通过串口送到单片机,单片机将其存储在EEPROM(U2)中,然后再根据显示要求对这些数据进行特定的处理,处理完后存储在双口RAM(U5)的特定地址,供扫描模块扫描取数进行显示。为了便于编写串行通信程序,使用振荡频率为11.0592MHz的晶振CR1 和C5、R1及SW1组成的复位电路。

2 软件设计和编写
2.1 主控电路CPLD芯片设计与调试

主控电路的功能是读取双口RAM中的数据并通过译码逻辑电路将数据显示在LED点阵显示屏的特定位置上。因为只用到单片机的一部分功能,所以使用CPLD芯片将MCU中的总线读控制器及其外围译码逻辑电路集成在一起。如若采用传统方案,就必须采用多片芯片;而使用CPLD后,只用一片芯片就可以实现所要的功能。总线读控制器是产生时序的电路,需根据内存的读时序进行设计,只有保证正确的时序才能读出数据。双口RAM的读写时序和普通RAM的读写时序基本相同,如图5所示。 CE(芯片使能)是片选信号,在片选信号从高变低之前必须输出地址信号给双口RAM,然后再用读信号去控制OE(输出使能)端,在OE信号由高变低后,数据总线上的数据有效,即可控制读出数据并译码输出。

复杂的时序电路用硬件描述语言描述,一般是用有限状态机来描述。有限状态机是时序电路通用模型,任何时序电路都可以表示成有限状态机。从本质上讲,有限状态机是由寄存器与组合逻辑构成的时序电路,各个状态之间的转移总是在时钟的触发下进行的。针对图5所示的读时序,可列出如图6所示的各种状态的转换图。用Verilog HDL语言描述时可用带有always语句的case语句建模,状态信息存储在寄存器中,case语句的多个分支包含每个状态的行为。在这里将读时序分为S0、S1、S2、S3四个状态,其工作方式如下:

步骤S0在RAM的片选CE 使能之前输出地址;

步骤S1选中RAM,输出读信号;

步骤S2行计数器输出,读出RAM的数据并反相输出;

步骤S3片选禁止,读禁止,地址计数器加1。

译码输出逻辑电路主要是提取地址计数器的计数输出。在某个状态下,行地址计数器输出低5位数据,位译码输出高4位数据并译码输出16个位选信号。

时序电路中一般留有复位信号,当复位端为1时,地址计数器复零,地址输出复零,片选。读控制信号置1,使状态机回到状态S0。

2.2 行译码CPLD芯片设计
行译码器的功能较主控电路来讲相对简单,它是将主控电路的行计数器输出的6位二进制数据译成32行的行选通信号,去控制行驱动管驱动行输出。这是一个纯组合逻辑电路,使用Verilog HDL 语言描述的always语句和case 多分支语句即可实现此功能。

2.3 单片机的C程序设计
在本系统中,单片机的功能主要是负责通信与数据处理。通信即通过串口接收来自PC机的数据并存储在EEPROM中;数据处理即从EEPROM中取出数据并根据要显示的效果进行软件处理,再存放在双口RAM中。在本系统中,因单片机及外围电路只负责通信和数据处理,对实时性要求不高,因此用前后台系统进行软件设计就能达到要求。本系统采用嵌入式操作系统RTX51TNY(KEIL C平台自带的免费的微实时内核)。软件主要由PROCESS.C和SERIAL.C两个档组成。PROCESS.C包含三个任务:任务0,初始化;任务1,静态显示;任务2,左移显示。 SERIAL.C是串口中断程序$静态显示的算法较简单,只要将EEPROM中的字模数据存放到双口RAM中的特定位置即可。左移显示则需要将字模数据每个字节左移,然后存放在双口RAM的特定位置。

关键字:CPLD  LED  嵌入式系统 引用地址:基于CPLD和Embedded System的LED点阵显示

上一篇:一种协议栈设计和实现
下一篇:谷歌正式发布Android 3.2系统及SDK工具

推荐阅读最新更新时间:2024-03-30 21:46

号称秒杀OLED和液晶 Micro LED技术真能行吗?
  毫无疑问近两年显示行业的风头全部都被 OLED 与量子点所霸占,除了在大尺寸领域的电视巨头们纷纷研发使用之外,手机、显示器等中小尺寸领域 OLED 和量子点也是当仁不让。当人们都认为 OLED 与量子点将会统治未来3~5年的显示领域时,一项名为 Micro LED 的显示技术却横空出世,号称要颠覆目前整个显示行业,秒杀OLED和液晶。下面就随手机便携小编一起来了解一下相关内容吧。    谁在为 Micro LED 造势?   要说对 Micro LED 技术最为积极的人,非苹果莫属。其实,Micro LED这项技术正是在苹果收购了LuxVue Technology之后才开始真正进入人们的视野。苹果非常善于利用自己的产
[手机便携]
基于TPS61040/41的白光LED驱动器设计
TPS61040/41是一款高频低功耗升压转换器,专门用于中小型LCD偏压和白光LED背光照明。使用时可由两节镍氢/镍镉电池或单节锂离子电池产生高达28V的输出电压。TPS61040/41的开关频率高达1MHz,功耗低(静态电流典型值28μA)。 封装及引脚功能 TPS61040/41采用SOT-23-5或SON-6封装如图1所示,其引脚功能如表1所示。 图1 TPS61040/41采用SOT-23-5或SON-6封装 表1 引脚功能表 典型应用电路 由图2可知,TPS61040/41输入电压范围为1.8~6V,输出电压可达28V.当输入端加入输入电压VIN时,TPS61040/41内部MOSFET开关Q
[电源管理]
基于TPS61040/41的白光<font color='red'>LED</font>驱动器设计
利用供电线通讯实施的LED照明控制
1 引言   LED照明设备能容易提供丰富鲜艳的色彩,即同样的灯泡能给出暖白光、冷白光或光谱中的任意色彩,CFL灯目前却不能做到。LED 设备还可通过通信功能智能地执行诊断和自动功能执行更好的控制。考虑到所有照明设备都要连接供电线将电转换成光,所以许多制造商均转向将供电线通信 (PLC: Powerline Communication) 接口作为主要的通信与控制链接。   2 电力线通讯   众所周知,供电线是在全球建起的最大的铜质基础设施。房间或者办公室的每一个角落都有电源插座,形成了一个全封闭的网络;任何信息的链接通讯,从基本的颜色、亮度到更复杂的信息,如背景(不同设备预设的色彩图案)和幻变(不同彩色间的转化过渡),不
[电源管理]
利用供电线通讯实施的<font color='red'>LED</font>照明控制
用单片机和LED灯阵制作的贪吃蛇趣味小游戏
最近几天天气总是在下雨,对于不爱玩手机游戏的我来说过得太无聊了。 想想咋么才能让时间过得快一点呢,这个时候我看到电视里的一个广告类似贪吃蛇的,于是抱着试试看的想法 用单片机和LED灯阵做了一个贪吃蛇的游戏 基本功能都有,玩起来体验还可以,总算可以充分利用时间了。 下面我就把制作过程和文件分享给大家 用一个18650电池供电,用一个单片机进行控制 名称:8X8点阵贪吃蛇 功能: 按右键开始、中间可以选择速度1最慢9最快(飞一般的感觉) 速度2和9,哎呀呀,自己撞死了(可以穿墙,撞到自己的身体死亡) 按中间确定可查看吃到了多少 暂停 废话不多说先上实物图 实物图1 实物图2 焊接实物图1 由于时间比较急线
[单片机]
用单片机和<font color='red'>LED</font>灯阵制作的贪吃蛇趣味小游戏
LED灯高功率因数驱动器的设计方案
随着LED灯在众多领域里的应用,譬如商业照明和家庭照明,LED照明已全面有取代传统白炽灯和荧光灯之势,因为相比传统照明,LED照明尽管在价格上偏贵于传统照明,但它具备节能,光效高,寿命长,无污染等显着优点,所以,LED照明能在短时内被市场认同。另外,随着能源资源无节制地消耗,带有节能性能的照明产品已受到政府组织的推广,一些国家的能源组织也有发布相关政策,补贴满足其标准的照明产品。如商业照明产品功率因数大于0.9,家用大于0.7就是美国能源之星的强制要求之一。所以在关注LED灯高光效,长寿命特点的同时,在保证低元器件成本的前提下,设计出具有高功率因数且性能高可靠LED驱动方案变得尤为重要。 1 LED照明的发展概述 消费者从传统照明
[电源管理]
<font color='red'>LED</font>灯高功率因数驱动器的设计方案
LED红外发射二极管介绍
砷化镓、镓铝砷管芯及多种结构形式的红外发射二极管。 产品用途: 1、 适用于各类光电检测器的信号光源。 2、 适用于各类光电转换的自动控制仪器,传感器等。 3、 根据驱动方式,可获得稳定光、脉冲光、缓变光,常用于遥控、报警等方面。 产品特点: 1、 采用具有反射功能的结构形式,能将管芯侧面的红外线集中,产生较强的光功率。 2、 具有高输出光功率,低驱动电压。 3、 易与晶体管集成电路相匹配。 4、 体积小、重量轻、结构坚固耐震、可靠性高。 5、 金属玻璃封装的器件,具有玻璃表面耐磨性好、光洁度高、耐焊接、耐高低温性能好等特点。 使用注意事项: 1、 注意管子的极性,管子不要
[电源管理]
<font color='red'>LED</font>红外发射二极管介绍
LED食人鱼封装全解析
食人鱼 LED ,是一种封装,正方形的,透明树脂封装,四个引脚,负极处有个缺脚的LED。食人鱼是散光型的LED,发光角度大于120度,发光强度很高,而且能承受更大的功率。由于其显示性能的优越性,被一些封装企业引入LED显示屏封装。   该LED显示屏封装新技术优点:   食人鱼系列显示屏,是一款介于传统直插灯和传统室内表贴灯之间的三合一直插灯,相对于传统户外246、346直插灯做成的屏,食人鱼系列 5353的亮度高、白平衡一致性极好、视角大、红绿蓝灯芯光衰同步、金丝焊线、故障率低特点,这些都是食人鱼系列最大的亮点。由食人鱼5353所完成的全彩显示屏户外防护等级可达IP65以上,从正/侧面看,消除了246、346、546灯珠一
[电源管理]
<font color='red'>LED</font>食人鱼封装全解析
“免费”生成两个可编程LED闪光灯方法与步骤
现在有很多使用晶体管、运算放大器、555定时器、甚至继电器设计LED闪光灯的方法,驱动LED闪光灯的专用IC也已出现,如Microsemi Integrated Products公司的LX1990...93。 但所有这些方法都需要外部硬件,而这意味着额外的成本和PC板空间。 当某个设计已经使用了一个微控制器(MCU),我们就很容易借助它用软件开发一个LED闪光灯,而且不需要任何外部元件。这样一个解决方案极其灵活。你可以通过编程设定任一闪动周期和持续时间,范围可从零点几秒到几小时。在两个或以上LED情况下,你可以选择任何闪光时序,同时闪或逐个闪等。而你只需要一个或几个闲置的MCU 管脚。 我们可以使用任何MCU。在设计中,我们使
[电源管理]
“免费”生成两个可编程<font color='red'>LED</font>闪光灯方法与步骤
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved