一种基于MCU+FPGA的LED大屏幕控制系统的设计

发布者:心灵之窗最新更新时间:2014-03-08 来源: 中电网关键字:大屏幕LED显示屏  FPGA  行列驱动 手机看文章 扫描二维码
随时随地手机看文章

引言

只要在现在的市场上走一圈就会发现,大部分的中小规模 LED 显示系统,采用的是传统的单片机作为主控芯片。但是内部资源较少、运行速度较慢的单片机,很难满足LED大屏幕的显示屏,因为系统要求数据传输量大,扫描速度要快。以FPGA作为控制器,一方面,FPGA采用软件编程实现硬件功能,可以有效提高运行速度;另一方面,它的引脚资源丰富,可扩展性强。因此,用单片FPGA和简单的外围电路就可以实现大屏幕LED显示屏的控制,具有集成度高、稳定性好、设计灵活和效率高等优点。

1 系统总体结构

LED大屏幕显示系统由上位机(PC机)、单片机系统、FPGA控制器、LED显示屏的行列驱动电路等模块组成,如图1所示。上位机负责汉字、字符等数据的采集与发送。单片机系统与上位机之间以异步串行通信工作方式,通过串行端口从上位机获得已完成格式转换的待显示的图形点阵数据,并将其存入EEPROM存储器。之后通过FPGA控制器,将存储器的显示数据还原到LED显示屏。扫描控制电路采用可编程逻辑芯片Cyclone EP1C6,利用VHDL语言编程实现,采用1/16扫描方式,刷新频率在60 Hz以上。本文着重介绍256×1024的单色图文显示屏的FPGA控制模块。

图1 系统总体结构框图

2 LED显示屏基本工作原理

对大屏幕LED显示屏来说,列显示数据通常采用的是串行传输方式,行采用1/16的扫描方式。图2为16×32点阵屏单元模块的基本结构,列驱动电路采用4个74HC595级联而成。在移位脉冲SRCLK的作用下,串行数据从74HC595的数据端口SER一位一位地输入,当一行的所有32列数据传送完后,输出锁存信号RCLK并选通行信号Y0,则第1行的各列数据就可按要求显示。按同样的方法显示其余各行,当16行数据扫描一遍(即完成一个周期)后,再从第1行开始下一个周期的扫描。只要扫描的周期小于20 ms,显示屏就不闪烁。

图2 16×32点阵屏基本结构

256×1024大屏幕显示屏由16×32个的16×32点阵屏级联而成。为了缩短控制系统到屏体的信号传输时间,将显示数据分为16个区,每个区由16×1024点阵组成,每行数据为1024/8=128字节,显示屏的像素信号由LED显示屏的右侧向左侧传输移位,把16个分区的数据存在同一块存储器。一屏的显示数据为32 KB,要准确读出16个分区的数据,其存储器的读地址由16位组成,由于数据只有32 KB,因此最高可置为0。其余15位地址从高到低依次为:行地址(4位)、列地址(7位)、分区地址(4位)。4位分区地址的译码信号(Y0~Y15)作为锁存器的锁存脉冲,在16个读地址发生周期内,依次将第1~16分区的第1字节数据锁存到相应的锁存器,然后在移位锁存信号上升沿将该16字节数据同时锁存入16个8位并转串移位寄存器组中。在下一个16个读地址发生时钟周期,一方面,并转串移位寄存器将8位数据移位串行输出,移位时钟为读地址发生时钟的二分频;另一方面,依次将16个分区的第2字节数据读出并锁入相应的锁存器,按照这种规律将所有分区的第一行数据依次全部读出后,在数据有效脉冲信号的上升沿将所有串行移位数据输出,驱动LED显示。接下来,移位输出第2行的数据,在此期间第1行保持显示;第2行全部移入后,驱动第2行显示,同时移入第3行……按照这种各分区分行扫描的方式完成整个LED大屏幕的扫描显示。

3 基于FPGA显示屏控制器的设计

3.1 FPGA控制模块总体方案

如图3所示,FPGA控制模块主要由单片机与FPGA接口及数据读写模块、读地址发生器、译码器、行地址发生器、数据锁存器组、移位寄存器组、脉冲发生器等模块组成。

图3 FPGA控制模块总体结构框图

读地址发生器主要产生读地址信号,地址信号送往MCU接口及数据读写模块,读取外部SRAM1或SRAM2中已处理好的LED显示屏数据,并把数据按分区方式送到数据锁存器组锁存。锁存器输出16分区数据,通过移位寄存器组实现并串转换得到显示屏所需要的串行数据,并送往LED显示屏列驱动电路。脉冲发生器为各模块提供相应的同步时钟,行地址发生器产生相应的行信号送往显示屏的行驱动电路。

3.2 单片机与FPGA接口及数据读写模块

单片机与FPGA接口及数据读写模块结构如图4所示。单片机从EEPROM中读取数据并根据显示要求进行处理后,通过接口及数据读写模块把数据送往数据缓冲器SRAM1或SRAM2。为提高数据的传输速度,保证显示效果的连续性,在系统中采用双体切换技术来完成数据存储过程。也就是说,采用双SRAM存储结构,两套完全独立的读、写地址线和数据线轮流切换进行读写。工作时,FPGA在一个特定的时间只从两块SRAM中的一块读取显示的数据进行显示,同时另外一块SRAM与MCU进行数据交换。MCU会写入新的数据,依次交替工作,可实现左移、上移、双屏等显示模式。如果显示的内容不改变,即一块SRAM里的数据不变时,MCU不需要给另外一块SRAM写数据。

图4 单片机与FPGA接口及数据读写模块结构框图

图5 数据读写状态转换图

该模块采用VHDL有限状态机来实现,整个控制分为4个状态,其状态转换图如图5所示。其工作过程如下:系统开机进入初始状态ST0,单片机的写入使能端E为低电平,单片机从EEPROM中读取数据并把数据写入到SRAM1,同时FPGA读取SRAM2中的数据;当单片机数据写完一屏数据后E变为高电平,当FPGA从SRAM2中读完数据、结束信号READ_END为低电平时,进入ST1状态。

在ST1状态下,若没有新的数据写入则E保持高电平,FPGA读取SRAM1的数据,为静态显示;只有当单片机的读入控制信号E为低电平且READ_END为低电平时,进入ST2状态。在ST2状态下,单片机把数据写入SRAM2,同时FPGA读取SRAM1的数据,单片机数据写完后E变为高电平,当FPGA一屏数据读完后READ_END为低电平,进入ST3状态。在ST3状态下,如果没有新数据写入E为高电平,FPGA读取SRAM2中的数据。当单片机有新的数据写入时E变为低电平,当FPGA一屏数据读完后READ_END为低电平时,重新进入ST0状态。通过这种周而复始的交替工作完成数据的写入与读取,其端口程序如下:

ENTITY WRITEREAD_SEL IS

PORT(

REST:IN STD_LOGIC;

CLK:IN STD_LOGIC;

E:IN STD_LOGIC; ??单片机写入标记

WR:IN STD_LOGIC;??单片机写控制信号

ADDR_WR:IN STD_LOGIC_VECTOR(15 DOWNTO 0);??单片机写地址信号

ADDR_RD:IN STD_LOGIC_VECTOR(15 DOWNTO 0);??读地址信号

DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);??单片机写入数据

READ_END:IN STD_LOGIC;??读一屏数据结束标记

D1,D2:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);??SRAM数据

AD1,AD2:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);??SRAM地址

WR1,WR2:OUT STD_LOGIC;??SRAM的写控制信号

OE1,OE2:OUT STD_LOGIC; ??SRAM的读控制信号

DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));??输出数据

END ENTITY WRITEREAD_SEL;

3.3 读地址发生器

读地址发生器主要产生外部缓存器SRAM1(SRAM2)的读地址信号,使系统能正确地从存储器中读取相应的显示数据。其地址最高位为0,其余地址分别为行地址(hang[30])、列地址(lie[60])、分区地址(qu[30])15位有效地址信号。在16个脉冲周期内读出在SRAM1(SRAM2)中的16字节数据,其部分VHDL源程序如下:

ENTITY addressIS

PORT(

RDCLK:IN STD_LOGIC;??读地址时钟信号

CLR,ADDR_EN:IN STD_LOGIC;??清零及使能控制信号

READ_END:OUT STD_LOGIC;??一屏数据读完信号

ADDR_RD:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));??产生的读地址信号

END ENTITY address;

3.4 译码器

译码器模块主要是产生16路的分区信号(低电平有效)分别控制16个锁存器,把16个分区的显示数据分别锁存在相应的锁存器中。

3.5 数据锁存器组及移位寄存器组模块

数据锁存器组模块由16个8位锁存器组成锁存器组,锁存16个分区的数据。移位寄存器组模块由16个8位移位寄存器组成,把各路锁存器中8位并行数据转换成同时输出的16路串行数据,驱动LED显示屏,实现数据的并串转换。

其生成的元件符号如图6所示。其中,DATA_IN[70]为每个分区的8位并行数据输入,SCLK为移位时钟,CLR为清零信号,LOAD为数据锁存信号,CS[150]为16分区的输入信号(接译码器的输出),DATA_OUT[150]为16路的串行数据输出。

图6 并串转换元件符号图

3.6 脉冲发生器

系统采用1/16的扫描方式,把数据分为16分区,16分区数据同时传送。假设刷新的频率为60 Hz(即周期为16.67 ms),每一行显示的时间约为16.67 ms/16=1.04 ms。每行有1024位,则移位脉冲周期为1.04/1024=1?02 μs,即移位频率为0.983 MHz以上才能满足要求。由于移位脉冲是数据读取模块时钟的2分频,因此系统的时钟至少1.97 MHz以上,本系统采用50 MHz时钟源。其时序图如图7所示。

图7 时钟产生时序图

其中,RDCLK为FPGA读取数据时钟;SCLK是串行输出的移位时钟,是RDCLK的2分频;LOAD是数据锁存信号,每次读完16个分区中的某个字节数据DATA后产生锁存信号,数据锁存在数据锁存器组中,其时钟是RDCLK的16分频。

4 FPGA控制模块的仿真测试

在QuartusII 5.1中建立一个工程,并建立原理图文件,把单片机与FPGA接口及数据读写模块、读地址发生器、译码器、行地址发生器、数据锁存器、移位寄存器、脉冲发生器等单元模块所生的模块元件符号连接起来,构成总控制模块逻辑图并对其功能仿真。仿真结果如图8所示,从存储器中读取16字节数据,经并串转换输出16路的串行数据。从波形图分析,功能正确,且各输出端口信号均符合时序要求。

图8 FPGA控制模块仿真图

5 结语

FPGA是在线可编程芯片,可以根据不同的用户要求进行不同的编程,缩短了系统的开发周期并节约了硬件的开发成本。本文以FPGA为主芯片,较完整地设计了大屏幕LED单色图文显示屏控制系统。随着LED显示屏技术的发展,FPGA与ARM或DSP等芯片的组合,必将在双色显示屏和彩色显示屏领域获得广泛的应用。

关键字:大屏幕LED显示屏  FPGA  行列驱动 引用地址:一种基于MCU+FPGA的LED大屏幕控制系统的设计

上一篇:基于DSP和FPGA的多波形雷达回波中频模拟器实现
下一篇:基于XC2C64A芯片的无线录井绞车信号检测电路设计

推荐阅读最新更新时间:2024-05-02 23:01

基于FPGA和DDS技术的正弦信号发生器设计
   0 引言   1971年,美国学者J. Tierney等人撰写的《A Digital Frequency Synthesizer》一文首次提出了以全数字技术,从相位概念出发直接合成所需波形的一种新合成原理。限于当时的技术,没有得到重视,但随着微电子技术的迅速发展,它以有别于其他频率合成方法的优越性能和特点成为现代频率合成技术的佼佼者,具体体现在相对带宽宽,频率转换时间短,频率分辨率高,输出相位连续,可产生多种调制信号,控制灵活方便。因此,对于正弦信号发生器的设计,可以采用DDS,即直接数字频率合成方案实现。DDS的输出频率是数字可调的,完全能实现频率为1 kHz~10 MHz之间的正弦信号,这是实际应用中产生可调频率正弦信
[嵌入式]
基于<font color='red'>FPGA</font>和DDS技术的正弦信号发生器设计
让机器人眼明脑快的奥秘:嵌入式视觉系统
传统的机器人需要人事前进行编程,而新一代工业机器人的核心特征是智能化。科研团队逐渐将工业机器人研发重点由基础技术研发向应用开发转变,使工业机器人更加智能化,具有更强的感知能力、更好的机敏性,并且可以自主执行任务    要实现工业机器人智能化,就必须让机器人拥有明亮的“双眸”和灵活的“大脑”。为了实现这个目标,中科院自动化所高技术创新中心主任原魁研究员率领团队潜心攻关,长期专注于智能机器人关键技术研究与应用,在高性能嵌入式机器人视觉系统、视觉导引AGV技术、工业机器人自动编程技术等方面取得了突出的创新成效。    他们开发的高性能嵌入式机器人视觉系统能够在FPGA(现场可编程门阵列)上实现80多种图像处理算法,处理速度远高
[嵌入式]
基于FPGA和MV-D1024E相机的图像采集系统
摘要:分析了MV-D1024E系列高帧频CMOS相机的工作时序和参数,阐述了CAMERA-LINK接口协议,并对高速数据流的存储与处理机制进行分析,利用FPGA实现了相机的数据接口和控制,并设计灵活的USB接口,利用PC机作为参数输入和显示界面。完成一个从图像采集到存储、显示的高帧频图像采集系统的设计。该系统可靠性好、集成度高、功耗低,且满足不依赖于PC机的图像采集系统的应用要求。 1 引言 图像采集是数字图像处理、图像识别和机器视觉的基础,其应用领域非常广泛。主要采用CCD或CMOS等光电转换器件把光学影像转化为数字信号,然后利用相应的接口将数据输入到处理器中进行图像的数字分析和处理。MV-D1024E是基于CM
[测试测量]
基于<font color='red'>FPGA</font>和MV-D1024E相机的图像采集系统
基于FPGA的电子设计竞赛电路板的设计与实现
摘要: 介绍了一种基于FPGA 的 电子 设计竞赛电路板, 该电路板由美国 Altera 公司的Cyclone 系列FPGA EP1C6 、 单片机 、高速A/ D 转换器和D/ A 转换器等芯片组成, 另外, 还预留了一定的扩展I/ O 接口, 根据设计需要可以扩展电路。该电路板不仅可以完成电子竞赛中涉及的数字示波器、频率计、DDS 信号发生器等设计题目, 而且还可以用于赛前培训。    0 引言   全国大学生电子设计竞赛至今已成功举办了八届, 参赛人数越来越多, 竞赛规模越来越大。大学生电子竞赛在培养学生创新能力、促进高校学风建设及电子信息学科教学改革等方面起到了引导和推进作用。   大学生电子竞赛题目以模拟电子、
[嵌入式]
基于<font color='red'>FPGA</font>的电子设计竞赛电路板的设计与实现
基于FPGA的高速卷积的硬件设计实现
  在数字信号处理领域,离散时间系统的输出响应,可以直接由输入信号与系统单位冲激响应的离散卷积得到。离散卷积在电子通信领域应用广泛,是工程应用的基础。如果直接在时域进行卷积,卷积过程中所必须的大量乘法和加法运算,一定程度地限制了数据处理的实时性,不能满足时效性强的工程应用。本文从实际工程应用出发,使用快速傅里叶变换(FFT)技术,探讨卷积的高速硬件实现方法。    1 卷积算法的原理   设线性时不变系统的冲激响应为h(n),则冲激响应和输入δ(n)之间有关系   假设该系统的输入为x(n),输出为y(n),则根据线性时不变系统的定义,有   根据式(3),线性时不变系统的输出信号可以由输入信号与单位冲激响应的
[嵌入式]
基于<font color='red'>FPGA</font>的高速卷积的硬件设计实现
深入浅出带你了解FPGA架构
数字集成电路有两种类型:ASIC和FPGA(现场可编程门阵列)。专用集成电路(ASIC)有一个预先定义的特定硬件功能,在生产后不能重新编程。但FPGA可以在制造后可无限编程。 FPGA是一种集成电路,一种可编程芯片,它允许工程师对定制的数字逻辑进行编程,可以根据程序改变其硬件逻辑。主要目的是允许工程师重新设计和重新配置他们的芯片更快,更便宜,只要他们想要,然而世界上没有什么理想的,FPGA芯片也有局限性! FPGA最早出现于20世纪80年代,其最初的应用是允许工程师拥有通用可编程逻辑芯片。然而,这需要大量的编程才能执行简单的功能,所以工程师们尽量避免使用这些功能。但是,虽然在1980年的FPGA是一个简单的接口设备,
[嵌入式]
深入浅出带你了解<font color='red'>FPGA</font>架构
DSP和FPGA构成的感应发电机励磁控制系统
    介绍了针对3/3相双绕组感应发电机设计的励磁系统,该系统由DSP和FPGA构成。给出了控制系统的接口电路和实验结果。     1 系统简介     3/3相双绕组感应发电机带有两个绕组:励磁补偿绕组和功率绕组,如图1所示。励磁补偿绕组上接一个电力电子变换装置,用来提供感应发电机需要的无功功率,使功率绕组上输出一个稳定的直流电压。     图1中各参数的含义如下:     isa, isb, isc——补偿绕组中的励磁电流;     usa, usb, usc——补偿绕组相电压;     ipa, ipb, ipc——功率绕组电流;     upa, upb, upc——功率绕组相电压;
[嵌入式]
DDR SDRAM控制器的FPGA实现
摘要:DDR SDRAM高容量和快速度的优点使它获得了广泛的应用,但是其接口与目前广泛应用的微处理器不兼容。介绍了一种通用的DDR SDRAM控制器的设计,从而使得DDR SDRAM能应用到微处理器中去。 关键词:DDR SDRAM控制器 延时锁定回路 FPGA DDR SDRAM是建立在SDRAM的基础上的,但是速度和容量却有了提高。首先,它使用了更多的先进的同步电路。其次,它使用延时锁定回路提供一个数据滤波信号。当数据有效时,存储器控制器可使用这个数据滤波信号精确地定位数据,每16位输出一次,并且同步来自不同的双存储器模块的数据。 DDR SDRAM不需要提高时钟频率就能加倍提高SDRAM的速度,因为它允许在时钟脉冲的
[缓冲存储]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved