当前位置:首页 > 显示光电 > 显示光电
[导读]1 引言随着人们生活节奏的加快,越来越多的场合需要使用电子手段动态发布信息,其中应用非常广泛的一种方法就是LED点阵显示。传统的点阵汉字显示通常采用单片机作为控制核心,结合存储器、逻辑电路和LED点阵来

1       引言

随着人们生活节奏的加快,越来越多的场合需要使用电子手段动态发布信息,其中应用非常广泛的一种方法就是LED点阵显示。传统的点阵汉字显示通常采用单片机作为控制核心,结合存储器、逻辑电路和LED点阵来实现。单片机具有良好的集成度,在很多对设备体积要求较高的场合得到了广泛应用。但是此方案开发和升级控制程序的工作量都很大[1]。在教学实践中对于学生软件方面的能力和协同工作锻炼有限。基于这些考虑,使用PC并口EPP模式控制CPLD的LED点阵显示方案具有较好的实用价值和易操作性。基于EPP的数据通讯系统比SPP和RS232具有更高的数据传输速率,适合于需要高速传输的场合[2]。本设计实际测试并证明了EPP模式下计算机并口与CPLD结合进行电子设计的可行性与高效性。实验中采用了16*16的LED点阵。

2       系统整体方案与协议

2.1 系统整体方案

本系统采用计算机并口以点阵的形式发送显示数据,CPLD作为系统数据处理核心来控制显示屏的驱动电路。待显示的文字全部使用计算机处理并生成点阵数据,因此可以选用无RAM的CPLD器件,同时也可以方便的直接控制显示效果,降低功耗。本系统采用ALTERA公司的EPM7128LS84-15。在设计中,将尽可能多的功能用计算机的软件来实现,以减少硬件的负担,并降低系统更新维护的代价。软件部分采用VC++6.0开发。

2.2 接口协议

本设计采用16*16的点阵显示器,每帧要求PC提供256路信号,显然对于PC并口来说,其I/O资源是不足的,需要CPLD来加以处理。计算机软件需要完成的工作有:①读取用户输入的文字,并将其转换为点阵数据;②定时使点阵循环移位,产生汉字移动的字幕效果;③定时以八位为单位发送当前需要显示的点阵,并发送若干控制信号,使CPLD控制LED显示相应的点阵,每帧需要发送32次。接口协议采用了3个控制位,以C0、C1和C2表示;CPLD返回的状态位与EPP的定义相同,在此不赘述。PC与CPLD之间的接口协议如下:

·CPLD上电给出在线信号Busy=1;

·PC检测Busy=1,发C0=1,C1=0,C2=0(通知CPLD:并口要开始发新帧的数据);

·CPLD应答nAck=1,并初始化内部地址变量Address=1111;

·PC检测状态nAck=1,发C0=0,C1=1,C2=0(通知CPLD:发送某一行的高8位数据),并发送高8位数据;

·PC发C0=0,C1=0,C2=0,确保高8位和低8位不会混淆;

·CPLD收到数据后,Address+1,高8位数据暂存,并发应答信号nSelect=1;

·PC检测nSelect=1,发C0=0,C1=0,C2=1(通知CPLD:发送同一行的低8位数据),并发送低8位数据;

·CPLD内部地址变量Address不变,把高8位数据与低8位数据组合成一行,发送显示数据,发送应答信号PaperEnd=1;

·PC检测PaperEnd=1,进入循环。

LED点阵显示采用逐行扫描,为了避免显示屏的闪烁,每秒至少需要刷新25次。系统整体框图见图1。

图1 系统整体框图

3       系统硬件设计

本设计中用到的显示屏是16*16点阵的,所以通过四个8*8LED点阵模块来组合成16*16点阵。图1中的行驱动器和列驱动器是必要的,因为CPLD输出的高电平可能不足以推动LED发光,造成点阵亮度不一的问题。实际设计中,采用反向器作为驱动。

在本设计中,CPLD是核心,有着承上启下的作用。因此,在接口协议确定的条件下,CPLD内部控制编写的VHDL程序的好坏关系到整个系统。根据前述协议可知,CPLD主要是完成与计算机的通信,再控制驱动电路使得LED点阵显示屏正常显示。本设计采用Max+PlusII编写VHDL程序,用Protel 99SE进行电路板设计。VHDL程序及注释如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

 

entity display is

     port(   clk:    in  std_logic;

            c:      in  std_logic_vector(2 downto 0);   --三位控制信号

            data:   in  std_logic_vector(7 downto 0);   --数据输入

            status:  out std_logic_vector(2 downto 0);   --三位状态信号

            col:    out std_logic_vector(15 downto 0);   --列输出

            row:   out std_logic_vector(15 downto 0)    --行输出 );

end display;

 

architecture control of display is

       signal v_row: std_logic_vector(15 downto 0);   --暂存行数据

       begin

row<=v_row;  --输出行数据

            process(clk,c,data)

            variable address: std_logic_vector(3 downto 0);  --行地址变量

            variable hdata: std_logic_vector(7 downto 0);  --暂存高八位列数据变量

            variable t: std_logic;      --局部变量控制“行地址加一”行为

       begin

            if clk'event and clk='1'then

               if c="001" then

                  status<="110";

                  address:="1111";

                  t:='0'; --初始化变量

               elsif c="010" then

                     status<="011";

                     if t='0' then  --局部变量t=0行地址加一

                        address:=address+1;  

                        t:= '1';   --行地址加一后立即置变量t为1

                     end if;  

                     hdata:=data;   --暂存高八位列数据

               elsif c="100" then

                     t:='0';

                     case address is  --行地址译码

                          when "0000"  => v_row<=X"0001";

--此处从略

                          when others   => null;

                      end case;

                      status<="101";

                      col<=hdata&data; --同时输出高低八位

                end if;

             end if;

        end process;

        end control;

4       系统软件设计

4.1 汉字点阵读取及滚动显示的原理

要在16*16点阵上显示汉字,首先需要把用户输入的汉字转化成点阵形式。首先获取汉字的区位码,再通过计算公式找到此汉字在16*16点阵汉字库文件HZK16中的存储位置,从而得到它的点阵信息。公式如下:

lHzkPosition=((nSection-1)*94+nPosition-1)*32

其中,lHzkPosition是汉字点阵在汉字库中的首地址,nSection和nPosition分别是汉字的区码和位码。Windows 2000/XP操作系统默认的字符集是Unicode,这是一个全球一体化的字符集,无法映射得到汉字的GB2312区位码。所以,软件的字符编码方式必须采用GB2312,在VC++中采用MBCS(Multi-Byte Char System)即可。在此使用一个CString对象存储需要显示的文本,CString可以以字节为单位进行操作,一个汉字(或其它全角字符)对应两个字节。如果保证这个CString里面的字符全部是全角字符,就可以在点阵汉字库里找到它们的点阵。以字节为单位读取字符的机内码。将一个字符的高字节减去0xA0就得到汉字的区码;将一个字符的低字节减去0xA0就得到汉字的位码。为避免频繁磁盘读写,同时实现较大程度的集成,可以把HZK16汉字库放到程序的资源中。确定此资源在内存中的首地址,再加上由区位码计算得到的字库的存储位置,就可以确定汉字点阵在内存中的位置。

在程序中加入两个定时器,分别定时触发汉字滚动和数据发送事件。汉字滚动用位操作实现,建立一个32字节的字节数组,用来存储当前显示屏上需要显示的点阵,定时器触发时,根据当前显示的字符和已经移位的次数,读取待显示汉字点阵的相应位置,并将读取出来的点阵数据移位相加,即可获得当前屏幕需要显示的点阵。调整定时器触发的时间间隔,即可调整汉字滚动的速度。

4.2 点阵汉字发送的原理

以字节为单位读取待显示的32字节数组,根据前述协议,通过操作并口寄存器将每次读到的字节数据发送到CPLD,并读取CPLD的返回状态,不断地握手、发送、等待应答,直到以用户给定的帧速将点阵数据发送完毕。帧速的设定是因为发送定时器的触发时间较长,会产生较严重的闪烁现象,因此每次发送定时器触发时,同一帧数据发送多次,就可以有效的减少闪烁感。用户可以根据使用环境,随时调整帧速以达到最好的显示效果。

为了避免设备掉电或者其他原因没有应答造成的程序死锁,发送程序必须包含超时检测。在等待CPLD应答时,反复读取并口的状态寄存器,以一个临时变量记录没有应答的次数,并和一个预先设定好的最大应答延迟次数相比较,如果超过最大延迟次数,则判定CPLD应答超时,停止继续发送并提示用户。最大延迟次数的设定和CPLD采用的晶振频率有关,在实验中,若采用4Mhz晶振,正常工作状态下,计算机无需循环,可以实时检测到CPLD的应答信号;若采用250Khz晶振,则需要多次检测才可以检测到应答信号,此时若将最大延迟次数设置过低,计算机将设备判为延迟并重新发送,极易引起显示屏的闪烁。

5       结束语

通过本设计我们可以看到,利用计算机并口的EPP模式结合CPLD设计数字电子系统,可以将大量繁杂工作交给软件承担,利用计算机强大的开发环境来完成。本文作者创新点:提出了一种有助于减小系统设计难度、缩短开发时间的设计方式,同时可以得到友好的人机界面和方便的操作。这种设计方法具有一定的通用性,对需要使用CPLD的电子设计,尤其是实验教学具有一定的参考价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭