当前位置: 首页 > news >正文

MIPI 底协议层

Low Level Protocol

LLP有两种数据包:长包(Long Packet)和短包(Short Packet)。

每个数据包开始,设备先从LP模式切换到HS模式,最后发送ST

如果结束时发现ET序列回到LP模式

Figure 3. Low Level Protocol

1.Long Packet长包

Figure 4. Long Packet Structure

从上图可以得知:

(1)一个Long PacketPHPacket Header)、Data PayloadPFPacket Footer组成;

(2)PH进一步由DIWCECC组成。

DI定义虚拟通道(Virtual Channel, VC)和数据类型(Date Type, DT)。

WCWord Count):字数计数。解析完PH后,接收端会读取Word Count x 8bit的数据。在读取数据时,不会检查同步码(Sync Code)。即内容可以任意值。

ECC8bit纠错码。用于检测和修正包头中的错误。能够纠正1-bit错误检测2-bit错误

PF包含16bit校验码,用于检查数据包是否正确传输。

Date TypeDT):0x10~0x37代表不同的数据格式,具体如下表所示:

上表中,前2行表示的短包数据类型,后面6行表示的是长包数据类型。

短包数据类型格式展开如下表所示:

1.1数据传输顺序

每个字节按照最低有效位(LSB)优先传输

多字节数据按照最低有效字节优先传输

1.2包解析流程

1)读取SoT,进行数据包解析;

2)解析Packet Header,获得DIWord CountECC;

3)根据Word Count,读取Data Payload;

4)读取Packet Footer并检查checksum是否正确;

5)解析完后,等待EoT。然后继续等待下一个SoT处理下一个数据包。

2.Short Packet短包

Short Packe仅包含PH包头,没有包尾,没有Data Payload。包头中的WC字段会被短包数据字段替换。包头依然包含了8bit ECC,可以纠正1bit错误,检测2bit错误,确保数据的正确性。

从下图可以发现短包信息量相比长包很小,但是很关键,短包的作用如下:

(1)帧同步数据(Frame Synchronization Data Type):代表帧号(Frame Number);

(2)行同步数据(Line Synchronization Data Type):代表行号(Line Number);

(3)通用短包数据(Generic Short Packet Data Type):用户自定义,可以存放任意内容。

Figure 5. Short Packet Structure

Data IDVCDT两部分组成,如下图所示。VC位于高2bitDT为低6bit

Figure 5. Data Identifier Byte

VC的作用是在同一个数据流中提供多个独立数据通道,支持不同的数据流交错传输。接收端会检测VC号,并将交错的视频流正确拆分到对应的通道。由于VC 2bit,所以最多支持4个独立数据流,即有效的虚拟通道编号为03

外设中的VC标识符应支持可编程配置,这样Host Processor就可以控制数据流的解复用方式。

Figure 6. Logical Channel Block Diagram

2.1 通用短包数据格式

传递额外的控制或者时间信息:

(1)控制相机快门的开启、关闭;

(2)触发闪光灯;

(3)其他特定应用需要的同步信号。

http://www.cnnetsun.cn/news/1617581.html

相关文章:

  • 零基础入门:手把手教你如何在快马平台配置并使用kimi apikey
  • 从NDVI到SAVI:遥感指数计算的演进逻辑与实战场景解析
  • 【GitLab操作】如何在gitlab中删除已上传的项目代码重新上传
  • 【Qt Modbus实战】QModbus主机功能开发与调试技巧全解析
  • 开放所有跨域 ----前端和后端
  • CefFlashBrowser:拯救Flash内容的专用浏览器解决方案
  • Redis命令处理机制源码探究
  • seo页面优化公司如何进行网站内容优化
  • Python 装饰器高级应用详解:从原理到实践
  • 像素皇城灵蛇贺岁:5分钟部署你的赛博春联生成器(保姆级教程)
  • 保姆级教学:Python3.9镜像快速上手,轻松管理AI框架依赖
  • Hunyuan-MT-7B应用指南:如何用网页工具快速翻译Neo4j Cypher查询语言
  • 果蔬大棚温湿度监测系统(有完整资料)
  • 性能调优:监控与优化DeOldify在GPU服务器上的推理吞吐量
  • Zookeeper集群搭建避坑指南:从FAILED TO START到成功启动的完整流程
  • 同样是 AI 写作,为什么你需要去 AI 味?
  • Pixel Aurora Engine效果对比:传统SDXL vs Pixel Aurora在像素质感上的差异
  • 本地语音合成全攻略:从环境搭建到离线工作流优化
  • 手把手教你部署AI人脸隐私卫士:基于MediaPipe的智能打码工具
  • Proteus 8实战:手把手教你搭建ATmega16流水灯仿真,并联动真实代码调试
  • HG-ha/MTools实操手册:图片处理——AI扩图/局部重绘/光影调整专业级操作
  • Qwen3.5-9B快速入门指南:3步启动Web界面,开启你的多模态AI体验
  • 霜儿-汉服-造相Z-Turbo入门必看:零基础调用汉服AI生成模型完整指南
  • 千问3.5-2B开源模型教程:小型VLM在边缘设备部署的可行性边界
  • 小白也能懂:PyTorch 2.8深度学习镜像快速部署与CUDA环境验证
  • 智能窗口置顶:让关键内容始终聚焦的Mac效率方案
  • 后端开发进阶:设计支持Graphormer模型的微服务治理架构
  • [Example][TC397以太网实战指南] - LwIP 配置宏解析与调试技巧
  • LabVIEW电子束三维成型系统
  • ZYNQ PS侧DDR3内存配置避坑指南:以ACZ702开发板为例,手把手教你搞定MT41K128M16