现在,市场上的中小规划LED显现体系,一般选用传统的单片机作为主控芯片。对LED大屏幕显现屏来说,因为数据传输量大,要求扫描速度快,而单片机内部的资源较少、运转速度较慢,难于满意体系要求。以FPGA作为操控器,一方面,FPGA选用软件编程完结硬件功用,速度较快;另一方面,它的引脚资源丰富,可扩展性强。因而,用单片FPGA和简略的外围电路就能够完结大屏幕LED显现屏的操控,无需别的规划汉字库,具有集成度高、稳定性好、规划灵敏和功率高级长处。
1 体系整体结构
LED大屏幕显现体系由上位机(PC机)、单片机体系、FPGA操控器、LED显现屏的队伍驱动电路等模块组成,如图1所示。上位机担任汉字、字符等数据的收集与发送。单片机体系与上位机之间以异步串行通讯作业办法,经过串行端口从上位机取得已完结格局转化的待显现的图形点阵数据,并将其存入EEPROM存储器。之后经过FPGA操控器,将存储器的显现数据复原到LED显现屏。扫描操控电路选用可编程逻辑芯片Cyclone EP1C6,使用VHDL言语编程完结,选用1/16扫描办法,改写频率在60 Hz以上。本文侧重介绍256&TImes;1024的单色图文显现屏的FPGA操控模块。
2 LED显现屏根本作业原理
对大屏幕LED显现屏来说,列显现数据一般选用的是串行传输办法,行选用1/16的扫描办法。图2为16&TImes;32点阵屏单元模块的根本结构,列驱动电路选用4个74HC595级联而成。在移位脉冲SRCLK的作用下,串行数据从74HC595的数据端口SER一位一位地输入,当一行的一切32列数据传送完后,输出锁存信号RCLK并选通行信号Y0,则第1行的各列数据就可按要求显现。按相同的办法显现其他各行,当16行数据扫描一遍(即完结一个周期)后,再从第1行开端下一个周期的扫描。只需扫描的周期小于20 ms,显现屏就不闪耀。
256&TImes;1024大屏幕显现屏由16&TImes;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接口及数据读写模块、读地址发生器、译码器、行地址发生器、数据锁存器组、移位寄存器组、脉冲发生器等模块组成。
读地址发生器首要发生读地址信号,地址信号送往MCU接口及数据读写模块,读取外部SRAM1或SRAM2中已处理好的LED显现屏数据,并把数据按分区办法送到数据锁存器组锁存。锁存器输出16分区数据,经过移位寄存器组完结并串转化得到显现屏所需求的串行数据,并送往LED显现屏列驱动电路。脉冲发生器为各模块供给相应的同步时钟,行地址发生器发生相应的行信号送往显现屏的行驱动电路。
3.2 单片机与FPGA接口及数据读写模块
单片机与FPGA接口及数据读写模块结构如图4所示。单片机从EEPROM中读取数据并依据显现要求进行处理后,经过接口及数据读写模块把数据送往数据缓冲器SRAM1或SRAM2。为进步数据的传输速度,确保显现作用的连续性,在体系中选用双体切换技能来完结数据存储进程。也就是说,选用双SRAM存储结构,两套彻底独立的读、写地址线和数据线轮番切换进行读写。作业时,FPGA在一个特定的时刻只从两块SRAM中的一块读取显现的数据进行显现,一起别的一块SRAM与MCU进行数据交换。MCU会写入新的数据,顺次替换作业,可完结左移、上移、双屏等显现形式。假如显现的内容不改动,即一块SRAM里的数据不变时,MCU不需求给别的一块SRAM写数据。
该模块选用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状况。经过这种循环往复的替换作业完结数据的写入与读取,其端口程序如下:
3.3 读地址发生器
读地址发生器首要发生外部缓存器SRAM1(SRAM2)的读地址信号,使体系能正确地从存储器中读取相应的显现数据。其地址最高位为0,其他地址别离为行地址(hang[3..0])、列地址(lie[6..0])、分区地址(qu[3..0])15位有用地址信号。在16个脉冲周期内读出在SRAM1(SRAM2)中的16字节数据,其部分VHDL源程序如下:
3.4 译码器
译码器模块首要是发生16路的分区信号(低电平有用)别离操控16个锁存器,把16个分区的显现数据别离锁存在相应的锁存器中。
3.5 数据锁存器组及移位寄存器组模块
数据锁存器组模块由16个8位锁存器组成锁存器组,锁存16个分区的数据。移位寄存器组模块由16个8位移位寄存器组成,把各路锁存器中8位并行数据转化成一起输出的16路串行数据,驱动LED显现屏,完结数据的并串转化。
其生成的元件符号如图6所示。其间,DATA IN[7..0]为每个分区的8位并行数据输入,SCLK为移位时钟,CLR为清零信号,LOAD为数据锁存信号,CS[15..0]为16分区的输入信号(接译码器的输出),DATA_OUT[15..0]为16路的串行数据输出。
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所示。
其间,RDCLK为FPGA读取数据时钟;SCLK是串行输出的移位时钟,是RDCLK的2分频;LOAD是数据锁存信号,每次读完16个分区中的某个字节数据DATA后发生锁存信号,数据锁存在数据锁存器组中,其时钟是RDCLK的16分频。
4 FPGA操控模块的仿真测验
在QuartusII 5.1中树立一个工程,并树立原理图文件,把单片机与FPGA接口及数据读写模块、读地址发生器、译码器、行地址发生器、数据锁存器、移位寄存器、脉冲发生器等单元模块所生的模块元件符号连接起来,构成总操控模块逻辑图并对其功用仿真。仿真成果如图8所示,从存储器中读取16字节数据,经并串转化输出16路的串行数据。从波形图剖析,功用正确,且各输出端口信号均契合时序要求。
结语
FPGA是在线可编程芯片,能够依据不同的用户要求进行不同的编程,缩短了体系的开发周期并节省了硬件的开发本钱。本文以FPGA为主芯片,较完整地规划了大屏幕LED单色图文显现屏操控体系。跟着LED显现屏技能的开展,FPGA与arm或DSP等芯片的组合,必将在双色显现屏和五颜六色显现屏范畴取得广泛的使用。