LED显示屏控制器设计研究图文精.docx

上传人:b****8 文档编号:11335546 上传时间:2023-02-27 格式:DOCX 页数:11 大小:393.69KB
下载 相关 举报
LED显示屏控制器设计研究图文精.docx_第1页
第1页 / 共11页
LED显示屏控制器设计研究图文精.docx_第2页
第2页 / 共11页
LED显示屏控制器设计研究图文精.docx_第3页
第3页 / 共11页
LED显示屏控制器设计研究图文精.docx_第4页
第4页 / 共11页
LED显示屏控制器设计研究图文精.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

LED显示屏控制器设计研究图文精.docx

《LED显示屏控制器设计研究图文精.docx》由会员分享,可在线阅读,更多相关《LED显示屏控制器设计研究图文精.docx(11页珍藏版)》请在冰豆网上搜索。

LED显示屏控制器设计研究图文精.docx

LED显示屏控制器设计研究图文精

第28卷第3期计算机应用与软件

Vol28No.3

2011年3月ComputerApplicationsandSoftwareMar.2011

LED显示屏控制器设计研究

张飙

(桂林理工大学信息科学与工程学院广西桂林541004

收稿日期:

2009-11-26。

张飙,讲师,主研领域:

LED显示技术与

摘要针对LED屏控制器设计提出了一些新的方法。

快速移位法使移位速度提升33%。

协议树的引入使通信协议的描述、解

释和扩充更加快捷;应用循环缓冲区可有效避免通信缓冲区溢出引发的程序异常;显示双缓冲区的使用不仅简化了显示帧设计而且便于设计代码移植;基于优先级的主程序结构可优先且多次响应重要任务。

运用这些方法可以显著提高控制器开发效率和运行稳定性。

关键词快速移位协议树循环缓冲区显示双缓冲区

ONDESIGNOFLEDSCREENCONTROLLER

ZhangBiao

(SchoolofInformationScienceandEngineering,GuilinUniversityofTechnology,Guilin541004,Guangxi,China

AbstractThisarticleprovidessomenewdesignsforthecontrollerofLEDdisplayscreen.Thedatashiftspeedcanberaised33percentquickerwiththefastshiftapproach.Theintroductionofprotocoltreemakesitconvenienttodepict,interpretandextendthecommunicationprotoco.lSoftwareexceptioninducedbycommunicationbufferoverflowcanbeavoidedeffectivelyviaresortingcircularbuffer.Theuseofdoublebufferfordisplaysimplifiesthedesignofdisplayframeaswellasfacilitatesthedesignofcodeporting.Mainprogramarchitecturebasedonprioritymakesitpossibletorespondimportanttaskswithprecedenceandfrequently.Byapplyingthesemethods,thedevelopmentefficiencyofcontrolleranditsrunningstabilitycanbeconspicuouslyenhanced.

KeywordsFastshiftProtocoltreeCircularbufferDisplaydoublebuffer

0引言

随着LED显示屏市场不断扩大,缩短LED显示屏控制器开发周期、增强系统稳定性已显得尤为重要。

本文针对单片机控制的LED显示屏提出了一些新的设计方法,这些方法做成模板后稍加修改就可直接用于实际项目设计。

1系统结构

为了方便描述,本文给出了具有代表性的51单片机为控制

核心的LED显示屏系统结构如图1所示。

系统主要包括快速移位模块,存储器扩展模块,串行通信模块,亮度采集模块,LED检测模块,配置模块,看门狗模块等。

图1系统结构图

2快速移位实现

!

构,在单片机系统中通常由单片机实现移位输出,移出1bit数据

需3个机器周期(时钟置低,放1bit数据,时钟置高,这种方法优点是简单易用,缺点是数据输出速率低。

本文在基本不增加硬件成本的条件下,提出利用74HC165辅助单片机加快移位速度的方法,该方法可使移位速度提高33%,其硬件连接和操作时序如图2所示。

图2快速移位硬件实现及移位时序

74HC165采用并入串出工作方式,单片机W78E58的P0口同时连接74HC165的数据端口P0~P7和外部RAM61C256的数据端口D0~D7。

单片机RD脚同时连接74HC165并行数据装入端PL和外部RAM读使能端OE。

当单片机从外部RAM

读取显示数据时,RD变低,同时PL也变低,使出现在数据总线上的数据被异步装入74HC165内部移位寄存器中。

读操作结

束后,由单片机P1.6脚生成移位时钟(P1.6置低,P1.6置高生成一个时钟,又P1.6接CLK1,这样每个CLK1上升沿Q7就输出1bit数据。

P1.6经非门驱动生成LED驱动器的移位时钟SCLK,每个SCLK上升沿Q7输出的1bit数据被移入LED驱动器中,Q7输出则生成了串行移位数据SD。

可见快速移位法输出1bit数据只需2个机器周期,相比单片机的3个机器周期减少1个机器周期,即移位速度提升33%。

3树型协议设计及其处理程序结构

LED显示屏的串行通信协议通常由LED显示屏生产商专门制订,制订方式大致有两种:

一种是参照标准协议制订,另一种是完全自定义。

由于没有统一标准,造成协议形式五花八门,不利于协议的解释、维护和扩展。

本节给出了LED屏通信协议的树型设计方法。

按此方法设计出的每个协议都形成一棵协议树[1],具有层次结构清晰,搜索速度快,内容扩展方便,通用性好等特点。

本文以一种基于Modbus的交通诱导屏协议为例进行设计,协议主要包括两类命令:

一类是读取1个或多个参数(功能码03H,另一类是设置1个或多个参数(功能码16H,协议中部分内容设计为图3所示

的一棵协议树。

图3交通诱导屏Modbus协议树

协议处理程序只需按照协议树采用多重CASE结构嵌套形式编写。

图4对协议中功能码03实时数据区实时数据处

理!

给出了伪码描述,图中的地址码参见表1。

当协议项较多时采用此结构可以显著提高协议项搜索速度,从而缩短通信响应时间,这一点对于拥有大量交通诱导屏和其它设备的智能交通网络意义重大。

每块诱导屏通信响应时间缩短,必然使整个交通网络轮询周期的缩短,这样控制中心就可在更短的时间内获

取更新的路段信息。

图4树型协议处理程序结构

有些协议没有按照图3所示结构设计,如表1所示。

对于

这类协议只要按照上述方法容易将非树形协议转化为图3所示的协议树,协议处理程序与图4所示方法相同。

表1非树型协议

通用功能区∀∀∀1000H实时数据区∀∀∀1100H自检数据区∀∀∀1400H亮度调节方式

1002H读或写字体

1102读或写各模组故障率1402读亮度值1003H读或写显示内容

1103读或写启动自检

1403

自检间隔时间1004H读或写故障信息

1104

显示模组数量

1005H

4通信循环缓冲区使用

循环缓冲区在计算机系统应用较多[2],本文在外部RAM上设置2个循环缓冲区分别作为串行通信的收、发缓冲区。

这样通信收、发缓冲区对应的存储区域都是一个循环队列。

如此设计就可有效避免因通信缓冲区溢出而引发的通信处理异常。

循环缓冲区设置有读指针和写指针。

每写入或读出一个数据,写指针或读指针就沿缓冲区移动一位。

循环缓冲区空、满状态判断非常方便:

当:

取模(写指针+1=读指针,表明缓冲区#满∃,此时缓冲区丢弃新的数据;当:

读指针=写指针,说明缓冲区#空∃。

只要对每次移动后的读或写指针做模!

运算就可保证读、写指针指示范围超出缓冲区时又会自动回到缓冲区内,从而使缓冲区可以循环使用。

只要缓冲区大小设置合理且系统运行正常,缓冲区循环使用时被覆盖的数据都是使用过的数据,而且缓冲区#满∃发生概率非常小。

51单片机汇编语言没有直接支持模运算,而是通过多字节除法间接实现,这样模运算频繁使用必定会拉长通信响应时间。

本设计通过采用单片机硬件直接支持的#逻辑与∃运算替代#模运算∃解决了此问题,现在给出部分程序代码:

设接收循环缓冲区和发送循环缓冲区分别为1K字节(0~3ffH数组[rxd_buf]和[txd_buf],读指针r_p和写指针w_p分别指示数组[rxd_buf]和[txd_buf]的元素索引号。

单片机串行接收和发送的C语言程序段为:

接收程序段

If((W_p+1&0%3ff!

=r_p{r%d_buf[w_p]=SBUF;w_p++;

w_p&=0%3f;f}

发送程序段

If(r_p!

=w_p

{SBUF=t%d_buf[r_p];r_p++;

r_p&=0%3f;f}

用逻辑与替代模运算是有条件的,即数组最后一个元素的

索引号转换为二进制数为全#1∃。

前面提到的3ffH!

转换为二进制码为全#1∃,满足要求的还有ffH!

7ffH!

等等。

5显示双缓冲区应用

制的LED屏系统通常只有1个串行数据输出

PCB布线常常是红、绿、蓝三种LED管互相交错

个16位LED驱动器输出口上。

例如,3个16位共48个输出口上出现R4|G4|B4|R4∀G4|B4|R4||,对应基。

示信息通常做法是:

根据PCB布线直接生成显示帧(如上移操作的各个帧,这种做法每一帧编程都要考虑PCB布线,而且不同布线的显示模块需重新编程,编程繁琐,通用性差。

为克服上述缺陷,本文提出了在外部RAM上设置显示双缓冲区[4]间接生成显示帧的设计方法。

双缓冲区中一个为逻辑缓冲区,另一个为物理缓冲区,这里用4%4点阵为例进行说明。

逻辑缓冲区存放逻辑显示帧,其每个bit从左到右从上到下顺序对应实际显示屏像素而与显示模块PCB布线无关,如表2所示。

物理缓冲区用于存放实际显示帧,它的每个bit顺序对应级联的16位LED驱动器各个输出口,它与显示模块PCB布线有直接联系,如表3所示。

表2中C(X,Y!

表项中X表示行序号,Y表示列序号,C表示基色。

如R(2,3!

表示第2行第3列像素中的红色。

表3中XY!

表项中X表示LED驱动器序号,Y表示该驱动器输出位序号。

例如0-5!

表示LED管由第0个驱动器的第5位驱动,此LED管是第1行第1列像素中绿色LED管

双缓冲区实现显示分三个步骤:

(1在逻辑缓冲区生成显示帧。

(2调用帧转换函数将逻辑缓冲区内容转换为物理缓冲区的内容。

(3将物理缓冲区内容移位输出完成显示。

在逻辑缓冲区生成显示帧与PCB布线无关,编程较容易,但显示前必须将逻辑显示帧映射到物理缓冲区,这里把完成这个映射的函数称为帧转换函数。

这样编程时每一帧都在逻辑缓冲区生成,显示前调用帧转换函数,将逻辑缓冲区生成的显示帧转换为物理缓冲区的实际显示帧。

对于不同PCB布线的显示模块只需改写帧转换函数,而在逻辑缓冲区编写的大量显示帧生成代码则可重复使用。

帧转换函数设计方法有2种:

代数法和查表法。

代数法需要寻求映射:

表3=f(表2!

中函数f的表达式,该方法需要使用算术运算指令,缺点是转换速度慢,优点是实现代码短。

查表法是在程序中存储一张映射表,转换时只需执行查表指令,这样做优点是转换速度快,缺点是映射表需占用程序存储器造成实现代码长。

基于速度优先本设计采用查表法。

需存储的映射表就是表3,它每个表项包含两个字节,例如表2中1行3列的绿色LED管G(1,3,查表后得到两个字节02H和09H,即对应表3中2-9表项,则1行3列的绿色LED管应由第2个驱动器的第9位驱动。

表2LED3基色4%4点阵的逻辑缓冲区

列0123行&RGBRGBRGBRGB0(0,0(0,0(0,0(0,1(0,1(0,1(0,2(0,2(0,2(0,3(0,3(0,31(1,0(1,0(1,0(1,1(1,1(1,1(1,2(1,2(1,2(1,3(1,3(1,32(2,0(2,0(2,0(2,1(2,1(2,1(2,2(2,2(2,2(2,3(2,3(2,33

(3,0

(3,0

(3,0

(3,1

(3,1

(3,1

(3,2

(3,2

(3,2

(3,3

(3,3

(3,3

表3LED3基色4%4点阵的物理缓冲区

列0123行&RGBRGBRGBRGB00-00-40-80-121-01-41-81-122-02-42-82-1210-10-50-90-131-11-51-91-132-12-52-92-1320-20-60-100-141-21-61-101-142-22-62-102-143

0-3

0-7

0-11

0-15

1-3

1-7

1-11

1-15

2-3

2-7

2-11

2-15

若某帧要求第1行显示绿色,即逻辑缓冲区(表2中黑体部分G(1,0,G(1,1,G(1,2,G(1,3的值都为#1∃其它值为#0∃,经帧转换函数映射后对应物理缓冲区(表3中黑体部分0-5,1-1,1-13,2-9的值都为#1∃,其它值都是#0∃。

则物理缓冲区移位输出序列为:

{驱动器0}00000,{驱动器1}00010,{驱动器2}00000010

00000000。

6含优先级的主程序结构

主程序根据各项任务两次处理的间隔时间为每项任务分配了优先级,优先级越高的任务两次处理的间隔时间越短。

串行通信协议处理任务具有最高优先级,只要CPU空闲就执行,这样才能保证LED屏及时更新显示内容或响应各项命令。

其它任务按照优先级从高到低对应的两次处理间隔时间由短到长,例如,每隔100ms更新一次显示内容,每隔200ms读1次状态信息,每隔300ms喂一次看门狗,每隔1000ms执行一次环境亮度,7结论

本文提出的设计方法在实际系统中运行稳定可靠,现在这些方法已做成模板,开发人员直接套用这些模板快速完成相关

设计后就能立刻投入项目中其它组件的设计,从而缩短了整个项目开发周期。

限于篇幅,设计方法、应用范畴的不同,本文虽没有涉及含FPGA/CPLD的控制器设计,但文中的一些方法也同样适用此类控制器。

参考文献

[1]侯方明,李大兴.一种新的基于协议树的入侵检测系统的设计

[J].计算机应用研究,2005,22(7:

151.

[2]AdamDrozdek.DateStructuresandAlgorithmsinC++[M].USA.

Brooks/Cole.2001.

[3]FrancisNguyen.ChallengesinthedesignofaRGBLEDdisplayforin

doorapplications[J].SyntheticMetals,2001,122:

216.

[4]AbrahamSilberschatz,PeterBaerGalvin,GregGagne.OperatingSystem

].J

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1