APP下载

基于国产化软硬件的显示模块设计

2024-03-05钱军琪徐玉杰

山西电子技术 2024年1期
关键词:麒麟处理器驱动

钱军琪,李 博,徐玉杰

(航空工业西安航空计算技术研究所,陕西 西安 710065)

1 概述

基于国产化软硬件的显示模块(以下简称显示模块)位于某显示处理系统中,基于国产处理器FT2000/4、国产图形处理器JM7200和国产操作系统麒麟Linux操作系统完成软硬件设计与实现。

显示模块系统结构如图1所示。显示模块支持座舱显示符号,可运行iDATA、VAPS及ARINC661工具生成的显示符号绘制代码进行符号绘制。其最终输出为多功能显示器中的各种关键飞行信息、态势感知、系统管理、作战任务等画面[1]。

图1 系统结构图

2 主要参数

显示模块主要技术参数如下:

◇ CPU:主频1GHz;

◇ GPU:显存容量4GB,像素填充率4.8GPixel/S,多边形生成率200Mtri/S;

◇ 显示接口:DVI,最大分辨率1600×1200@60Hz;

◇ 内存:容量4GB;

◇ 电子盘:NVMe接口电子盘,容量512G;

◇ 对外接口:1路RS232,1路RS422,2路以太网;

◇ 扩展接口:1路PCIE x8可用于扩展机载网络如FC等;

◇ 模块功耗:不超过40 W;

◇ 操作系统:麒麟Linux操作系统,内置容器支持能力;

◇ OpenGL版本:OpenGL1.5;

◇ Qt版本:4.8。

3 硬件设计

3.1 系统结构设计

显示模块主要由国产中央处理器FT2000/4及国产图形处理器JM7200构成,系统结构如图2所示。

图2 显示模块系统结构图

显示模块硬件主要包括以下功能块:

◇处理器电路:主要包括CPU和DDR、SPI Flash等周边电路;

◇图形处理器电路:主要包括GPU及其周边电路;

◇视频接口控制电路:主要包括FPGA及其周边电路,DVI视频输出驱动电路;

◇大容量存储器电路:主要包括NVMe电子盘电路;

◇RS232和RS422电路;

◇以太网接口电路;

◇复位及监控电路;

◇电源转换电路:DC/DC;

◇时钟电路。

3.2 关键硬件电路设计

3.2.1 处理器电路

处理器选用FT2000/4处理器实现。FT2000/4处理器是由飞腾公司设计开发的面向桌面应用领域的高性能国产处理器芯片,处理器电路主要技术指标如下[2]:

◇FT2000/4处理器:工作主频1GHz;

◇4GB DDR存储器:64位访问,支持8位ECC校验;

◇ 32MB SPI Flash存储器;

◇对外接口:

●以太网2路,1000/100/10MHz自适应;

●1路X8的PCIE2.0接口;

●1路RS232接口;

●1路RS422接口。

处理器电路示意如图3所示。

图3 处理器电路示意图

FT2000/4处理器包含4个ARMV8架构的CPU核心,主频运行在1GHz,处理能力8MIPS/MHz,单个处理器的处理性能1GHz×8MIPS/MHz×4=32GIPS;FT2000/4处理器集成DDR控制器,DDR控制器具备72位数据宽度(64位数据宽度,8位的ECC校验宽度)。设计中DDR芯片选用4片国产的SM41K512M16M,配置4GB容量的DDR3 SDRAM。

FT2000/4处理器配置32MB的SPI接口Flash存储器SM25QU256MK,用于存储BOOT或固件等关键启动代码的存储。FT2000/4处理器PCIE接口可满足JM7200、NVMe电子盘的接口需求,同时为机载总线功能扩展留有接口。

FT2000/4处理器通过SPI Flash中的boot启动,加载部署于NVMe电子盘中的麒麟Linux操作系统。麒麟Linux操作系统对FT2000/4和JM7200进行了适配,在多个应用场景中得到了长期验证,其稳定性已验证充分,可在机载环境推广使用。

3.2.2 图形处理器电路

图形处理器电路选择景嘉微电子公司生产的高性能国产图形处理芯片JM7200。JM7200能够高效完成2D、3D的图形加速功能,提供多种丰富的外设接口,支持多种视频输出接口。对于麒麟Linux操作系统,景嘉微电子公司提供符合OpenGL规范及支持2D桌面应用的驱动程序,其驱动程序随麒麟Linux系统在多个应用场景中进行了广泛验证[3]。

图形处理器电路示意如图4所示,JM7200需要外置一片SPI接口Flash芯片用于存储VBIOS程序,VBIOS可对JM7200上电后的基础工作模式进行配置,如默认分辨率、默认输出画面等。

图4 图形处理电路示意图

图形处理器JM7200主要技术指标如下:

◇内核时钟频率800MHz,存储器时钟频率1066MHz;

◇PCIE 2.0接口,最高支持x16;

◇片上封装两组DDR3存储器,每组位宽32位,共4GB容量;

◇2D、3D图形生成功能;

◇支持2路LVDS和1路VGA视频输出;

◇支持4K分辨率视频输出;

◇功耗20W。

3.2.3 视频接口控制电路

视频接口控制电路指模块中的FPGA视频处理及DVI接口电路,FPGA用于JM7200输出的两路视频信号的选择及合并,可配置为两路视频信号的二选一输出模式及半透明叠加输出模式。

FPGA选取J7M7K325T芯片,FPGA与CPU通过PCIE总线连接,FPGA作为PCIE总线中的EP。CPU通过PCIE总线配置其视频模式,经FPGA处理后形成最终需显示的视频信号,最终视频信号经DVI视频驱动器转换为满足多功能显示器MFD的DVI信号。DVI驱动器使用GM7510芯片,具有信号抖动小、芯片功耗低等特点。

3.2.4 大容量存储器电路

大容量存储器指显示模块板载的国产嵌入式固态存储芯片AS689GEF。该存储芯片采用存控一体结构,将NAND闪存和DRAM结合到一个小的BGA封装中,支持智能扫描,数据刷新,具有专有的高带宽LDPC代码校正以及端到端数据路径保护,保证非易失性存储设备中的数据完整性。AS689GEF对外接口为PCIE,支持NVMe协议,FT2000/4具备PCIE接口,可连接PCIE接口的NVMe电子盘。

本设计中,采用CPU的PEU0控制器与大容量存储芯片连接,设计线宽为4x。AS689GEF主要技术指标如下:

◇容量为512GB;

◇支持PCIe 3.0 x2通道/ x4通道;

◇支持NVMe 1.3寄存器接口和指令;

◇具备有CRC奇偶校验的端到端数据路径保护;

◇具备系统保护功能,可防止电源不稳定。

3.2.5 复位及监控电路

显示模块具备上电复位和电源监控功能。复位输出为一路系统复位输出,同时复位电路必须满足输出波形稳定、没有毛刺、波形宽度满足电路中最大宽度的复位要求。

复位电路采用SM706实现上电复位和电源监控复位。在工作中,如果SM706检测到电源电压5V低于4.75V时,系统处于复位状态,电源电压大于4.75V后,产生大于200ms低有效复位信号,复位本模块[4]。

模块上电时,FPGA需要配置,在配置过程中应保证其他功能块仍处于复位状态,在设计时把FPGA加载是否完成的信号接到SM706的手动复位输入端以保证FPGA加载完成,同时可通过手动复位对模块进行复位。

4 软件设计

显示模块设计中,软件设计采用标准化、层次化和模块化设计方法。按照软件功能划分,各部分功能相对独立,采用模块化设计,模块之间通过标准API接口进行通信。软件主要由操作系统软件、定制驱动软件和应用软件组成,其中应用软件由用户开发。

4.1 操作系统软件设计

显示应用软件在运行过程中绘制大量符号及文字进行显示,因此对于操作系统的图形显示软件栈性能、电子盘文件访问性能等均有较高需求。同时为满足用户提出的后续对于显示应用软件的部署、升级、运行管理等进行容器支持的系列需求,选用国产Linux操作系统麒麟Linux作为显示模块的操作系统。

麒麟Linux操作系统本身面向桌面应用环境,在机载环境使用时,需对麒麟Linux操作系统进行裁剪。

对麒麟Linux操作系统进行裁剪,移除其中面向桌面环境的应用层软件组件及部分服务层软件组件,可减少系统部署时占用的存储空间、系统运行时占用的内存等资源消耗,同时提升系统的启动时间。

4.2 定制驱动软件设计

麒麟Linux操作系统内集成了常见通用外设驱动,如串口、以太网、SPI Flash、NVMe、JM7200等,已集成的驱动软件不需进行设计实现,可直接通过配置设备树中的设备信息进行使用。

定制驱动软件为显示模块中与CPU通过PCIE总线连接的FPGA实现的视频切换管理功能对应的驱动程序。FPGA内部逻辑实现了视频二选一及半透明叠加的配置选项,并提供了其配置的寄存器,以bar空间中指定地址的形式提供给CPU进行读写。因此定制驱动软件实质上是Linux下的PCIE的EP驱动。

Linux内核提供了完善的PCI设备驱动框架,框架本身已经提供了PCIE总线本身的操作,实现EP驱动时需按照框架实现对应实际设备的PCI设备驱动程序内核模块。在内核模块中需定义由FPGA实现的EP设备的pci_device_id,包括VENDOR_ID和DEVICE_ID;实现对应的probe函数,并在其中申请bar空间的资源,实现对应的mmap函数并在其中实现bar空间到虚拟内存空间的映射。

内核模块完成代码实现,并编译生成内核模块.ko文件后可通过insmod命令加载内核模块至内核中,内核模块加载正确后,可使用lspci命令查看FPGA设备信息,确认其bar空间处于使能状态,且使用的驱动名称为内核模块对应的驱动名称。Linux内核提供了虚拟文件系统路径/sys来使用内核功能,用户态的应用程序可以通过访问/sys路径下的相关文件来实现设备驱动程序的调用。

4.3 应用软件设计

显示模块应用软件基于Qt加OpenGL的基本架构。其中Qt部分主要提供基础框架及基础控件。人机交互界面的组件布局通过Qt提供的控件实现,如界面区域的划分,菜单的切换等;Qt控件还用于实现屏幕中按键等通用组件。符号绘制通过Qt的OpenGL接口封装实现,在指定位置绘制出所需显示的符号。

5 总结

本文设计的显示模块方案,基于已在多种应用场景中得到充分验证的软硬件基础解决方案,实现国产化显示平台。在研制过程中,通过使用FT2000/4处理器的PC机快速构建出应用软件验证环境,实现了软件研发及硬件研发的同步进行。

与显示采用RTOS的常规方案不同,本方案中采用麒麟Linux作为操作系统,利用麒麟Linux操作系统软件生态中完善的图形显示软件栈,简化了用户应用软件的开发复杂度,提升了应用软件开发效率,缩短了迭代周期。同时,使用麒麟Linux操作系统可将Linux生态下的容器能力引入机载领域。通过将显示应用容器化,可以利用如K8S等成熟的容器编排管理工具,控制并监控显示应用的运行状态,也可通过容器镜像的形式部署显示应用。容器在显示场景中的应用,对后续机载电子设备的新形态起到了一定的探索作用。

猜你喜欢

麒麟处理器驱动
麒麟“破冰”
基于模糊PI控制的驱动防滑仿真系统分析
对麒麟
屈宏斌:未来五年,双轮驱动,砥砺前行
它就是麒麟
轨旁ATC系统门控柜接收/驱动板改造
基于S3C6410的Wi-Fi驱动移植实现
Research on the Low—Carbon Life of Student
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器