mipi协议:Low Level Protocol(1)

前言:

大家好,由于之前不是有讲解sensor底层驱动的内容不,但是对mipi传输数据是如何进行的,不太清楚,所以,今天这篇文章来开始翻译的官方mipi_CSI-2_specification_v2-1-2018版本内容来学习!今天的文章是从low level protocol层来讲解:

ff0ae61189e0e88e590c10bdabc4ee27.png

Low Level Protocol:

低级协议(LLP)是一个面向字节的、基于数据包的协议,它支持使用短数据包和长数据包格式传输任意数据。为了简化,本节中所有示例均为单通道配置,除非另有说明。

c435ab0f61d64a9c5be05e5c594a7c3b.png

低级协议的特点:

● 1、任意数据的传输(与有效载荷无关)

● 2、8位字长:计算机系统或特定硬件组件中,一次可以处理或传输的数据位数。在8位系统中,每个数据单元 (即“字”)由8个二进制位组成。

● 3、支持在同一D-PHY链路上最多十六个交错的虚拟通道,或在同一C-PHY链路上最多三十二个交错的虚拟通道。

● 4、用于帧开始、帧结束、行开始和行结束信息的特殊数据包。

● 5、用于应用程序特定有效载荷数据类型、像素深度和格式的描述符

● 6、用于错误检测的16位校验码

● 7、用于错误检测和纠正的6位纠错码(仅限D-PHY物理层)

ced67a711f249f1d23fb89e338661855.png

Packet Footer + Filler (if applicable): 数据包尾部 + 填充(如适用)

Low level protocol packet format:

如图51所示,为低级协议通信定义了两种数据包结构:

  • 长数据包和短数据包。

短数据包和长数据包的格式和长度取决于物理层的选择。对于每种数据包结构,从低功耗状态退出后跟传输开始(SoT)序列表示数据包的开始。传输结束(EoT)序列后跟低功耗状态表示数据包的结束。

low level protocol long packet format:

图52展示了D-PHY物理层选项的低级协议长数据包的结构。长数据包应由数据类型0x10至0x37标识。有关数据类型的描述,请参见表10。

D-PHY物理层选项的长数据包应由三个元素组成:

  • 1、一个32位的数据包头部(PH)

  • 2、具有可变数量的8位数据字的应用程序特定数据有效载荷

  • 3、以及一个16位的数据包尾部(PF)。

数据包头部进一步由四个元素组成:

  • 1、一个8位的数据标识符

  • 2、一个16位的字数字段

  • 3、一个2位的虚拟通道扩展字段

  • 4、以及一个6位的纠错码(ECC)。

数据包尾部有一个元素,即一个16位的校验和(CRC)。有关数据包元素的进一步描述,请参见第9.2节至第9.5节。

11ab6f8e4dc4d8872a9cc022ce210f03.png

● 8-bit DATA IDENTIFIER (DI):  包含2位的虚拟通道(VC)和6位的数据类型(DT)信息。VC(位7:6)是D-PHY物理层选项的4位虚拟通道标识符中最低的两位。DT(位5:0)表示应用程序特定有效载荷数据的格式/内容。由应用程序特定层使用。

● 16-bit WORD COUNT (WC):  接收器独立地读取下一个WC数据字,不论它们的值如何。接收器不寻找有效载荷数据中的任何嵌入同步序列。接收器使用WC值来确定数据包有效载荷的结束。

● 6-bit Error Correction Code (ECC) + 2-bit Virtual Channel Extension (VCX): 纠错码(ECC,位5:0)能够使数据包头部中的1位错误得到纠正,2位错误得到检测。虚拟通道扩展(VCX,位7:6)是D-PHY物理层选项的4位虚拟通道标识符中最显著的两位。

图53展示了C-PHY物理层选项的长数据包结构;它应由四个元素组成:一个数据包头部(PH)、具有可变数量的8位数据字的应用程序特定数据有效载荷、一个16位的数据包尾部(PF),以及零个或多个填充字节(FILLER)。数据包头部的长度为6N x 16位,其中N是C-PHY物理层通道的数量。如图53所示,数据包头部由两个相同的6N字节的一半组成,每一半由以下字段的N个顺序副本组成:一个包含五个保留位的16位字段,一个3位虚拟通道扩展(VCX)字段,以及8位数据标识符(DI);16位的数据包数据字数(WC);以及一个16位的数据包头部校验和(PH-CRC),该校验和是根据前四个字节计算得出的。每个保留位的值应为零。数据包尾部由一个16位校验和(CRC)组成,该校验和是根据数据包数据使用与D-PHY物理层选项中的数据包头部CRC和数据包尾部相同的CRC多项式计算得出的。如果需要,在数据包尾部之后插入数据包填充字节,以确保数据包尾部位于16位字边界上,并且每个C-PHY物理层通道传输相同数量的16位字(即字节对):

db2e2dc8eff064762b5281727e0e1329.png

● 5-bit Reserved Field (RES) + 3-bit Virtual Channel Extension (VCX) field: RES(位7:3)设置为零,并保留供将来使用。VCX(位2:0)是C-PHY物理层选项的5位虚拟通道标识符中最显著的三位。

● 8-bit DATA IDENTIFIER (DI):  包含2位的虚拟通道(VC)和6位的数据类型(DT)信息。VC(位7:6)是C-PHY物理层选项的5位虚拟通道标识符中最不显著的两位。DT(位5:0)表示应用程序特定有效载荷数据的格式/内容。由应用程序特定层使用。

● 16-bit WORD COUNT (WC): 接收器在数据包头部之后读取下一个WC个8位数据字。接收器使用WC的值来确定数据包有效载荷的结束。

● 16-bit Cyclic Redundancy Check Code (PH-CRC):  用于数据包头部的16位CRC码;计算基于保留位、数据标识符和字数字段(4个字节)。能够检测多位错误。

● CSI-2 “Insert Sync Word” PPI Command (PPI: PHY Protocol Interface): 物理层在这一点上同时在所有N条通道上插入同步字,这是执行CSI-2 PPI命令的结果。

● 16-Bit Packet Data CRC:  基于WC数据包数据字计算得出。

如图54所示,图53中描绘的数据包头部结构有效地导致C-PHY通道分配器向每个N通道广播相同的六个16位字。此外,每个通道的六个字被分成两个相同的三字组,它们由C-PHY同步字强制分隔,如[MIPI02]中所述。同步字是由C-PHY物理层响应CSI-2协议传输器PPI命令而插入的。

20c25380cf8172ffbc262ee1d3296756.png

对于两种物理层选项,8位数据标识符字段定义了2位虚拟通道(VC)和应用程序特定有效载荷数据的数据类型。虚拟通道扩展(VCX)字段对两种选项都是通用的,但对于D-PHY是2位字段,对于C-PHY是3位字段。VC和VCX字段共同组成了4位或5位虚拟通道标识符字段,该字段决定了与数据包关联的虚拟通道号码(见第9.3节)。

对于两种物理层选项,16位字数(WC)字段定义了从数据包头部结束到数据包尾部开始之间的数据有效载荷中的8位数据字的数量。字数不应包括数据包头部、数据包尾部或数据包填充字节。

对于D-PHY物理层选项,6位纠错码(ECC)允许在数据包头部中纠正单比特错误并检测双比特错误。这包括数据标识符、字数和虚拟通道扩展字段的值。

ECC字段在C-PHY物理层选项中不使用,因为在C-PHY物理链路上的一个符号错误可能导致接收到的CSI-2数据包头部中出现多个比特错误,这使得ECC失效。相反,C-PHY物理层选项的CSI-2协议传输器计算了覆盖保留位、虚拟通道扩展、数据标识符和字数数据包头部字段的四个字节的16位CRC,然后传输所有这些字段的多个副本,包括CRC,以便在出现一个或多个C-PHY物理链路错误时,CSI-2协议接收器能够恢复它们。C-PHY物理层(如图54所示)插入到数据包头部的多个同步字也通过使C-PHY接收器能够从丢失的符号时钟中恢复,促进了数据包头部数据的恢复;有关C-PHY同步字和符号时钟恢复的更多信息,请参见[MIPI02]。

对于两种物理层选项,CSI-2接收器在数据包头部之后读取数据有效载荷的下一个WC个8位数据字。在读取数据有效载荷时,接收器不寻找任何嵌入的同步码。因此,8位有效载荷数据字的值没有任何限制。在一般情况下,数据有效载荷的长度始终是8位数据字的倍数。此外,每种数据类型可能会对数据有效载荷的长度施加额外的限制,例如要求是四个字节的倍数。

对于两种物理层选项,一旦CSI-2接收器读取了数据有效载荷,它接着读取数据包尾部中的16位校验和(CRC),并将其与自己计算的校验和进行比较,以确定是否发生了数据有效载荷错误。

填充字节仅由CSI-2发射器的低级协议层与C-PHY物理层选项联合插入。任何填充字节的值应为零。如果数据包数据字数(WC)是奇数(即最低位是“1”),CSI-2发射器应在数据包尾部之后插入一个数据包填充字节,以确保数据包尾部结束在16位字边界上。如果需要,CSI-2发射器还应插入额外的填充字节,以确保每个C-PHY通道传输相同数量的16位字。后一规则要求填充字节的总数FC大于或等于(WC mod 2) + {{N - (([WC + 2 + (WC mod 2)] / 2) mod N)} mod N} * 2,其中N是通道的数量。注意,FC可能为零。

图55展示了在三个C-PHY通道上传输不同长度数据包所需的最小填充字节数量的通道分布。每个数据包所需的填充字节总数从0到5不等,这取决于数据包数据字数(WC)的值。一般情况下,对于一个N通道的C-PHY系统,每个数据包所需的最小填充字节数量范围从0到2N-1。

对于D-PHY物理层选项,CSI-2通道分配器功能应将每个字节传递给物理层,然后物理层以最低有效位优先的方式串行传输它。对于C-PHY物理层选项,通道分配器功能应将从低级协议接收到的每对连续字节2n和2n+1(对于n ≥ 0)组合成一个16位字(其中最低有效字节是字节2n),然后将这个字传递给物理层通道模块。

C-PHY通道模块将每个16位字映射成一个7符号字,然后以最低有效符号优先的方式串行传输。对于两种物理层选项,有效载荷数据可以以任何字节顺序呈现给通道分配器功能,只受数据格式要求的限制。

多字节协议元素如字数、校验和以及短数据包的16位数据字段应以最低有效字节优先的方式呈现给通道分配器功能。传输结束(EoT)序列之后,接收器开始寻找下一个传输开始(SoT)序列。

6b182a62afce7c8bc36bc9704b863d7e.png 120d27e0990121abf11aa371437d07ab.png 8c948295ddad9d08e23e22c46f67c699.png

low level protocol short packet format :

图56和图57分别展示了D-PHY和C-PHY物理层选项的低级协议短数据包结构。对于每种选项,短数据包结构与相应的低级协议长数据包结构的包头部匹配,唯一的区别是包头部的字数(WC)字段应被短数据包数据字段替换。短数据包应由数据类型0x00至0x0F标识。有关数据类型的描述,请参见表10。短数据包应仅包含一个包头部;不应存在包尾部或填充字节。

10692cab7c1db09d4b6869fb2461586d.png

939e32bfc7f2049c510b776c9d917579.png对于帧同步数据类型,短数据包数据字段应为帧号。对于行同步数据类型,短数据包数据字段应为行号。有关帧和行同步数据类型的描述,请参见表13。

对于通用短数据包数据类型,短数据包数据字段的内容应由用户定义。

对于D-PHY物理层选项,纠错码(ECC)字段允许在短数据包中纠正单比特错误并检测双比特错误。对于C-PHY物理层选项,16位校验和(CRC)允许检测短数据包中的一个或多个比特错误,但不支持错误纠正;后者通过传输各个短数据包字段的多个副本以及在所有通道上插入C-PHY同步字来实现。

data indentifier(DI):

数据标识符字节包含虚拟通道(VC)和数据类型(DT)字段,如图58所示。虚拟通道字段包含在数据标识符字节的两个最高有效位(MS bits)中。数据类型字段包含在数据标识符字节的六个最低有效位(LS bits)中。

84e1c3da4a904728d0b977d66d233396.png

virtual channel identfier :

4位或5位虚拟通道标识符的目的是为了提供一种方法,用于指定在数据流中交错的不同数据流的独立逻辑通道。如图59所示,虚拟通道标识符的最低两位应从2位的VC字段复制,而最高两位或三位应从VCX字段复制。VCX字段分别位于图52和图53中所示的包头部,对应D-PHY和C-PHY物理层选项。接收器应从传入的包头部提取虚拟通道标识符,并将交错的视频数据流分离到它们适当的通道。分别支持最多N个数据流,其中N对于D-PHY或C-PHY物理层选项分别是16或32;有效的通道标识符是0到N-1。外围设备中的虚拟通道标识符应该是可编程的,以便主机处理器控制数据流是如何被分离的。

接收符合旧版CSI-2规范的外围设备数据包的主机处理器,如果这些规范不支持VCX字段,应将所有此类数据包中接收到的VCX值视为零。同样,符合本CSI-2规范版本的外围设备在向符合旧版且不支持VCX字段的主机处理器传输数据包时,应将VCX字段设置为零。主机处理器和外围设备满足这些要求的方式不在本规范范围内。

36ef9a839ae2ee92bdf273698c7c07b9.png 35e46fdbe8383575a918c59467fa1bca.png

data type(DT):

数据类型值指定了有效载荷数据的格式和内容。最多支持六十四种数据类型。如表10所示,有八种不同的数据类型类别。在每个类别中,最多有八种不同的数据类型定义。前两类表示短数据包数据类型。其余六类表示长数据包数据类型。有关短数据包数据类型类别的详细信息,请参阅第9.8节。有关五种长数据包数据类型类别的详细信息,请参阅第11节。

e3b1f595465d0d01dee5764a8546f7c9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值