杰发科技AC7801——支持的纠错功能

2024-05-07 17:36

本文主要是介绍杰发科技AC7801——支持的纠错功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 复位寄存器保留复位类型

低压检测复位(LVD Reset)

集成了一个低压保护系统,以便在电源电压发生变化期间保护存储器内容和控制 MCU 系统状态。该系统由上电复位(POR)电路和 LVD 电路组成,LVD 可以配置为不同的复位基准,可以是高电平(VLVDH) 或低电平(VLVDL)。

ECC 2 bit 错误复位(2 Bit Error Reset)

配置 RESET_CTRL[23]=1 将使能 ECC 2 BIT Error Reset。当 ECC 检测到 2 BIT 错误后,将发出系统复位请求以产生系统复位。

PLL 失锁复位(PLL Unlock Reset)

配置 RESET_CTRL[22]=1 将使能 PLL Unlock Reset。当 PLL 检测到失锁错误时,将发出系统复位请求以产生系统复位。

晶体振荡器(XOSC)监控器功能

配置 CKGEN_SRC_SEL[16]=1 使能 XOSC 监控系统。使能 XOSC 监控系统后,时钟检测器在 HSE振荡器启动延迟后启用,并在此振荡器停止时被禁用。如果在 HSE 振荡器时钟上检测到故障,则该振荡器会被自动禁用,同时 XOSC 失效状态标志置起并且生成 NMI 中断以通知 MCU 执行相应的救援操作。

2. CAN错误类型

BUS_OFF的处理

CAN_CTRL0 寄存器中的状态位 BUSOFF 用来标识“总线关闭”状态。如果 CAN 节点的发送错误计数器计数超过 255,则该节点自动进入“bus off”状态。然后,在再次进入主动错误激活状态之前,它不会参与进一步的通信。如果 CAN 节点通过模块(SRST_CAN0)复位或者接收到 128 组连续 11 个隐性位(恢复序列),则 CAN 节点返回到主动错误状态。

可编程错误警告限制

接收/发送期间的错误由 RECNT 和 TECNT 来计数。LIMIT 寄存器中的可编程错误警告限制 EWL 可由主控制器灵活配置以用于响应接收/发送错误事件。可以从 8 到 128 中以 8 个错误步进选择极限值:错误计数限制 = (EWL + 1) * 8.如果在以下条件下由 EIE 使能,则将设置中断 EIF:

  • 错误警告限制的边界已通过 RECENT 或 RECENT 在任一方向交叉
  • BUSOFF 位已经在某一方向上变化

仲裁失利捕获

控制器能够检测仲裁段中仲裁失利的确切位位置。如果 ALIF 中断被启用,则可以通过 ALIF 中断发出此事件。如果此节点能够赢得此仲裁,则 ALC 的值会保持不变。ALC 保持最后一次仲裁失利的值。ALC 的值定义如下:一帧以 SOF 位开始,发送 ID 的第 1 位。第一个 ID 位的 ALC 值为 0,第二个 ID
位的 ALC 值为 1,依此类推。仲裁仅允许在仲裁域中进行。因此,ALC 的最大值为 31,是扩展帧的RTR 位。

如果标准远程帧与扩展帧进行仲裁,则扩展帧会在 IDE 位失去仲裁,ALC 将为 12。发送标准远程帧的节点将不会注意到已经发生了的仲裁,因为该节点已经获胜。在仲裁域之外不可能获得仲裁失利,这样的事件为位错误。

错误类型的记录

CAN 控制器识别 CAN 总线上的错误,并将最后一个错误事件存储在 KOER 位中。如果使能 BEIF 中断,则可以通过 BEIF 中断发出 CAN 总线错误信号。每个新的错误事件都会覆盖之前存储的 KOER 值。因此,主控制器必须对错误事件做出快速反应。

  • 位错误(BIT ERROR)
  • 形式错误(FORM ERROR)
  • 填充错误(STUFF ERROR)
  • 应答错误(ACKNOWLEDGEMENT ERROR)
  • 校验错误(CRC ERROR)
  • 其他错误(OTHER ERROR)错误标志后收到显性电平,接收到主动错误标志太长,ACK 错误后的被动错误标志收到显性电平。

3. 使用ECC的SRAM纠错

ECC_SRAM 的全称是 SRAM Error Correcting Code,是用于 SRAM 的差错检测和修正。SRAM 出错的时候一般不会造成整个 SRAM 不能读取或是全部出错,而是整个 SRAM 中只有一个或几个 bits 出错。ECC_SRAM 采用汉明码 ECC 单 bit 纠错、两 bits 检测算法,计算速度很快,对 1 bit 以上的错误无法纠正,对 2 bits 以上的错误不保证能检测。

3. 使用看门狗

使用WDG计数,定时喂狗

4. 使用CRC做FLASH校验

http://t.csdnimg.cn/gz7Ov

5. 使用模拟EEP做一些错误的记录

烧录时候做处理

比如记录烧录日期、时间、次数

升级时候做处理

升级前标识、升级成功标识、第几次升级、升级日期

使用过程中记录错误信息

记录使用过程中的一些问题

这篇关于杰发科技AC7801——支持的纠错功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967934

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英