新闻中心

EEPW首页 > 光电显示 > 设计应用 > 一种基于MCU+FPGA的LED大屏幕控制系统的设计

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

作者: 时间:2011-06-21 来源:网络 收藏

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

  在ST1状态下,若没有新的数据写入则E保持高电平,读取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;



关键词: FPGA MCU LED 大屏幕

评论


相关推荐

技术专区

关闭