基于Zynq SoC增强CCD图像传感器性能_第1页
基于Zynq SoC增强CCD图像传感器性能_第2页
基于Zynq SoC增强CCD图像传感器性能_第3页
基于Zynq SoC增强CCD图像传感器性能_第4页
基于Zynq SoC增强CCD图像传感器性能_第5页
已阅读5页,还剩1页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ZynqSoC增强CCD图像传感器性能CCD常用于对量子效率、动态范围、暗信号和读出噪声等指标要求极高的高性能图像系统。CCD工作在一种并行/串行架构,也就是说图像的每一线并行移动,输出的线数据在时钟作用下逐像素写入串行寄存器读出。因为CCD是模拟器件,为了获得更好的性能,这些并行和串行转换需要精确的时序和精确的重叠区域控制。许多现有的CCD驱动系统都基于大规模的系统架构,这限制了它们的性能和灵活性。E2V公司“SpaceImaging”项目组的产品开发团队已经研发出了用于内部测试和系统产品的灵活的“proximityelectronicscore”原型机。这里的“proximity”指的是为了获得更好性能,驱动电路离CCD非常近。这种设计架构允许主要的图像处理工作在前端转换成“安全”的数字信号后可以在远端通过专用的处理集群完成。这个核心板的主要功能是:

(1)Software-Defined:软件配置操作模式,硬件使用一个类似于SOI7层协议栈的预定义协议栈;

(2)信号快速转换到数字域,显著的减少了模拟链路路径;

(3)提升了用于定义CCD驱动行为的抽象层次;

(4)产生高精度的时钟;

(5)Network-Enabled:通过千兆网进行高速通信;

(6)Interface-Rich:可以使用许多通用的嵌入式通信接口,如USB、RS-232、I2C,SPI,CAN等。开发团队之所以选择使用XilinxZynq-7000SoC用作系统原型,是因为它支持丰富的接口标准,各种功能可根据各自的特点选择在ARMCortex-A9MPCore双核处理器(PS)或可编程逻辑(PL)上面完成。ZynqSoC允许设计团队聚焦到增值领域:应用软件、嵌入式软件、FPGA开发和模拟前端设计。1什么是SoftwareDefined?这里没有一个明确的标准定义来自Software-Defined嵌入式系统的各个组件是如何联系在一起的。比如说,没有一个标准化的组装机制来整理基于主机的应用程序、嵌入式系统软件、硬件、COTS、FPGA、电源等等。因此,开发团队采用下面的模型,如图1所示。

图1Software-Defined嵌入式系统模型和OSI通信模型非常类似的是,用户创建解决方案时无需提供所有的层级功能。层与层之间和层内都使用工业标准接口进行通信,比如FPGAAPI层采用AXI总线协议,ModuleLevel采用SPI,I2C通信等。只要有可能,我们都尽量避免使用自定义的接口和协议,因为自定义接口和协议会降低模块间的可重用性并且增加不必要的成本和风险。2ProximityCore架构系统架构如图2所示,展示了运行在本地Host的应用软件是如何配置嵌入式系统的。一旦完成配置,由SoM和模拟卡组成的嵌入式系统就会给CCD输出时钟,采样CCD像素数据并封装成以太网帧发出。归功于SoM灵活的IO特性,也可以方便的连接到包括滤光片、快门在内的图像系统的其他硬件。

图2CCDProximityCore系统级架构3ProximityCore应用软件我们用Python语言开发基于PC的应用软件,这个软件允许用户定制图形化的波形图,下图3是软件GUI的截屏。和传统的难调试、耗时多的基于文本的波形文件相比,直观的GUI让人更容易理解用于驱动CCD的波形。

图3软件GUI屏幕截图应用软件将用户满意的波形图数据写入到ZynqSoC内的波形发生器使之产生这个波形,这种设计方法可以使用户在设备工作的过程中更新波形,这是针对假设情景分析的一个伟大尝试。4ZynqSoC核标准的核心是运行嵌入式软件和实现FPGAAPILevels的ZynqSoC,它完成以下功能:

(1)和基于PC的应用软件通信;

(2)配置ZynqPL内的波形发生器;

(3)产生CCD驱动波形;

(4)和模拟前端连接,并对CCD输出的模拟像素信号进行模数转换;

(5)使用数字相关双采样技术来确定像素值;

(6)通过千兆网发送数据。以上这些任务分成产生输出波形和输入视频处理两组。产生输出波形需要灵活的、高精度的波形发生器。开发团队在波形发生中使用XilinxPicoBlaze微控制器,PicoBlaze是一个8位的微控制器软核,每条指令仅用两个时钟周期,实时性能非常高。PicoBlaze控制器在ZynqSoCPL内完全独立运行,它的可执行代码存储在内部的双端口RAM中。使用双端口RAM代替单口RAM存储PicoBlaze代码的优势是ZynqSoCPS端可以向PicoBlaze控制器实时更新代码。不需要调用通用PicoBlaze汇编器,系统内基于PC的应用程序就可以产生PicoBlaze可执行代码并将它下载到目标器件。系统大多数图像信号处理(ISP)链路都使用VivadoIP库里面的标准组件,但是输入视频处理需要开发一个自定义的ADC接口和DCDSIPBlock。在系统定制和优化过程中,所有的标准和自定义的IP组件都允许通过AXI-Lite接口进行software-defined配置。输入视频处理内部模块和模块间的数据流通信采用AXIStream协议传输,允许使用DMA通过ZynqSoC的高性能AXI接口将数据很容易的写到PS端的DDR内存。千兆网专用的DMA将内存中的图像数据搬运到PS的EthernetMAC发送,这样可以节省ARM处理器的开销。运行在ARM处理器的嵌入式软件主要负责两大功能:管理PicoBlaze控制器的代码存储空间和将采集到的图像数据通过千兆网发送出去。使用ZynqSoC一个额外的优势是其内部集成XADC可以实时监控CCD和其他嵌入式组件的运行参数。如果有需要,这些系统健康数据可以叠加在图像数据的后面发出。5模拟前端非常遗憾的是,CCD设备没有一个易用性很好的数字接口。在ZynqSoC输出的数字时钟和CCD时钟输入引脚之间需要一个中间级实现电平转换和大电流驱动。中间缓冲级将数字时钟信号电平变换到CCD需要的电压范围(典型值是8V-30V)并提高电流驱动能力,因为CCD内部设计的原因,它的时钟输入引脚的负载很重。模拟输入链路将CCD输出的模拟像素信号缩放到适合ADC采样的动态范围内。因为CCD的输出不是一个真正的差分信号,在使用不同类型的CCD时可能需要额外的模拟信号处理,比如说类差分减法。下图4是在电气和光学实验室中从“proximityelectronicscore”原型机上捕捉到的第一个输出波形。

图4实验室捕捉到CCD输出的第一个波形6将来的性能优化考虑通常的,CCD输出波形彼此之间,特别是重叠区域对齐必须要非常精密的位置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论