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

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



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

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶

推进卓越制造,扩大产能并优化布局 苏州2025年9月5日 /美通社/ -- 耐世特汽车系统与苏州工业园区管委会正式签署备忘录,以设立耐世特亚太总部苏州智能制造项目。...

关键字: 智能制造 BSP 汽车系统 线控

慕尼黑和北京2025年9月4日 /美通社/ -- 宝马集团宣布,新世代首款量产车型BMW iX3将于9月5日全球首发,9月8日震撼亮相慕尼黑车展。中国专属版车型也将在年内与大家见面,2026年在国内投产。 宝马集团董事...

关键字: 宝马 慕尼黑 BSP 数字化

北京2025年9月4日 /美通社/ -- 在全球新一轮科技革命与产业变革的澎湃浪潮中,人工智能作为引领创新的核心驱动力,正以前所未有的深度与广度重塑各行业发展格局。体育领域深度融入科技变革浪潮,驶入数字化、智能化转型快车...

关键字: 人工智能 智能体 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企业在上海联合发起并成功举办"2025 Ethernet-APL 技术应用发展大会"。会议以"破界•融合...

关键字: ETHERNET 智能未来 BSP 工业通信

传感器模块能实现便捷无接触的后备箱或侧滑门开启,适配各种车辆架构 该24 GHz雷达传感器可集成于保险杠或底盘上,并通过特定的手势或脚部动作触发响应 已为多家欧洲主流车企启动量产交付 德国布尔2025...

关键字: 传感器 BSP 触发 保险杠

以高效节能方案绘制AI算力绿色未来 上海2025年8月29日 /美通社/ -- 8月28日,台达受邀出席"2025中国智算产业绿色科技大会",全方位分享台达在智算领域的前沿洞见与绿色解决方...

关键字: AI 可持续发展 数据中心 BSP

淄博2025年8月29日 /美通社/ -- 8月26日至27日,TÜV南德意志集团(以下简称"TÜV南德")受邀参加由淄博市...

关键字: BSP 人工智能 信息安全 新加坡

北京2025年8月28日 /美通社/ -- 近日,北京亦庄创新发布消息,北京经济技术开发区(简称北京经开区,又称北京亦庄)以"高效办成一件事"为抓手,围绕企业信用修复的全流程全环节,打造经开区特色的&...

关键字: 数字化 集成 BSP 数据共享

深圳2025年8月27日 /美通社/ -- 2025年8月27日,华测检测认证集团股份有限公司(简称CTI华测检测,股票代码300012)与北京戴纳实验科技股份有限公司(简称戴纳科技)在华测集团上海基地完成战略签约,双方...

关键字: TI AI BSP 智能化
关闭