LED大屏幕异步控制器实现方案

最新更新时间:2011-12-26来源: 电子发烧友网关键字:LED  大屏幕  异步控制器 手机看文章 扫描二维码
随时随地手机看文章

  1、引言

  以往的LED 异步控制器只能把一个屏幕作为一个完整的区域来进行显示, 或者简单的加上时间区域或游走字幕区域,这样对于用户来讲往往缺乏足够的灵活性, 尤其在屏幕较大的时候。针对以上情况, 本文提出了一款基于32 位高性能ARM处理器和uc/OS- II 的设计方案。它充分利用了uc/OS-II 高效的多任务管理功能和ARM处理器强大的运算能力, 实现了单屏幕多窗口的任意位置显示, 使得显示内容变得更加丰富, 显示方式变得更加灵活。

  2、LED控制系统的工作原理

  典型的LED 异步控制系统主要由PC 应用软件、通信模块、数据处理模块、扫描控制模块、驱动模块和LED 屏几部分组成,如图1 所示。

  

 

  首先, PC 应用软件将文本或图片转化为具有特定格式的点阵信息。然后, 通过通信模块将此点阵信息发送给数据处理模块。数据处理模块对这些点阵信息进行各种特技处理, 最后通过扫描控制模块和驱动模块将画面在LED 屏上进行正确显示。

  本文所指的LED 异步控制器包括通信模块、数据处理模块和扫描控制模块三部分。

  3、控制器软件部分的设计

  本控制器的硬件结构如图2 所示。数据处理模块由MCU,一片SRAM和一片FLASH 存储器组成。MCU 选用PHILIPS 的基于32 位ARM内核的LPC2214 处理器, 它有着丰富的外围接口资源和强大的运算能力, 是整个控制器的核心。SRAM作为MCU 进行特技处理时的缓存使用。FLASH 存储器用于存储点阵信息和一些必要的参数。

  

 

  扫描控制模块由CPLD 和显存组成。显存为一片SRAM, 它用于保存当前显示的一帧点阵信息。CPLD 通过地址总线和16位数据总线与MCU 相连, 它把从MCU 接收到的16 位数据按指定地址写入显存, 然后再按一定的寻址方式从显存中读出点阵信息进行扫描。MCU 只能通过CPLD 对显存进行以字(2byte)为单位的写操作。通信模块包括以太网模块和串口通信模块, 用于实现PC 与控制器之间的RS232、RS485 以及工业以太网通信。

  4、控制器软件部分的设计

  为了实现单屏幕、多窗口任意位置的显示, 软件部分我们基于uc/OS- II 进行设计, 这样可以充分利用操作系统高效的任务调度算法, 将每个窗口的显示都交由单个任务来完成, 从而极大地提高系统的运行速度和可靠性, 并且使得程序的开发和扩展变得更加方便。

  在进行具体的程序设计之前, 首先要确定数据的组织方案。

  因为好的数据组织方案, 对于程序编写来说往往可以达到事半功倍的效果。

  4.1 显存的数据组织方案:

  对于双色屏, 一个像素点需要红、绿两位数据来描述。为了便于处理, 我们将横向连续的8 个像素点组成一个字(2byte)来进行存储, 其中一个字节为红数据, 一个字节为绿数据。数据存储顺序为从左到右, 从上到下。如图3 所示, 假如屏幕宽度为160 个像素点, 显存起始地址为0x83000000, 则屏幕第一行的前8 个像素点映射到显存中地址为0x83000000 和0x83000001 的两个字节, 第二行的前8 个像素点映射到显存中地址为0x83000028 和0x83000029 的两个字节, 依此类推。

  

  由于窗口大小可以任意设置, 窗口的位置可以任意摆放。
  所以对于单个窗口而言, 它在显存中的映射可能并非是字(2byte)对齐的。以图4 为例, 在一个大小为160(宽)×96(高)的屏幕上开设一个左上角坐标为(20,16), 大小为86×47 的窗口, 则此窗口第一行的前4 个像素点在显存中的映射为地址是0x83000282 和0x83000283 的两个字节的低4 位, 所以这个窗口在显存中的映射并不是字对齐的。由于MCU 只能以字(2byte)为单位对显存进行操作, 所以PC 软件在对该窗口进行点阵信息转换时, 如果直接对区域1 (窗口的实际大小)进行转换存储,则在对该窗口进行特技处理时会存在大量的位运算, 这样会大大降低运算效率, 从而影响特技效果的显示, 这样就很难满足用户对特技显示效果的要求。
  
 
  为了解决上述问题, 可以将区域1 横向扩展成起点坐标为(16,16), 大小为96×47 的区域2。易知, 区域2 在显存中的映射是字对齐的。为了避免运算时的位操作, PC 软件在对区域1 进行点阵信息转换时, 可按区域2 来进行, 只是需将区域1 的扩展部分的数据全填为1。这样处理会牺牲掉一小部分FLASH 存储器空间, 但却可避免特技处理时大量的位运算, 从而大大提高运算效率, 因此这样做是值得的。
  4.3 缓存数据的组织方案:
  由于MCU 只能对显存进行写操作, 而在进行特技运算时,往往需要前一帧信息才能得到下一帧的信息。所以, 首先, 需要在缓存中划分出一块和显存大小相等, 地址一一对应的区域screen 用于保存整屏幕的前一帧信息。
  
 
  又由于MCU 对显存只能进行字操作, 并且多个窗口之间可能会出现区域重叠, 所以如果各窗口的特技运算都直接在screen 区域上进行, 则窗口重叠部分信息可能会发生混乱。因此如图5 所示, 也需要在缓存中为每个窗口划分出一块存储器空间(area 1, area 2, ..., area n), 用于保存本窗口显示的前一帧信息。这样在特技运算时, 首先要在area 区域中对各窗口数据进行运算得到各窗口的下一帧信息, 然后将area 区域中数据写入该窗口在screen 区域中的相应地址以保存整屏幕最新一帧信息, 最后把screen 中相应数据写入显存从而完成显示。
  4.4 软件设计:
  基于上述方案, MCU 程序的设计变得非常简洁。程序结构如图6 所示, 控制器上电后, 首先进行系统初始化, 然后从FLASH 中读取屏参数, 进行参数初始化。接着建立任务TaskCONtrol, TaskControl 拥有比各窗口显示任务都要高的优先级, 它主要用于对各窗口显示任务进行实时管理。每隔一段时间TaskControl 就要对reset 标志进行一次查询, 如果reset=1, 它会删除原先建立的各窗口显示任务, 然后从FLASH 中读取新的窗口个数, 依此建立新任务, 将每个窗口的显示交由单个窗口显示任务来控制。
  
下面是任务TaskControl 的程序演示:
 
  void TaskControl(void *pdata){
  uint8 taskNum;
  pdata=pdata;
  RESET:
  reset=0; //reset 标志清零
  for(taskNum=3;taskNum<18;taskNum++){ // 删除原先建立的窗口任务
  OSTaskDEL(taskNum); // 窗口显示任务优先级从3 开始}// 最多允许设置16 个窗口
  taskNum=flashReadWord(AREA_NUM_ADDR);// 从FLASH中读取屏幕窗口个数
  if(taskNum>0) // 根据窗口数建立窗口显示任务
  OSTaskCreate(task0,(void*)0,&task0Stk[TaskStkLength- 1],3);
  if(taskNum>1)
  OSTaskCreate(task1,(void*)0,&task1Stk[TaskStkLength- 1],4);
  ...
  while(1){if(reset) goto RESET; //reset 标志为1, 程序复位
  OSTimeDlyHMSM(0,0,1,0);}
  }
  窗口显示任务用于实现各窗口内容的显示。它根据各窗口显示方式的不同在其相应area 区域中进行下一帧数据的运算,然后调用areaToScreen()和screenToCpld()进行显示。在完成一帧数据的显示后, 调用一次OSTimeDlyHMSM()使当前任务进入等待状态同时进行一次任务调度, 将系统控制权交给处于就绪状态的窗口显示任务中优先级最高的那个, 由此完成窗口显示任务之间的切换。我们也可以通过调整OSTimeDlyHMSM()的参数来改变各窗口相临两帧显示信息之间的时间间隔, 从而可调整各窗口特技显示的效果, 比如移动显示的移动速度。下面是其中一个窗口显示任务的程序演示:
  void Task0(void *pdata){
  pdata=pdata;窗口参数初始化;while(1){uint16 i;
  for(i=0;i< 总帧数;i++){下一帧数据的运算; // 在area 区域中进行
  areaToScreen(); // 将数据从area 读出写入screen
  screenToCpld(); // 将screen 中相应数据写入显存完成一帧数据的显示OSTimeDlyHMSM(0,0,0,displaySpeed*20); // 任务调度
  }
  }
  }
  5 结束语
   实现了单屏幕多窗口的任意位置显示。使得屏幕显示变得更加丰富灵活, 也使得很多以往只能使用同步控制器或者多个异步控制器的场合可用单块异步控制器来替代, 从而降低了系统的成本。
关键字:LED  大屏幕  异步控制器 编辑:探路者 引用地址:LED大屏幕异步控制器实现方案

上一篇:LED晶片的分类全解
下一篇:表面封装型LED散热与O2PERA

推荐阅读最新更新时间:2023-10-18 16:17

LED照明之降压结构的实现
  随着LED的广泛应用,在很多地方线性电源这种简单的结构已经不能满足需求。一般情况下,当用电阻的方式设定LED所需的正向电流的时候,这种简单的驱动方式可以连续的由电源向负载提供能量。由于LED的电流与电阻上的相同,所以电阻上产生的功耗会随输入电压的增加而增加。例如,一个用线性电源驱动的LED,效率为70%,用5V线性电源提供1A电流给一个典型的白光InGaN LED (VF = 3.5V)。在相同的工作条件下,当输入电压上升到12V时,它的效率将会降到30%。在如此低效率的情况下是无法应用的。   开关电源   开关电源改善了由于输入变化使得效率变化比较大的问题。这种方式是通过控制占空比的方式来满足输出所需要的电压或
[电源管理]
<font color='red'>LED</font>照明之降压结构的实现
LED技术多领域应用可改善人类生活
  气候变迁使得节能减碳的议题日趋受到重视,而如何有效减少耗能成为重要课题,随着蓝光 LED 和白光 LED 的诞生,全球的传统照明也渐渐地被节能省电的 LED 取代,LED技术也应用于多种领域以改善人类生活。下面就随嵌入式小编一起来了解一下相关内容吧。   高效的白光LED比传统白炽灯效率高20倍,而美国能源部统计,到2030年前传统照明转换为LED可以减少261TWh的电力,大约为30座的发电厂分别省下1,000MW的电力,同时减少1.85亿吨的二氧化碳排放。   此外,LED还能和太阳能结合,取代有毒又危险的传统煤灯。LED技术今年也获得全球知名的再生能源和永续发展大奖—Zayed Future Energy Prize
[嵌入式]
高亮度LED照明系统低温设计挑战
在设计高亮度 LED照明 系统时,最大的挑战是管理温度及散热,以保持LED的工作温度低于它们的结温。    高亮度LED的照明能效(流明/瓦,lm/W)已经高于白炽灯,并且很快将将与荧光灯匹敌(图1)。根据美国能源部(DOE)的发展路线图预测,高亮度LED的照明能效在未来几年内将与高压钠灯相当。这将会大幅扩展LED照明的应用商机,因此,高亮度LED的技术前景非常光明。   预计高亮度LED将在各个应用领域渗透,包括汽车、通用照明、笔记本背光、便携及移动无线设备、液晶电视背光及标志等。在诸如便携及移动无线设备领域中,LED背光的渗透率已经达到几乎100%。未来三到五年,液晶电视背光将是LED需求的最大推动力量,其次是通用
[电源管理]
HTC涉嫌白光LED专利侵权,HTC U Ultra或将在德禁售
日本 LED 大厂 日亚化 学(Nichia Corp.)与 宏达电 之间再添诉讼! 稍早日亚化发布声明指出,宏达电旗舰手机  HTC  U Ultra 所搭载的白光 LED,涉及侵害日亚化 YAG 专利,对此已在 6 月 29 日向德国杜赛道夫地方法院提起专利侵权诉讼。   日亚化控告宏达电和其子公司 HTC Europe Co. Ltd.、HTC Germany GmbH,以及负责 HTC 欧洲网络商店营运的电子商务公司 Digital River Ireland Ltd. 等对象侵权,主张  HTC U Ultra  所搭载的 白光LED ,侵害日亚化 YAG 白光 LED 关键专利 EP 0936682(即德国专利号 DE
[嵌入式]
大功率LED恒流驱动方案选择及设计实例
虽然大功率LED现在还不能大规模取代传统的照明灯具,但它们在室内外装饰、特种照明方面有着越来越广泛的应用,因此掌握大功率LED恒流驱动器的设计技术,对于开拓大功率LED的新应用至关重要。LED按照功率和发光亮度可以划分为大功率LED、高亮度LED及普通LED。一般来说,大功率LED的功率至少在1W以上,目前比较常见的有1W、3W、5W、8W和10W。已大批量应用的有1W和3W LED,而5W、8W和10W LED的应用相对较少。预计大功率LED灯会在2010年上海世博会上大量应用,因此电子和照明行业都非常关注LED照明新技术的发展应用。 恒流驱动和提高LED的光学效率是LED应用设计的两个关键问题,本文介绍大功率LED的应用
[电源管理]
大功率<font color='red'>LED</font>恒流驱动方案选择及设计实例
环保手电筒:用手掌热量维持发光
     据国外媒体报道,15岁加拿大女孩最新发明制造一款环保节能手电筒,仅使用手掌的热量发光,如果谷歌科学展览会评审团欣赏这项发明,有望授予其特级发明奖。   加拿大女孩安-马科辛斯基(Ann Makosinski)于2012年参加了另一次科学展览会,她参展的是另一款手电筒,使用动能驱动LED灯,此次她希望发明一款通过热电效应工作的手电筒,少量电流可在一种材料冷热面之间产生。   她在接受媒体采访时说:“我相信我们都曾有过一个令人讨厌的经历,当我们迫切需要手电筒时,能够找到一个手电筒却未没有电池。可以设想一下,如果我们的手电筒不使用电池,将避免大量的有毒电池掩埋在土壤中。”   令科学家们置疑的是,人体能否产生足够的热量用于维持
[电源管理]
环保手电筒:用手掌热量维持发光
科锐提高XLamp®XP-E和XP-C彩色LED的性能
  LED照明领域的市场领先者科锐公司(纳斯达克:CREE)日前宣布推出 XLamp®XP-E和XP-C彩色LED的新款高性能版本。   XLamp XP-E现可提供最低光输出为500mW的品蓝光LED、39.8lm的蓝光LED、107lm的绿光LED、73.9lm的橘红光LED和62.0lm的红光LED,电流均为350mA.   XLamp XP-C现可提供最低光输出为350mW的品蓝光LED、23.5lm的蓝光LED、62lm的橘红光LED和51.7lm的红光LED,电流均为350mA.   科锐公司LED元器件部市场营销总监Paul Thieken表示:“科锐推出了涵盖整个光谱且节能环保的业界最佳LED光输出产品
[电源管理]
基于STM32F429的定时器中断点亮LED的设计
电子时代,硬件在突飞猛进的发展,频率不断上升,目前的STM32系列,Cortex M系列,Cortex-M4的频率已经为:180MHz了,基本上与之前的ARM7/9频率差不多了,还有Cortex-M7,频率更高,出现了BGA封装与SDRAM DDR等。看来处理器越来越大众化了,物联网上的电子设备联网,也越来越普及了,硬件成本不断降低是大势所趋,因此,作为一个电子设计人员,还是要不断的学习掌握更多的技术知识与基础,从而不会被社会很快淘汰。 最近买了一个现成的STM32F429 Discovery 的开发板,想尝试一下较大点的嵌入式操作系统如RTEMS的移植与应用。因为有了STM32F103/107的基础,熟悉了硬件与固件库,ST
[单片机]
基于STM32F429的定时器中断点亮<font color='red'>LED</font>的设计
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved