基于μC/OS-II的多窗口显示屏控制器设计

发布者:美好梦想最新更新时间:2012-02-25 来源: 电子设计工程 关键字:μCOS-II  NiosII  控制器  FPGA 手机看文章 扫描二维码
随时随地手机看文章

引言

    LED大屏幕显示屏是当今室外平面显示的主流,其控制系统的技术发展也日趋成熟,控制系统按数据传输方式分为两类:同步显示和异步显示。同步显示控制系统即LED显示屏和视频数据源实时保持一致,视频信号实时变化。异步显示控制系统通过USB、通用串行接口、以太网等数据通信方式,更新大屏幕控制系统的视频数据存储区。数据更新由上位机控制,LED显示屏的视频信息变化由视频数据存储区的数据决定。在异步显示系统中,可实现将显示屏分为若干区域,不同的区域对应不同的存储区,数据更新时可以只更新其中的一个或几个窗口。本设计采用嵌入式操作系统μC/OS-II的多线程控制方式,分别控制各个窗口的数据区域,实现单屏幕多窗口的任意位置显示,使得显示方式更加灵活方便。

1 系统总体设计

    采用SOPC技术在FPGA上构建Nios II软核作为LED显示控制系统的处理器,实现32位的嵌入式系统操作。通过基于μC/OS-II的嵌入式操作系统的软件设计,完成对DVI视频显示数据的接收和预处理。扫描电路接收视频数据后进行存储,同时将数据进行再组织并送往扫描屏。


1.1 系统硬件结构

    多窗口显示屏控制系统的结构框图如图1所示。

a.jpg


    计算机显卡数据通过DVI接口将数据传送给显示屏控制系统的解码电路部分,DVI解码芯片将获得的视频数据解码,得到RGB视频数据和控制信号。控制信号中包含行扫描信号和场扫描信号,显示屏控制系统根据场扫描信号判断采集1帧视频数据是否结束,并将视频数据写入发送系统的数据存储器RAM进行缓存。FPGA从RAM存储器中读取数据,将该数据按照灰度级分为8个区域模块进行重新组织、转换,然后通过移位串行时钟送入LED显示屏进行显示。本系统的数据处理模块、数据存储模块、扫描控制模块3部分均在FPGA上实现。

1.2 软件总体设计

    全彩色LED大屏幕数据量大,本设计将显示屏从逻辑上划分为多个窗口,软件部分基于μC/OS-II嵌入式操作系统编程实现。μC/OS-II操作系统的任务调度算法比较先进,在显示系统中,可以将每个窗口的显示操作都交给某个任务来执行,这样可以从很大程度上提高整个系统的运行速度和软件的可靠性。

    软件基于Nios II IDE开发完成,应用程序基于μC/OS-II实时操作系统实现。软件主要由2个任务和1个定时器中断服务程序组成,任务间采用信号量的方式进行通信。计算机系统的显卡数据经DVI解码模块解码后得到RGB视频数据。任务1接收RGB视频信息,并对视频信息进行滤波、数据的位组合、数据存储区的重新组合等处理操作。任务2从内存中读取数据,并进行分析处理,把分析处理完的数据送往扫描控制模块。利用μC/OS-II的实时性和多任务的特点,采用嵌入式文件系统进行数据管理。

2 控制器的硬件部分设计方案
2.1 视频数据解码模块分析


    采取从显卡的DVI接口获取数据,经过视频控制系统进行适当的数据变换,再发送到LED显示屏上显示。此模块用来获取视频源数据,完成对显卡DVI接口传输的TMDS编码数据的接收。通过TMDS解码,实现对RGB视频数据和像素时钟CLOCK、像素有效信号DE、行同步信号HSYN、场同步信号VSYN、同步检测信号SCDT等视频显示控制信号的恢复。

    计算机显卡输出的DVI差分信号不能直接作为LED的扫描数据信号,需要经过解码,将该信号恢复为数字视频数据RED[7..0]、GREEN[7..0]、BLUE[7..0]等像素信息,还需要恢复控制信号,如行同步信号HSYNC、场同步信号VSYNC、数据使能信号DE和时钟CLK等控制信
息。需要一个解码电路对DVI差分信号进行解码,本设计采用TFP401A DVI解码芯片实现该功能,解码后的数据信息用于提供给LED屏控制器使用。

2.2 数据的存储组织模块分析

    数据写入SRAM存储器中的组织方式有两种:位平面法和组合像素法。位平面法是指像素的每一位分别存放在不同的存储设备中;组合像素法是指画面上每个像素的所有位均集中存放在单个存储设备中。LED屏像素数据每一位的权值是不同的,高位的权值高,也就意味着高位为1时LED的点亮时间要长。根据两种存储结构的特点,对于LED屏,采用位平面结构有利于提高LED屏的显示效果,从而更容易实现D/T(data to time)转换。位平面法的数据需要重新组织,利用位平面结构有利于提高LED屏的显示效果。数据重构示意图如图2所示。

b.jpg[page]

    数据重构后,通过QuartusⅡ软件编译,得出如图3所示仿真波形。其中,当col为1时,表示已写完上面8个地址的数据,此时读地址计数器开始计数。datain为串行输入数据,dout为串行输出数据。

c.jpg


2.3 扫描控制模块

    将数字视频信号进行缓存处理,并将RGB信号通过脉宽调制(PWM)转换为供LED显示所需的信号送往扫描模块。扫描控制模块由用户自定义的PWM IP核和显存组成,显存采用1片SRAM实现,用来保存当前显示的1帧点阵信息数据。PWM模块通过Avalon总线和Nios IICPU连接,将从CPU接收到的数据按指定地址写入显存,然后再按一定的寻址方式从显存中读取点阵信息数据进行扫描。

2.4 其他功能模块

    串口控制器、定时器、存储器控制器通过SOPC Builder软件定制集成IP核自动生成。

3 控制系统软件部分设计

    该操作系统利用高效任务调度算法调度每个任务,而每个窗口的显示由单个任务完成。

3.1 数据结构

    数据在存储器中的存储形式直接影响数据的存取速度和控制的复杂度,本系统对显存中的数据和缓存区的数据均重新组织,降低了数据处理和扫描控制复杂度。

3.1.1 显存数据的组织

    LED显示屏的每个像素点都包括红、绿、蓝3种基色,每种颜色的灰度级均为256级,即由8位数据对像素点灰度级进行编码,故每个像素点需要占用3字节的存储空间。显示时,每个像素的红管、绿管、蓝管是同时点亮的,也就是说,3种颜色的数据是并行上屏的。据此,可将红绿蓝3种颜色对应的数据分开存储,以方便操作。数据存储方式如图4所示。每种颜色的数据集中存放在某个区中,每个区域的首地址作为3种颜色的基址,在进行数据存放时,每个像素点只需给出相对变化地址(变址),然后加上不同的基址就可以在3个区域中找到对应点的视频数据。

d.jpg


     LED显示屏灰度的实现方法,是分权重扫描的。这样就需要把颜色数据位分离,然后同权重的位重新组合。为了方便操作,存储时把图4所示的分区中的每个区再分为8个权重区,所有同权重的数值集中放于对应权重区中。所谓位分离就是把数据的高低位按权重分开,然后重新组织。位分离的实现在可编程逻辑器件中也比较容易实现,可以划出一块逻辑矩阵,操作时横向存入,纵向读出即可。位分离示意图如图5所示。

[page]

e.jpg

3.1.2 缓存数据的组织

    若要进行特技效果显示,则当前显示的数据帧和下一个数据帧存在着某种变换关系,由于CPU只能对显存进行写操作,所以需在缓存中划分出一块大小和显存相等、地址一一对应的区域screen,用于存储当前显示的数据帧信息。如果各窗口之间存在重叠现象,且特技数据处理运算直接在screen区域进行,则窗口重叠部分信息可能发生混乱。故在缓存中再为每一个窗口划分出一块存取空间(part 1,part 2,…,part n),用于存储本窗口显示的前一帧数据信息。在特技数据处理运算时,先在part区域处理各窗口的数据信息,然后将转换完的数据送往各窗口在screen区域所对应地址的存取空间,最后将screen中的数据写入地址对应的显存,从而完成显示。

3.2 软件设计

    基于上述方案,程序的设计将变得非常简洁。首先进行系统初始化,然后从Flash中读取屏参数,进行参数初始化。接着建立任务Task Control,对各窗口显示任务进行实时管理,它拥有比各窗口显示任务都高的优先级。它每隔1 s对reset标志进行一次查询,如果reset=1,则删除原先建立的各窗口显示任务,从Flash中读取新的窗口个数,然后依此建立新任务,将每个窗口的显示交由单个任务来控制。
    下面是TaskControl任务的程序演示:
f.jpg
g.jpg
    窗口显示任务用于实现屏幕各窗口的显示。它可根据各窗口显示方式的不同在其相应area区域中进行下一帧数据的运算。在完成1帧数据显示后,调用OSTime DlyHMSM()使当前任务进入等待状态并进行一次任务调度,将系统控制权交给其他处于就绪状态的显示任务,由此完成和窗口显示任务之间的切换。也可以通过调整OSTimeDlyHMSM()的参数来改变各窗口2帧显示信息之间的时间间隔,从而可调整各窗口特技显示的效果,如移动显示的移动速度。下面是其中一个窗口显示任务的程序演示:
h.jpg

4 结论

    本设计充分利用了Nios II 32位处理器的高性能和μC/OS-II实时操作系统高效的任务调度算法,实现了单屏幕多窗口显示,显示屏控制变得更加灵活。整个控制系统在1片FPGA芯片上完成,有效降低了系统的成本。

关键字:μCOS-II  NiosII  控制器  FPGA 引用地址:基于μC/OS-II的多窗口显示屏控制器设计

上一篇:在MOTOROLA A68K系列MCU上移植μC/OS-II
下一篇:基于Xilinx FPGA的千兆以太网及E1信号的光纤传输

推荐阅读最新更新时间:2024-03-16 12:54

基于LPC2138的注塑机控制器设计
现代注塑机的发展重点在于提高控制水平和整机自动化程度,以及整机优化设计和加工工艺的改进方面,以满足对于注塑制品质量及节能的要求。随着微电子技术的发展,嵌入式系统芯片以集成度高,价格低,性能强大而得到广泛应用。利用32位的ARM处理器实现注塑生产过程的自动控制,实时显示并在线修改各阶段的过程参数,这不仅提高了注塑机自动化程度,而且大大提高了塑料制品的生产效率和产品质量。 1 注塑机的组成及其工作过程 1.1 注塑机的组成 该控制器以电动一液压相结合的复合式注塑机为控制对象,它是集机-电-液于一体的典型系统。它主要由液压油路系统、合模系统、注射系统、加热冷却系统、润滑系统、电气控制系统、安全保护装置、监测系统及供料等辅助系统组成
[单片机]
基于LPC2138的注塑机<font color='red'>控制器</font>设计
基于FPGA的光电抗干扰电路设计方案
光电靶的基本原理是:当光幕内的光通量发生足够大的变化时,光电传感器会响应这种变化而产生电信号。这就是说,一些非弹丸物体在穿过光幕时也会使得光幕内光通量发生变化以至光电传感器产生电信号。从原理上,这种现象并非异常,而对测试来讲则属于干扰。在具体靶场测试中,当干扰严重时会导致测试根本无法进行。因此,如何排除干扰,保证系统的正常运行,是一个必须解决的问题。 红外密集度光电立靶测试系统是一种新型的用于测量低伸弹道武器射击密集度的测试系统,既测试无须进行任何特殊处理的金属弹丸,又可测试非金属弹丸,更有反映灵敏、精度高而稳定、操作简单、容易维护等优点,已被许多靶场投入使用。 理论分析 光电靶在工作时,光电传感器响应光幕内光通量的变化,将
[嵌入式]
基于<font color='red'>FPGA</font>的光电抗干扰电路设计方案
利用USB控制器设计的Windows音量控制器
  USB技术在现代电子系统中应用得越来越广泛。很多计算机上甚至去掉了传统的串口,全部改用USB口的鼠标、键盘,甚至风扇。传统的USB控制器在使用时,需要大量的与主控机相连的接口连线,占用了大量的CPU I/O口资源。随着电子技术的高速发展,USB控制器向小体积、低功耗的方向发展。本文介绍如何使用MAX3420进行Windows系统HID设计的过程。   本设计的首要目的就是,寻找一种快捷的方法来调整音量或者暂停播放,而不需要移动鼠标来寻找Windows Media Player窗口。该系统插在USB端口上,只有一个旋钮起主要作用。旋转这个按钮可以调节音量。按一次旋钮暂停播放,再按一次开始播放。由于该旋钮掌控主要的Windows
[单片机]
利用USB<font color='red'>控制器</font>设计的Windows音量<font color='red'>控制器</font>
stm32 嵌套向量中断控制器NVIC
嵌套向量中断控制器(NVIC)和处理器核的接口紧密相连,可以实现低延迟的中断处理和高效地处理晚到的中断。 嵌套向量中断控制器管理着包括内核异常等中断 NVIC 相关的函数包含在 misc.c 文件中 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct) void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup) void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset) void NVIC_SystemLPConfig(uint8_t LowPower
[单片机]
stm32 嵌套向量中断<font color='red'>控制器</font>NVIC
盛群推出BS85xxx系列Flash触控与显示面板驱动微控制器
盛群半导体推出具有触控与显示面板驱动功能的Flash MCU BS85xxx系列,BS85xxx系列家族成员共2颗,分别是BS85B12-3具有12个触控按键并可直接驱动48颗LED与56段LCD显示面板与BS85C20-3具有20个触控按键并可直接驱动112颗LED与88段LCD显示面板。触控按键的功能实现是透过内建在MCU内部的振荡器电路与定时器来完成,当人体接触到按键,振荡器外部的等效电容发生变化,振荡器的输出频率就会改变,进而改变定时器的值;再配合信道译码器做多信道的扫瞄,以此BS85xxx系列当中的触控按键模块就可以知道那个按键有被按下。BS85xxx系列的触控按键不需要外部参考电容,且可以很容易透过程序来调整每个按键的灵
[单片机]
FPGA与CPLD的辨别和分类
    FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:     将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。      将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。     尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点: ①CPLD更适合完成各种算法和组合逻辑,FP GA更适
[嵌入式]
节能型循环泵控制器
基于无传感器技术的永磁同步电机 PMSM 矢量控制调速系统结构简单、易维护、体积小、成本低,能应用于一些特殊场合,因此成为了当前的研究热点之一。无传感器控制的核心是转子位置和转速估计,估计的精度和稳定性决定了系统控制性能的优劣。基于滑模观测器(slide mode observer, SMO)的位置估计方法结构简单、易于实现,从而得到了广泛的应用。 1986 年召开的第 25 届决策和控制会议上,麻省理工学院的 J.J.Slotine 教授提出使用SMO 实现非线性估计问题,奠定了滑模观测器应用与转子位置估计的基础。SMO 是利用滑模变结构控制系统对参数扰动鲁棒性强的特点,将状态观测器中的控制回路用滑模变结构代替,从而达到良好
[嵌入式]
Laird SimpleLink SaBLE-x-R2蓝牙5模块携手TI无线微控制器 带你走进
贸泽电子 (Mouser Electronics),宣布即日起开始备货Laird Technologies的SaBLE-x-R2蓝牙® 5模块。SaBLE-x-R2 模块采用初始版SaBLE-x模块经过现场验证的硬件,缩短了系统开发时间,可以为物联网 (IoT) 传感器实现领先的低能耗蓝牙连接,为商业、医疗和工业应用实现信标技术。 贸泽电子备货的Laird SaBLE-x-R2模块采用外部或PCB引线天线,其传输范围、速度和吞吐率完全符合蓝牙5规范,并针对应用目标和OTA能力扩展了闪存容量。此独立模块采用Texas Instruments SimpleLink™ CC2640R2F无线微控制器,集成了Arm® Cortex®-
[半导体设计/制造]
Laird SimpleLink SaBLE-x-R2蓝牙5模块携手TI无线微<font color='red'>控制器</font> 带你走进
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved