当前位置:首页 > 公众号精选 > 全栈芯片工程师
[导读]来源:公众号瓜大三哥,版权归瓜大三哥所有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    实验结果

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



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

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN

哥伦比卡尔达斯2023年9月22日 /美通社/ -- 近日,天合跟踪与中国电建签订拉美地区哥伦比亚泰普伊光伏电站跟踪支架供货协议,将为其提供108MW智能跟踪系统,其中包含开拓者1P智能跟踪支架、智能算法、以及智慧云平台...

关键字: 光伏电站 跟踪系统 控制器 BSP

2型炎症领域新突破 上海2023年9月22日 /美通社/ -- 赛诺菲今天宣布,达必妥®(度普利尤单抗注射液)获得中国国家药品监督管理局(NMPA)批准,用于治疗适合系统治疗的中度至重度结节性痒疹的成...

关键字: PRIME BSP REPORT SAR

欧莱雅中国旗下上海美次方投资有限公司达成首次开放式创新投资 法国克里希2023年9月22日 /美通社/ -- 欧莱雅集团宣布对中国创新型生物科技公司杉海创新进行少数股权投资,以建立长期合作伙伴关系,共同开发新...

关键字: AN BSP DEVELOPMENT FOR

赋能企业实现业务数据的可识别、可见、可协作和安全数据的可操作 北京2023年9月22日 /美通社/ -- 亚马逊云科技持续加速分析与安全服务创新,守护安全基座,助力企业进一步释放数据要素价值,实现创新增长。在数字经济时...

关键字: 亚马逊 BSP 生成式AI SECURITY

重庆2023年9月22日 /美通社/ -- 全球领先的高端半导体封装载板和印制电路板制造商奥特斯连续第八年受邀,出席重庆市市长国际经济顾问团于9月22日举行的第十七届年会。 奥特斯连续第八年受邀,出席重庆市市...

关键字: BSP 印制电路板 微型 微电子

科威特科威特城2023年9月21日 /美通社/ -- 秉承去年突破性科技、金融和数字银行创新峰会的势头,/MoneyTech将于11月12日重返科威特。  请在 aljaridasummits.com ...

关键字: MONEY TE BSP MIT
关闭