熊木地, 孙宇航, 郭俞君
(大连海事大学 信息科学技术学院,辽宁 大连 116026)
随着科技进步和娱乐方式的多样化,各类显示屏应运而生,人们对视频质量以及显示屏应用领域的需求也就越来越高。在种类繁多的显示屏产品中,发光二极管(LED)显示屏凭借着色域广、功耗低、寿命长的优势占据了显示屏市场的一大部分[1]。LED智能玻璃显示屏在具有传统LED显示屏特点的基础上,又具有良好的透明性以及建材特性,因此被广泛应用于户外大型展示项目,尤其适合于以大楼幕墙为载体或者作为地铁出口的玻璃幕墙等应用。但是,传统的LED智能玻璃显示屏的控制系统需要以计算机作为视频源进行实时的视频输出[2-5],在小规模场合中使用不够方便,因此本文设计了一种脱离了独立视频源、便携的视频播放控制系统。
本系统由视频输出单元和视频转发单元两部分组成。如图1所示,其中视频输出单元主要负责提供可视化操作界面以及将按照一定方式重新排序的视频数据通过光纤发送至视频转发单元,视频转发单元负责接收并选取其中一部分视频数据,再对这部分视频数据进行反Gamma校正后发送至驱动系统实现对LED智能玻璃显示屏的控制。由于LED驱动芯片的移位时钟频率限制了每个视频转发单元所能控制的LED数目,因此想实现大规模LED智能玻璃显示屏的控制需要多个视频转发单元,所以视频转发单元还需要将接收到的视频数据通过光纤转发至下一个视频转发单元,以视频转发单元级联的形式实现大规模LED智能玻璃显示屏的控制。
图1 LED智能玻璃显示系统Fig.1 LED smart glass display system
视频输出单元由中央处理器(CPU)和现场可编程门阵列(FPGA)两部分组成。其中CPU及其外围电路作为视频输出单元的主要核心,负责向用户提供可视化操作界面,实现文件存取,连接互联网,向FPGA发送地址码表,提供视频数据等功能[6]。FPGA及其外围电路作为辅助核心负责视频数据的重排序以及通过光纤向视频转发单元的传输。视频输出单元的整体工作流程如下:
CPU:预先烧写Android系统至外挂EMMC芯片中,提供完整操作系统,使用户可通过HDMI接口连接显示屏,USB接口连接鼠标键盘以及U盘,实现视频文件存取,连接互联网等所需操作。用户通过特定内置APP绘制地址映射图,生成地址映射数据文件,并将地址映射文件中的数据发送至FPGA部分[7]。同时CPU通过特定视频输出引脚将RGB数据、场同步信号以及随路时钟发送至FPGA部分。
FPGA:在CPU的控制下接收地址映射数据并将其分为两部分存入两片外挂SSRAM的后半部分地址中,地址映射数据存储完成后,将每一帧RGB视频数据以乒乓操作的方式在两片外挂SSRAM的前半部分地址中进行读写操作,并将读出的RGB视频数据通过光纤发送至视频转发单元。
视频转发单元以FPGA为核心,通过光纤接收视频输出单元发送的RGB视频数据并在其中截取自身控制的部分LED智能玻璃显示屏所对应的RGB视频数据,对其进行反Gamma校正后通过网线发送至驱动电路实现对LED智能玻璃显示屏的控制,同时将接收到的全部RGB视频数据通过光纤发送至下一个视频转发单元。
如图2所示,视频输出单元由CPU和FPGA两部分组成。CPU部分由CPU、EMMC、DDR、WIFI以及电源管理模块组成。在此之中CPU选用瑞芯微电子的RK3288处理器,该处理器采用四核Cortex-A17架构,最高支持4 K 10 bits H265/264视频解码以及多路视频输出,可以保证在提供可视化操作界面的同时向FPGA部分发送RGB视频数据,以实现本系统所需功能[8]。EMMC以及DDR选用KLMAG1JETD-B041N和K4B4G1646E-BMMA两款芯片,二者分别作为系统存储器以及系统缓存单元。WIFI选择AP6335无线WIFI模块,用以实现系统所需的网络功能,电源管理模块以ACT8846QM490-T芯片为核心,该芯片被设计专用于RK3288系列芯片电源管理。
图2 视频输出单元结构框图Fig.2 Structure diagram of video output unit
FPGA部分由FPGA、SSRAM、光纤接口组成。在此之中,FPGA选用Xilinx公司的Spartan-6系列的XC6SLX45T FPGA芯片,该芯片最大支持可达3.2 Gbps的高速串行收发器,可以满足本系统所需的光纤传输速率需求。SSRAM选用IS61LPS204836B-200TQLI,该芯片最多可存72 Mb数据,读写速率可达200 MHz,能够满足本系统所需的1 080 P的视频数据读写要求。
在用户开机后,CPU借由搭载的专用Android5.1操作系统共实现3部分功能。其一为持续通过专用引脚向FPGA发送RGB视频数据、随路时钟信号以及同步信号。其二为提供可操作图形界面以及操作系统。其三为通过内置APP按照实际LED智能玻璃显示屏走线绘制地址映射图生成相应地址映射文件,并将其存入EMMC中,之后拉高CPU与FPGA相连的使能引脚,通知FPGA接收地址映射数据。并按照CPU生成的写时钟信号向FPGA发送地址映射数据。当地址映射数据发送完成后,CPU拉低使能引脚,通知FPGA地址映射数据发送完毕。该操作需进行两次,分别发送地址映射数据的前后两部分。
FPGA部分从功能上可以分为地址映射数据接收模块、视频数据接收以及地址映射模块、光纤发送模块4个模块。
地址映射数据接收模块在系统上电后等待CPU的使能信号,当使能信号被拉高时,通过FIFO将地址映射数据的前后两部分按照地址自增的方式分别存入外挂SSRAM_B以及SSRAM_A的后半部分存储空间中。
视频数据接收以及地址映射模块在FPGA上电后就开始在CPU所发送的随路时钟信号以及同步信号的控制下将视频数据以地址自增的方式存入外挂SSRAM中,由于本系统采用的是1 920×1 080的视频输出分辨率,因此通过对行同步信号的计数可将视频数据均分为两部分,分别存入SSRAM_A以及SSRAM_B中。在实际运行过程中,为了保证视频帧数不减半,在视频数据接收以及地址映射操作过程中采用乒乓操作的方式[9-10]。
光纤发送模块通过将Aurora_8b10b IP核配置为单工发送模式,将地址映射操作完成并经过了FIFO的RGB视频数据通过光纤发送至视频转发单元。由于本系统使用的单工Aurora_8b10b IP核的初始化以定时模式实现,因此整体光纤通讯系统的上电顺序必须为接收端在前,发送端在后,无法实现光纤的热插拔,在实际应用中较为不便。为解决此问题,在光纤发送模块每完整发送20帧视频数据后,Aurora_8b10b单工发送模块会进行一次复位重启,使光纤通道可以重新建立,实现光纤的热插拔,并去除上电顺序对光纤系统的影响。由于每次Aurora_8b10b单工发送模块的重启均在视频场消隐过程中进行,故不会对视频显示效果造成影响。
图3 视频转发单元结构框图Fig.3 Structure diagram of video forwarding unit
如图3所示,视频转发单元以FPGA为核心,FPGA芯片同样选用Xilinx公司的Spartan-6系列的XC6SLX45T FPGA芯片。视频转发单元在功能上可分为光纤模块、数据选取以及处理模块、数据发送模块3部分。其中光纤模块为修改过的Aurora_8b10b IP核,通过修改Aurora_8b10b IP核的程序,使其可以同时作为接收端和发送端分别与两个不同的对象建立光纤通道,实现视频转发单元之间的光纤级联[11-12]。系统上电后,光纤模块先接收由上一级通过光纤发送的RGB视频数据,并将数据选取以及处理模块处理后的RGB视频数据通过光纤发送至下一级。数据选取以及处理模块先将光纤接收到的数据通过简单双口RAM去除其中的无效数据,之后通过对大小固定的另一个双口RAM进行写操作来将RGB视频数据分组。具体为设置一个初始值为0的寄存器,每次双口RAM写满后会对该寄存器进行加一操作并从地址零开始继续写入下一部分数据,直至寄存器的值与板载拨码开关所设置的数值一致,便停止写入RGB视频数据,并对此时双口RAM中的数据进行反伽马校正处理[13-14]。数据发送模块将反伽马校正后的数据进行并转串处理,生成与驱动电路匹配的时钟后发送至驱动电路,实现LED智能玻璃显示屏的控制。
为保证最终系统输出视频不存在丢帧现象,在地址映射过程中需要进行乒乓操作,具体流程如下。FPGA首先需自己生成双倍于随路时钟频率的时钟CLK_PP1以及CLK_PP2,在地址映射数据存储完成后,首先以CLK_PP1的奇数周期作为写时钟将第一部分RGB视频数据存入SSRAM_A的前半部分空间中,在这部分RGB视频数据存储完成后,同样利用CLK_PP2的奇数周期将RGB视频数据的后半部分数据存入SSRAM_B的同时利用CLK_PP2的偶数周期作为读时钟以地址自增的方式读出地址映射数据,并以该数据为读地址利用CLK_PP1的偶数周期从SSRAM_A中读出视频数据,完成地址映射。再之后SSRAM_A以CLK_PP1的奇数周期为写时钟写入视频数据,以CLK_PP1的偶数周期为读时钟读出地址映射数据并操作SSRAM_B完成地址映射操作,之后重复上述过程。
嵌入式视频播放控制系统连线图如图4所示。
图4 嵌入式视频播放控制系统连线图Fig.4 Wiring diagram of embedded video playback control system
嵌入式播放控制系统视频映射调试如图5所示,映射调试采用行列扫描方式,通过观察行列像素点位置,判断映射结果是否准确,经实际测试,无像素点错位现象。
图5 嵌入式播放控制系统视频映射调试图Fig.5 Video mapping debugging diagram of embedded playback control system
LED智能玻璃显示效果6所示。
图6 LED智能玻璃显示屏显示效果图Fig.6 Display effect diagram of LED intelligent glass display screen
本文介绍了一种基于嵌入式系统的LED智能玻璃显示控制系统,采用搭载操作系统的CPU+FPGA双核架构。CPU通过USB接口对U盘中视频数据进行读取,通过在CPU特定内置APP中进行地址映射图绘制,生成地址映射数据,并将视频数据和映射数据发送至FPGA。FPGA对视频数据重新排序,通过光纤发送至视频转发单元,视频转发单元接收视频数据选取其中一部分视频数据,反伽马校正后发送至驱动系统实现对LED智能玻璃显示屏的控制,采用多个视频转发单元级联方式驱动大规模LED智能玻璃显示屏。此系统给产品应用带来了方便,具有更广泛的应用范围。