基于CPLD和Embedded System的LED点阵显示系统实现(TIP127)
发布时间:2008/5/28 0:00:00 访问次数:738
摘要:采用自顶向下的设计思想,综合运用eda 技术、cpld技术和共享式双口ram,解决了大屏幕led点阵显示屏无闪烁显示的技术难题。给出了系统设计方法及实际电路。
关键词: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为一色的列选通控制信
摘要:采用自顶向下的设计思想,综合运用eda 技术、cpld技术和共享式双口ram,解决了大屏幕led点阵显示屏无闪烁显示的技术难题。给出了系统设计方法及实际电路。
关键词: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为一色的列选通控制信