找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于感兴趣区域的可变频CCD实时处理系统

[复制链接]
admin 发表于 2013-3-24 12:14:27 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 为满足航空摄影测量需求,设计了基于感兴趣区域的可变频CCD实时处理系统。该系统主要由CCD控制模块、数据实时处理模块和显示模块组成。系统充分利用FPGA内部资源,改变了传统FPGA配合微处理器的实现方式,相关算法和时序逻辑控制均在一片FPGA内实现并通过验证,可广泛适用于任何分辨率CCD的智能实时处理。
关键词: 高分辨率;可变帧频;智能观测;实时显示;FPGA
       在航空摄影测量领域,常采用高分辨率CCD相机在高空对物体进行拍摄。目前的CCD数据处理系统首先在CCD相机的控制下,输出海量连续的CCD数据流。然后通过构造缓存单元结构,缓存接收的CCD图像数据。由于图像信息量太大,无法实时处理,需要在飞行过程中将所有图像实时记录在高速硬盘上,最终把缓存的数据流输入至实时记录系统实现高分辨率CCD数据的记录。
     针对飞行过程中的一些特殊情况,需根据接收的GPS信息(飞行高度、速度等)实时调整CCD帧频[1]。要实现可变帧率的CCD数据处理,对整个CCD数据实时处理能力提出了更高的要求。同时,随着CCD像元数的激增,每帧CCD图像的像素分辨率超大,如何实现基于高分辨率CCD图像感兴趣区域的智能实时观测是目前航测领域的研究重点。针对可变帧率和智能观测需求,提出了一种基于感兴趣区域的可变频CCD实时处理系统。
     系统根据可变频要求,一方面通过在FPGA内部设计UART控制器,触发CCD相机外同步触发信号,实时计算出随GPS信息不断变化的CCD帧频信息;另一方面,提出了一种数据提取算法,该算法通过对乒乓缓存的CCD图像数据进行可变窗口定位,实现了感兴趣区域的智能观察和存储;最后,通过视频编码实现感兴趣区域的高清晰视频实时显示。整个系统已在FPGA内实现并通过验证,可广泛适用于任何分辨率大小CCD的智能实时处理。
1 系统设计方案
     该可变频CCD智能实时处理系统由CCD控制模块、数据实时处理模块和实时显示模块组成。CCD控制模块:在相机外同步工作模式下,通过在FPGA内设计UART控制器,接收外部发来的GPS信息,实现CCD相机帧频的实时调整。针对数据实时处理模块,提出了一种数据提取算法:首先提取出原始CCD图像数据的感兴趣区域,该区域符合SMPTE(1080i)有效的高清晰视频数据分辨率大小,并通过可变窗口定位实现区域的智能实时调整;然后通过乒乓缓存结构的设计,实现感兴趣区域的实时存储;最后由实时显示模块,将缓存的感兴趣区域数据打包为高清晰视频格式,通过视频编码实现感兴趣区域的高清晰视频实时显示。图1给出了整个系统的实现方案。
    20121107050831127354518.gif
   2 CCD控制模块的设计
2.1 可变频帧率的设计与实现

     在飞行过程中,首先需接收GPS导航信息[3](主要包括飞行器经纬度位置、时间(时/分/秒)以及海拔高度、地速等飞行参数,数据刷新率为10 Hz/s),根据信息计算得到当前相机帧频。由于数据刷新率较高,接收数据的准确性是保证后续工作精度稳定的前提条件。
     传统的处理方式是[4]:通过串口配合相关电路,接收GPS信息,并计算得到随飞行高度和速度实时改变的相机帧频。UART(Universal Asynchronous Receiver Transmitter)作为计算机或外围设备的串行通信接口,通常在单片机中使用。本设计中改用FPGA完成所有数据处理,并设计了基于PFGA的UART控制器。
     UART控制器包含以下组件:时钟发生器、输入和输出移位寄存器、发送/接收控制单元和FIFO缓冲存储器。时钟发生器通常是比特率允许在一个位周期中采样的倍数。输入和输出移位寄存器是串行和并行之间形式转换的基本方法。发送或接收控制单元完成数据的传输和接收器下控制读或写控制逻辑。FIFO缓冲存储器实现对发送/接收数据的高速缓存。图2给出了基于FPGA的UART控制器设计,可见,整个UART设计充分利用FPGA的内部存储和时序逻辑资源,减小了系统的面积, 改变了传统通过单片机处理器的控制,大大降低了系统功耗,提高了设计的稳定性。
    20121107050831205474519.gif
       通过基于FPGA的UART控制器设计,GPS信息可从UART正确接收,根据GPS相应的飞行参数,可计算得到可变帧率,并输入至FPGA。本系统每帧CCD的拍摄时间间隔表达式如下:
    20121107050831252354520.gif
     式中,v是飞行速度(km/h),H是飞行高度,a是拍摄视角, qx是相邻的图片重叠比例。可见,通过接收GPS的飞行速度和飞行高度信息和实际拍摄要求,即可计算出拍摄时间间隔。根据时间和频率之间的关系,得到CCD当前帧速率。
     FPGA在内部时钟的控制下,针对可变帧频率,通过FPGA的时序逻辑控制,产生外同步控制脉冲信号。这样,在外同步脉冲的触发下,相机开始积分,积分完毕后,在行、场、消隐同步信号的控制下,读出CCD相机数据。
2.2 基于高速Cameralink接口的CCD数据传输
     为提高海量CCD连续数据流的传输速率,采用基于Cameralink接口技术实现高速CCD数据传输。Cameralink接口技术是基于Channel Link技术发展而来的。Channel Link是基于LVDS技术发展而来的,它是一种用来传输视频数据的新技术。Channel Link使用一个并转串驱动器和一个串转并接收器传输数据,其最高速率可达2.38 GHz/s,非常适合高分辨率CCD数据实时处理以及其他高速控制信号的传输[5]。
     高分辨率CCD数字相机通过Camera Link接口的连接,实现多位高速并行的数据线转换为串行数据线输出。同时,通过接收芯片DS90CR288A实现对CCD相机输出的串行数据还原为原始的并行数据输出,并提供了相应的CCD相机通信信号和有效控制信号。对DS90CR288A解码输出的CCD相机数据输入至FPGA,实现实时处理。
3 实时数据处理模块
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 01:21 , Processed in 0.056287 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表