应用笔记 5022

串行器与摄像芯片应用

By: Walter Chen

摘要 : Maxim的串行器可以连接并控制摄像头IC。本文介绍如何将摄像头的RGB或YUV输出转换成适合标准显示器的RGB数据。

引言

Maxim串行器可连接并控制摄像头IC,这类器件包括MAX9257 (带有半双工UART/I²C控制通道)、MAX9259MAX9263 (两款均带有全双工同步控制通道)。MAX9263还支持宽带数字内容保护(HDCP)。本应用笔记介绍如何将摄像头的RGB或YUV输出转换成标准显示器接受的RGB数据。

摄像头输出数据格式

摄像头芯片,例如OmniVision® OV10630,可通过串行器连接。OV10630的接口引脚包括:像素时钟、PCLK、行有效、HREF、帧同步、VSYNC和并行数据位D[9:0]。数据位在时钟的上升沿保持稳定。

YUV和原始RGB数据格式

CMOS摄像头传感器包括数百万光敏单元,每个单元可响应整个波长的光信号。利用滤光膜使特定传感器仅响应红光、绿光或蓝光信号。相邻的光敏单元通常以拜耳结构的滤色规律排列,绿色滤色片的数量是红色或蓝色滤色片数量的两倍。这种方式用于模拟人眼的感光特性。从左至右、从上至下读取传感器单元输出,原始的RGB数据序列为蓝、绿...蓝、绿 (首行末尾),绿、红...绿、红(第二行末尾),依次类推,如图1所示。
图1. 原始RGB数据排列
图1. 原始RGB数据排列
通过相邻单元内插生成与传感器单元密度相同的RGB数据。另外,利用相邻单元的颜色,按照特定的规则可以恢复图像。构成每个像素RGB数据组的规则之一是:使用同一行的相邻单元,再加上下一行(或上一行)的绿色相邻单元。内插后的RGB数据序列为...、红(i-1)、绿(i-1)、蓝(i-1)、红(i)、绿(i)、蓝(i)、红(i+1)、绿(i+1)、蓝(i+1)、...如图2所示。每个像素需要一组RGB数据,驱动彩色显示器并保持摄像头传感器的最高分辨率。内插RGB数据的亮度分辨率接近于传感器单元的分辨率,但色度分辨率较差。由于人眼对每个像素的灰度要比对像素的色彩分量更为敏感,所以感觉到的分辨率基本与传感器单元分辨率相同。
图2. RGB数据排列
图2. RGB数据排列
然而,这种RGB数据的内插算法使得数据速率增至三倍。为了降低数据速率,尤其是需要图像传输的场合,可采用YUV彩色空间(将模拟彩色电视信号压缩到模拟黑白电视的频带)。在下式中,亮度以Y表示,蓝色和亮度之间的色差以U表示,红色和亮度之间的色差以V表示,
式1.
式2.
式3.
式中,典型的色彩加权为:WR = 0.299,WB = 0.114,WG = 1 - WR - WB = 0.587,归一化值为UMAX,VMAX = 0.615。
对于采用拜耳滤色镜的摄像头传感器,相邻像素的U或V数据大致相同,取决于行索引i和像素索引j (如果采用的规则为相邻颜色)。利用本指南,可根据下式利用RGB数据直接生成YUV数据。
式4. 偶数行索引i和偶数像素索引j
式5. 偶数行索引i和偶数像素索引j
式6. 对于奇数行索引i和偶数像素索引j
式7. 对于奇数行索引i和偶数像素索引j
式8. 偶数行索引i和偶数像素索引j
式9. 偶数行索引i和偶数像素索引j
式10. 对于奇数行索引i和偶数像素索引j
式11. 对于奇数行索引i和偶数像素索引j
式12. 偶数行索引i和偶数像素索引j
式13. 偶数行索引i和偶数像素索引j
式14. 对于奇数行索引i和偶数像素索引j
式15. 对于奇数行索引i和偶数像素索引j
为了降低数据速率,利用偶数像素索引的U数据和奇数像素索引的V数据,以及偶数和奇数像素索引的Y数据。压缩后的YUV数据按照图3所示排列发送,即:Y1、U0和V1为像素1的数据;Y2、U2和V1为像素2的数据等。
图3. YUV422数据排列
图3. YUV422数据排列
422表示Y:U:V的采样比,4:x:x标准为早期彩色NTSC标准,按照4:1:1色度再次采样,所以,图像的色彩分辨率仅为亮度分辨率的四分之一。目前,只有处理非压缩信号的高端设备才会采用4:4:4彩色再采样,亮度和彩色信息的分辨率完全相同。

串行器输入格式

Maxim串行器的并行接口设计用于24位RGB数据,特别是MAX9259,具有像素时钟位(PCLK)和29个数据位,用于24位RGB以及行同步、场同步和3个控制位。除并行数据接口外,需要把DRS和BWS引脚设置成高电平或低电平,分别选择数据速率和总线宽度。

Maxim串行器/解串器

MAX9257和MAX9258串行器/解串器(SerDes)具有18位并行输入/输出,适用于YUV数据传输;MAX9259/MAX9260芯片组具有28位并行输入/输出,适用于RGB数据传输;MAX9263/MAX9264 SerDes具有28位并行输入/输出,增加了HDCP功能。此外,MAX9265和MAX9268 28位SerDes带有摄像链路,代替并行输入/输出接口。所有28位Maxim串行器和解串器具有相同的并/串数据映射,可互换使用。例如,MAX9259串行器可配合MAX9268解串器使用,传输RGB数据(借助于FPGA)。数据从CMOS摄像头通过串行链路发送至摄像链路接口的显示器。

串行器映射

为匹配MAX9268解串器摄像链路的输出接口,并行RGB数据应按照以下信号图映射。图4所示为MAX9268并行位与其摄像链路输出之间的映射,图5所示为相机链路的RGB数据映射。表1所示为MAX9259串行器的对应内容映射。
图4. MAX9268内部并行至输出映射
图4. MAX9268内部并行至输出映射
图5. 摄像链路内容映射
图5. 摄像链路内容映射
表1. MAX9259串行器RGB内容位映射
DIN0 DIN1 DIN2 DIN3 DIN4 DIN5 DIN6 DIN7 DIN8 DIN9
R0 R1 R2 R3 R4 R5 G0 G1 G2 G3
DIN10 DIN11 DIN12 DIN13 DIN14 DIN15 DIN16 DIN17 DIN18 DIN19
G4 G5 B0 B1 B2 B3 B4 B5 HREF VSYNC
DIN20 DIN21 DIN22 DIN23 DIN24 DIN25 DIN26 DIN27 DIN28  
  R6 R7 G6 G7 B6 B7      

色彩转换:YUV至RGB

FPGA芯片可将压缩(降低数据速率)后的摄像头数据YUV转换成RGB数据,用于MAX9259串行器。采用8位定点运算时,色彩空间转换的公式如下,式2和式3中,Dn和En的n为偶数。
Cn = Yn - 16
Dn = Dn + 1 = Un - 128
En = En + 1 = Vn + 1 - 128
Rn = clip((298 × Cn + 409 × En + 128) >> 8)
Gn = clip((298 × Cn - 100 × Dn - 208 × En + 128) >> 8)
Bn = clip((298 × Cn × 516 × Dn + 128) >> 8)
式中,>> 8表示“向右移8位”,clip表示“只取最低8位”。

FPGA方案

输入缓冲

输入缓冲电路包括计数器、三个寄存器和组合逻辑,将单字节时钟输入转换成三字节时钟输出,输出时钟速率为输入的一半。组合逻辑仅用于分别使能Y、U和V字节的对应寄存器。
图6. 输入缓冲电路
图6. 输入缓冲电路

时钟开关

FPGA输出像素时钟速率为摄像头像素时钟的一半,用于驱动串行器像素时钟输入。但是,摄像头在初始化之前不会输出像素时钟。解决方案是在FPGA内部采用2:1时钟复用器(mux)和时钟信号检测器,mux由时钟信号检测器控制。上电时,mux的默认时钟来自摄像头的时钟振荡器,使SerDes芯片组提供启动摄像头的控制通道。时钟信号检测器对场同步信号脉冲进行计数,经过几个场同步脉冲后,mux切换到摄像头像素时钟速率的一半。采用高清摄像头传感器时,例如OV10630,每个场同步周期包含100k以上的像素时钟。几个场同步周期足以使摄像头的锁相环(PLL)达到稳定。场同步计数比像素时钟计数的效率高得多,并可节省FPGA逻辑单元的资源。

中间缓冲

格式转换表达式中没有体现硬件电路的延迟。为了从YUV输入生成RGB数据,需要两到三次乘法运算和三到四次加法运算。尽管FPGA逻辑电路(门电路) 的延时只有几个纳秒,但载波传输、加法器、移位乘法器都会导致不同程度的延时,使整体延时增大。为了使延迟最小化,每个常数乘法器均由两个移位输入(代表常数的2个非零最高有效位MSB)的加法器近似。输入的YUV字节速率大约为100MHz时,延迟会跨越相邻像素的定时边界,增大图像噪声。在每个乘法器之后通过中间寄存器来消除扩展延时。
以上提及的YUV至RGB彩色转换已用于Actel® ProASIC3 A3PN125Z FPGA,图7所示为实现这一FPGA的原理图。
Figure 7. FPGA implementation of the YUV-to-RGB converter. Figure 7. FPGA implementation of the YUV-to-RGB converter.
清晰图像(PDF, 172kB) 清晰图像(PDF, 180kB)
图7. YUV至RGB转换器的FPGA实现

应用电路

厂家提供的摄像头芯片可能位于PCB子板,图8所示为摄像头子板模块的功能框图。输入包括电源、PWR和晶振时钟(XCLK)。输出信号包含并行数据位(D0..D9)、I²C总线(SDA、SCL)、视频同步(HREF、VSYNC)和像素时钟(PCLK)。
图8. 摄像头模块功能框图
图8. 摄像头模块功能框图
图9所示为应用电路的FPGA和串行器芯片的原理图。电路通过两对双绞线组成的串行电缆供电,一对用于传输串行信号,另一对用于供电。独立的LDO电源IC用于串行器和FPGA器件。摄像头模块采用旁路电容,自带LDO电源芯片,进一步降低潜在干扰。FPGA和串行器之间的数据链路采用阻尼电阻。
图9a. 应用电路的FPGA部分
清晰图像
(PDF, 1.6MB)
图9a. 应用电路的FPGA部分
图9b. 应用电路的串行器部分
清晰图像
(PDF, 533kB)
图9b. 应用电路的串行器部分
MAX9259也能够直接连接至摄像头传感器,例如OV10630,以构建更小的摄像头。彩色空间转换FPGA可置于解串器之后。由于这种应用需要摄像链路输出,可直接由MAX9268驱动,所以彩色转换FPGA置于摄像头传感器和串行器(MAX9259)之间。

视频采集示例

图10所示摄像头应用电路也是利用这些摄像头电路搭建的。
图10. 摄像头应用电路
图10. 摄像头应用电路

结论

本应用笔记介绍Maxim的摄像头解串器IC与FPGA配合工作的典型方案。提供应用原理图和FPGA代码,用于现有的参考设计。即将给出本应用笔记的升级版:RAW RGB至24位RGB FPGA转换器。
下一步
EE-Mail 订阅EE-Mail,接收关于您感兴趣的新文档的自动通知。
© , Maxim Integrated Products, Inc.
The content on this webpage is protected by copyright laws of the United States and of foreign countries. For requests to copy this content, contact us.
APP 5022:
应用笔记 5022,AN5022, AN 5022, APP5022, Appnote5022, Appnote 5022