当前位置:首页 > 公众号精选 > 全栈芯片工程师
[导读]来源:公众号瓜大三哥,版权归瓜大三哥所有1MIPI简介2MIPICSI-2简介2.1MIPICSI-2的层次结构2.2  CSI-2协议层2.3  打包/解包层2.4  LLP(LowLevelProtocol)层2.5  通道管理(LaneManagement)层2.6  物理...



来源:公众号瓜大三哥,版权归瓜大三哥所有


1 MIPI简介2 MIPI CSI-2简介2.1 MIPI CSI-2 的层次结构2.2    CSI-2协议层2.3    打包/解包层2.4    LLP(Low Level Protocol)层2.5    通道管理(Lane Management)层2.6    物理层(PHY Layer)3    MIPI CSI2的物理连接4    MIPI CSI2的工作模式5    MIPI CSI2的数据包格式5.1    MIPI CSI2的长包格式5.2    MIPI CSI2的短包格式6    基于FPGA的MIPI接口实现6.1    接口描述6.2    模块分析6.2.1    解串模块6.2.2    协议模块6.2.3    RAW 10bit生成模块6.3    实例应用6.3.1    硬件结构框图6.3.2    IIC配置6.3.3    实验结果7    参考链接


1 MIPI简介

MIPI Mobile Industry Processor Interface(移动行业处理器接口)的缩写。MIPI 联盟是一个开放的会员制组织。2003年7月,由美国德州仪器(TI)、意法半导体(ST)、英国 ARM 和芬兰诺基亚(Nokia)4 家公司共同成立。


MIPI 联盟旨在推进移动应用处理器接口的标准化。MIPI 联盟下面有不同的 WorkGroup ,分别定义了一系列的手机内部接口标准,比如摄像头接口 CSI 、显示接口 DSI 、射频接口 DigRF 、麦克风/喇叭接口 SLIMbus 等。而 MIPI CSI-2 (Camera) and MIPI DSI (Display)则是目前业界使用最广的两个 MIPI 接口标准,而这也是和视频传输相关的标准,所以本文主要对 CSI-2 摄像头标准进行介绍。


2 MIPI CSI-2简介

MIPI CSI(Camera Serial Interface)是由MIPI联盟下 Camera 工作组指定的接口标准。CSI-2 是 MIPI CSI 第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。


2.1 MIPI CSI-2 的层次结构

MIPI CSI-2的分层方法有好几种,根据MIPI联盟的规范,CSI-2 可分为5层,如图1所示,分别为:应用层、组包/解包层、底层协议层(Low Level Protocol)、通道管理层和物理层。


图1协议结构层次详细描述如下


名称 描述
应用层 即是处理原始图像数据的各种算法模块
组包/解包层 负责将数据按照一定的次序,切割成8比特数据。
底层协议层 为新生成的数据加上包头包尾,形成符合协议要求的数据流
通道管理层 将生成的数据流按照一定次序和要求,进行读写管理,输出数据流。
物理层 生成MIPI最后的信号波形。

2.2    CSI-2协议层

CSI-2 协议层允许多数据流(CSI-2TX)共用一个主机处理器端 CSI-2 接收信号接口(CSI-2RX)。协议层就可以描述有多少数据流被标记并组合在一起,指定了多数据流怎样被标记和交叉存取,因此每个数据流可以在 SOC 处理器 CSI-2 接收器中被正确的重建,才能把各个数据流正确地恢复出来。


2.3    打包/解包层

CSI-2支持多种像素格式图像应用,包括从6位到24位每个像素的数据格式。


在发送端,数据由本层被发送到LLP层(Low Level Protocol)前,本层将应用层传来的数据由像素打包成字节数据;


在接收端,执行相反过程,将LLP层发来的数据解包,由字节转成像素,然后才发送到应用层。8位每像素的数据在本层被传输时不会被改变。


2.4    LLP(Low Level Protocol)层

LLP层包括为串行数据在传输开始(SoT)到传输结束(EoT)之间传输事件和传输数据到下一层,建立位级和字节级同步的方法。LLP最小数据粒度是1字节。LLP层也包括,每字节中各位数值分布解释,即“端”(Endian)分布。


2.5    通道管理(Lane Management)层

为性能不断提升,CSI-2 是通道可扩展的。数据通道数目可以是1,2,3,4,这个依赖于应用中的带宽需求。接口发送端分配(“distributor”功能)输出数据流到一个或更多通道。在接收端,接口从通道收集字节并将之合并(“merger”功能)成为重新组合的数据流,恢复原始数据流序列。


2.6    物理层(PHY Layer)

定义了传输介质 (electrical conductors,导体),输入/输出电路信号的电气特性(electrical parameters)和时钟机制(时序)。即如何从串行位流(Bit Stream)中获取“0”和“1”信号。规范中的这一部分记录了传输介质的特性,并依据时钟和数据通道之间发信号和产生时钟的关系规定了电学参数。


3    MIPI CSI2的物理连接

除地线外,MIPI CSI2一般会有1对I2C通信引脚,1对MIPI差分时钟引脚和1~4对MIPI差分数据信号引脚,如图2所示。


图2信号描述如下


名称 描述
DATA1 /DATA1- MIPI协议组包生成的差分模拟数据信号第1组
DATA2 /DATA2- MIPI协议组包生成的差分模拟数据信号第2组
CLOCK /CLOCK- 协议组包生成的差分模拟时钟信号
SCL/SDA IIC控制通道
在典型的应用中发送端在完成对图像的各种处理后,按照协议对数据进行打包,然后通过差分信号线向接收端传输信号,差分信号线一般有一对时钟差分线和多对数据差分线,数据差分信号线的数量与需要传输的数据量的要求有关,数据量越大多对数据线能更容易满足链路的需求。一般情况下两百万到五百万像素的手机使用两对差分数据线,即两个数据通道。而当摄像头像素进一步提高到八百万甚至一千三百万时一般会使用四个数据通道,即四对差分数据线。


与外部进行控制信号交互时,采用的是I2C接口,在MIPI的发送端使用的是I2C从端的IP,MIPI CSI-2接口的控制寄存器连接I2C的从端,这样外部接收装置可以通过I2C去配置MIPI发送端的内部寄存器,以此改变MIPI CSI-2接口内部状态机的持续时间和最后输出数据时的通道数,又或者在调试过程中读出这些寄存器,去做相应的检查,以判断发送端的工作状态,再通过接收端的现象来分析发送端是否工作在正常的状态。


4    MIPI CSI2的工作模式

D-PHY有两种传输模式。


  • HS 高速传输模式,用于传输突发数据,同步传输,信号为差分信号,电平范围为100mv-300mv,传输速度范围是80-1000Mbps。在该模式下传输时,当差分线正端收到 1.2V 信号,负端收到 0V信号时,这时接收端识别为 1。反之为0。


  • LP 低功耗模式,用于传输控制指令,异步传输,信号线为单端,电平范围是0-1.2v,没有用时钟线,时钟是通过两个数据线异或而来的,速度只有10Mbps。在该模式下传输时,当正端接收到300m V,负端接收到100m V 时接收端识别为1,反之则识别为0。


5    MIPI CSI2的数据包格式

MIPI CSI2是一个面向字节的,基于包的协议;它支持任意大小的数据通过短包和长包格式传输。各个包之间由EOT-LPS-SOT序列隔开,如图所示。


LLP包有两种:长包和短包。每个包的传输以SoT(start of transmission)开始,EoT(end of transmission)结束,中间间隙是LPS(Low Power State低功耗状态)。


5.1    MIPI CSI2的长包格式

MIPI CSI2的长包主要有包头、数据包和包尾三部分构成。而包头又可细分为:数据标识(data identifier)、数据包大小(word count)和错误校验码(ECC)构成如下图所示。


其中,数据标识大小为1字节,包含虚拟数据通道号[7:6]和数据类型[5:0]。
数据包大小为2字节,其内容为传送数据的长度,以“字”为单位。
错误校验码大小为1字节,负责对数据包的传输错误进行检查及纠错。
数据包可以传送数据的大小为0~65535字节。
包尾大小为2字节,是数据负荷的检查和。


5.2    MIPI CSI2的短包格式

与长包相比,短包没有数据包和包尾。数据标识DI中的数据类型在0x00到0x0F之间。WC字段是短包的数据域,这个数据可由用户定义。ECC采用的是Hamming Code的方式,能对1bit错误进行纠错,2bit错误进行检查,如下图所示。


短包只是将长包中的WC的位置作为包的数据域,也就是说,短包每次最多只能发两个字节的数据。和长包一致,同样需要先发LSB,再发MSB。应当注意的是,短包一般是用来发送同步控制信号的,一般不建议使用短包来发送用户数据。
同步信号的类型如下:


而当Data Type为0x08到0x0F时,则为Generic Short Packet Code,即可发送用户自定义数据。


比如下面的例子,短包发帧同步信号,长包发数据。


6    基于FPGA的MIPI接口实现

6.1    接口描述

源码请看【资料获取


csi_4lane_raw10 #(
.series("7SERIES")
) inst (
.ref_clock_in(ref_clock_in),
.reset(reset),
.mipi_phy_if_clk_hs_n(mipi_phy_if_clk_hs_n),
.mipi_phy_if_clk_hs_p(mipi_phy_if_clk_hs_p),
.mipi_phy_if_clk_lp_n(mipi_phy_if_clk_lp_n),
.mipi_phy_if_clk_lp_p(mipi_phy_if_clk_lp_p),
.mipi_phy_if_data_hs_n(mipi_phy_if_data_hs_n),
.mipi_phy_if_data_hs_p(mipi_phy_if_data_hs_p),
.mipi_phy_if_data_lp_n(mipi_phy_if_data_lp_n),
.mipi_phy_if_data_lp_p(mipi_phy_if_data_lp_p),
.m_axis_video_aclk(m_axis_video_aclk),
.m_axis_video_aresetn(m_axis_video_aresetn),
.m_axis_video_tready(m_axis_video_tready),
.m_axis_video_tuser(m_axis_video_tuser),
.m_axis_video_tlast(m_axis_video_tlast),
.m_axis_video_tvalid(m_axis_video_tvalid),
.m_axis_video_tdata(m_axis_video_tdata)
);
端口描述如下:(输入为MIPI接口数据流,输出为axi stream数据流


端口 I/O 描述
ref_clock_in I 200M输入参考时钟
reset I 复位,高有效
mipi_phy_if_clk_hs_n mipi_phy_if_clk_hs_p I HS链路差分时钟
mipi_phy_if_clk_lp_n mipi_phy_if_clk_lp_p I LP链路差分时钟
mipi_phy_if_data_hs_n mipi_phy_if_data_hs_p I HS链路差分数据
mipi_phy_if_data_lp_n mipi_phy_if_data_lp_p I LP链路差分数据
m_axis_video_aclk I 视频输入时钟
m_axis_video_aresetn I 视频输入复位,低有效
m_axis_video_tready I 视频输入准备信号
m_axis_video_tuser O 视频输出的帧开始
m_axis_video_tlast O 视频输出行结尾
m_axis_video_tvalid O 视频输出数据有效
m_axis_video_tdata O 视频输出数据

6.2    模块分析

程序接口如下图,主要由三个模块组成:


  • 解串模块(csi_rx_4_lane_link)


  • 协议解析模块(csi_rx_packet_handler)


  • RAW10bit(csi_rx_10bit_unpack)生成模块


IP
IP层次
IP顶层模块
IP输出接口时序

6.2.1    解串模块

解串模块主要完成字节对齐和字对齐,程序结构框图如下图所示。


  • csi_rx_hs_clk_phy:


dphy_clk :输入查分时钟
reset : 输入复位
ddr_bit_clock : 输出单端时钟
ddr_bit_clock_b : 输出反向单端时钟
byte_clock : 输出字节时钟频率为输入频率的1/4
  • csi_rx_clock_det:检测外部时钟是否稳定:等待参考时钟稳定200个时钟周期,并且byte_clock时钟稳定3个时钟释放复位。


  • csi_rx_idelayctrl_gen:idelayctrl配合idelay使用


  • csi_rx_hs_lane_phy:抖动补偿和串化


通过控制延时,使得CLK和经过IBUFDS的BitClk对齐,从而消除IBUFIO和BUFR还有net的延时。这样所有的输入信号都只经过了一个IBUFDS,延时相等。对Idelay的控制,可以手动调节,也可以用自动算法。


  • csi_rx_byte_align:对齐某一字节,相当于找同步字


  • csi_rx_word_align:将不同通道之间的字节对齐到某一个字


6.2.2    协议模块

csi_rx_packet_handler,解析数据协议,根据协议解出vsync_out,Line_valid,里面包括长短包判断,ECC校验产生valid等。


6.2.3    RAW 10bit生成模块

csi_rx_10bit_unpack:解包为RAW 10bit,如果是8bit则不需要此模块


6.3    实例应用

本次实例是应用于xlinx 的xc7z035ffg676上,开发环境为vivado 2017.4。


6.3.1    硬件结构框图

硬件结构框图如下:主要包括MIPI接口的解码,外设IIC配置sensor,GPIO复位外部Sensor。


6.3.2    IIC配置

Main函数里面:先进性IIC初始化,GPIO初始化,进行复位,然后配置Sensor配置。


6.3.3    实验结果

可以看到成功解串出来数据。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭