DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 262|回复: 0
打印 上一主题 下一主题

基于Nios II的LlED显示屏控制器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:01:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      摘要:基于μC/OS-II实时操作系统实现多任务管理运行模式,采用Nios II 32位处理器作为LED显示屏控制系统的核心,控制单屏幕多窗口任意显示。整个控制系统在一片FPGA上实现,使用SOPC Builder软件定制集成IP核,通过外扩存储设备实现数据的海量存储,解决了FPGA内部资源相对不足的问题。同时,合理组织数据存储方式,降低了数据处理和控制系统的复杂度。
  引言
  目前,LED大屏幕显示系统按数据传输方式分为两类:一是同步实时显示,即计算机显示系统的内容同时在LED视频显示屏上显示;二是异步通信更新数据显示,计算机通过USB、通用串行接口、以太网等通信方式将数据传送给独立视频源显示屏。通常,异步通信控制方式只能将屏幕作为一个完整的区域显示,对于较大屏幕的显示系统,有时需要将整屏分为若干个窗口分别显示不同的内容,且内容的更新只是某一个或几个窗口。针对这种情况,本文提出了一种基于Nios II 32位处理器的设计方案,能有效地实现单屏幕多窗口的任意位置显示,使得显示方式更加灵活方便。
  1 系统总体设计
  1.1 系统硬件结构
  LED显示系统主要由计算机系统、数据通信传输模块、数据处理模块、扫描控制模块、显示驱动模块和LED屏构成,如图1所示。






  3 控制系统软件部分设计
  控制系统软件是基于实时操作系统μC/OS-II进行设计的。该操作系统利用高效任务调度算法调度每个任务,而每个窗口的显示由单个任务完成。主函数创建了2个任务:一个用于读取CF卡数据;另一个用于接收来自不同显示模块的场景数据和播放显示文件。
  3.1 数据结构
  数据在存储器中的存储形式直接影响数据的存取速度和控制的复杂度。本系统对显存中的数据和缓存中的数据均重新组织,降低了数据处理和扫描控制的复杂度。
  3.1.1 显存数据的组织
  LED显示屏的每个像素点都包括红、绿、蓝3种基色,每种颜色的灰度级均为256级(即由8位数据对像素点灰度级进行编码),故每个像素点需要占用3字节的存储空间。显示时,每个像素的红管、绿管、蓝管是同时点亮的,也就是说,3种颜色的数据是并行上屏的。可将红、绿、蓝3种颜色对应的数据分开存储,以方便操作。数据存储方式如图3所示。同一种颜色的数据集中存放在某个区域中,区域的首地址作为该颜色的基址。在进行数据存放时,每个像素点只需给出相对变化地址(变址),加上不同颜色的基址就可以在3个区域中找到对应点的视频数据。






  3.1.2 缓存数据的组织
  若要进行特技效果显示,则当前显示的数据帧和下一个数据帧存在着某种变换关系。由于CPU只能对显存进行写操作,所以需在缓存中划分出一块大小和显存相等、地址一一对应的区域screen,用于存储当前显示的数据帧信息。如果各窗口之间存在重叠现象,且特技数据处理运算直接在screen区域进行,则窗口重叠部分信息可能发生混乱。故在缓存中再为每一个窗口划分出一块存取空间(part 1,part 2,…,part n),用于存储本窗口显示的前一帧数据信息。在特技数据处理运算时,先在part区域处理各窗口的数据信息,将转换完的数据送往各窗口在screen区域中所对应地址的存取空间,最后将screen中的数据写入地址对应的显存。
  3.2 读取CF卡软件设计
  任务1负责将CF卡上的数据读取到SDRAM中,供其他任务使用。在程序中使用了1个指针(*pwmdata),为数据文件在SDRAM中分配空间。在文件系统初始化时,首先调用CF卡初始化函数IDE_initialize()判断CF卡是否存在。若存在,则读取文件系统的基本信息。通过调用函数FS_SearchFile(char*FName,FS_TFile*R,unsigned char dir)来查找需要读取的文件是否存在,若存在,则通过指针(*pwmdata)为数据文件在SDRAM中分配一个缓冲区。读取时,每次读取一个扇区,直到将数据全部读取到sDRAM中。
  部分程序源码如下:






  任务TaskControl的伪程序段描述如下:






  结语
  本设计充分利用了Nios II 32位处理器的高性能和μC/OS-II实时操作系统高效的任务调度算法,实现了单屏幕多窗口显示,且显示屏控制变得更加灵活。整个控制系统在1片FPGA芯片上完成,有效地降低了系统的成本。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-28 02:11 , 耗时 0.093803 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表