0 导言
现代文明的一个明显特征是城市中随处可见的五颜六色的广告宣传,其间大多都是由LED点阵制造的汉字或图形广告,广泛应用在银行、医院、酒店、火车站、体育场馆等各种公共场所。
汉字翻滚显现器的传统规划办法是用单片机来操控的,尽管单片机计划具有价格低廉,程序编程灵敏等特色,但因为单片机硬件资源的约束,未来对规划的改变和晋级,总是要支付较多研制经费和较长投放市场周期的价值,甚至有或许需求从头规划。何况,在以显现为主的体系中,单片机的运算和操控等主要功用的使用率很低,单片机的优势得不到发挥,相当于很大的资源糟蹋。
选用EDA技能的自顶向下的模块化规划办法,凭借相关开发软件,例如QualtusⅡ软件,将硬件描绘言语——VHDL程序固化于具有丰厚I/O口、内部逻辑和连线资源的FPGA(现场可编程门阵列)中。该技能具有体系规划效率高、集成度好、保密性强、易于修正、易于完结等长处,成为当今数字体系规划干流技能。此办法所制造的LED点阵操控器,由所以纯硬件行为,具有速度快、可靠性高、抗干扰能力强、开发周期短等明显长处。
1 EDA点阵显现汉字原理
以8×8的LED点阵为例,8×8的LED点阵是由64个发光二极管按矩阵办法摆放而成,每一行上的发光管有一个公共的阳极(或阴极),每一列上的发光管有一个公共的阴极(或阳极),一般按动态扫描办法显现汉字或图形。扫描分为点扫描、行扫描和列扫描三种办法。行扫描需求按行抽取字型码,列扫描则需求按列抽取字型码。为满意视觉暂留要求,若运用点扫描办法,其扫描频率有必要大于16×64=1 024Hz,周期小于1ms。若运用行或列扫描,则频率有必要大于16×8=128Hz,周期小于7.8ms。因为所用试验板上供给有1 kHz的时钟,本例规划中使用该时钟进行扫描,使每行扫描时间为1 ms,试验成果显现亮度适宜。现以行扫描为例简略阐明动态扫描显现的原理。图1给出汉字“热”在点阵为列共阳时的行字模。作业时先即将扫描行的点阵字模从各列上输出,再让译码器选中(扫描)该行,使本行得以显现,接着再送下一行数据,再使下一行有用,直到8行全被扫描一遍。至此,一幅完好的文字信息就显现出来,然后再重复扫描这8行直至显现新的信息。以下规划选用行扫描办法完结翻滚显现。
2 硬件原理图
整个电路由五大部分组成:时钟计数模块GEL_CLK,存储汉字字模的ROM模块ROMZI,数据分配器模块MUX,移位模块YW及显现模块XIANSH-I。时钟计数模块用于发生整个电路所需求的时钟及其对时钟的计数值,例如:移位时钟CLK YW,移位计数器CNT YW,字计数器CNT WORD,显现扫描计数器CNT SM。ROMZI模块是由QualtusⅡ中的LPM 1PORT ROM定制成,用来存储8个待显现的汉字。MUX模块用于在扫描时钟及扫描计数器的效果下,从ROM中读出一个汉字的8个行字模信息,送给移位模块YW,YW模块在移位时钟及移位计数器效果下,依据SELECT信号挑选对读出的字模信息,进行相应的移位(左移、右移、上移、下移)后,最终送显现模块DISP驱动LED点阵显现汉字。原理图如图2所示。
3 模块规划及时序仿真
3.1 时钟计数发生模块
时钟计数发生模块由1 kHz的输人时钟为基准,进行17位的循环计数CNT[16..O]。该时钟,既是动态扫描显现的时钟,也是从ROM中取一个字8个字模的时钟,对之进行的3位循环计数作为扫描显现计数器和取一个字的字型码计数器。CNT[16..O]中的CNT[9]是对该时钟的1 024分频,将其作为移位时钟CNT_YW,周期约为l s。CNT[13…lO]作为4位的移位计数器,是对移位时钟CLK_YW的计数,也是对移位位数的计算。16个状况使一个汉字逐列移进点阵,又逐列移出。每经过16个移位时钟,将会显现完一个汉字。CNT[16..14]作为3位的取字计数器。
CNT[16…14]&CNT[2..O]作为ROM地址发生器。
3.2 ROMZI模块
使用LPM参数化模块库中单口ROM,使用QualtusⅡ中的MegaWizard Plug-In Manager定制而成,定制前首先要制造LPM ROM初始化文件,其间存储待显现汉字的字模数据,然后依照LPM MegaWizardPlug-In Manager的导游提示,结合规划要求进行定制。
图3为所定制ROM中的初始化汉字“元旦生日高兴高兴”的字型码。数据分配模块MUX要求能在8个时钟效果下,从ROM中读出一行(一个汉字的8个字型码)别离送到数据分配器中的WLl~WL8输出端。图4为数据分配模块在扫描时钟效果下读取的字模数据,比较图3和图4可知,仿真成果正确,能满意标题要求。
3.3 移位模块YW
移位模块YW是整个规划的中心,行扫描完结左移,是经过每来一个移位时钟,将每一行的字模按位左移一位,扫描时钟到来时送出移位后的新字模。经过8次移位,可将一个汉字移出点阵平面,按相似的道理,也能够将一个汉字经8次移位后移进点阵平面。本例(图2)中,CNT YW为移位时钟的计数值,以WLl~WL8为欲显现汉字的原始字模,L10~L80为移位后从列上送出的8行显现字模信息,LLl~LL8为8个原始字模信息未送出位的暂存信号。规划中需求16个移位时钟,经过前8个时钟将WLl~WL8字模移进LED点阵平面,再经后8个时钟,将汉字又一位一位地移出。移位规划参考文献中有关移位寄存器的规划,分计数值为“0000和非0000两部分处理,对榜首行字模的处理为:
其他行可按相同办法处理,详细拜见如下的程序:
右移处理办法与上面左移相反,如对榜首行可按如下办法处理:
上移时的部分程序按以下思路编制:L10~L70在CNT_YW为初态“0000”时,各信号均赋值X“00”,非初态时,均进行上移一位。即:L10=L20;L20=L30;…;L60=L70;L70=L80;关于L80,在汉字移进LED过程中即前8个状况各移进一个新行,在移出LED即后8个状况时,都补进X“00”。程序如下:
下移程序可按相反思路去编。
3.4 显现模块DISP规划
显现模块DISP是以CNT_SM为扫描计数器,是对1kHz进行三位循环计数,由前述的时钟计数发生模块发生,WLl~WL8为待送出显现的8个8位字型码,由前述的移位模块YW供给;SW[7..O]为行扫描输出信号,衔接至点阵的8个行;DATA[7..0]为行扫描时对应的列输出字型码,对外连至点阵的8列。该模块参考文献中数码管动态显现程序进行规划如下:
4 硬件完结
上述各模块别离在QualtusⅡ中经过了仿真验证,最终对全体规划进行了硬件验证。将规划载入KH31001开发板的Cyclone工系列EPlC6Q-240C8FPGA器材中,试验证明汉字翻滚显现扫描状况均正常,能够依照料想进行移位显现,这阐明。FPGA的内核硬件作业杰出,能够正确地完结所要求的规划功用。
5 体系扩展
本文是针对8×8点阵规划,故每次取8个字形码,如果是16×16点阵,将RONZI中存储的字形码改为16位,数据线改为16位,一个汉字需求16个16位的字形码,数据分配模块MUX、移位模块YW、显现模块DISP,均要将输入输出数据中的本来的8位改成相应的16位。扫描及取字型码计数器CNT_SM应改为CNT计数器的低4位。一个16×16点阵汉字的移进移出共需32个状况。由5位的计数器供给。如用CNT[16..0]中的14~10位作为该计数器,这可在时钟计数器发生单元CLK_GE中应做相应修正,字计数器CNT WORD依照每取16个字进行加1计算。显现DISP部分的译码器要由3-8译码改为4-16译码。显现的汉字信息越多,ROM的地址线位数越多,字计数器CNT_WORD应在时钟计数器发生单元GE_CLK中,将相应的计数器位数扩展,由CNT计数器的最高位到位15来承当。若仍是8个汉字,计数器应为CNT[17..O],CNT[17..15]为字计数器;若为16个汉字,计数器应为CNT[18..O],CNT[18..15]为字计数器,…,顺次类推。
6 结语
本文在KH31001开发板上完结了根据Altera公司的Cyclone I系列FPGA器材EPlC6Q240C8硬件及VHDL硬件描绘言语规划的LED点阵汉字翻滚显现,能在8×8点阵上翻滚显现“元旦生日高兴高兴”8个汉字。文中从LED点阵显现汉字的原理论述动身,给出了点阵汉字翻滚显现操控器的原理图,部分模块的VHDL源程序及时序仿真图,并能由按键挑选其翻滚办法:左移、右移、上移、下移等,给出了体系扩展成16×16点阵汉字翻滚的改动思路。从文中描绘的体系扩展计划中看出,当体系显现字符个数变化时,只需对操控逻辑和衔接联系做恰当的修正,再将修正完结的程序下载到器材即可,明显,体系的保护和修正是极端便利和简单的,本文对同类规划也具有必定的参考价值。