基于TMS320DM642的增强视景系统设计与实现
扫描二维码
随时随地手机看文章
0 引言
随着现代飞行技术的发展,以及飞机性能的日益提高,飞行员需要实时获取的信息越来越多,飞行员不仅要不断接收和处理各种仪表信息及地面或空中的通报和指挥信息,还需要对各种危险警告和异常信号做出迅速的反应。特别是当飞机进行进场着陆或者起飞及做战术动作时,飞行员的操作负荷较大。因此如何有效地将各传感器信息综合地显示出来,不仅可以降低飞行员的劳动负荷,还能增强其态势的感知能力。传统的飞行员座舱系统包含大量的机械式仪表,飞行员的操作负荷大,态势感知能力弱,而根据对航空事故的调查统计显示,85%的航空事故是因为飞行员失去态势感知能力造成的。因此通过对飞行员座舱系统的良好设计,提高信息的综合显示水平能有效地提高飞行员的态势感知能力,从而减少飞行事故。
在飞行员座舱系统中采用增强视景和合成视景技术,不仅可以减少飞行员座舱系统中仪表的数量,还能提高信息的综合显示水平,降低飞行的劳动负荷,增强飞行员的态势感知能力。所谓视景增强系统,就是把机载红外传感器和毫米波雷达输出的图像叠加在平显上,在为机组提供机外真实视景的同时,显示一些下显给出的重要数据指示。
在此,研究和开发了基于实时采集图像传感器的图像数据,并在图像数据上叠加相应的飞行姿态信息增强视景系统。系统采用TI公司的视频处理专用芯片DM642,实现了对4路D1(720×576)格式视频数据的实时采集和显示。
基于DM642的增强视景系统实现的功能有:
(1)拥有16×8,8×8,5×7的完全ASCII码点阵字符集,可以自由显示任意的字符和数字信息;
(2)支持自定义汉字点阵字符集的显示;
(3)支持基本图元的绘制,如直线、圆、矩形、圆弧、多边形、矩形填充等基本GUI功能的实现;
(4)支持静态图片的加载,如logo、静态仪表盘等图形信息的透明和不透明叠加显示;
(5)实现罗盘仪表的绘制操作,可自由绘制各种数字仪表;
(6)实现导航和预警仪表盘的绘制与显示;
(7)支持4路视频的实时采集,可实现多种模式的显示操作界面,各种模式可以相互自由切换。
1 系统的硬件设计
基于DM642的增强视景系统主要由TMS320DM642数字信号处理器、视频编解码模块、存储模块、电源和可编程控制器模块组成。整个系统结构见图1。
1.1 系统主控制器及存储空间拓展
系统采用TMS320DM642作为核心处理器,它基于C64X内核,采用VLIW(超长指令字)结构,最高时钟可达720 MHz,采用二级缓存结构,拥有丰富的外设接口:拥有3个可配置视频口,可实现与视频输入/输出的无缝连接;拥有64路可配置EDMA,可灵活实现数据搬移操作;具有64位外部存储器接口(EMIFA),可以连接同步或者异步的存储器和外设;拥有I2C总线接口,可实现对外部编解码芯片的配置。
TMS320DM642的EMIF在内存中的地址映射分为4个可独立寻址的空间CE[O:3],自地址Ox80000000起各占256 MB空间。根据设计中所选芯片的数据宽度等特点,可以对这4个寻址空间进行配置。其中,CE0空间配置成64位宽,只用于SDRAM内存的映射;CE1空间配置成8位宽度,用于FLASH的映射;CE2\CE3在该设计中未使用,留作将来拓展使用。系统中利用DM642的EMIFA外部存储器接口进行存储空间拓展,外扩有2片4M ×32 b SDRAM,共64MB,其占用外部存储空间的范围为Ox8000000~0x81FFFFFF,用于存储视频帧数据和程序代码;系统同时外接了4M×8位FLASH芯片,FLASH在CE1子空间占据的内存映射空间为0x90000000~0x9007FFFF,共512 KB空间,用于固化程序和初始化数据。由于TMS320 DM642的外部总线只有EA[22:3],所以CE1子空间的最大寻址范围为1M×8b。系统中CE1子空间除了分配给FLASH空间外,还分配给状态/控制寄存器等资源使用,FLASH只占据CE1子空间的一半寻址空间,最大可寻址范围为512K×8 b,而FLASH的设计容量为4M×8 b。所以为了访问整个FLASH空间,需将FLASH进行分页,每页为512 KB,共分8页,具体的分页逻辑将在CPLD控制逻辑部分进行详细介绍。
1.2 视频解码模块
视频解码模块也称为视频采集模块,它由数字视频解码芯片SAA7113和视频源(模拟CVBS信号)组成。对于输入的图像,经过视频解码模块A/D转换后才能送给视频处理模块。该解码模块采用Philips公司的SAA7113H芯片来进行采集。图像传感器输出的模拟CVBS信号经SAA7113视频芯片转化为数字信号,输出的数字信号经过视频口的内部FIFO缓冲后,由DM642的EDMA通道将数据传送到片外SDRAM中,以便视频处理程序使用。DM642通过I2C控制器对SAA7113进行配置,使其输出BT.656格式4:2:2的YUV视频数据流。
1.3 视频编码模块
视频编码模块也称为视频显示模块,本模块由两部分组成,即输出两种模式的视频信号,可以外接CVBS和VGA的显示终端。
(1)CVBS编码模块
该模块由Philips的编码芯片SAA7121H和显示终端组成。它将DM642处理后的。BT.656格式视频信号转化成模拟CVBS视频信号,并通过显示器显示处理结果。
(2)VGA编码模块
该模块由VXll28,ADV7125等芯片完成。将BT.656格式的视频数据转换成模拟RGB信号,通过VGA接口与显示终端连接。其中,VX1128接收DSP视频口输出的BT.656格式数据流和行场同步信号,输出24位RGB数据流送给视频编码芯片ADV7125;视频编码芯片ADV7125将数字格式的RGB信号转换成模拟的RGB信号,并通过VGA接口送到显示终端。
1.4 CPLD逻辑部分
CPLD逻辑在系统中的主要功能是完成系统的辅助控制功能,如拓展外部键盘、FLASH分页操作及I/O拓展等,CPLD顶层逻辑如图2所示。这里主要介绍利用CPLD逻辑来拓展外部键盘及FLASH分页的操作。
为了实现增强视景中模式的切换功能,需要外扩一个3×3的键盘阵列。在系统实现中,利用CPLD逻辑完成键盘信号KEY1:KEY9的相与操作,将相与之后的信号接DM642的外部中断5。当有键按下时,DSP_INT5将产生一个下降沿,从而触发DSP产生中断,在中断服务程序中,进行键值扫描,判断是哪个按键按下,然后设置相应的标志位,作为模式选择信号。
CPLD除了完成按键拓展外,还有一个很重要的功能就是完成FLASH的分页操作。系统中,将CE1子空间配置成8位异步静态存储器接口连接FLASH,由于DM642的只有20根(EA3:EA20)外部总线,所以CE1的最大可寻址空间为1 M×8 b,CE1只将前一半的寻址空间分配给FLASH,后一半空间作为控制逻辑寄存器使用,所以FLASH映射空间为Ox90000000~0x90007FFFF,共512K×8 b。
为了完成对外部4M×8 b FLASH空间的访问,需要利用CPLD逻辑完成对FLASH的分页管理,共将FLASH分成8页。
系统中,利用CPLD逻辑分配了一个页地址控制寄存器,地址为0x90080060,通过改变页地址寄存器的值来改变页选通信号PA19:PA21的值,从而完成FLASH的分页操作。
2 系统软件设计
基M642的视景增强系统软件的实现是在TI公司提供的CCS2.2编译环境下进行的。采用了DSP/BIOS嵌入式操作系统,利用硬件中断和任务调度实现视频数据的采集、任务的显示及各种显示模式的相互切换。在程序设计中利用了RF5及同步通信等相关技术。DSP/BIOS程序模型如图3所示。
2.1 软件实现总流程
DSP/BIOS是一种抢先型、可裁剪的实时操作系统,由3部分组成:DSP/BIOS实时内核与API、DSP/BIOS分析工具、DSP/BIOS配置工具。DSP/BIOS操作系统支持多线程管理和调度,共有4种线程:硬件中断、软件中断、任务、空闲循环;支持任务间同步通信,提供邮箱、信号灯、队列等方式。在DSP/BIOS操作系统下,可方便地实现对片上外设及外部存储芯片的配置和管理,利用它开发的程序具有更好的移植性能。
系统软件的实现基于DSP/BIOS微操作系统,利用图3所示基于任务的应用程序实现模型进行编写。系统的总流程如图4所示。
2.2 系统设备驱动的设计与实现
在系统中,综合运用了DSP/BIOS,DDK,RF5等技术编写设备驱动程序,使用标准的类/微驱动程序模型来开发视频驱动程序,使硬件驱动程序与上层应用程序开发剥离开,提高程序的可移植和复用性能。当开发好硬件驱动程序后,上层的应用程序开发人员只需知道设备驱动程序提供的接口,而不需要了解底层硬件的工作原理及如何配置。
在系统中,当配置好硬件的底层驱动后,在图像采集时,底层驱动提供给上层应用程序的接口就是存放图像传感器数据的帧缓冲地址;而在图像显示时,应用程序只提供要显示图像的帧缓冲地址。这些功能的实现都是通过帧视频驱动程序(FVID)来实现的,它不仅完成对视频采集与显示设备的配置,还完成视频帧缓冲区的管理工作。
FVID函数是对GIO类函数的简单封装,是为GIO类设备提供的一组宏。FVID/GIO类驱动程序不仅可以完成对片上视频口外设的配置,还能与外部设备接口(EDC)配合实现对外部编解码芯片的配置。在程序中,除了完成对3个视频口的配置外,还需对外部编解码芯片的配置,现以视频口0配置成采集通道为例来说明具体的操作过程:
(1)先在DSP/BIOS操作系统下的静态配置工具中创建一个设备驱动,取名为“VPOCAPTURE”,在属性页面完成设置操作。
(2)在采集任务开始前,利用FVID_create()函数完成分配,并初始化FVID通道对象。FVID_create()函数可以配置视频口是采集模式,还是显示模式。在采集和显示时,使用视频口哪个通道来配置这个通道的参数。
(3)利用FVID_control()函数发送命令给下层的微驱动(Mini-driver),以实现对外部编解码芯片的配置。
(4)在采集和显示任务中,调用FVID帧缓冲管理函数,以完成视频帧缓冲的管理。
2.3 飞行仪表画面的绘制与叠加
增强视景系统中除了实时采集的图像外,还有一个很重要的功能就是要能够显示当前飞机的飞行姿态、飞机发动机及航电系统的状态、敌我信息的显示等。而这些信息的显示都是用仪表的形式显示出来的,这些仪表可以透明或者不透明地叠加在实时采集的传感器图像上,从而增强飞行员态势感知的能力。在系统中主要设计了以下几种飞行仪表:
PFD(Primary Flight Display)仪表画面是飞机飞行中最重要的飞行仪表,在PFD仪表中应该包含的信息包括航向角、飞行姿态、空速以及高度等。PFD画面以综合的显示方式包含了上面的信息,主飞行画面如图5所示。
除了PFD画面以外,还设计了发动机参数界面,用来显示发动机参数信息。同时设计了NVD(Narigation Display)导航信息界面,用电子罗盘指示当前飞机所飞行的磁航向角等,其界面如图6所示。
3 结语
该系统基本实现了增强视景系统的功能,能够在不低于25 f/s的图像采集速率下,同时采集4路图像传感器数据,实时动态叠加飞行仪表信息,以便明显提高飞行员态势感知能力。