澳门星际官网【真.AG】

澳门星际

澳门星际官网LCD Panel Suppliers, Touch Panel
Manufacturers

新闻资讯News

澳门星际一种基于嵌入式系统的全彩LED显示屏脱

发表时间:2019-06-21 04:32

  脱机播放系统的设计方案。该方案旨在建立一套具有视频播放,图片、文字显示,支持多区域显示和流媒体播放,支持高分辨率的全彩LED屏幕的小型播放系统。系统硬件部分采用了S3C2440作为处理核心,并且使用嵌入式显示芯片SM501提供2D图形硬件加速功能。软件部分移植了2.6内核,开发了一套建立在Linux内核之上的高显示性能的专用LED播放软件。本文较好地解决了目前LED显示屏脱机控制卡局限于支持单色或者伪彩LED、分辨率低、不能播放高质量视频的现状。

  高分辨率LED显示屏的应用日益广泛,而目前国内LED显示屏的播放控制系统主要采用联机方式来实现,即PC机+视频发送板,通过千兆以太网或者光纤,将视频实时发送到LED显示屏端的视频接收板上完成显示。这种方式具有良好的人机操作界面和优秀的视频显示质量,对于近距离LED显示屏联机播放是一种重要的显示手段。而对于超长距离、户外LED显示屏而言,联机播放显然需要付出很高的代价才能实现,有些场合甚至无法实现。而脱机方式在这些场合则显示出其独特的优势。脱机方式的特点在于无人值守,专用性强,占用资源少,经济便携。同时可以通过一定的控制途径如Internet、GSM网络等可对播放过程及内容进行实时的干预和修改。目前国内的脱机控制系统多由嵌入式系统如单片机、SOC、DSPRISC处理器等实现。大多数脱机控制卡只能显示较小的分辨率,支持伪彩或者单色,不能播放高质量的视频。本设计旨在实现具有高分辨率、高质量视频播放、流媒体播放、多区域显示等功能的小型专用LED脱机播放系统。 本文将从系统的硬件结构和原理、软件各模块设计与实现、性能测试及结论三个方面进行说明。

  目前国内LED屏脱机控制系统多采用高性能RISC处理器作为核心,典型的以ARM9为核心的SoC芯片工作频率大多在200~600MHz之间。然而显示方面的性能依然比较低下,大多数芯片,典型的如S3C24X0,通过内部集成LCD控制器来实现显示功能,一般只支持到640X480的显示分辨率,16bit颜色深度。处理器芯片内置的LCD控制器是在系统内存中设置一小部分作为帧存(Frame Buffer),LCD控制器使用一个专用的高速DMA通道不断地读取帧存中的象素数据到FIFO memory中,最后生成视频时序输出到外部LCD接口,因此视频显示直接占用系统总线带宽。支持更高的分辨率和色彩深度意味着占用更多的系统带宽,比如1024×768分辨下,24位深度,60Hz场频的显示输出,显示占用的系统带宽在1.1Gbps以上。小型嵌入式系统有限的总线带宽显然不可能很好地支持高分辨率真彩显示。

  另一方面,对于一般的 2D图形操作如象素复制、缩放、色空间转换等需要软件实现,处理器对Frame Buffer的频繁操作带来的系统性能下降十分突出,极大的影响了CPU在视频解码方面的效率。

  鉴于上述分析,使用普通的面向手持设备的嵌入式体系结构无法满足全彩大型LED屏幕的显示要求,本文选择了工业级ARM芯片S3C2440+SM501显示加速协处理器的解决方案,从根本上解决了上述分析两个影响显示性能的关键问题。

  SM501是一款便携式多媒体协处理器芯片,专门为嵌入式工业提供显示功能,具有视频和2D加速能力。它支持多种输入/输出接口,包括模拟RGB、数字LCD接口、8位并行接口、USB、UART、IrDA、Zoom Video、AC97或I2S、SSP、PWM和I2 C.SM501的2D引擎包括一个前端色彩空间转换器,支持4∶1和1∶8的比例。LCD视频流水线支持一个YUV色彩空间转换。通过将优化的128位的2D图形引擎和一个与本地帧存储器连接的高带宽链接相结合,SM501提供面向工业的2D图形加速功能。2D图形引擎包含一个命令翻译器(一个增强型的DMA引擎),对于工作在150 MHz的32位数据宽度的SDRAM,SM501的DMA引擎读取2D操作数的带宽可达600 MB/s.SM501支持的最大显示分辨率为1280×1 024,可以轻松支持普通PC显示分辨率1024×768.

  整个硬件系统原理如图1示。S3C2440与SM501在slave 模式下通过系统总线可以通过系统总线的本地帧存。系统挂接DM9000A 10/100M网络芯片,上位机脱机控制软件通过Internet网络连接到脱机系统进行实时控制。脱机系统通过网络实现流媒体功能。

  对于SM501输出的数字视频,采用FPGA进行采集和分发。SM501与FPGA之间通过LCD数字接口连接,包含24 bit并行象素点RGB数据、象素时钟pclk,行场同步及DE信号。FPGA采集LCD接口输出的象素数据并实时转发到象素位置对应的扫描板,一帧图象传输完毕后,所有扫描板将同时更新显示新图像帧。每个扫描板控制的分辨率为256 × 256,脱机系统最大可以控制1024 × 768分辨率。FPGA内部逻辑详细设计不作为本文讨论的主要内容。

  LED脱机播放软件设计的基本要求包括:系统必须能够胜任7× 24小时连续稳定运行,因此播放软件必须具备健壮性。虽然S3C2440处理速度相对已经较快,但是解码对CPU时间的占用仍然是一个很突出的问题,因此播放软件必须具备高效性,尤其是尽最大可能发挥出SM501提供的2D加速显示能力。另外由于SoC更新速度很快,硬件平台必然会有更好选择,因此软件在保证高效率的前提下必须提高其可移植性。最后是建立开放式的软件架构,使之具备可扩展、可升级性,以便于逐步开发新的功能。

  文章将简要介绍基于S3C2440平台的嵌入式Linux系统平台的搭建,然后着重介绍播放软件在开放性、可移植性、高效性方面所采用的设计方法。

  Linux内核具有体积小,效率高,成熟稳定,源代码开放,资源丰富,内核直接提供丰富的网络协议,支持多种文件系统等诸多优点。本课题移植了Linux2.6.18内核,该版本内核具有稳定性好、开发工具支持度好的优点。这部分工作主要包括:

  2)剪裁并交叉编译Linux内核。移植USB存储盘、DM9000A网络芯片、SM501显卡的驱动到内核

  4)通过u-boot将内核和Initrd镜像烧写到Nand Flash上,设置内核启动参数和u-boot启动命令来启动内核

  经过上述工作,建立了一个小型化的嵌入式Linux平台。限于篇幅,本文对嵌入式Linux平台的建立细节问题不深入介绍。

  LED显示屏脱机播放软件的主要设计目标是支持视频播放、图片显示、多区域显示、流媒体播放、远程控制。由于整个软件项目比较庞大,本文将只选择几个关键模块进行详细说明,并侧重介绍软件方面如何利用SM501来实现高性能显示及视频播放。对流媒体播放和远程控制部分不做介绍。

  随着LED显示屏幕分辨率的不断增加,同一个显示屏对信息容量的需求也相应的增长,在面向广告的LED屏中这种需求尤其突出。典型的LED多区域显示情形是一个视频区域,多个图片区域,一个滚动字幕区域。脱机播放系统主要面向户外广告屏,因此,必须重点考虑多区域显示功能。

  为了更好的支持LED屏幕多区域显示,必须从传统的全屏显示概念中脱离出来,建立基于区域(zone)显示的概念,即显示内容总是在某个显示区域上完成显示,单屏显示只是多区域显示的一个特例。在结构上区域按层次划分,区域可以划分为多个子区域。同级子区域的位置不能重叠。这样,在理论上,可以支持任意的以矩形为单位的分区域显示形式。多个区域并行显示,通过多线程方式实现。

  每个区域都包含一个播放列表(playlist)。每个播放列表由一系列显示项目(playitem)组成。 显示项目的概念是指在某个显示区域上进行一次完整的显示过程。如一段视频播放,一幅图片定时显示,文字的运动显示等。程序采用了面向对象的设计思想,将不同类型的显示项目的共性抽象出来,以方便不断扩展的新的显示项目和客户定制的显示内容。

  所有的显示项目,无论其内容如何,都可以抽象为一个随时间变化的状态机。每个显示项目在时间的推移下在其所属的区域中完成自身的显示,也就是完成一个从初始化到结束的状态转换过程。因此,playitem是一个抽象基类。每种类型的显示项目只需重新实现playitem提供的公共调用接口即可。

  每个区域具有一个播放线程,该线程不断地从playlist中取出一个显示项目,执行其状态转换接口完成显示过程。这种设计允许不同类型的显示项目混合排列在同一个显示列表下,极大的增加了播放过程安排的灵活性。

  显示层的设计旨在提供一套可移植的、使用方便的2D显示接口,包括基于区域内部坐标的应用显示层接口和基于屏幕坐标而与硬件无关的底层显示接口。应用显示层给显示项目playitem提供简单的基于区域坐标的显示接口。基于屏幕坐标的底层显示直接工作在SM501硬件之上,最大化利用了SM501硬件加速能力,同时还提供了可移植的接口。在移植到其他的2D硬件上只需要重新实现底层显示接口即可。

  由于硬件设计上SM501处于slave mode与S3C2440连接,SM501不能访问系统内存,所有要进行加速操作的显示内容必须存放在SM501的独立显存上,这样不方便移植DirectFB作为底层显示接口。因此本文按照通用的2D显示接口,独立实现了一套基于屏幕坐标的通用底层2D显示接口。

  在实现上通过mmap把SM501的控制寄存器和独立显存全部从内核空间映射到用户空间,这样在程序中可以直接访问SM501的寄存器和管理本地显存,避免了在显示时应用程序与内核之间的数据交换,显示加速作用得以充分发挥。基于对SM501的直接访问,底层显示层实现了一套基本接口,包括显存分配与释放和基本2D加速操作如画线(line)、矩形填充(fill_rect),位图复制(bitblt)、缩放(bitblt_stretch)、色空间转换(CSC)等。其中对视频播放性能影响最大的是缩放和色空间转换。

  SM501的绘图引擎(Draw Engine)包括两个部分,2D绘图引擎和CSC颜色空间转换模块。2D绘图引擎主要用来绘制直线(基于Bresenham算法),矩形填充,复制(Bitblt),旋转复制(Rotation bitblt)。缩放与颜色空间转换功能都是通过CSC模块来实现。CSC模块可以实现YUV422,YUV420,RGB565,RGB888几种色彩空间及格式转换到RGB565和RGB888,色空间转换隐含了缩放功能。

  显存分配与释放管理是对映射到用户空间的Frame buffer进行的。实现上使用空闲链表的方法,并且采用最先适应的原则。最先适应分配算法有利于保留更大的连续内存块给那些一次性内存需求量大的分配请求。由于视频解码后色空间转换和缩放必须使用硬件加速来实现,因此总是预留1M的显存空间给视频显示使用。在显存不足的情况下,通过malloc分配系统内存。相应的所有显示层接口的地址参数均被设计成为自动识别地址属于系统内存还是独立显存,如果地址属于系统内存,则表明当前显存不足,于是使用软件的方法实现绘图操作。在释放显存时,程序若识别参数地址为系统内存,将调用free去完成释放。

  在多个显示区域同时显示的情况下,显存的分配与释放管理以及所有的基于硬件加速的2D操作均被互斥地调用,以避免多线资源进行争用带来的与时间相关的执行错误。

  由于SM501加速操作只能使用本地帧存的物理地址,而通过mmap映射得到的是进程空间的虚拟地址,显存分配得到的地址也是基于映射后的地址,因此写入SM501寄存器中作为地址的操作数必须将进程空间地址转化为实现的帧存物理地址。转化方法就是用显示分配函数得到的地址减去mmap得到的首地址。

  建立在底层显示层之上,软件实现了与屏幕绝对坐标无关的基于区域内部坐标的2D加速显示接口。区域内部坐标与区域本身在屏幕上的绝对坐标相加即可得出要显示的绝对坐标。另外每个显示区域都有对齐、缩放方式的选项。缩放方式可以有不缩放,线性缩放,非线性缩放三种,对齐在X,Y方向上分别有三种对齐方式。因为实际显示的内容大小与显示区域大小往往不是相同的,因此这两种选项对实际显示效果影响极大。如区域宽高比与显示内容宽高比相差较大时,非线性缩放将导致显示内容严重畸变,而线性缩放将显示内容保持为原来的宽高比。显示层次如图4.

  这部分主要介绍针对SM501显卡的解码过程优化设计,并给出优化后的性能测试数据。LED脱机播放系统目前支持MPEG-4视频格式的AVI文件播放。

  MPEG-4是MPEG(运动图像专家组)制定的视频压缩标准,是目前用得最广泛的一种视频编码标准。MPEG组织于1999年1月正式公布了MPEG-4 V1.0版本。MPEG-4除采用第一代视频编码(MPEG-1,MPEG-2,H.263等)的核心技术,如变换编码、运动估计与运动补偿、量化、熵编码外,还提出了一些新的有创见性的关键技术,包括视频对象提取技术、VOP视频编码技术、视频编码可分级性技术、运动估计与运动补偿技术等。

  Xvid是开源的MEPG-4码器,遵守GPL通用公共许可证,也是目前国际上公认的性能最佳的MPEG-4编解器之一,支持MPEG-4 SP框架。本文移植了Xvidcore-1.1.3到arm-Linux环境,并且基于Xvid设计了自己的LED脱机系统视频播放器。

  AVI文件格式是Windows系统下最常用的一种视频文件格式。AVI文件并不局限任何视频编码格式。AVI文件格式是基于RIFF(Resource Interchange File Format)文件格式的。RIFF基于“块”为信息单位,每个块由一个4字符组成的FOURCC字标识。整个文件由一个RIFF块构成,RIFF块和LIST(列表)块可以包含子块。包含子块的块结构为:FOURCC+块长度+块类型+块数据。不包含子块的块结构为:FOURCC+块长度+数据。 AVI文件在RIFF的基础上定义了自己的块类型和数据。一个AVI RIFF文件由3大部分组成:RIFF文件头,hdrl列表,movi列表,除此外还有一个可选的索引idxl块。其中hdrl列表包含 avih 子块和 strl 子列表,文件中有多少个流,hdrl 列表中就有多少个strl 子列表,strl子列表在 hdrl 中的次序就是流的序号。Movi列表中是实际的MPEG-4编码流,avih子块包含了AVI视频文件的头信息,比较重要的是帧频。一般的AVI视频文件只有一个视频流。户外LED屏幕对于音频播放需求少,因此本文并不涉及音频解码。

  Xvid解码过程中要不断输入MPEG-4视频编码比特流,视频流从AVI文件中的movi列表子块中提取。AVI文件存储在USB可移动存储盘上,文件IO时间延迟会导致解码过程产生间隙性的视频播放停顿,因此有必要采用单独的IO线程从AVI文件中不断提取视频流。IO线程与解码线程构成一种生产者-消费者类型的线程同步关系,需要引入同步互斥量来保证其同步工作。

  由于MPEG-4视频编解码的原始颜色空间是YUV420,如果直接输出YUV420平面格式Xvid不需要进行颜色空间转换,其余输出格式则需要经过色空间转换算法得到。Xvidcore-1.1.3解码器输出不同的颜色空间格式对整个解码时间的影响非常显着。表1是在S3C2440平台下使用Xvidcore-1.1.3解码同一MPEG-4视频文件(分辨率320x176) 使用不同输出格式的帧频比较。

  本文使Xvid解码直接输出YUV420平面格式,避免了Xvid使用软件算法进行色空间

  转换,然后使用SM501提供的YUV420转RGBx888硬件色空间转换命令完成视频帧的显示。这种方式下SM501与Xvid解码器并行工作,发挥了最佳的效果。同时为了避免了对数据的二次复制,本文直接在SM501本地显存中申请了空间作为解码帧输出地址,这些优化使得整个解码器的性能提高了2~3倍。 图4表示了简要的视频播放软件流程。

  通过硬件缩放和象素复制,本文实现了1024×768分辨率下全屏流畅视频显示和多区域视频同步显示等普通嵌入式系统难以达到显示效果。多个显示区域下脱机播放系统AVI视频文件播放性能测试结果如表2示。可以看到,由于有硬件2D加速支持,解码速率与视频实际显示速率完全相等,区域大小以及多个区域同时显示对系统性能没有显着影响。

  测试结果表明该系统足以胜任大多数全彩类型商业广告LED大屏幕脱机视频播放。

  本文采用高速MCU和SM501嵌入式显卡作为硬件平台,突破了嵌入式系统在显示性能上的瓶颈,接口明确。在软件上移植了Linux2.6内核作为软件平台,在效率和可移植性方面做了较好平衡,运用了良好的软件设计思想,开发出具有开放式体系结构的LED脱机播放软件。该系统已经成功应用于全彩LED显示屏的脱机播放和控制。

  第5次计算浪潮涵盖了一切通信设备。希加斯带领与会者快速回顾移动通信历史:2G创建发送文本消息的功能,...

  “USBType-C”并不是电子产品的新术语,它已经上市超过四年,你可能每天都在使用它。但是,这项技...

  嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在RO...

  2019年3月9日,在中国软件协会嵌入式系统分会、江苏省计算机学会的指导下,唯样商城有幸与苏州大学共...

  最近业界一直在大力推动将人工智能(AI)嵌入到嵌入式系统中。其中一些是用于基于云的AI,如亚马逊的A...

  3月5日,2019–研华公司(研华,股票代码:2395)宣布将与芯片大厂超威半导体(AMD)以及西门...

  操作系统是一种在计算机上运行的软件,它的主要任务是管理计算机上的系统资源,为用户提供使用计算机及其外...

  ADI今天推出一款嵌入式系统,用于为电动(EV)和混合动力汽车(HEV)产生发动机声音。通过采用AD...

  首先是熟练掌握单片机的基本原理,虽然现在单片机厂商众多,但各家单片机的基本结构和原理都比较相近,例如...

  在信号处理领域中,基于FPGA+DSP的结构设计已经是系统发展的一个重要方向。随着该系统设计的广泛应...

  传统的嵌入式系统开发往往被归类于硬件开发,而采用汇编语言控制硬件CPU的方法被严格区分于面向过程、面...

  根据通用计算机与嵌入式系统的分类,可以把微处理器分为通用处理器与嵌入式处理器两类。通用处理器以x86...

  有了这些想法,我决定出一些真正针对嵌入式系统的考题,希望这些令人头痛的考题能给正在找工作的人一点帮助...

  当今的嵌入式应用已经无处不在,无论是消费电子、通信终端,还是系统设备、工业控制、汽车电子系统或航空航...

  据报导,从体积走向小型化的移动电话,与生活息息相关的汽车,到巨无霸喷射客机自动导航系统,嵌入式系统无...

  后PC时代,嵌入式系统的发展风起云涌,波澜壮阔。在这一历史洪流中,众多的嵌入式系统规范争奇斗艳,各种...

  嵌入式系统的主要特点如下:嵌入式系统的硬件和软件的紧密结合,具有很强的依赖性之间的软件和硬件,嵌入式...

  物联网、云计算不是炒作,是嵌入式系统物联与互联网技术在高级阶段上交叉融合变革的时代产物。当物联网热闹...

  目前,在嵌入式系统应用领域中,不少人对什么是嵌入式系统不甚了解。也有些人在解释什么是嵌入式系统时,不...

  许多嵌入式系统部署在操作人员难以或无法接近的地方。物联网(IoT)应用尤其如此,这些应用通常大量部署...

  1.与个人计算机(PC)相比,嵌入式系统具有许多不同的特点。下面不属于嵌入式系统特点的是( )。A...

  成为一个正式的嵌入式开发工程师。它是一个艰辛的过程,需要开发人员维护和管理系统的每个比特和字节。从规...

  低功耗系统设计需要注意很多非传统性因素,从硅片工艺技术,直到在微控制器嵌入平台上运行的软件。在系统级...

  德承是嵌入式计算平台的专业制造商,很高兴推出其仅手掌大小的无风扇工业计算机DA-1100系列。 德承...

  计算机用于嵌入式控制设备领域的历史和计算机本身的历史一样久远。最初的用于控制机电式电话交换器的通讯设...

  究竟应用使用静态分配还是动态分配,一直是嵌入式系统设计中一个争论不休的总是。当然,最合适的答案是对于...

  嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定...

  一种以ARM处理器为核心的汽车尾气遥测仪的设计。对该遥测仪的工作原理、系统设计与嵌入式软硬件实现作了...

  作者十年来做过小的嵌入式系统,大的电信系统以及基于web的系统。使用过C ++,Ruby,Java和...

  本文描述了基于IAP和网口升级该嵌入式系统的方法,其中处理器为NXP公司的ARM Cortex-M3...

  一请论述复杂的嵌入式软件系统架构模型的组成,以及这种模型的优点。 二请论述常见的特殊目的寄存器的作...

  以智能家居网关为例,它连接和管理着多个设备,比如远程恒温器控制、家庭监控和照明系统等。想象智能家居中...

  嵌入系统开发已经趋于规范化,但是嵌入式系统的开发并不像在普通PC机上进行软件开发那样容易,它同样需要...

  由于经济下滑损及开发预算减少,嵌入系统设计者正在转向FPGA(现场可编程门阵列)技术,以缩减开发周期...

  为目标嵌入式产品选择适合的嵌入式图形支持系统成为与选择嵌入式操作系统一样颇具挑战性。本土公司开发的M...

  定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严...

  模块划分的划是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的...

  设计了一种基于SoPC的嵌入式文字识别系统。在FPGA平台下,基于SoPC框架搭建软硬件协同系统,设...

  随着U盘、数码相机、mp3音乐播放器等移动设备的广泛应用,FLASH存储器已经逐步取代其它半导体存储...

  在嵌入式系统中,有时候需要中文字符来表示我们的某些信息,但是中文字符库本身占据空间比较大,因此有时候...

  随着工业4.0、医疗电子、智能家居、物流管理和电力控制等快速的发展和推进,嵌入式系统利用自身的技术特...

  谈及协议,很多工程师觉得协议的设计相对简单,主要是报文的设计。大多数时候,协议的应用场景简单,没有复...

  嵌入式系统可以通过网络连接和物联网(IoT)来传递信息、共享资源。无论是智能,低能耗,边缘设备,中间...

  嵌入式系统在IoT产业中的角色物联网在中国的发展速度非常快,它已经成为国家的战略型产业之一。众所周知...

  成为一个正式的开发工程师是一个艰辛的过程。从规范完善的开发周期到严格执行和系统检查,开发高可靠性系统...

  而下面是来自 gooroo.io的数据,根据每条招聘启事给出的薪酬范围取了平均数:懂 Ruby,C+...

  实时操作系统()是嵌入式应用软件的基础和开发平台,应用程序都是建立在它之上。实时嵌入式操作系统的种类...

  作为信息化时代的重要发展阶段,物联网以互联网为基础,实现物与物之间的信息传输。发展需要的三项关键技术...

  由于各种新型微处理器的出现和应用的不断深化,嵌入式系统在后PC时代得到了空前的发展。随着时间的推移和...

  嵌入式系统是一个无限大的空间,不论是嵌入式系统平台构建还是嵌入式系统平台应用,都有无限广阔的发展空间...

  随着我国通信技术和基础设施建设的不断推进,嵌入式系统得到更加广泛的应用,目前该技术不仅局限于大型电子...

  指纹锁凭借高效的安全性和便捷性逐渐进入人们的家庭生活中,但是大多数人在选购指纹锁的时候往往对各大品牌...

  在如今高速发展的社会下,电子信息技术的更新迭代相当迅速,想要不被社会淘汰,就要不断更新自己的技术水平...

  中国拥有世界上最大的消费电子产品市场,手机、彩电、VCD、家用电器等的拥有量都居世界第一。随着经济水...