LED显示屏控制器设计研究图文精_第1页
LED显示屏控制器设计研究图文精_第2页
LED显示屏控制器设计研究图文精_第3页
LED显示屏控制器设计研究图文精_第4页
LED显示屏控制器设计研究图文精_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第28卷第3期 计算机应用与软件Vo l 28No . 32011年3月 Co m puter Applicati o ns and Soft w are M ar . 2011LED 显示屏控制器设计研究张 飙(桂林理工大学信息科学与工程学院 广西桂林541004 收稿日期:2009-11-26。张飙, 讲师, 主研领域:LED 显示技术与摘 要 针对LED 屏控制器设计提出了一些新的方法。快速移位法使移位速度提升33%。协议树的引入使通信协议的描述、解释和扩充更加快捷; 应用循环缓冲区可有效避免通信缓冲区溢出引发的程序异常; 显示双缓冲区的使用不仅简化了显示帧设计而且便于设计代码移植; 基

2、于优先级的主程序结构可优先且多次响应重要任务。运用这些方法可以显著提高控制器开发效率和运行稳定性。关键词 快速移位 协议树 循环缓冲区 显示双缓冲区ON DESI GN OF LED SCREEN CONTROLLERZhang B iao(S c hool of Informa tion S cie nce and E ngineeri ng, G uili n Un i versit y o f Technol ogy, G uili n 541004, G uangxi , C hina Abstrac t T his arti c l e provides some ne w desi

3、 gns f o r the contro ller of LED display sc reen . T he data shift speed can be raised 33pe rcent quicker w ith the fast sh ift appro ach . The i n troduction of protoco l tree m akes it conven i ent to dep ict , i nterpret and ex tend the communicati on protoco. l So ft ware excepti on induced by

4、comm un i cation bu ffer overfl ow can be avo i ded effectively v ia resorti ng c ircular buffer . T he use o f double buffer f o r display si m p lifies the des i gn of display fra m e asw e ll as facilita tes the des i gn of code porti ng . M ain progra m arch itecture based on pri o rity m akes i

5、t possi b l e to respond i m portant tasks w ith precedence and frequentl y . By apply i ng t hese m e t hods , t he deve l op m ent e ffi c iency o f con tro ll er and its running stability can be consp i cuousl y enhanced .K eywords F ast s h ift P ro toco l tree C i rcular buffer D isplay double

6、buffer0 引 言随着LED 显示屏市场不断扩大, 缩短LED 显示屏控制器开发周期、增强系统稳定性已显得尤为重要。本文针对单片机控制的LED 显示屏提出了一些新的设计方法, 这些方法做成模板后稍加修改就可直接用于实际项目设计。1 系统结构为了方便描述, 本文给出了具有代表性的51单片机为控制核心的LED 显示屏系统结构如图1所示。系统主要包括快速移位模块, 存储器扩展模块, 串行通信模块, 亮度采集模块, LED 检测模块, 配置模块, 看门狗模块等。图1 系统结构图2 快速移位实现! 结构, 在单片机系统中通常由单片机实现移位输出, 移出1bit 数据需3个机器周期(时钟置低, 放1b

7、it 数据, 时钟置高, 这种方法优点是简单易用, 缺点是数据输出速率低。本文在基本不增加硬件成本的条件下, 提出利用74H C165辅助单片机加快移位速度的方法, 该方法可使移位速度提高33%, 其硬件连接和操作时序如图2所示。图2 快速移位硬件实现及移位时序74HC165采用并入串出工作方式, 单片机W 78E58的P0口同时连接74H C165的数据端口P0P7和外部RAM 61C256的数据端口D0D7。单片机RD 脚同时连接74HC165并行数据装入端PL 和外部RAM 读使能端OE 。当单片机从外部RAM读取显示数据时, RD 变低, 同时PL 也变低, 使出现在数据总线上的数据被

8、异步装入74HC165内部移位寄存器中。读操作结束后, 由单片机P1. 6脚生成移位时钟(P1. 6置低, P1. 6置高生成一个时钟, 又P1. 6接CLK 1, 这样每个CLK1上升沿Q 7就输出1bit 数据。P 1. 6经非门驱动生成LED 驱动器的移位时钟SCLK, 每个SCLK 上升沿Q 7输出的1b it 数据被移入LED 驱动器中, Q7输出则生成了串行移位数据SD 。可见快速移位法输出1bit 数据只需2个机器周期, 相比单片机的3个机器周期减少1个机器周期, 即移位速度提升33%。3 树型协议设计及其处理程序结构LED 显示屏的串行通信协议通常由LED 显示屏生产商专门制订

9、, 制订方式大致有两种:一种是参照标准协议制订, 另一种是完全自定义。由于没有统一标准, 造成协议形式五花八门, 不利于协议的解释、维护和扩展。本节给出了LED 屏通信协议的树型设计方法。按此方法设计出的每个协议都形成一棵协议树1, 具有层次结构清晰, 搜索速度快, 内容扩展方便, 通用性好等特点。本文以一种基于M odbus 的交通诱导屏协议为例进行设计, 协议主要包括两类命令:一类是读取1个或多个参数(功能码03H , 另一类是设置1个或多个参数(功能码16H , 协议中部分内容设计为图3所示 的一棵协议树。图3 交通诱导屏M odbus 协议树协议处理程序只需按照协议树采用多重CASE

10、结构嵌套形式编写。图4对协议中 功能码03 实时数据区 实时数据处理! 给出了伪码描述, 图中的地址码参见表1。当协议项较多时采用此结构可以显著提高协议项搜索速度, 从而缩短通信响应时间, 这一点对于拥有大量交通诱导屏和其它设备的智能交通网络意义重大。每块诱导屏通信响应时间缩短, 必然使整个交通网络轮询周期的缩短, 这样控制中心就可在更短的时间内获 取更新的路段信息。图4 树型协议处理程序结构有些协议没有按照图3所示结构设计, 如表1所示。对于这类协议只要按照上述方法容易将非树形协议转化为图3所示的协议树, 协议处理程序与图4所示方法相同。表1 非树型协议 通用功能区1000H 实时数据区11

11、00H 自检数据区1400H 亮度调节方式1002H 读或写字体1102读或写各模组故障率1402读亮度值1003H 读或写显示内容1103读或写启动自检1403写自检间隔时间1004H 读或写故障信息1104读显示模组数量1005H读4 通信循环缓冲区使用循环缓冲区在计算机系统应用较多2, 本文在外部RAM 上设置2个循环缓冲区分别作为串行通信的收、发缓冲区。这样通信收、发缓冲区对应的存储区域都是一个循环队列。如此设计就可有效避免因通信缓冲区溢出而引发的通信处理异常。循环缓冲区设置有读指针和写指针。每写入或读出一个数据, 写指针或读指针就沿缓冲区移动一位。循环缓冲区空、满状态判断非常方便:当

12、:取模(写指针+1 =读指针, 表明缓冲区#满, 此时缓冲区丢弃新的数据; 当:读指针=写指针, 说明缓冲区#空。只要对每次移动后的读或写指针做 模! 运算就可保证读、写指针指示范围超出缓冲区时又会自动回到缓冲区内, 从而使缓冲区可以循环使用。只要缓冲区大小设置合理且系统运行正常, 缓冲区循环使用时被覆盖的数据都是使用过的数据, 而且缓冲区#满发生概率非常小。51单片机汇编语言没有直接支持模运算, 而是通过多字节除法间接实现, 这样模运算频繁使用必定会拉长通信响应时间。本设计通过采用单片机硬件直接支持的#逻辑与运算替代#模运算解决了此问题, 现在给出部分程序代码:设接收循环缓冲区和发送循环缓冲

13、区分别为1K 字节(03ff H 数组rxd_buf和t xd_buf,读指针r_p和写指针w _p分别指示数组rxd_buf和t xd _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_bufr_p; r_p+;r_p&=0%3f; f 用逻辑与替代模运算是有条件的, 即数组最后一个元素的索引号转换为二进制数为全#1。前面提到的 3ff H ! 转换为二进制码为全#1,

14、 满足要求的还有 ff H ! , 7ff H ! 等等。5 显示双缓冲区应用制的LED 屏系统通常只有1个串行数据输出PCB 布线常常是红、绿、蓝三种LED 管互相交错个16位LED 驱动器输出口上。例如, 3个16位共48个输出口上出现R 4|G4|B4|R4G 4|B4|R4|, 对应基。显示信息通常做法是:根据PCB 布线直接生成显示帧(如上移操作的各个帧 , 这种做法每一帧编程都要考虑PCB 布线, 而且不同布线的显示模块需重新编程, 编程繁琐, 通用性差。为克服上述缺陷, 本文提出了在外部RAM 上设置显示双缓冲区4间接生成显示帧的设计方法。双缓冲区中一个为逻辑缓冲区, 另一个为物

15、理缓冲区, 这里用4%4点阵为例进行说明。逻辑缓冲区存放逻辑显示帧, 其每个b it 从左到右从上到下顺序对应实际显示屏像素而与显示模块PCB 布线无关, 如表2所示。物理缓冲区用于存放实际显示帧, 它的每个b it 顺序对应级联的16位LED 驱动器各个输出口, 它与显示模块PCB 布线有直接联系, 如表3所示。表2中 C (X, Y ! 表项中X 表示行序号, Y 表示列序号, C 表示基色。如 R (2, 3 ! 表示第2行第3列像素中的红色。表3中 X Y ! 表项中X 表示LED 驱动器序号, Y 表示该驱动器输出位序号。例如 0-5! 表示LED 管由第0个驱动器的第5位驱动, 此

16、LED 管是第1行第1列像素中绿色LED 管双缓冲区实现显示分三个步骤:(1 在逻辑缓冲区生成显示帧。(2 调用帧转换函数将逻辑缓冲区内容转换为物理缓冲区的内容。(3 将物理缓冲区内容移位输出完成显示。在逻辑缓冲区生成显示帧与PCB 布线无关, 编程较容易, 但显示前必须将逻辑显示帧映射到物理缓冲区, 这里把完成这个映射的函数称为帧转换函数。这样编程时每一帧都在逻辑缓冲区生成, 显示前调用帧转换函数, 将逻辑缓冲区生成的显示帧转换为物理缓冲区的实际显示帧。对于不同PCB 布线的显示模块只需改写帧转换函数, 而在逻辑缓冲区编写的大量显示帧生成代码则可重复使用。帧转换函数设计方法有2种:代数法和查

17、表法。代数法需要寻求映射: 表3=f(表2 ! 中函数f 的表达式, 该方法需要使用算术运算指令, 缺点是转换速度慢, 优点是实现代码短。查表法是在程序中存储一张映射表, 转换时只需执行查表指令, 这样做优点是转换速度快, 缺点是映射表需占用程序存储器造成实现代码长。基于速度优先本设计采用查表法。需存储的映射表就是表3, 它每个表项包含两个字节, 例如表2中1行3列的绿色LED 管G (1, 3, 查表后得到两个字节02H 和09H, 即对应表3中2-9表项, 则1行3列的绿色LED 管应由第2个驱动器的第9位驱动。表2 LED3基色4%4点阵的逻辑缓冲区列 0123行&R G B R

18、 G B R G B R G B 0(0, 0 (0, 0 (0, 0 (0, 1 (0, 1 (0, 1 (0, 2 (0, 2 (0, 2 (0, 3 (0, 3 (0, 3 1(1, 0 (1, 0 (1, 0 (1, 1 (1, 1 (1, 1 (1, 2 (1, 2 (1, 2 (1, 3 (1, 3 (1, 3 2(2, 0 (2, 0 (2, 0 (2, 1 (2, 1 (2, 1 (2, 2 (2, 2 (2, 2 (2, 3 (2, 3 (2, 3 3(3, 0(3, 0(3, 0(3, 1(3, 1(3, 1(3, 2(3, 2(3, 2(3, 3(3, 3(3, 3表3

19、LED3基色4%4点阵的物理缓冲区列 0123行&R G B R G B R G B R G B 00-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-1430-30-70-110-151-31-71-111-152-32-72-112-1500000000。6 含优先级的主程序结构主程序根据各项任务两次处理的间隔时间为每项任务分配了优先级, 优先级越高的任务两次处理的间隔时间越短。串行通信协议处理任务具有最高优先级, 只要CPU 空闲就执行, 这样才能保证LED 屏及时更新显示内容或响应各

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论