机载数字视频记录系统的软、硬件设计
摘要:通过嵌入式计算机PC104对MPEG A/V编码芯片SZ1510进行配置和控制,可以缩短研制高性能航空机载环境下数字式彩色视频记录仪的开发时间。文中详细介绍了该机载数字视频记录系统的软、硬件设计思想及注意事项。
关键词:SZ1510;视频记录;PC104;新型飞机
机载视频记录系统在飞行员的日常训练中发挥着十分重要的作用。该系统可以实时记录飞行器的飞行及训练过程中的各种信息,能够直观、真实的反映飞行员在空中的飞行和操作情况。通过地面回放设备的回放,飞行员可以准确地把握自身的不足并及时改进,从而提高训练水平。但由于视频信号数据量大,技术要求高,国产飞机大多没有信息监视和记录系统。为了提高我军战机的作战性能研制一种信息监视和记录系统迫在眉睫。
随着大规模集成电路的发展,采用数字图像压缩技术实现高压缩比、高质量的图像数字压缩记录系统已成为可能。数字化的记录方法可以将视频数据经过压缩记录在大容量的存储器上,并能有效消除噪声、增加记录时间、加快拷贝和复制速度,快速回放和查找,同时还可以快速地通过计算机网络进行传送。基于以上原因,笔者为某新型飞机研制了高性能的适于航空机载环境的数字式彩色视频记录系统。本记录系统的核心芯片选用以色列Zepax公司的SZ1510 MPEG-1编码芯片。
1 工作原理
图1所示是本记录系统的结构组成示意图。整个系统由三大部分组成,即压缩控制部分、存储部分和电源部分三大模块。其中压缩部分由一路MPEG-1音视频压缩电路和控制单元PC-104组成,主要功能是实现对输入音视频信号的数字压缩。存储部分由大容量硬盘组成,用于完成对压缩数据的长时间记录。电源部分负责对各模块电路提供电源。
javascript:window.open(this.src);" style="cursor:pointer;"/>
在系统启动时,主控计算机首先对压缩卡进行初始化,当设置好MPEG-1压缩格式及数据速率后,压缩卡开始工作,并在主控计算机的控制下将压缩后的图像数据写入硬盘。在工作过程中,主控计算机还将不断监视相关信号,并在图像中加入相应的标志,直到接收到关机信号,系统自动结束压缩卡的工作,并关闭主机。
2 系统硬件设计
整个系统的核心是以色列Zepax公司的SZ1510 MPEG-1编码芯片,它由PC104控制,另外,该系统还包括PCI桥芯片PLX9030以及视频解码芯片SAA7113等。
2.1 SZ1510芯片简介
Zepax公司的SZ1510IC内部采用可编程的专业硬件体系结构,它可以高效使用存储器,并能合理进行资源分配。内核采用TI公司的TMS320C54X高性能DSP来完成MPEG1音频编码、解码以及CD格式的音/视频流的组合,同时进行一般的系统控制。
该芯片具有功能多、功耗小、温度范围宽等特点,其组成电路如图2所示。它主要由运动估计与补偿单元、DCT与反DCT变换单元、可变长编码单元、控制单元、SDRAM接口单元、通用总线接口单元组成。内部的压缩处理完全采用流水线结构,开机后只需简单的初始化即可独立工作,同时自动送出压缩好的数据。外部电路的时钟为27MHz,工作电压为3.3V。
系统中的视频压缩有三种比特率可供选择,其中恒定比特率需要填充冗余,最大比特率不需要填充冗余,而可变比特率的压缩质量比较恒定,但比特率可变。音频压缩部分支持3244.1及48kHz取样率以及音频PCM、实时MPEG12层音频编码等。
2.2 PC104计算机简介
考虑到控制单元的体积、可靠性和控制能力,可选用嵌入式计算机PC104作为主控单元。根据视频压缩的特点,推荐选择安普公司的AmproP5E/266产品,该产品温度特性好、功能强大、可靠性高、软硬件移植方便且易于调试。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 软件设计
SZ1510共有128个寄存器,每个寄存器都有一个索引号。外界对这些寄存器的访问都是通过IOARI/O Adress Register和IODR(I/O Data Register)来完成的。访问时首先将这个寄存器的索引号写入IOAR然后将要写的数据写入IODR,这样,SZ1510即可自动把数据送到某个寄存器。
主机访问SZ1510是通过PLX9030进行的。对PLX9030中寄存器的访问通常是按内存方式进行的,其方法是常规段加偏移方式。不过,它的寄存器访问总线宽度有的是16bits(如0x4c),有的是32bits(如0x50),具体可参考有关文献(5)。
3.1 硬件初始化
对系统硬件的初始化主要是初始化PLX9030和SZ1510。PLX9030的初始化比较简单,一是使能中断,向寄存器0x4c中写入0x0041,二是对PLX9030的Local bus进行软复位,即先将寄存器0x50的第30位置1,再将其置0。
SZ1510的初始化过程如下:
(1)向中断使能寄存器写入0x40,以使能Ready中断;
(2)等待SZ1510的Ready中断;
(3)等到Ready中断后,向SZ1510的0x1E寄存器写入0x0A,设置它内部的DSP时钟为94.5MHz;
(4)向0x013寄存器写入0x55,对SZ1510进行软复位;
(5) 向中断使能寄存器0x0C写入0x40使能Ready中断;
(6) 等候RDY中断;
(7) 待Ready中断后对SAA7113进行初始化;
(8) 对SZ1510进行软复位,即向0x0B寄存器写入0x55,同时向0x0C寄存器写入0x40;
(9) 等待Ready中断,等到后向SZ1510的内部DSP装载二进制代码;
(10)进行SZ1510内部视频压缩核的二进制代码装载。
3.2 SZ1510二进制代码的装载
SZ1510 内部有一段程序空间,可用来装载二进制代码。这段空间以块(Blank)为单位,每块的大小是256字节。
用于视频编码核的二进制代码的装载空间为0x000~0x004和0x00c等六个块,共1.5k字节代码。具体装载的步骤如下:
(1) 向0x2E寄存器写0x01,表示外部的SDRAM是1M×16bits;
(2) 向0x0C寄存器写0x03,使能FIFO Ready 和 End of Data中断;
(3) 向0x11寄存器写0x1,设定工作模式为内部内存写模式;
(4)向0x10写0x20,设定SZ1510下转第10页(上接第6页)输出数据的FIFO大小为256字节;
(5)对每块程序空间进行二进制代码装载,具体过程如下:
●向0x08寄存器写0x04,发送开始命令;
●等待Ready中断,清除Ready中断;
●向Data in寄存器0x01写256个字节;
●等待End of Data中断,然后清除中断;
(6)查程序空间的代码是否装载完毕,如没有,回到(5)继续装载。
3.3 SZ1510视频数据的获取
SZ1510内部有一个256字节的FIFO。一旦该FIFO满,即产生一个FIFO Ready中断,以通知主机读取FIFO中的数据,然后通过256次读Data out寄存器来完成数据传输。
4 注意事项
SZ1510芯片的PLL PCB设计要求如下
(1)应用设计EMI滤波装置以减少VDDA的电源噪声。
(2)LPF到SZ1510的整体电路管脚长度应当小于0.5英寸。
(3)设计PCB时,外部LPF应尽量接近封装脚。
(4)VDDA和VSSA端应接0.1μF的旁路电容以减少噪音。