易文博 陈国平 管春
摘 要: 为解决传统液晶显示实时性较差、设备性能较低等问题,设计一种基于FreeRTOS与Zynq?7000平台的实时液晶显示系统。该系统采用基于AXI4?Stream总线体制的流化数据传输模型和基于可重用IP的系统设计方法,并综合使用实时操作系统FreeRTOS和μC/GUI用户图形界面进行多任务管理以及人机界面设计,实现数据实时处理、存储与显示等功能。实驗结果表明,该系统每秒传输帧数高达约90帧,任务切换时间小于2 μs,整体功耗小于4 W,相比传统液晶显示性能提高2~3倍,满足高性能、低功耗与实时性要求。该系统还可通过集成视频图像硬件加速器等功能模块,进一步体现实时液晶显示系统的可扩展性与应用价值。
关键词: ZYNQ?7000; 液晶显示系统; 系统设计; FreeRTOS; μC/GUI; 系统测试
中图分类号: TN248?34; TP274 文献标识码: A 文章编号: 1004?373X(2020)22?0015?04
Abstract: A real?time LCD (liquid crystal display) system based on FreeRTOS and ZYNQ?7000 platform is designed to solve the problems of poor real?time performance and low equipment performance of traditional LCD. In the system, the streaming data transmission model based on AXI4?Stream bus system and the system design method based on reusable IP are adopted, and the real?time operating system FreeRTOS and μC/GUI user graphical interface are comprehensively used to carry out the multi?task management and human?machine interface design, so as to realize the functions of real?time data processing, storage and display. The experimental results show that the system can transmit up to 90 frames per second, the task switching time is less than 2 μs, the overall power consumption is less than 4 W, and the performance of the system is improved by about 2 to 3 times by combining with the traditional LCD, which meets the requirements of high performance, low power consumption and real?time performance. The system can further reflect the scalability and application value of the real?time LCD system by integrating the video image hardware accelerator and other functional modules.
Keywords: ZYNQ?7000; LCD system; system design; FreeRTOS; μC/GUI; system testing
0 引 言
随着信息技术的发展,显示技术已经成为信息化产业的重要组成部分,其中,液晶显示广泛应用于仪器仪表、通信产品与医疗设备等领域[1]。
传统液晶显示系统主要分为两类:一类是基于ARM架构处理器,完成以软件设计为核心的人机交互系统与界面设计[2?4];另一类是基于FPGA硬件可编程平台,完成以硬件设计为核心的高性能显示通路或算法硬件加速器[5]。ARM处理器受限于系统级芯片(System on Chip,SoC)所固化的液晶显示(Liquid Crystal Display,LCD)控制器,可扩展性较低,而高性能处理器往往价格昂贵;FPGA硬件可编程平台虽具备一定灵活性,但缺乏中央处理器(Central Processing Unit,CPU)这样的核心硬件来处理需要大量面向过程的应用场景,难以统一调度复杂软硬件系统协同工作。
针对传统液晶显示系统可扩展性差、实时性差和性能较低的问题,本文研究了一种基于Zynq?7000全可编程片上系统(All Programmable System on Chip,APSoC)的实时液晶显示系统。在充分讨论系统软硬件总体架构与数据流传输基础上,重点分析并实现了一种符合工业标准的开源嵌入式实时操作系统(Free Real Time Operating System,FreeRTOS)作为整体系统软硬件管理框架和LCD液晶显示子系统设计,并结合Cortex?A9硬核、AXI4?Stream总线体制IP与μC/GUI用户图形接口,在兼顾系统低功耗、低成本和高可靠性等要求下,实现上层应用软件的可扩展性和完备的人机交互界面设计。最后分析本系统在多任务下的刷屏测试、字符测试和位图测试结果,相比于传统设计,各项性能指标均大幅提升,能更好地满足实时液晶显示系统的应用需求。
1 系统总体设计
Zynq?7000 APSoC片上集成Cortex?A9硬核处理系统(Processing System,PS)和28 nm工艺的可编程逻辑块(Programmable Logic,PL)。其优点在于丰富的逻辑单元与I/O资源为本系统带来极大灵活性。同时,PL能够实现基于高吞吐量、低延迟的AXI4嵌入式片上互联总線系统,通过DDR3 SDRAM解决显示系统高速数据流与外部存储系统交互的问题[6]。
第四代高级标准可扩展接口协议(Advanced eXtensible Interface 4,AXI4)将不同功能与特性接口整合到更具通用性接口中,简化了知识产权(Intellectual Property,IP)整合与系统集成。系统硬件基于IP核模块化搭建,采用第四代高级微控制器总线结构(Advanced Microcontroller Bus Architecture 4.0,AMBA 4.0),用以支持系统高性能、高频率特性。
针对数据实时显示的特定功能及特性,系统设计并集成了轻量级LCD控制器IP模块;针对本文系统高带宽、低延迟和大数据量传输需求,在采用AXI4互联基础上,结合其流化接口AXI4?Stream和简化接口AXI4?Lite,用于模块间液晶显示数据流的片内传输和轻量高效的IP配置与控制。
一个完备的液晶显示系统除了需要实时界面显示功能,还需要高速存取本地数据,同时可通过屏幕触摸和按键控制进行功能切换和显示调节等功能。这些宏观并行任务可通过诸如函数循环和系统中断的方法来轮询所有任务,实现同步和相互通信,但是该类方法存在灵活性较差和可靠性较低的问题。
因此,本系统采用操作系统(Operating System,OS),其优势是项目的源代码更容易划分为独立的模块,利用操作系统管理硬件资源,并且操作系统为各类并行任务提供软件接口,减少系统开发时间以及提高可维护性。作为一个符合工业标准的实时操作系统,一方面,其具备能够不使用缓冲机制的情况下对数据进行管理,尽可能降低系统延迟,提高系统在有效时间内做出快速响应的能力[7];另一方面,其基于优先级切换任务机制,相同优先级的任务又具有分时操作系统按时间片轮转运行的特点,能够有效地增加资源利用率。
为了有效地解决显示、控制与非易失性存储的问题,本系统在具有可移植性的用户图形界面(Graphical User Interface,GUI)和文件系统(File System,FS)基础上进一步设计和完善软件架构。整体软硬件系统设计如图1所示。
在无操作系统情况下,会导致应用层软件管理效率较低,同时功能模块较为复杂时,存在系统实时响应速度降低的问题。因此,在应用层软件实现基本功能基础上,软件系统架构需通过实时操作系统(Real Time Operating System,RTOS)的多任务管理特性和硬件资源合理分配等优势,进一步提升整体系统稳定性、可靠性与可维护性。
2 液晶显示子系统设计
嵌入式本地显示应用大多采用2~7寸液晶屏,分辨率低于720 P的液晶屏,并且一般采用并口传输数据。并口液晶模块具有成本低、绘图快、实时性强的特点,适合用于本地实时数据采集显示、用户交互速度快和高速绘图等应用场景。如图2所示为液晶显示LCD控制器的设计框架。
视频直接存储器访问(Video Direct Memory Access, VDMA)模块通过AXI主接口获取片外DDR3 SDRAM内存中存储的像素数据,并将数据以流的形式传递给像素数据转换模块。像素数据转换模块用于调整并行像素数据RGB的位宽,以适应不同LCD像素深度(Bits Per Pixel, BPP)需求。
通过软件配置Xilinx公司视频时序控制器(Video Timing Controller V6.1)IP,在不改动硬件设计下动态调整行场同步信号,以适应不同分辨率下的LCD屏幕。采用Digilent公司的AXI动态时钟(AXI Dynamic Clock Core V1.0)生成器驱动LCD屏幕的像素时钟,通过软件配置产生不同刷新率屏幕下的时钟速率以及同步FPGA与LCD屏幕之间数据传输。视频输出模块是连接AXI4?Stream接口视频前端处理模块和视频输出模块的桥梁,采用Xilinx公司流视频输出(AXI4?Stream to Video Out V4.0)IP核,通过获取视频像素数据以及前端模块的行场同步信号,在像素时钟同步下,形成最终的视频流格式输出。
3 系统软件设计
FreeRTOS是一款实时性高、内核占用空间小的开源嵌入式实时操作系统,同时具有高度灵活性、最优的模块化设计、高可读性以及可维护性,能在嵌入式设备中广泛使用[8]。使用FreeRTOS管理处理器的时间和资源,使得复杂嵌入式系统软件开发和维护变得高效,同时能够提高系统稳定性和可靠性。
本系统通过FreeRTOS提供的任务管理、内存管理和同步与通信等基本功能,结合μC/GUI丰富的控件管理,实现本文系统界面设计、数据波形刷新和硬件外设控制等功能[9]。同时,采用占用资源相对较小而功能强大的通用开源FatFS文件系统模块,将采集到的数据记录到非易失性存储SD卡中[10]。
3.1 液晶驱动设计
整体LCD软件控制流程如图3所示。
软件根据屏时钟规格需求范围与典型频率,来配置硬件AXI Dynamic Clock IP核,产生液晶屏像素时钟。通过PS端软件读/写视频时序控制器IP核寄存器来配置其行场同步信号,用于匹配不同分辨率下的LCD图像大小。软件启动VDMA数据传输后,数据在液晶显示子系统中转换成不同像素深度下的LCD屏幕格式,驱动软件从多帧缓存的首地址起以数据流的方式从DDR3显存中读出/写入像素数据,完成1帧数据的获取,最后交给应用软件做进一步处理,完成1帧数据的显示。
3.2 实时系统任务划分
液晶显示系统按照功能需求,可大体划分为:数据传输与处理类任务、人机交互下的控制类任务、文件与数据存储类任务和界面刷新与显示类任务。为保证数据处理的实时性,信号处理任务处于最高优先级。界面任务包括文本、图片等动态与静态功能,因为μC/GUI极其占用系统资源,并且任务时间长,因此设置为最低优先级。考虑到人机交互响应速度的问题,将按键和触摸任务放置文件系统任务优先级前。通过以上功能定义,本文系统选用多任务实现,依据任务时间关键性、计算量和执行周期性划分为四个任务,按照系统任务优先级由高到低依次为:数据处理任务、按键触摸任务、文件系统任务和界面任务。
3.3 系统任务间通信
采用事件标志组和任务通知进行任务间通信与同步,各个任务之间的关系如图4所示。
调用μC/GUI按钮控件设计虚拟按键,通过窗口回调函数触发界面任务中的触摸消息处理,开启待处理数据获取并启动VDMA数据传输。当数据获取与传输完成后,VDMA模块发送中断时间标志组,退出中断后切换到最高优先级信号处理任务,完成相应数据SDRAM存储。
当最低优先级界面任务完成上一次动态、静态界面显示后,发送标志事件给信号处理任务,信号处理任务获取标志位,进行相应数据运算与处理,随后将计算结果返回界面数值显示或其他方式中,并进行界面的刷新。当用户按下按键时,按键检测任务检测并存储键值至FIFO缓冲区,界面任务读/取缓冲区并处理按键消息,发送任务通知启动文件系统任务。用户根据功能需求通过文件系统将DDR3内存中或信号处理完后的数据存入SD卡等非易失性存储中,从而完成了任务间的通信机制。
4 系统测试与结果分析
刷屏测试、字符测试与位图测试是液晶显示系统的主要测试手段,测试运行时间是衡量软硬件系统对于不同显示需求的主要性能指标。为验证分析本文系统LCD控制器设计及其FreeRTOS在该系统中的应用性能,测试平台选用Zynq?7010 XC7Z010CLG400?1器件,显示屏选用720P、24位色的无控制器并口电容屏。
本文系统通过定义整屏像素刷新的测试方法,分别在无操作系统下采用顺序循环方式执行函数任务,在FreeRTOS实时系统下采用抢占式的任务调度方式执行任务,并统计所有测试操作完成的时间。
测试结果如表1所示。随着任务数量增加,两类测试消耗的时间几乎呈线性增长,FreeRTOS任务调度所造成的微秒级延时可忽略不计。由此可见,该系统可满足实时操作系统的性能需求,同时使用FreeRTOS对液晶显示系统带来的整体收益更大。
5 结 语
本文以ZYNQ?7000全可编程SoC器件为核心平台,设计一种基于FreeRTOS操作系统的实时本地液晶显示系统。该设计集成了可配置、可移植的液晶显示子系统,通过FreeRTOS合理划分系统任务,并综合应用μC/GUI用户图形界面和FatFS文件系统,完成实时液晶显示等功能。通过板卡实现, Zynq?7010 器件功耗为1.928 W,整体液晶显示系统功耗小于4 W,硬件逻辑资源占用率小于50%。本系统在显示性能与实时性上较目前主流嵌入式液晶显示系统有较大提升,同时系统在较少改动或无需改动硬件设计情况下[11],仅利用ARM处理器资源即可挂载其他中间件、协议栈和加速器,具备良好的可扩展性和设计灵活性。
基于Zynq?7000器件新型架构,可进一步应用PS侧加载LwIP协议栈,PL侧实现算法加速器,即可实现数据网络传输、处理与本地实时显示相结合。因此,本文的设计方案在对本地显示需求,或其他电子系统设计领域里,有一定的应用参考价值。
参考文献
[1] 李继军,聂晓梦,甄威,等.显示技术比较及新进展[J].液晶与显示,2018,33(1):74?84.
[2] 刘高明,荣葵,朱辉,等.应用于嵌入式RTOS的图形显示系统设计[J].计算机工程与应用,2016,52(9):190?195.
[3] 汤莉莉,黄伟.NiosⅡ嵌入式处理器在LCD显示系统设计中的应用[J].现代电子技术,2013,36(19):151?153.
[4] 程知敬,张晋文,刘凤.一种嵌入式信号处理软件构件测试框架[J].现代雷达,2019,41(6):82?85.
[5] 陈东成,胡敬营,吕卫国,等.基于IP核的多接口LCD控制器的设计及实现[J].液晶与显示,2017,32(2):117?123.
[6] GERARDO Soria?García, GERARDO Altamirano?Gómez, SUSANA Ortega?Cisneros, et al. Fpga implementation of a geometric voting scheme for the extraction of geometric entities from images [J]. Advances in applied Clifford algebras, 2017, 27(1): 685?705.
[7] SPANG H A. The structure and comparison of three real?time operating systems for process control [J]. Automatica, 1972, 8(1): 49?64.
[8] TEODOR S, EUGEN L, RADU A. Real time operating system options in connected embedded equipment for distributed data acquisition [J]. Carpathian journal of electronic and computer engineering, 2018(11): 35?38.
[9] 刘勇,王学俊,孔新伟,等.基于UCGUI的触摸屏显示设计[J].液晶与显示,2014,29(5):739?744.
[10] 高兆强,王绍举,徐伟,等.FATFS在嵌入式操作系统FreeRTOS中的移植与应用[J].现代电子技术,2017,40(6):65?67.
[11] WU Yi, HUANG Yu, WANG Yao, et al. Design of embedded web module based on SOPC [J]. Physics procedia, 2012, 25: 2197?2202.