0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于复杂可编程逻辑器件的非均匀性校正实现方案

电子设计 来源:郭婷 作者:电子设计 2018-11-28 08:31 次阅读

图像传感器是现代视觉信息获取的一种基础器件,它将入射到光敏面上按空间分布的光强信息转换为按时序输出的视频信号,从而能够再现物体的图像信息。 在理想的情况下,当图像传感器受均匀光照时,各光敏元输出的视频信号幅度应该完全相同。 但实际上,由于制作器件的工艺水平、1/f 噪声、光学系统以及电荷传输效率等诸多因素的影响,产生了非均匀性问题,使得在相同的辐照度下,每个光敏元的响应度不可能完全一致,甚至有较大的差异 。

图像传感器的非均匀性直接影响了成像系统的探测灵敏度和空间分辨率,用这样的成像装置观察景物,成像质量必然受到影响,甚至图像会模糊不清。 因此,必须对非均匀性进行校正。 尽管针对非均匀性校正的研究多种多样,但目前在商业上有推广价值的还是2点法,专家和工程师们的着眼点依然是修正和完善2点法,如提高精度算法处理速度。 此外,一些非线性校正方法,如神经网络校正法、时域高通滤波器法还处于实验室研究阶段。

图像传感器光敏元的光电转换特性曲线反映了其输出(U )与辐照度(H)之间的关系,因此,非均匀性体现为各个光敏元具有各不相同的光电转换曲线。 非均匀性校正的最终目的就是通过校正处理使得图像传感器所有光敏元表现出完全相同的光电转换关系。 2点法是在光敏元的输出与辐照度成线性关系的前提下建立的,它以某一直线作为标准,通过选择合适的斜率和偏置校正系数,将所有光敏元的转换特性均校正为与标准直线重合(即有相同的线性函数) ,从而使所有的光敏元在相同的辐照度下,有相同的输出。

实际上,光敏元的输出与辐照度两者之间通常被认为服从抛物线模型。 显然, 2点法所采用的线性近似是比较粗糙的,使其应用范围局限于图像传感器光电转换线性较好或工作范围较窄的情况。 为此,笔者引入了多点校正方法,该方法将整个饱和辐照度区域划分成若干子区域,每个子区域的光敏元输出与辐照度的关系采用线性函数表示,从而能够更好地逼近抛物线模型,并将图像传感器的工作范围扩展到整个饱和辐照度区域。 为实现多点校正法,笔者设计了基于复杂可编程逻辑器件的硬件校正实现方案,实验表明,该校正系统可将图像传感器CL512J的非均匀度由40%校正到2%. 因此,多点校正法及其实现系统能在不提高制造工艺和进一步研究光敏元结构的基础上,有效地降低图像传感器的非均匀性,获得较为理想的图像质量。

1非均匀性多点校正法

如果直接利用光电转换关系的抛物线模型进行校正,硬件实现较为困难。 因此,引入多点校正法,利用分段线性函数来逼近非线性响应关系,即将整个饱和辐照度区域划分成若干个子区域,每个子区域的光电转换关系采用线性函数逼近,然后分别对每个子区域采用2点法进行校正处理。 显然,多点校正法是2点校正法的扩展。 假设进行n点校正, 图1给出了在辐照度子区域(Hj, Hj+1 ) ( j = 1, 。, n - 1; Hj+1》Hj )的校正示意图。

基于复杂可编程逻辑器件的非均匀性校正实现方案

图12点校正法示意图

图中,直线a和b分别表示图像传感器中a和b 2个光敏元在(Hj , Hj+1 )区域内的光电转换特性的逼近直线,直线c表示校正后2个光敏元的转换特性。

从图1可看出,在Hj和Hj+1辐照度下,校正前a和b光敏元的视频输出值分别为Uaj、Ua(j+1) 、Ubj和Ub(j+1) 。 由于非均匀性的存在,使得Uaj ≠Ubj、U a (j+1) ≠U b(j+1) 。 校正后, a和b 2个光敏元在H j和H j+1辐照度下,均分别有相同的输出: Ucj和Uc(j+1) 。 同时也保证了在(Hj , Hj+1 )区域内,相同辐照度下2个光敏元均有相同的输出。 直线i ( i = a, b)可表示为:

基于复杂可编程逻辑器件的非均匀性校正实现方案

式中, Uij为i光敏元校正前的输出; Kij、bij分别为对应直线的斜率和偏置常数为使a和b光敏元的转换特性经校正后均表现为直线c所表示的转换关系,按以下2式选择斜率校正系数Gij和偏置校正系数Cij.

基于复杂可编程逻辑器件的非均匀性校正实现方案

式(2)中, Kc为常数, 表示直线c的斜率。 对Kc的选择具有很强的随意性, 通常选取所有光敏元中最大斜率的光电转换直线或者取过2个不同光照下各个光敏元的算术平均值的直线作为标准。 笔者则以获取尽可能大的Gij作为标准, 因此, 由Gij (最大取值可为250)和(Ui(j+1) - Uij )值可确定(Uc(j+1) - Ucj )值的范围,从而确定Kc值。 同时保证校正后的视频输出值在饱和辐照度范围内随辐照度增强而增大。

式(3)中,Mj为常数。 在保证光电转换曲线分段线性化后的连续性和单值性的情况下,Mj值等于分段点Hj校正后的视频电压值。 同时, 结合Uij以及选择合适的Gij ,保证获取尽可能大Cij. 因此,校正后的视频输出Uc可表示为:

基于复杂可编程逻辑器件的非均匀性校正实现方案

将式(1) 、式(2)和式(3)代入式(4) ,经整理后得:

基于复杂可编程逻辑器件的非均匀性校正实现方案

可见,因为Kc、Mj和Hj均为常数, 经过校正处理后, 在同一辐照度下, 2个光敏元都有相同的视频输出电压并且输出电压值与辐照度大小成一一对应的线性关系。 同理,对有m 个光敏元的传感器采用上述校正原理和校正算法可实现其非均匀性校正。

此外,由于不同图像传感器的光电转换曲线各不相同,所以,在辐照度区域的划分时,各边界点应根据具体传感器的特性加以选择,不能一概而论。 笔者所采取的选取原则是,采用实验测取数据,拟合出曲线的大致变化情况,再进行辐照度区域划分。

2非均匀性校正系统实现

2. 1硬件设计

目前,在非均匀性校正的硬件实现上,采用的都是1点或2点校正法。 电路由计数器、存储器、A /D转换器和D /A转换器等器件组成 。 通常,只能针对某个特定型号的图像传感器进行电路板制作,扩展性较差,而且,电路工作频率较低。 采用这些器件很难实现多点实时校正。

为了实现非均匀性多点实时校正,笔者设计了基于复杂可编程逻辑器件(CPLD)的校正系统。 该系统以CPLD EPM7512AE为核心,包括输入和输出信号调理电路、高速A/D采样单元、D/A转换单元和FLASH存储器等功能模块。 系统结构如图2所示。

基于复杂可编程逻辑器件的非均匀性校正实现方案

图2校正系统结构图

校正系统通过输入信号调理单元将接收到的图像传感器视频输出信号进行预处理,将信号调整到A/D转换器(ADC) TLV5580的采样电压范围内。系统控制核心CPLD接收图像传感器工作信号,根据视频信号串行输出的规律,产生控制TLV5580工作的时钟信号和转换数据输出使能信号,从而控制TLV5580对经过调理的视频信号进行采样量化,并将量化后的数字信号实时读入CPLD. 同时, CPLD 从FLASH存储器W29C040的相应单元中读出斜率和偏置校正系数,实现式(4)描述的校正算法,完成对各个视频信号的实时非均匀性校正。

CPLD还产生D/A转换器(DAC) TL5632C工作时钟信号,控制TL5632C将校正后的数字信号实时地转换成模拟信号,并由输出信号调理单元将该模拟信号调理为一个范围合适的电压信号作为校正系统的输出(即经过校正的视频信号)。

2. 2CPLD设计思想

作为控制核心的CPLD是一种半定制器件,它最大的优点就是采用编程的方式定制其具体实现的硬件电路,指定CPLD的硬件实现功能。 笔者主要采用硬件描述语言VHDL,并结合原理图方式在MAX + PLUSⅡ集成开发环境下进行CPLD 功能的设计。 采用VHDL语言的设计方法,可实现器件的无关性,并且功能实现灵活、修改方便。 CPLD的应用以及VHDL设计方法的使用为校正系统能灵活地适用于不同图像传感器的校正以及实现不同的校正算法提供了可能和保证。

根据系统校正功能要求及工作流程, CPLD 实现的功能主要包括:

1) 分频器。 分频器对晶振信号进行分频,产生校正系统协调工作的时钟基准信号。 分频器采用VHDL进行设计,可以根据不同的晶振、不同的图像传感器工作频率,灵活、方便地选择不同的分频数,产生合适的时钟基准信号。

2) ADC控制信号发生模块。 该模块采用VHDL进行设计,根据分频器产生的时钟基准信号和图像传感器的工作信号,产生能够准确控制TLV5580工作的时钟信号和转换数据输出使能信号,保证TLV5580实时、准确地采集经过调理后的视频输出信号。

3) 地址发生器。 地址发生器产生读取FLASH存储器中斜率和偏置校正系数的地址信号。 由于每个光敏元在每个辐照度子区域有一组数据(一个斜率校正系数和一个偏置校正系数) ,为了方便读取,将同一辐照度子区域的所有光敏元的校正系数按照在图像传感器中的相对位置顺序存储。 所以,同一光敏元在不同子区域下的数据地址,高位地址不同,低位地址则完全相同;同一子区域内不同光敏元的数据地址,则高位相同,低位不同。 因此,地址发生器由2部分构成:高位地址发生器和低位地址发生器。

高位地址发生器实质上是一个比较器,确定当前图像传感器所测量的辐照度所处的子区域。 其设计思想是:将采集到的第1个光敏元的视频信号和预先设定的对应于每段辐照度子区域的边界值进行比较,根据比较的结果产生相应的高位地址。 由于采用并行执行的指令来实现,能够很好地满足实时处理的要求。低位地址发生器根据视频信号逐一串行输出的特点以及TLV5580工作特点(每个工作时钟采集1个光敏元的输出信号)进行设计,实质上是一个计数器,只需对TLV5580工作时钟信号进行计数,就能产生相应的低位地址。

4) 校正模块。 由乘法和加法2个子模块构成,分别采用MAX + PLUS Ⅱ提供的功能单元LPM_MULT和LPM_ADD_SUB来实现。 校正模块将采集到的视频信号以及从FLASH存储器读取的相应校正系数按照式(4)进行处理,实现图像传感器的实时非均匀性校正。

5) DAC控制信号发生模块。 产生控制TL5632C工作的时钟信号,指挥TL5632C实时地将校正后的数字视频信号转换为模拟信号。

由于非均匀性校正功能的实现对时序要求严格,在程序的设计中,一定要注意时序的合理性。 将程序编写出来后,首先进行了仿真实验,在得到期望的工作波形数据后,进行逻辑综合生成网络表和下载文件,最后将程序文件下载到EPM7512AE中,以便进行下一步对图像传感器非均匀性校正指标的测试。

3实验结果

笔者以重庆大学研制的CL512J型自扫描光电二极管阵列( SSPA)图像传感器作为对象,进行6点非均匀性实时校正的实验。 CL512J是一种具有512个光敏元的线阵列图像传感器。 其工作波形如图3所示,以起始脉冲S信号(低电平有效)表示每一次扫描输出的开始。 光敏元的视频输出电压Uo 与时钟信号CP同步,在CP的上升沿时刻开始输出,经过短暂的上升时间后,稳定下来;在CP为低电平时,输出变为0. 因此,将S和CP信号引入校正系统作为CPLD产生各种控制信号的基本依据。在实验中, 首先通过数据采集卡和计算机, 将 CL512J 的校正系数计算出来, 按指定地址保存在FLASH存储器中。

基于复杂可编程逻辑器件的非均匀性校正实现方案

图3CL512J工作波形

然后, 在MAX + PLUS Ⅱ开发环境下, 根据CL512J的具体情况(光敏元个数、工作频率、视频信号串行输出的特点等) ,设计出相应的程序,经过仿真验证后,将程序文件下载到CPLD中。最后,将CL512J的视频信号接入校正系统,并利用示波器观察校正前后的视频电压波形。 图4给出了一个实时校正的实验结果,上面一条曲线是CL512J实际的视频输出信号,下面一条是经过校正后的视频信号。 校正前, 输出信号最大值为2V, 最小值不足0. 8V,非均匀性超过40%. 校正后,电压信号在2V附近变化,非均匀性约为2%. 由于TLV5580等器件的工作特点,校正信号延迟约5个CP时钟后输出。

基于复杂可编程逻辑器件的非均匀性校正实现方案

图4不均匀性校正实验结果图

4结束语

设计的非均匀性校正算法以及硬件校正系统,能够有效地实现图像传感器的多点实时非均匀性校正。采用CPLD作为核心构成的校正系统具有功耗低、抗干扰能力强、功能实现方便和扩展灵活等优点,能够有效地适用于多种图像传感器的校正。

但是,由于存在光电转换曲线分段线性化误差、A/D转换器和D/A转换器等器件转换精度问题以及实验条件的限制等客观原因,影响了图像传感器非均匀性校正效果的进一步提高。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2522

    文章

    47984

    浏览量

    739692
  • 转换器
    +关注

    关注

    27

    文章

    8172

    浏览量

    141580
  • 可编程逻辑
    +关注

    关注

    7

    文章

    511

    浏览量

    43892
收藏 人收藏

    评论

    相关推荐

    FPGA零基础学习系列精选:半导体存储器和可编程逻辑器件简介

    决定了PLD内部的互连关系和逻辑功能,改变这些数据,也就改变了器件逻辑功能。 下面我们介绍两种常用的PLD器件:CPLD和FPGA; CPLD:
    发表于 03-28 17:41

    可编程逻辑器件的特征及优势科普

    可编程逻辑器件是一种集成电路,具有可编程功能的特性。它们可以根据用户的需求进行编程,从而实现不同的逻辑功能。
    的头像 发表于 02-26 18:24 622次阅读

    什么叫可编程逻辑器件 可编程逻辑器件有哪些特征和优势?

    可编程逻辑器件(Programmable Logic Device,PLD)是一类集成电路器件,可以根据用户的需求进行编程和配置,以实现特定的逻辑
    发表于 09-14 15:25 1371次阅读

    Lesson02:可编程逻辑器件基础 - 第12节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:32:01

    Lesson02:可编程逻辑器件基础 - 第11节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:31:10

    Lesson02:可编程逻辑器件基础 - 第10节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:30:19

    Lesson02:可编程逻辑器件基础 - 第9节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:29:28

    Lesson02:可编程逻辑器件基础 - 第8节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:28:37

    Lesson02:可编程逻辑器件基础 - 第7节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:26:55

    Lesson02:可编程逻辑器件基础 - 第6节 #硬声创作季

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:26:04

    Lesson02:可编程逻辑器件基础 - 第5节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:25:14

    Lesson02:可编程逻辑器件基础 - 第1节

    可编程逻辑可编程逻辑器件
    充八万
    发布于 :2023年08月20日 03:21:49

    可编程逻辑器件有哪几种 fpga和cpld的特点

    可编程逻辑阵列(Programmable Logic Array, PLA):PLA是最早的可编程逻辑器件之一,由与非门阵列和或门阵列组成,通过编程配置来实现特定的
    发表于 07-04 15:28 1468次阅读

    可编程逻辑器件测试

    可编程逻辑器件 (Programmable Loeie Device,PLD)是一种用户编程实现某种逻辑功能的逻辑
    发表于 06-06 15:37 430次阅读
    <b class='flag-5'>可编程逻辑器件</b>测试

    可编程逻辑器件测试方法

    可编程逻辑器件 (Programmable Loeie Device,PLD)是一种用户编程实现某种逻辑功能的逻辑
    的头像 发表于 06-06 15:35 743次阅读
    <b class='flag-5'>可编程逻辑器件</b>测试方法