APP下载

基于SOPC的机载显示器图形实时生成技术

2014-03-21高伟林于小燕

液晶与显示 2014年1期
关键词:显示器处理器控制器

郭 超,曹 峰,高伟林,于小燕

(中航雷达与电子设备研究院 军品研究所,江苏 苏州215151)

1 引 言

飞机座舱图形综合显示系统是一个对实时性要求很高的图形生成系统[1]。在飞机座舱显示控制系统中,光栅图形发生器接收主控计算机发送的指令和数据,实现各种图形的生成,形成所需画面,送往下视显示器显示[2]。大屏幕化是未来飞机座舱显示的发展方向[3],针对这一趋势,机载显示器的图形发生器由以DSP+FPGA 架构为核心的生产技术逐渐向以GPU 为核心的图形生产技术方向转变。采用DSP+FPGA的图形硬件加速架构,或者使用专用GPU 图形生成芯片,都可以产生高分辨率的机载显示器图形,但随之带来的是产品成本的急剧增加以及功耗的不断上升,这显然无法满足某些特定条件下低功耗、低成本显示器的要求。低功耗、低成本的嵌入式图形硬件加速不仅在移动应用领域(GPS、手持游戏、汽车导航等)获得广泛的应用,也在军事应用(飞机、潜艇、航空航天等高可靠应用)领域得到普遍关注[4]。

本文针对低功耗和小体积的某些机载显示器市场需求,提出了采用SOPC 的设计方案实现图形的生成和显示。本图形生成技术以SOPC中集成的NiosⅡ软核为核心,根据显示任务需要实时地计算并产生图形像素点数据信息,配合SOPC中FPGA 芯片的逻辑控制,最终完成图形的实时生成和显示。本设计由于采用了软核CPU 处理器,节省了增加硬件CPU 芯片的开销,使得设计得以简化,成本明显降低。

2 SOPC简介

SOPC(System On Programmable Chip)即可编程片上系统,或者说是基于大规模FPGA 的单片系统,是美国Altera 公司于2000 年提出的[5]。它将处理器、存储器、I/O 等系统设计需要的功能模块集成到一个可编程器件上,由单个芯片完成整个系统的主要逻辑功能,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程功能[6],为SOC的实现提供了一种简单易行而又成本低廉的手段,极大地促进了SOC的发展。

NiosⅡ处理器是Altera公司的第二代可配置的通用32位RISC软核微处理器,是Altera公司特有的基于通用FPGA 架构的软CPU 内核,提供:

(1)完全的32 位指令集、数据总线和地址空间;

(2)32位通用目的寄存器;

(3)32个外部中断源;

(4)单指令32×32位乘和除指令可得到32位结果;

(5)计算64位和128位乘积专业指令;

(6)提供片外存储器和外设接口;

(7)超过150DMIPS的性能。

由于NiosⅡ为软核处理器,有“fast”、“standard”和“economic”3种类型可供选择,具有很大的灵活性,可以在多种NiosⅡ系统组合设置中选择,满足成本和功能的要求。

3 设计实现

3.1 硬件设计

3.1.1 硬件结构

本文的硬件部分由NiosⅡ处理器、片上RAM、帧存、视频控制器、通用异步收发器(Universal Asynchronous Receiver and Transmitter,UART)和并行I/O(Parallel I/O,PIO)外设、Flash和EPCS控制器等组成,如图1所示。

图1 基于SOPC的图形生成硬件结构图Fig.1 Hardware structure for the graphic-generator based on SOPC

正常工作时NiosⅡ处理器通过AVALON总线控制UART 接收任务处理机的数据和指令,按照要求调用图形生成的算法,在规定时间内完成指定分辨率图形的生成和光栅扫描转换,并将结果存储于帧存中。视频控制器从帧存中读出生成图形的数据,处理后输出至外部显示器显示。

双帧存分别由NiosⅡ软核处理器和视频控制器控制,按规定时序切换,实现NiosⅡ图形产生与视频控制器刷新显示操作的并行执行。

3.1.2 SOPC系统搭建

系统开发主要分为硬件开发和软件开发两部分,分别在Quartus和NiosⅡIDE开发环境上进行[7]。本文的SOPC系统基于Altera公司Quartus 9.0软件提供的SOPC Builder工具生成。利用SOPC Builder可以在很短的时间内生成由处理器、存储器和外设等组件组成的SOPC 系统。SOPC Builder自动生成系统级设计代码及底层硬件驱动代码,方便进行软件开发[8]。

图2 SOPC Builder硬件平台图Fig.2 Hardware platform for the SOPC Builder

本技术实现时搭建的SOPC Builder硬件平台如图2所示。

在本文搭建的SOPC系统中,NiosⅡ处理器、EPCS控制器、Flash控制器及三态桥、PIO 模块等由Altera组件库提供,视频控制器自主设计并添加到SOPC系统中。

视频控制器根据乒乓原理来操作两个帧存。在NiosⅡ处理器写帧存1时,FPGA 从帧存2读出数据;NiosⅡ处理器写帧存2时,FPGA从帧存1读出数据。同时视频控制器还根据像素时钟、行、场同步产生控制时序来完成读出数据的输出显示。

3.2 软件设计

3.2.1 硬件抽象层系统库的生成

当使用SOPC Builder创建一个硬件系统后,NiosⅡIDE为基于NiosⅡ的系统自动生成板级支持包(Board Support Package,BSP),包括硬件抽象层(Hardware Abstract Layer,HAL)系统库和设备驱动[9],来匹配系统的硬件配置。HAL的API和ANSI C 标准库集成在一起,为底层硬件通讯提供简单器件驱动接口。HAL 系统库提供以下服务[10]:

(1)集成ANSI C标准库;

(2)提供了常用的设备驱动;

(3)提供了硬件抽象层接口;

(4)完成系统初始化任务;

(5)完成设备初始化。

HAL系统库生成后,后续在NiosⅡIDE 中的软件开发就可以借助HAL库接口函数完成。

3.2.2 图形生成软件设计

基于NiosⅡ处理器的图形生成软件通过UART 获取数据更新,使用PIO 作为帧存状态的标志与FPGA 握手,实现对帧存的乒乓操作。图形生成软件功能模块框图如图3所示。

图3 图形生成软件功能模块框图Fig.3 Function modules of graphics generation software

图4 图形生成软件流程图Fig.4 Flow chart of graphics generation software

图形生成软件由初始化模块、UART 通讯处理模块和图形生成模块组成。初始化模块完成定时器、中断、全局变量等各部分的初始化状态设定工作。UART 通讯处理模块完成外部数据的接收和数据帧解析。图形生成模块完成图形的生成。

图形生成软件的流程图如图4所示。

图形生成软件首先进行系统初始化工作。完成后开始循环读取帧存状态标志,判断帧存是否可写入。等到帧存可写后,图形生成模块根据显示指令和数据的要求,采用不同的计算机图形学算法,按照直线、圆弧、字符等基本元素生成整个图形的光栅化数据,并写入帧存中。此后,图形生成软件将帧存状态置为写完成标志,然后跳回到读取帧存状态标志循环执行。

UART 数据的接收以中断方式进行。在接收到数据帧后,进行完整性检查和内容解析,并更新显示指令和数据。

4 实验验证

4.1 实验条件

在进行实验验证时,选择的硬件平台为自研的SOPC图形生成模块,FPGA 型号为Altera公司的EP2S30F672。测试时NiosⅡ处理器选择“fast”类型,设置指令CACHE和数据CACHE均为16KB,内核输入时钟频率为65MHz。NiosⅡIDE编译的优化等级设置为2级。

图5 测试图形示意图Fig.5 General view for graphics generation experiment

测试图形如图5 所示,分辨率为640×480,其中包含了矩形、三角形、圆环、中文字符、英文字符、数字及符号等显示内容。

4.2 实验结果

实验结果如表1所示。

表1 SOPC图形生成实验结果Tab.1 Result of graphic-generating experiment

NiosⅡ处理器进行图形生成时,所消耗的时间主要由字符及图形产生时间、写帧存时间、反走样效果处理时间3部分组成。其中反走样处理时间约占了总时间的40%,是最耗时的一个部分。

NiosⅡ处理器工作在65 MHz,不进行反走样处理时,图形生成帧频可以达到45fps,完全可以满足机载显示器实时性的要求(帧频不低于25fps)。当需要进一步优化显示效果,对图形中圆弧、直线等元素采用反走样算法进行优化时,图形生成的帧频可以达到26fps,也能够满足机载显示器实时性的要求。

4.3 NiosⅡ主频对图形生成性能的影响

NiosⅡ软核的最大工作频率可达150 MHz以上[11]。为了提高图形生成的性能,在SOPC 系统中各外设允许的前提下,可以通过提高NiosⅡ软核的工作频率来提高图形生成的性能。

经过实验测试,NiosⅡ工作频率与所生成图形帧频之间的关系曲线图6所示。

如图6所示,NiosⅡ处理器工作频率越高,所生产图形的帧频也越高。但受制于帧存芯片及其他外设访问时序等因素的约束,其工作频率不能随意调高,需要根据具体的硬件平台合理选择。

图6 NiosⅡ主频与生成图形帧频关系曲线Fig.6 Relations between NiosⅡfrequency and graphics generation peroid

5 结 论

针对机载显示器某些低功耗、低成本应用场合,本技术打破了传统采用DSP+FPGA 架构或专用GPU 图形芯片等高功耗、高成本的图形生成方式,提出采用基于SOPC 的综合软硬件设计技术完成机载显示器的图形实时生成。该技术以SOPC中的NiosⅡ软核处理器为图形生成核心,与FPGA 按照乒乓方式操作帧存,并行完成图形数据的生成和刷新显示工作。通过实验验证,采用反走样技术对生成的图形进行显示效果优化处理时,本技术可以生成640×480分辨率的图形,帧频达到了26fps,能够满足机载显示器实时显示的需求。

[1] 朱耀东,张焕春,经亚枝.飞机座舱综合图形显示系统设计的一种新方法[J].南京航空航天大学学报,2012,34(5):488-492.Zhu Y D,Zhang H C,Jing Y Z.A new design method of combined graphics display system in aircraft cockpit[J].Journal of Nanjing University of Aeronautics &Astronautics,2012,34(5):488-492.(in Chinese)

[2] 陈少磊,金子同,郭凡.基于单DSP的双通道图形发生器设计[J].航空电子技术,2004,35(3):19-23.Chen S L,Jin Z T,Guo F.Twin channel graphics generator design based on single DSP[J].Avionics Technology,2004,35(3):19-23.(in Chinese)

[3] 邢新强,李国超,肖锋.机载座舱显示发展趋势分析[J].飞机设计,2010,30(2):34-36.Xing X Q,Li G C,Xiao F.The developing trend analysis of aircraft cockpit display[J].Aircraft Design,2010,30(2):34-36.(in Chinese)

[4] 胡小龙,李列文,周俊明.基于SOPC及图形加速引擎的座舱显示系统[J].计算机工程,2009,35(21):231-234.Hu X L,Li L W,Zhou J M.Cockpit display system based on SOPC and graphics accelerating engine[J].Computer Engineering,2009,35(21):231-234.(in Chinese)

[5] 綦声波,田学文.双Nios软核在嵌入式系统中的应用[J].单片机与嵌入式系统应用,2008(2):28-31.Qi S B,Tian X W.Application of dual NiosⅡsoft core in embedded system [J].Microcontrollers & Embedded Systems,2008,(2):28-31.(in Chinese)

[6] 姜漫,吴志勇,曹腾.基于SOPC技术的VGA 字符和图像显示系统[J].液晶与显示,2013,28(1):120-126.Jiang M,Wu Z Y,Cao T.Characters and images VGA display system based on SOPC technology[J].Chinese Journal of Liquid Crystals and Displays,2013,28(1):120-126.(in Chinese)

[7] 王海霞,武一.基于SOPC的LCD 显示模块的设计与实现[J].液晶与显示,2012,27(4):508-514.Wang H X,Wu Y.Design and implementation of LCD module based on SOPC[J].Chinese Journal of Liquid Crystals and Displays,2012,27(4):508-514.(in Chinese)

[8] 生蕾,张峰.基于NiosⅡ的倒车雷达系统的实验设计[J].实验室研究与探索,2008,27(5):45-47.Sheng L,Zhang F.Experimental design of parking radar system based on NiosⅡ[J].Research and Exploration in Laboratory,2008,27(5):45-47.(in Chinese)

[9] 张兴堂,高勇,王伟强.基于NiosⅡ的智能多接口片上系统设计[J].液晶与显示,2012,38(7):61-64.Zhang X T,Gao Y,Wang W Q.Design of a multi-interface SoC based on NiosⅡ[J].Chinese Journal of Liquid Crystals and Displays,2012,38(7):61-64.(in Chinese)

[10] 李兰英.NiosⅡ嵌入式软核SOPC设计原理及应用[M].北京:北京航空航天大学出版社,2006:240-241.Li L Y.NiosⅡEmbedded Soft-core SOPC Design Principles and Applications[M].Beijing:Beihang University Press,2006:240-241.(in Chinese)

[11] Altera.NiosⅡProcessor Reference Handbook[R].San Jase,USA:Altera,2009:115.

猜你喜欢

显示器处理器控制器
工商业IC卡控制器改造为物联网控制器实践
把显示器“穿”在身上
IDC发布《2018年PC显示器市场跟踪报告》
一种新型点阵显示器的设计
ADI推出新一代SigmaDSP处理器
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器
点距小也不怕
火线热讯