MIPI D-PHYv2.5笔记(19) -- Fault Detection

news2025/1/19 14:35:21

        声明:作者是做嵌入式软件开发的,并非专业的硬件设计人员,笔记内容根据自己的经验和对协议的理解输出,肯定存在有些理解和翻译不到位的地方,有疑问请参考原始规范看

        检测链路的故障有三种不同的机制。总线冲突(总线竞争,bus contention)和错误检测功能包含在D-PHY内部。这些功能可以检查出许多典型的故障。但是有部分问题无法在D-PHY内部被检测到,需要协议层的解决方案来实现。因此,第三种检测机制是一系列应用专属的看门狗定时器(watchdog timers)。

冲突检测(Contention Detection)

        如果一个双向Lane模块和一个单向模块组合到一起作为一条Lane使用的话,只有单向功能可用。由于在这种情况下,一侧的双向PHY模块不能被另一侧的功能受限的PHY所控制,因此双向模块的双向特性要能被安全地被禁用掉。否则会在某些情况下导致死锁的发生,只能通过系统掉电和重新初始化来解决。

        在正常工作期间,一条链路任意时间点有且只有一侧去驱动一条Lane(某些特定的转换周期除外)。由于错误或系统故障,一条Lane可能会停在一个非预期的状态里,Lane可能被两侧所驱动或者Lane完全没有被驱动起来。这种情况最终会导致状态冲突,被称为冲突(竞争,Contention)。

        所有带LP双向功能的Lane模块要包含冲突检测功能来检测如下冲突条件:

  •         相同信号线两侧的模块在相互驱动对立的LP电平。
  •         相同信号线两侧的一侧模块驱动LP-high但另一侧模块驱动HS-Low。

         第一种条件能够被LP-CD和LP-RX功能组合检测到。LP-RX功能要能够检测到第二种冲突条件。关于LP-CD和LP-RX电气规范的细节和冲突检测相关电压描述,规范的第9章有比较详细的描述。对于做嵌入式软件开发来说,个人并不太关注也不熟悉这些信息,为了避免误导,相关部分不会做笔记。想要了解这些细节的朋友们,请自行参考规范。

       在冲突被检测到之后,协议层要采取适当的措施解决问题。在ALP模式中不存在冲突检测机制。

Sequence Error检测

        不管什么原因导致Lane信号损坏,接收的PHY可以检测到signal sequence错误。在PHY内部检测到的错误可以通过PPI和协议层进行通信。这类错误检测是可选项,但规范强烈建议用它来增强可靠性。

SoT Error

        当deskew不支持时,Start of High-Speed Transimission的Leader sequence能够容忍任意的单bit错误和部分多bit错误。因此同步机制可能是可用的,但载荷数据的可信度会变低。如果发生了这种情况,会用SoT Error表示。

        当deskew支持时,Leader sequence里的bit错误无法被容忍。如果在Leader sequence中有错,那么载荷数据是不可靠的。

SoT Sync Error

        如果SoT Leader Sequence损坏,并且不能期望能够正确地同步,会用SoT Sync Error表示。

EoT Sync Error

        EoT Sync Error出现的情况是当一次传输的最后一个bit对不上一个字节的边界时。这个错误只能在检测到LP-11时EoT处理的情况中被发出。

Escape Mode Entry Command Error

        如果接收的Lane模块识别不了接收的Escaped Mode Entry Command,则这个错误被发出。

LP Transmission Sync Error

        在一次Low-Power传输过程结束时,如果数据没有同步到一个字节边界时,这个错误被发出。

False Control Error

        如果一个LP-Rqst(LP-10)后面没有跟着一个有效的Escape或Trunaround序列的余下部分,这个错误被发出。如果一个HS-Rqst(LP-01)后面没有正确地跟上一个Bridge State(LP-00),这个错误也会被发出。

        对于Fast Lane Turnaround过程,如果Fast-BTA Control Code没有跟着一个HS-Trail sequence,这个错误也会被发出。

Protocol Watchdog Timers (Informative)

        PHY不可能检测出所有错误情况。因此需要额外的协议层超时机制来限制特定模式和状态的最大持续时间。 

HS RX Timeout

        HS RX模式中,如果在特定的周期内没有接收到EoT,协议层会超时。

HS TX Timeout

        HS TX的最大传输长度。

Escape Mode Timeout

        在Escape Mode期间,设备可能会超时。这个超时时间应该大于另一个设备的Escape Mode Silence Limit。

Escape Mode Silence Timeout

        在Escape Mode期间,对于LP TX-00,设备有一个边界长度,超出这个边界后另一个设备会超时。举例来说,一个显示模块应该要有Escape Mode Silence Limit,在这之后host处理器能处理超时。

Turnaround Errors

Control Mode Lane Trunaround Errors

图1  Control Mode Lane Turnaround Procedure

        一次Turnaround过程总是从Stop State开始。这个过程的开始于Low Power States序列,序列以Bridge State(LP-00)结束,期间驱动侧方向发生交换。这个过程最终是由另一侧所驱动的包含了一个Turn State紧跟一个Stop State的响应所完成。如果实际的事件序列违反了正常的Control Mode Lane Trunaround过程,“False Control Error”可被通知到协议层。Turn Sate响应的作用是正确地完成了Control Mode Lane Trunaround过程的确认信号。如果在特定时间内没有观察到确认信号,协议层会超时并采取适当的动作。对于一个特定系统而言,这个周期要大于Turnaround最大可能的时间。在PHY里这种情况没有超时处理。

Fast Lane Trurnaround Errors

图2 Fast Lane Turnaround Procedure in ALP Mode

        一次Fast Lane Trunaround过程总是从ALP Stop State开始。这个过程起始于传输一个Control Brust,这个Burst由Fast-BTA Control Code紧跟一个在HS-Trail周期完成之后的ALP-00转换所组成,期间驱动侧方向发生交换。这个过程最终是由另一侧所驱动的响应所完成,这个响应通常会包含一个由远端控制器所发送的确认包。如果实际的事件序列违反了正常的Fast Lane Trunaround过程,“False Control Error”可被通知到协议层。Turn Sate响应的作用是正确地完成了Fast Lane Trunaround过程的确认信号。如果在特定时间内没有观察到确认信号,协议层会超时并采取适当的动作。对于一个特定系统而言,这个周期要大于Turnaround最大可能的时间。在PHY里这种情况没有超时处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10.1 二重积分的概念与性质

学习目标: 学习二重积分,我会采取以下几个步骤: 了解基本概念:首先我会学习二重积分的定义及其意义,了解二重积分的性质和特点,以及二重积分的计算方法。 理解二重积分的几何意义:我会通过画图…

Window10 源码编译UE4-27

Window10 源码编译UE4-27 文章目录 Window10 源码编译UE4-27一、查看官方软件软件环境配置([https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/DevelopmentSetup/VisualStudioSetup/](https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/…

编写高质量代码:改善Java程序的151个建议(数组和集合)

集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法有关系吗?有关系,在compareTo的返回为0时,它表示的是 进行比较的两个元素时相等…

SRv6项目实践(三):P4Runtime基础以及交换机控制

在正式介绍P4runtime基础之前,先说一说P4的编译和实现的过程 bmv2.json:p4文件经过编译器编译以后会生成bmv2.json文件,此文件以JSON格式定义BMv2 simple_switch目标的配置。当simple_switch接收到新的数据包时,它使用此配置以与…

24.Spring练习(spring、springMVC)

目录 一、Spring练习环境搭建。 (1)设置服务器启动的展示页面。 (2)创建工程步骤。 (3)applicationContext.xml配置文件。 (4)spring-mvc.xml配置文件。 (5&…

新建论文三线表模板,一键格式刷

论文三线表模板 写在最前面①表设计,新建表格样式②三线表上下线③三线表标题线④设置表格居中⑤设置表头格式容易出错的步骤 写在最前面 论文写完啦,准备调整格式 之前建模也是三线表,但只能基于该文档模板,所以重新设置一下。 …

linux speedtest-cli工具测试网络带宽、测试网速(下载速度、上传速度和延迟等信息)

speedtest-cli是一个命令行工具,用于测试网络的带宽。它可以在Linux、macOS和Windows等操作系统上运行。下面是使用speedtest-cli测试网络带宽的步骤: 安装speedtest-cli。在Linux系统上,可以使用以下命令安装: sudo apt-get in…

cookies 和 Session

并且注意 meta complete改为“false”,不然不支持Servlet注解 Session会话 会话:用户打开一个浏览器,点击了很多超链接,访问了 有状态会话:一个同学曾今来过教室,下次再来教室,我们会知道这个同学&#…

verdaccio搭建npm私服

1 安装依赖 npm install verdaccio -g开机自启 npm install pm2 -g2启动服务 pm2 start verdaccio 进入页面 http://localhost:4873/ 其他 修改 config.yaml 源为淘宝源 uplinks:npmjs:url: https://registry.npm.taobao.org/

【花雕学AI】真是太多了:汇总国内免费在线使用ChatGPT的完整镜像站列表大全(1000+)

一、ChatGPT为什么火爆? 它是一个可以和你聊天的人工智能程序,它可以用文字回答你的问题,也可以根据你的提示写出文章、歌词、代码等内容。ChatGPT是由一个叫OpenAI的机构开发的,它使用了一种叫做GPT的技术,这种技术可…

[Android+JetPack] (Java实现) Retrofit2+RxJava3+Paging3+RecyclerView 实现加载网络数据例子 记录

文章目录 前言参考链接依赖库及版本Demo效果接口及数据展示各项模块Retrofit2Bean,对应上面的接口返回.Service API部分 Paging3PagingSource以及 RxPagingSourcePagingDataAdapter 适配器ViewModelPublicInfoPage /Activity 最后 前言 继续安卓学习之旅,本章的主要目标是: 1.完…

2023年mathorcup杯A题代码小技巧总结

写篇杂文,不属于我的任何一个栏目,没啥案例含义,主要是记录一下mathorcup杯期间写的代码技巧。 mathorcup杯大部分都是组合优化问题,这让我擅长的机器学习都深度学习毫无作用....... 还好这个A题是可以遍历求所有解的&#xff0c…

SAP MDG —— 使用DIF导入物料主数据 Part4 开发篇

文章目录 通过CSV文件创建物料主数据的一些建议在DIF中使用CSV文件文件转换器类型BAdIBAdI 示例代码测试 DIF全篇总结 通过CSV文件创建物料主数据的一些建议 在Staging Area中创建/修改小批量的物料主数据,推荐使用标准文件上载功能(USMD_FILE_UPLOAD&am…

计算机基础--Redis

参考文献 https://zhuanlan.zhihu.com/p/599663544 基础知识 1. Redis的数据类型及使用场景 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表)&#xff…

使用assembly插件对boot项目打zip和war部署包

目录 一、maven-assembly-plugin插件的简单使用 1、什么是assembly? 2. 常见的maven插件 3、如何使用? 二、如何通过assembly打不同的包 三、boot项目如何转成war包部署 背景:之前项目上已经使用了assembly对多个boot项目分别打zip包且…

MATLAB应用笔记

其他 1、NaN值 MATLAB判断数据是否为NaN可以直接使用函数:isnan() 三、数据分析 1、相关性 均值、方差、协方差、标准差、相关系数 mean() %均值 nanmean()%去除NAN值求均值 var() %方差 cov() %协方差 std() %标准差 corrcoef(B,b) %R 相关系数plot()…

[ 云原生 | Docker ] 构建高可用性的 SQL Server:Docker 容器下的主从同步实现指南

文章目录 一、前言二、SQL Server 主从同步的原理介绍三、具体的搭建过程3.1 准备工作3.1.1 卸载旧版本(如果有,可选,非必须)3.1.2 安装 Docker3.1.3 验证本地 Docker 是否安装成功 3.2 创建 Docker 网络3.3 创建主从节点的 SQL S…

部署环境从docker swarm迁移到k8s后kie-server的发布方式变化(二)

正如后来的考虑, 如果外接maven私库照理说是ok的, 这样去掉volume的设计整个流程更加的自动化标准化. 开搞 第一步先部署一个nexus yaml文件如下: apiVersion: v1 kind: Namespace metadata:name: nexus---apiVersion: v1 kind: Service metadata:labels:k8s-app: nexusname…

【数据结构与算法】八大排序

[数据结构与算法]八大排序 数据结构与算法-八大排序排序的概念及其应用排序的概念排序的应用 常见的排序算法实现常见的排序算法插入排序直接插入排序希尔排序(缩小增量排序)希尔排序的时间复杂度希尔排序对插入排序的优化效果 选择排序直接选择排序堆排序向上调整建堆&#xf…

【C语言】从n个字符串中匹配查找abc字符串个数

目录 前言知识点重温1、scanf和scanf_s区别2、指针3、char、char*使用查找字符串收尾前言 这是小5聊的《C语言知识点例子》系列的第四篇文章。 在软件行业已经有快十年,技术虽然一般般,但是足够应付和解决编程入门的相关问题! 都说十年磨一剑,积累到一定经验,是时候发挥自…