- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
航测CCD预处理系统的设计与实现
摘 要: 设计了一个应用于航空摄影测量的CCD预处理系统。系统由相机数据处理和控制分系统组成。相机数据处理部分实现与记录系统和机上数传系统间的数据通信,要求对CCD相机送来的数据进行合成、压缩、缓存和视频编码。控制分系统实现与各系统之间的串口通信、温度控制以及电压转换。介绍了视频编码芯片和单片机通过I2C总线进行数据通信的原理和具体实现。该系统已经通过验证,可满足航空摄影测量的需求。
关键词: 航空摄影测量;视频编码;串口通信; I2C总线
为航空摄影测量系统,设计了一个预处理系统以实现高分辨率航测相机与记录系统及,机上主控机数传系统之间的通信。在这个预处理系统中,要求接收CCD相机送来的数字视频信号,并对相机数据处理(合成、压缩、缓存)后经视频编码转变为标准CCIR模拟视频信号,传送到机上传输系统。同时要求接收地面的控制信号,对机上电子系统进行远程遥控,实现各串口的通信。并且需要采集机上光机及电子系统各部分温度数据,实现在高空飞行中的温检及温控。由于系统功能复杂,预处理系统的设计对整个航测系统起着重要的作用。
1 预处理系统设计模块
本系统主要由以下部分组成:
(1)航测CCD相机:相机选用高分辨率2 K×2 K航测CCD相机。
(2)预处理系统:实现高分辨率航测CCD相机与记录系统及机上主控机数传系统之间的通信。
(3)记录系统:实现对航测CCD相机数据的高速实时记录。
(4)电源:供给各系统所需电压。
其中,预处理系统部分是整个航测系统设计的关键。它主要由相机数据处理和控制分系统两部分组成。相机数据处理部分需要接收航测相机送来的图像数据,分别实现与记录系统和机上主控机数传系统间的数据通信。由于CCD相机输出为两路数据,所以首先需要将CCD相机的输出数据送入FPGA进行数据合成。合成后的数据再分两路输出:一路送入记录系统对数据进行记录;另一路进行数据压缩,压缩后的数据送到缓存器保存,然后经过视频编码,转换为CCIR标准模拟视频信号,送到机上传输系统,从而完成对CCD相机图像数据的处理。
同时,为了实现相机数据与各分系统之间的串口通信、控制命令及电压转换等功能,需要设计一个控制分系统,主要完成以下功能:
(1)与各分系统之间的串口通信:与机上主控机数传系统的串口通信(RS422接口);与记录分系统的串口通信(RS232接口)用于实现记录控制和附加参数;与航测相机的串口通信(为LVDS接口),用于实现对相机的控制;接收GPS参数(为RS232接口)。
(2)在高空飞行中对机上光机及电子系统各部分进行温度检测,从而实现加温控制。
(3)电源部分:接收机上28 V直流输入,转换成CCD相机工作电源+12 V,信号预处理及控制系统电源+5 V、记录系统及硬盘+12 V和5 V,加温电源直接用机上28 V。
预处理系统设计模块如图1所示。
2 预处理系统设计方案
由上述系统设计模块,可以确定整个系统设计方案如下:
相机数据处理部分实现如下流程:
(1)首先通过外同步时钟以及行、场时钟信号顺序读入图像数据,并将送来的数据信号(接口为Cameralink)经过专用解码芯片转换为TTL信号。
(2)由于转换后的TTL信号数据为两路12 bit,将其送入FPGA进行数据合成,合成后的数据分两路输出:一路直接变换为LVDS信号送记录系统,采用抽帧方式,记录帧频约1帧/s;另一路经过压缩、缓存、视频编码后转换为CCIR模拟视频信号送入机上传输系统。
(3)对合成后的数据进行压缩: 压缩方式可以是Bin方式、直接抽点或局部选择等,本文选用Bin方式。
(4)由于相机的帧频与最终输出的模拟视频信号的帧频不一致,所以首先需要将压缩后的数据送入静态存储器(SRAM)进行缓存。采用两块SRAM乒乓缓存的方式,很好地完成了对于海量连续的高速数据流CCD相机图像数据的无缝缓冲和处理。
(5)对缓存后的输出数据进行视频编码转换为CCIR模拟视频信号送入机上传输系统。
(6)当下一帧CCD控制信号有效时,返回(1)。
控制分系统部分:
主要功能之一是实现与各分系统之间的串口通信。选用AT89LS51单片机外加1个四串口扩展芯片ST16C554实现航测相机与各分系统之间的串口通信。AT89LS51是美国ATMEL公司生产的低功耗、高性能CMOS8 bit单片机,可灵活地实现在线系统编程;带有一个全双工串型通信口,在本系统中用于实现与机上主控机数传系统的通信。1片串口扩展芯片ST16C554分别实现与记录分系统、相机和GPS信息的串口通信。具体分配为:扩展后的2个串口用于记录系统:一个作为记录控制命令使用,另一个专门用来发送附加信息,两串口均为RS232接口。同时一个串口用于接收GPS信息,接口形式为RS232。FPGA 的工作模式由单片机实现,可在地面进行遥控。
在高空飞行中,加温是一个很重要也很关键的问题。为实现对机上光机及电子系统各部分进行温度检测,本设计采用Dallas的DS18B20串行输出数字测温芯片,可以多路并联,只由单片机一位I/O口就可以实现全部的控制和温度采集,有很强的扩展能力。
整个预处理系统结构框图如图2所示。
3 预处理系统的具体实现
3.1 I2C总线原理
目前许多视频编、解码芯片支持I2C总线通信协议, I2C总线是PHILIPS公司开发的一种简单、双向二线制同步串行总线。它只需要两根线:串行数据线(SDA)和串行时钟线(SCL)即可使连接于总线上的器件之间实现信息传送,同时可通过对器件进行软件寻址,而不是对硬件进行片选寻址的方式来节约通信线数目,从而减少了硬件所占空间。I2C总线采用8 bit、双向串行数据传送方式,在发送器和接收器之间进行双向传送,标准传送速率为100 KB/s,快速方式下可达400 KB/s。
3.2 I2C总线传输格式
I2C总线传输过程由一个起始条件来起动。起始条件产生后,总线进入“忙”状态。开始传输一条包含一个地址和许多数据字节的信息。I2C的信息是通过终止条件或一个重复起始条件连续传输。终止条件将释放主机的总线控制权限。而重复起始条件用来实现多于一条的来自同种或不同器件的信息传输,但不改变主机权限。终止和重复起始条件只在主机模式下产生。数据和地址传输时,8 bit为1 B,高位在前。在紧跟数据字节的第9个时钟脉冲内,接收器必须向发送器发送一位应答位。从机可以延长时钟脉冲的时间(出于时序的原因)。起始条件后跟随一个7 bit的地址和1 bit的R/W方向位。I2C总线传输格式如图3所示。
图3中S为重复起始条件,SLV_W为从机地址和写方向位,A为最后一个字节的应答,SLV_R为从机地址和读方向位,N为最后一个字节无应答,SUB为子地址,P为终止条件,D1……Dn 为数据字节块。
3.3 ADV7300A与AT89LS51的I2C数据通信
选用的视频编码芯片是ANALOG公司的ADV7300A。ADV7300A是ANALOG公司推出的内含12 bit DAC的数字视频编码器。它集D/A和编码于一身,并可以对输入的多种格式数据(数据最高分辨率为10 bit)进行编码及D/A转换,以输出PAL制式、NTSC制式的复合视频信号(CVBS)或S-Video方式的Y/C分量信号和复合全电视信号。
为实现ADV7300A与单片机之间的数据通信,选用ADV7300A作为从设备,AT89LS51作为主设备。虽然AT89LS51单片机不支持I2C总线结构,但仍然可以利用单片微处理器的普通I/O口来模拟I2C总线,通过软件编程来实现,但注意一定要严格按I2C总线的时序进行。首先从设备向主设备发送一个地址字节,之后主设备则发一个应答信号,从设备接到应答后,再发给主设备一个控制字节,当主设备接到控制字节后,再发给从设备一个应答。之后主、从设备间就可进行数据通信了。ADV7300A与89LS51间通信工作流程图如图4所示。
本系统的设计要点在于对CCD相机数据的合成、压缩、以及视频编码芯片和单片机之间的I2C数据通信。整个系统采用XILINX公司SPARTAN2E系列FPGA实现相机数据处理部分,并采用AT89LS51单片机和串口扩展芯片实现与各分系统间的串口通信及温检温控。目前该系统已经通过验证,很好地满足了航空摄影测量系统的需求,具有很高的应用价值。
参考文献
[1] 何立民.I2C总线应用系统设计[M].北京:北京航天航空大学出版社,1995.
[2] 刘玉玺,汤楠.MAX517与单片机的I2C总线数据通信[J-OL].http:www.//.21ic.com. 2003-07-01.