基于cyclone EP1C6 的LED大屏设计方案
时间:07-22
来源:互联网
点击:
2.4 基于FPGA的独立扫描单元
点阵模块是红色LED共阴模块,4块16×16点阵模块连接成64×16点阵作为一个单元进行控制,整个大屏有3×8个这样的单元。将LED的公共接口作为行控制,行扫描信号同时控制着一行中多个LED的通断,以每个LED流过的电流为10mA计算,一个单元有64列,行扫描信号至少得提供1A左右的电流,因此,在扫描信号送到LED之前必须经过一个三极管以提高驱动能力。三极管选用高速中功率达林顿管TIP127,它的集电极吸收电流最大可达5A,保证行驱动能力。由于点阵的每行需要一个三极管驱动,所以一个64×16的单元块需要16个TIP127。行扫描电路采用带锁存的移位寄存器74LS595来控制,每片74LS595控制 8行点阵的选通与否。由于采用的扫描方式为每隔8行数据同时扫描,一片74LS595每次只能点亮一行的数据,每行点亮的时间相等即占空比为1/8,因此屏幕亮度非常均衡。
列扫描电路的功能是把要显示的行对应的列数据送到LED的阴极,列扫描也是由74LS595控制的。本文设计的屏幕的硬件结构特点是:每8行LED的阴极是连在一起的,每片74LS595控制8列数据,每隔8行同时扫描,对于一个64×16的点阵单元,共需要8×2个74LS595控制,每行上的74LS595都是级联起来的。每完成一次列扫描,FPGA都要输出一个锁存信号给74LS595以锁存列数据,接着输出行扫描信号点亮对应的行,再对行扫描数据进行锁存,如此循环往复实现整个大屏幕的动态实时显示功能。
由于FPGA在行列扫描之前已经对数据进行并串转换,数据都是串行输出的,每隔8行同时扫描,整个屏幕行扫描只需占用1个I/O口,列扫描只需占用16个I/O口,从而大大减少了对I/O的占用。采用FPGA设计扫描逻辑,扫描的关键不在是硬件连接,而是对芯片资源的配置。
3 软件设计
系统的软件设计由三部分组成:上位机图象/文字编辑与发送软件设计,单片机控制单元软件设计,FPGA控制单元软件设计。
3.1 上位机软件设计
上位机的图象/文字编辑与发送软件由Visual Basic编写,只须在界面中将屏幕大小设置为192×128,串口选择COM1或COM2,波特率设置为9600,设置每屏起始地址和要发送的屏数,调入包含相关信息的文件,点击“发送”按钮即可。该软件适用于任何大小彩色/单色屏,提供了丰富的图形/文字编辑﹑修改功能,也可以直接调用WINDOWS中的16色画图文件(*.bmp)。
3.2 单片机控制单元软件设计
单片机控制单元的软件设计主要实现三大功能:串行数据接收和存储、数据输出和图象显示方式变换。串行数据接收部分主要是通过UART中断接收并保存数据。图象显示方式变换部分实现图象的变换如上移、下移、左移、右移等以实现丰富多彩的图象显示效果。单片机软件设计是在凌阳科技的集成开发环境unSP IDE下完成的,主要由一个C文件和一个ASM文件组成,C文件包括5屏数据的循环送显和图像显示方式变换,汇编文件包括中断服务子程序和其他函数调用的子程序。
3.3 FPGA控制单元软件设计
FPGA控制单元的设计是在QUARTUSII环境下完成,并用硬件描述语言VHDL描述,主要功能是配置双口RAM、设计扫描控制电路。该单元的软件设计模块如图5所示。
图5 FPGA控制单元软件设计框图
双端口RAM的配置完全通过在QUARTUS环境中设置菜单实现,配置完成后将自动生成一个VHDL文件,描述双口RAM的内部逻辑功能,双口RAM在整个程序设计作为一个元件调用。
基于FPGA的扫描模块的软件设计如下:首先对FPGA总时钟clk进行64分频得到clk1,clk1的低电平其间FPGA读取双口RAM的数据,每4个clk周期读一个16位的数据,共读出16个数。clk1的高电平期间FPGA进行列扫描,每2个clk周期同时输出16个数的1位,共32个周期将这16个数由并转串输出到16根数据线上,由于单片机写RAM的速度低于FPGA对数据的处理速度,剩下的32个clk周期用于等待单片机完成一个区的写操作。12个clk1周期后,一行的数据全部扫描完毕,FPGA输出一个列锁存信号给74LS595锁存这些数据,同时输出行扫描信号和行锁存信号,接着扫描第二行,由于采用16根数据线进行隔8行扫描,整个LED电子屏128行只要完成8次行扫描即可,时序如图6所示。
图6 扫描时序图
点阵模块是红色LED共阴模块,4块16×16点阵模块连接成64×16点阵作为一个单元进行控制,整个大屏有3×8个这样的单元。将LED的公共接口作为行控制,行扫描信号同时控制着一行中多个LED的通断,以每个LED流过的电流为10mA计算,一个单元有64列,行扫描信号至少得提供1A左右的电流,因此,在扫描信号送到LED之前必须经过一个三极管以提高驱动能力。三极管选用高速中功率达林顿管TIP127,它的集电极吸收电流最大可达5A,保证行驱动能力。由于点阵的每行需要一个三极管驱动,所以一个64×16的单元块需要16个TIP127。行扫描电路采用带锁存的移位寄存器74LS595来控制,每片74LS595控制 8行点阵的选通与否。由于采用的扫描方式为每隔8行数据同时扫描,一片74LS595每次只能点亮一行的数据,每行点亮的时间相等即占空比为1/8,因此屏幕亮度非常均衡。
列扫描电路的功能是把要显示的行对应的列数据送到LED的阴极,列扫描也是由74LS595控制的。本文设计的屏幕的硬件结构特点是:每8行LED的阴极是连在一起的,每片74LS595控制8列数据,每隔8行同时扫描,对于一个64×16的点阵单元,共需要8×2个74LS595控制,每行上的74LS595都是级联起来的。每完成一次列扫描,FPGA都要输出一个锁存信号给74LS595以锁存列数据,接着输出行扫描信号点亮对应的行,再对行扫描数据进行锁存,如此循环往复实现整个大屏幕的动态实时显示功能。
由于FPGA在行列扫描之前已经对数据进行并串转换,数据都是串行输出的,每隔8行同时扫描,整个屏幕行扫描只需占用1个I/O口,列扫描只需占用16个I/O口,从而大大减少了对I/O的占用。采用FPGA设计扫描逻辑,扫描的关键不在是硬件连接,而是对芯片资源的配置。
3 软件设计
系统的软件设计由三部分组成:上位机图象/文字编辑与发送软件设计,单片机控制单元软件设计,FPGA控制单元软件设计。
3.1 上位机软件设计
上位机的图象/文字编辑与发送软件由Visual Basic编写,只须在界面中将屏幕大小设置为192×128,串口选择COM1或COM2,波特率设置为9600,设置每屏起始地址和要发送的屏数,调入包含相关信息的文件,点击“发送”按钮即可。该软件适用于任何大小彩色/单色屏,提供了丰富的图形/文字编辑﹑修改功能,也可以直接调用WINDOWS中的16色画图文件(*.bmp)。
3.2 单片机控制单元软件设计
单片机控制单元的软件设计主要实现三大功能:串行数据接收和存储、数据输出和图象显示方式变换。串行数据接收部分主要是通过UART中断接收并保存数据。图象显示方式变换部分实现图象的变换如上移、下移、左移、右移等以实现丰富多彩的图象显示效果。单片机软件设计是在凌阳科技的集成开发环境unSP IDE下完成的,主要由一个C文件和一个ASM文件组成,C文件包括5屏数据的循环送显和图像显示方式变换,汇编文件包括中断服务子程序和其他函数调用的子程序。
3.3 FPGA控制单元软件设计
FPGA控制单元的设计是在QUARTUSII环境下完成,并用硬件描述语言VHDL描述,主要功能是配置双口RAM、设计扫描控制电路。该单元的软件设计模块如图5所示。
图5 FPGA控制单元软件设计框图
双端口RAM的配置完全通过在QUARTUS环境中设置菜单实现,配置完成后将自动生成一个VHDL文件,描述双口RAM的内部逻辑功能,双口RAM在整个程序设计作为一个元件调用。
基于FPGA的扫描模块的软件设计如下:首先对FPGA总时钟clk进行64分频得到clk1,clk1的低电平其间FPGA读取双口RAM的数据,每4个clk周期读一个16位的数据,共读出16个数。clk1的高电平期间FPGA进行列扫描,每2个clk周期同时输出16个数的1位,共32个周期将这16个数由并转串输出到16根数据线上,由于单片机写RAM的速度低于FPGA对数据的处理速度,剩下的32个clk周期用于等待单片机完成一个区的写操作。12个clk1周期后,一行的数据全部扫描完毕,FPGA输出一个列锁存信号给74LS595锁存这些数据,同时输出行扫描信号和行锁存信号,接着扫描第二行,由于采用16根数据线进行隔8行扫描,整个LED电子屏128行只要完成8次行扫描即可,时序如图6所示。
图6 扫描时序图
LED 电路 单片机 FPGA 总线 电子 CPLD Altera 电压 仿真 DAC 看门狗 电流 三极管 VHDL 相关文章:
- OLED显示器及其馈电技术(08-13)
- 基于S3C44B0X的大型LED显示系统设计(08-14)
- 利用EL7516制作高效、高电流的白光LED驱动器(08-14)
- OLED显示模块与C8051F单片机的接口设计(08-14)
- 白光型发光二极管(WLED)之背光设计兵法(08-26)
- LCD和OLED在车载显示的应用 (08-26)