APP下载

基于嵌入式Android的LED智能玻璃显示设计

2021-03-02熊木地郭俞君

液晶与显示 2021年2期
关键词:显示屏玻璃终端

熊木地, 郭俞君, 张 坤, 李 琎

(大连海事大学 信息科学技术学院,辽宁 大连 116026)

1 引 言

LED智能玻璃显示屏是利用特殊工艺将单个LED点光源以阵列形式封装在两片玻璃中间,形成安全夹层结构的LED平板发光玻璃产品,其具有很强的光线通透性,能满足安装场所的特别光线需求,很好地与周围建筑环境相融合[1-3]。

国外有许多研究机构和高校都开展了对LED智能玻璃的显示研究工作,并取得了实质性的成果,然而国内对于LED智能玻璃显示技术的研究还处于初步阶段[4],没有很完善的技术研究成果,主要还处于对LED智能玻璃显示屏制作创新的研究阶段,对于LED智能玻璃显示控制系统的研究还比较少。

与传统LED显示屏相比,LED智能玻璃其内部的LED点阵采用蛇形连接形式,在不同应用场合下LED智能玻璃其内部的LED点阵数量和排列方式不同,所以需要将视频数据进行重新排序后再发送至后续驱动电路驱动LED智能玻璃显示屏显示,大规格LED智能玻璃显示通常采用多块小规格显示屏模块拼接实现。

除此之外,当前LED智能玻璃显示控制系统大多不能满足远程信息实时发布的需要,而且其显示信息输入大多通过DVI等数字通信接口与PC机连接,实时、点对点地显示PC机显示器显示的内容,这样的方法需要外接一个PC机,不够便利,因此本文提出基于Android操作系统的LED智能玻璃显示设计。

LED智能玻璃显示屏与移动终端的结合,不仅实现了人与屏之间实时互动,大为拓展了LED智能玻璃显示屏的应用领域,而且系统的集成化也大量地节省了人力资源、财务支出、降低了社会的资源浪费,具有良好的收益前景[5]。

2 系统硬件架构

2.1 CPU+FPGA双核架构

由于不同规格LED智能玻璃其内部的LED点阵排列方式不同,所以需要将视频数据进行重新排序再发送至后续驱动电路[6]。系统硬件架构图如图1所示,本系统主要包括带有GPU (Graphics Processing Unit)的主控芯片RK3288、现场可编程门阵列(FPGA)数据处理单元以及驱动系统。

图1 系统硬件架构图

RK3288主控芯片通过USB(Universal Serial Bus)接口完成对U盘中存储的视频数据和映射数据的读取,并发送给FPGA[7]。FPGA数据处理单元将视频数据缓存在外部存储器SSRAM1中,将映射数据缓存在外部存储器SSRAM2中,通过按地址递增方式读取SSRAM2的数据作为SSRAM1的地址读取SSRAM1中的视频数据,即实现视频数据的重新排序,然后对数据进行并转串处理传送给驱动系统。驱动系统采用专用的驱动芯片,将数据串行移位和并行输出,从而实现大规格LED智能玻璃的显示。

RK3288主控芯片通过SDIO接口与Wifi模块相连,实现LED智能玻璃显示屏联网。在主控芯片和用户移动终端上分别安装.apk,从而实现人与屏之间通信。

此外,为保证 Android 等操作系统和用户软件的流畅运行,采用2 GB双通道DDR3 的运行内存、16 GB 容量的高速eMMC 存储器,OTG接口用于方便系统调试和程序下载。

2.2 RK3288与FPGA数据通信接口设计

RK3288与FPGA硬件连接图如图2所示,本系统中 RK3288主控芯片输出控制信号以及数据与FPGA相应的信号直接相连,实现数据通信。其中I_RGB[23:0]为视频数据、I_DE、I_VSYNC、I_PCLK为视频控制信号,I_ADDR[15:0]为映射地址数据、I_nWE、I_HCLK为映射数据发送控制信号。RK3288和FPGA之间通信是一种跨时钟域通信,所以为使数据稳定,需要添加FIFO或RAM,本系统选用FIFO,不需要关心读写地址,简化了操作。

图2 RK3288与FPGA硬件连接图

3 系统软件设计

3.1 嵌入式操作系统定制

Android系统是基于 Linux 内核的操作系统,由内核、运行库、虚拟机等组成。其软件开发主要包括 Bootloader 引导程序设计,Linux 操作系统移植,根文件系统创建以及应用程序开发等[8]。

本系统在Android系统源码的基础上增加LCD显示驱动以及映射数据发送驱动,并在Android系统中编写JNI方法实现Android应用程序调用。

3.1.1 映射数据发送软件设计

映射数据发送软件架构设计如图3所示,主要包括映射数据发送驱动软件设计,以及通过NDK工具链将驱动封装生成JNI接口供Android应用程序调用。

图3 映射数据发送软件架构设计

映射数据发送驱动软件架构设计,本着“高内聚、低耦合”原则,采用“总线-设备-驱动”模型构建[9],设备和驱动向总线进行注册,总线负责把设备和对应的驱动绑定起来。在早先Linux版本中,ARM 架构的板级硬件细节大多被硬编码在arch/arm/plat-xxx和arch/arm/mach-xxx,造成大量代码冗余。而本系统中板级硬件信息描述使用dts(device tree)文件,dts文件描述了CPU、总线、设备连接信息,Bootloader会将dts文件描述的连接信息直接传递给内核,然后内核进行识别并展开各个设备及设备用到的内存等资源。采用设备树后,许多硬件的细节可以直接透过它传递给Linux,而不再需要在Kernel中进行大量的冗余编码。

3.1.2 LCD显示驱动设计

RK3288内部集成的LCDC(Liquid Crystal Display Controller)内部是分层的,有6层:background、win0、 win1、win2、win3、hwc(Hardware Cursor layer),每一次叫做win,每一层可以在屏幕上任意位置显示支持范围内任意大小的图像,并且各层可以通过alpha blending或者color key实现overlay 合成输出。

在fb中,每一层win对应一个fb标准的字符型设备,它们在Linux系统中对应的设备节点为/dev/graphics/fbx,其中win和fb的对应关系是可以通过程序设置的。

LCD显示驱动设计采用帧缓冲(Frame buffer,fb)技术,屏蔽底层硬件差异,为用户提供mmap、ioctl等标准接口来操作LCD显示设备[10]。通过调用mmap可将内核中分配的fb地址映射到用户空间,便于读写;通过调用ioctl可设置显示器分辨率等设备属性。

LCD显示驱动架构设计如图4所示,主要包括fb框架相关部分以及与显示设备硬件相关的 fb驱动层。

图4 LCD显示驱动架构设计

fb框架相关部分主要包括fbmem.c、rkfb_sysfs.c等公用源文件,用于向上提供和用户空间交互的接口;硬件设备驱动部分主要包括LCDC控制器相关的rk3288_lcdc.c代码以及对屏幕进行参数配置的相关代码rk_screen.c,其通过probe函数获取屏幕参数,屏幕参数通过dts文件传递。

3.2 应用软件开发

本系统使用Socket网络编程,采用C/S交互模式[11],实现LED智能玻璃显示屏与移动终端的网络通信。开发语言为 Java,开发工具采用Eclipse IDE[12]。LED智能玻璃显示屏端的应用程序主要包括获取本地IP,等待移动终端的连接,之后根据移动终端发送过来的指令执行不同的操作。

移动终端的应用程序功能主要包括连接LED智能玻璃显示屏端、获取LED智能玻璃端视频信息、映射信息,获取和控制LED智能玻璃端视频分辨率、播放进度信息等。

4 设计实现

系统硬件实物图如图5所示,其中FPGA选用Xilinx公司Spartan-6系列的XC6SLX45T芯片,CPU选用可以搭载Android操作系统的 RK3288。RK3288将U盘中的视频数据与映射数据读取之后,通过专用GPIO引脚传送给FPGA,FPGA进行视频数据处理后,通过光纤传送给从控制器,从控制器通过网口将视频数据传送至驱动系统,实现LED智能玻璃显示屏显示控制。

图5 系统硬件实物图

FPGA接收到的LED智能玻璃映射数据如图6所示,wrclk、arm_up、ARM_CLK、ARM_EN为控制信号,din为ARM向FPGA传送的映射数据,wraddr为暂存映射数据SSRAM2的写地址。

图6 FPGA接收到的LED智能玻璃映射数据

移动终端应用程序界面如图7所示,主要包括IP地址连接,获取设置视频文件、映射数据文件以及设置视频分辨率、获取远端视频进度信息等。

图7 移动终端应用程序具体实现

图8 LED智能玻璃显示

LED智能玻璃显示屏显示如图8所示,由专用驱动芯片LD1512构成的驱动电路与FPC相连接,从而实现LED智能玻璃显示屏的显示,同时可以通过移动终端控制视频播放。不同应用场合下LED智能玻璃显示屏大小、分辨率不同,此图中为64×64分辨率的LED智能玻璃显示屏。

5 结 论

将Android嵌入式技术和互联网技术相结合,在Android系统源码的基础上增加LCD显示驱动以及映射数据发送驱动,并在Android系统中编写JNI方法供Android应用程序调用。使用Java语言进行Android系统应用软件开发。使用Socket网络编程来实现LED智能玻璃显示屏与移动终端的网络通信,使得系统具有较好的易用性和可移植性,给产品应用带来了方便,提高了施工效率。

猜你喜欢

显示屏玻璃终端
一块布就是一个显示屏?
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
玻璃中的自然之美
玻璃是怎样炼成的
苍蝇迷恋显示屏
多功能北斗船载终端的开发应用
我不是玻璃熊
未来五年LED显示屏出货将保持16%增长
为什么沾水后的玻璃不宜分开?