1 系统总体设计与工作原理
本系统的主要目标之一是实现系统的小型化,为此采用硬件压缩,核心芯片采用zepax公司的sz1510高性能压缩编码芯片。sz1510可工作于mjpeg、mpeg-1编码以及vcd格式的视频编码等多种模式,mjpeg编码图像质量很好,但码率很高,需大容量的磁盘存储器,由于磁盘存储器对工作环境要求较高,在机载环境下若采用磁盘存储器则必须增加相应的减震、恒温等防护设备,从而导致体积大大增加,而mpeg-1编码压缩比高,码率相对较低,且图像质量满足实际需要和系统设计要求,因此本系统选用mpeg-1编码方案,同时,通过采用大容量的半导体存储器,大大减少了系统的体积,提高了系统的抗震性、可靠性,实现了系统的小型化。
系统的总体结构如图1所示,硬件电路主要包括视频音频解码单元、压缩编码单元、译码逻辑及接口单元、控制单元、存储单元5个部分。
系统上电后,som2386初始化音视频编码模块,系统正常启动后,saa7113对输入的复合视频信号进行解码,生成ccir-601数字视频流,ak4550采集输入的模拟音频信号,生成pcm数字音频流,分别送入压缩编码芯片sz1510,压缩成mpeg-1系统流后,在som2386控制下以文件形式存储到电子硬盘。
2 硬件设计
为提高系统的可维护性及降低维修成本,本系统硬件结构采用模块化的设计方法,系统分为3个模块:
a)视频音频解码及压缩编码模块:包括saa7113、mk2703、ak4550、sz1510、sdram;
b)逻辑连接、转换及接口模块:包括epm7128、max232、rs232接口、ide接口、控制、状态信号接口;
c)控制及存储模块:包括som2386和电子硬盘。
各模块分别做成相对独立的电路板,模块间用接插件相连,若系统中某个模块出现故障,只需更换该模块,不必更换整个系统,有利于节约时间和降低成本。
2.1 视频音频解码及压缩解码部分设计
视频解码器采用philips公司的saa7113,是一种可编程视频处理芯片,通过简单的i2c总线可对其实现编程控制,具有4路视频输入、抗混叠滤波、自动钳位和增益控制、多制式解码以及亮度、对比度和饱和度控制等功能,为系统设计带来极大的方便,它对输入的pal制式复合视频信号进行采样,解码后生成8bit/象素的ccir-601数字视频流(颜色空间为ycbcr,取样为4:2:2),送到视频压缩芯片sz1510的数字视频输入接口,它的输入时钟由24.576mhz的有源晶振提供,为sz1510提供场同步信号vs和行同步信号hs,同时,27mhz的像素时钟分为两路:一路直接输出至sz1510,作为其内部的数字视频的采样时钟;另一路通过锁相环时钟芯片mk2703降为48khz时钟amclm,作为音频编解码芯片ak4550的系统时钟,以实现视频和音频的准确同步,sz1510利用其gpio接口模拟的i2c总线对saa7113进行初始化。
音频解码器采用ak4550,它对模拟音频进行高信噪比16bit数字采样,生成pcm数字音频流。
压缩编码由芯片sz1510和视频帧缓存sdram(1m×16bit)组成,sz1510是一款高性能的mjpeg、mpeg-1编码芯片,支持多种工作模式和比特率模式,内部主要由视频编码核、tms320c54x高性能dsp核、接口电路、dma控制器和时钟产生电路等组成,视频编码核的结构如图2所示。
sz1510对输入其内部的视频流首先经过视频预处理、自动裁减、 场景切换检测,转换为cif格式的视频帧,然后,经过运动估计、运动补偿,离散余弦变换/反离散余弦变换和可变长编码等处理,生成mpeg-1视频基本流并存储于sdram中,同时,dsp核完成mpeg-1音频编码以及mpeg-1格式的音/视频的组合,生成mpeg-1格式的系统流,然后经过输出端口大小为256b的fifo缓冲进行数据的输出,正常工作时,当fifo满时就产生一个frdy(fifo读)中断通知主机读取fifo中的数据,主机通过z56次读data_out寄存器完成数据的读取,当sz1510发出一个eod(数据结束)中断时,数据传输结束。
2.2 接口逻辑、控制及存储部分设计
系统中的各种接口逻辑、地址译码等由epm7128实现,其主要功能有sz1510配置寄存器的地址译码,控制、状态信号寄存器的地址译码,产生硬件复位信号,实现sz1510与控制模块som2386的接口,其中,sz1510配置寄存器和控制、状态信号寄存器是作为i/o端口与som2386相连的,控制、状态信号主要用于向外部输出自检信号以及接收来自外部的记录开关控制信号等。
系统的控制由som2386完成,som2386是一款高性能、尺寸紧凑的嵌入式控制模块,他板载嵌入式高性能16位处理器,rdc161,该处理器内部为32位risc架构,并与80c186处理器兼容,其指令与其他x86微处理器兼容,模块在单一闪存芯片上集成了系统bios和1.44mb闪存,支持标准ide接口和两个串口。som2386与压缩编码芯片sz1510的host接口相连,通过host接口对sz1510进行控制和配置。正常工作时把从host接口输出的mpeg-1格式的系统流以文件形式送入存储单元,系统的ide接口从som2386直接引出,为给dom(电子硬盘)提供电源,ide接口的pin20与+5v电源相连,其余引脚信号定义与ide标准相同,som2386模块的串口1通过驱动芯片max232提供rs-232的调试接口。
存储单元采用dom,它由控制单元和存储单元组成,是用固态电子器件存储芯片阵列而制成的硬盘,其接口规范和定义以及使用方法上与普遍硬盘完成完全相同,其突出优点是体积小、抗震性好、工作温度范围宽,并且只需单一的5v电源供电,适合于机载环境。
3 软件设计
3.1 sz1510的寄存器配置和二进制代码下载
外部主机通过host接口与sz1510内部的两个寄存器ioar(i/o地址寄存器)、iodr(i/o数据寄存器)来实现sz1510的控制和配置。主机在配置sz1510内部某一寄存器时,首先把这个寄存器的地址写入ioar,然后把配置的数据写入iodr,这样sz1510会自动把配置的数据送到指定地址的寄存器,例如,初始化时主机写数据0x44到寄存器0x11,必须通过以下过程实现:
a)写传输:haddr=0,data=0x11;
b)写传输: haddr=1,data=0x44;
sz1510内部有一段程序存储空间,用来装载内核的二进制代码,这段空间以块为单位,每快的存储空间大小为256b,dsp核的代码存储空间为0x280-0x2bf,视频编码核的代码存储空间为0x0000-0x0004和0x000c,二进制代码装载的具体过程如下:
a)向0x2e寄存器写1x01,表明外部sdram为1m×16bit;
b)向0x0c寄存器写0x03,使能frdy和eod中断;
c)向0x11寄存器写0x18,选择内部存储器写模式;
d)向0x10寄存器写0x20,设定输出fifo大小为256b;
e)对每块存储空间装载二进制代码,具有如下:向0x08寄存器写0x04,发送开始命令,等待frdy中断,清除frdy中断,向0x01寄存器(data_in)写256b,等待eod中断,清除eod中断。
3.2 i2c外设配置
saa7113的配置是由sz1510通过其i2c总线来实现。由于sz1510内部存储空间容量的限制,使得加载的sz1510内核程序代码会覆盖i2c外设的配置程序代码,因此,任何i2c外设的配置必须在sz11510内核程序代码的下载和配置前完成,主机通过使用sz1510内部host端口寄存器0x42-0x4f(每个8bit宽)与sz1510中的i2c服务例程交互,并通过i2c总线配置任何一个连接到sz1510上的外部器件,所有的命令代码都必须写入sz1510地址为0x08处的命令寄存器,sz1510通过地址为0x0d的寄存器写入代码为0x80的中断来通知主机。i2c写过程如下:
a)向0x08寄存器写“初始化i2c”命令代码0xc2;
b)输入数据至sz1510并向0x08寄存器写“i2c写”命令代码0x0c;
c)数据输入完成后,sz1510向0x0d寄存器写中断命令代码0x80,通知主机。
通过sz1510的i2c总线配置saa7113的时序流程如图3所示。
3.3 系统的软件调试及工作流程
通过从som2386模块上串口1引出的rs-232接口可以很方便地对系统进行软件调试,由于cpu芯片rdc1610指令与其他x86微处理器兼容,且模块bios中集成了虚拟显示/键盘技术,调试时在pc机上运行虚拟显示软件pcvid3v0.exe,即可获得和本地pc的dos环境完全相仿的效果,可直接运行dos下的所有命令,调试是可以通过debug命令直接访问sz1510的寄存器和控制、状态端口寄存器等。
系统的所有软件程序做成一个批处理文件,存储与控制模块som2386上虚拟软盘的一指定目录中,系统上电后自动运行此目录下的程序,控制系统的工作。系统上电后,整个系统的工作流程如图4所示。
4 结束语
由于空中背景比较单一,设定系统工作于vbr模式,能降低码率,并保持图像质量的稳定,实验结果表明系统设计结构可行,若采用2gb的电子硬盘,记录时间可达8h左右,随着半导体存储器容量的不断增长,系统的记录时间还将进一步延长,同时,将来还可以通过修改软件,设定sz1510工作于mjpeg编码模式,进一步提高记录视频的图像质量,因此,系统具有较大的升级潜力,本结构紧凑、体积小(尺寸仅为90mm×60mm×25mm)、重量轻、使用方便,已在某型飞机上投入使用,并且运行稳定可靠,取得较好的效果。
评论
查看更多