0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RX系列自检程序简介

瑞萨MCU小百科 来源:瑞萨MCU小百科 2024-07-23 14:53 次阅读

随着自动电子控制系统扩展到许多不同的应用,其可靠性和安全性的要求成为系统设计中的重要因素。家用电器IEC60730安全标准的提出要求制造商设计确保产品安全可靠运行的自动电子控制装置。为此,瑞萨提供以IEC60730合规性为基础开发的示例软件,其也可以在任何系统中用作瑞萨MCU的自检测试。所提供的软件例程将在复位后和程序执行期间使用,用户可以灵活地将这些例程集成到整个系统的设计中。

自检程序主要包括以下这些测试内容:

1CPU测试

CPU测试以下寄存器:R0->R15、ISP、USP、INTB、PC、PSW、BPC、BPSW、FINTV、FPSW和ACC。

CPU测试分为多个函数,可单独执行;如若执行时间允许的话,可以使用单个函数依次运行所有测试。CPU测试按以下顺序执行:

1)测试通用寄存器R0到R15

有以下两种方式可以选择:

如果需要检测通用寄存器的耦合错误,则执行以下函数:

CPU_Test_GPRsCouplingPartA

CPU_Test_GPRsCouplingPartB

如果不需要检测通用寄存器的耦合错误,则执行以下函数:

CPU_Test_GeneralA

CPU_Test_GeneralB

2)测试控制寄存器ISP、USP、INTB、PSW、BPC、BPSW、FINTV和FPSW

执行以下函数:

CPU_Test_Control

3)测试ACC寄存器

执行以下函数:

CPU_Test_Accumulator

4)测试程序计数器(PC)寄存器

执行以下函数:

CPU_Test_PC

如果检测到错误,CPU测试将跳转到错误处理函数。

2RAM测试

March测试被公认为是测试RAM的有效方法。March测试由March元素的有限序列组成,而March元素是在继续到下一个单元之前应用于存储器阵列中的每个单元的有限操作序列。一般来说,算法包含的March元素越多,其故障覆盖率就越好,但代价是执行时间较慢。

1)March C

March C算法由6个元素组成,共10次操作。

I. 将全零写入数组

II.从最低地址开始,读0,写1,数组逐位递增

III. 从最低地址开始,读1,写0,数组逐位递增

IV. 从最高地址开始,读0,写1,数组逐位递减

V. 从最高地址开始,读1,写0,数组逐位递减

VI.从数组中读取全零

可检测到以下故障:

·固定故障SAF

某个单元或行的值被固定,SA0固定为0,SA1固定为1

·转换故障TF

某个单元或行无法从0变化为1或从1变化为0

·耦合故障CF

对一个单元的写操作会更改第二个单元的内容

·地址解码器故障AF

影响地址解码器的任何错误/对特定地址,不会访问任何单元/某个地址永远不会被访问/对特定地址,可以同时访问多个单元/某个单元可由多个地址访问

2)March X

March X算法由4个元素组成,共6次操作。

I. 将全零写入数组

II.从最低地址开始,读0,写1,数组逐位递增

III. 从最高地址开始,读1,写0,数组逐位递减

V. 从数组中读取全零

可检测到以下故障:

·固定故障SAF

·转换故障TF

·翻转耦合故障CF(对一个单元的写操作会翻转第二个单元的内容)

·地址解码器故障AF

3)March X (Word-Oriented Memory version)

March X (Word-Oriented Memory version) (WOM) 算法是根据March X算法分两步创建的。首先,标准March X从使用单个位数据模式转换为使用等于存储器访问宽度的数据模式。在此阶段,主要测试字间故障,包括地址解码器故障。第二阶段是添加另外两个March元素。第一个使用高/低位交替数据模式,第二个使用相反的数据模式。添加这些元素是为了检测字内耦合故障。

March X (WOM) 算法由6个元素组成,共10次操作。

I. 将全零写入数组

II.从最低地址开始,读0,写1,数组逐字递增

III. 从最高地址开始,读1,写0,数组逐字递减

IV. 从最低地址开始,读0,写h’AA,数组逐字递增

V. 从最高地址开始,读h’AA,写h’55,数组逐字递减

VI.从数组中读取所有h’55

由于算法的本身具有破坏性(它们不保留当前RAM值),但瑞萨所提供的测试函数提供了非破坏性选项,以便可以保留内存内容。这是通过在运行实际算法之前将内存复制到提供的缓冲区,然后在测试结束时再从缓冲区恢复内存来实现的。API包括一个用于自动测试缓冲区以及RAM测试区域的选项。而正在测试的RAM区域在测试期间是不能用于其他任何用途。这使得用于堆栈的RAM测试变得特别困难。为了解决这个问题,API包含了可用于测试堆栈的函数。

3ROM测试

ROM/Flash存储器测试使用CRC。CRC是一种故障/错误控制技术,生成单个字或者校验和来表示存储器的内容。

ROM测试可以通过为ROM内容生成CRC值并保存来实现。在内存自检期间,使用相同的CRC算法生成CRC值,并将其与保存的CRC值进行比较。该技术可识别一位错误和高比例的多位错误。

瑞萨电子工具链自动将CRC插入ROM,该值可以直接与计算值进行比较。例如,RX62T包含一个CRC模块,该模块支持CRC16-CCITT。使用该软件驱动CRC模块会生成以下16位CRC16-CCITT:

·多项式 = 0x1021(x16+ x12+ x5+ 1)

·宽度 = 16位

·初始值 = 0xFFFF

·对输出CRC执行与h’FFFF的异或

由于ROM测试是需要与参考CRC值进行比较,可以用瑞萨RX标准工具链来计算CRC值并在用户指定的位置将其添加到构建的mot文件中,其设置的方法如下图1所示。

e6570af8-48a8-11ef-b8af-92fbcf53809c.png

图1 添加参考CRC

4Watchdog测试

看门狗用来检测程序执行的异常。如果程序没有按预期运行,软件将不会按要求刷新看门狗,因此会检测到错误。如果看门狗超时,会产生内部复位。测试程序中提供一个在复位后使用的函数来确定看门狗是否导致了复位。

自检测试可以分成上电检测和周期检测。上电检测是重启后只运行一次的测试。周期测试是在正常程序执行过程中定期运行的测试。如何安排周期测试具体取决于客户的应用程序的结构。

以下是以RX62T为例加入自检程序的示例。上电检测的流程图如图2所示,上电后顺序检测CPU、RAM、ROM和IWDT。周期检测的流程图如图3所示,周期执行CPU检测、RAM缓冲区检测、剩余RAM区域测检测、堆栈Stack检测和CRC检测。如需进一步了解自检程序,可通过下方网址或二维码进入瑞萨官网下载例程。

IEC60730 Self Test Code for RX62T Group MCU - Sample Code(需注册/登陆瑞萨电子官网)

e69a6172-48a8-11ef-b8af-92fbcf53809c.png

图2上电检测流程图

e6b7dc20-48a8-11ef-b8af-92fbcf53809c.png

图3 周期检测流程图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16608

    浏览量

    347188
  • 控制系统
    +关注

    关注

    41

    文章

    6396

    浏览量

    110002
  • 瑞萨
    +关注

    关注

    33

    文章

    22270

    浏览量

    85451
  • 程序
    +关注

    关注

    114

    文章

    3716

    浏览量

    80290

原文标题:RX系列自检程序简介

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    瑞萨RX MCU功能安全解决方案简介(3)Self-Test自检软件包

    RX系列MCU自检软件包,包括诊断软件、安全手册、用户指南和IEC61508功能安全认证文档。 RX系列MCU诊断软件已通过功能安全标准认
    的头像 发表于 07-05 11:30 1381次阅读
    瑞萨<b class='flag-5'>RX</b> MCU功能安全解决方案<b class='flag-5'>简介</b>(3)Self-Test<b class='flag-5'>自检</b>软件包

    请问如何在程序中启用CPU自检

    本帖最后由 人间烟火123 于 2018-6-15 14:29 编辑 如何在程序中启用CPU自检,MeMOry自检,谢谢!
    发表于 06-15 07:57

    请问TMS320F28335如何做RAM区自检、CPU自检、溢出自检及CMD配置

    我正在使用DSP TMS320F28335 芯片,想请教您以下问题: 1、DSP需要做周期自检:RAM区自检、CPU自检、溢出自检,请问TI有没有相应的应用实例可以参考? 2、外部扩展
    发表于 10-23 10:11

    时钟模块RX-4803SA与时钟模块RX8803SA简介

    时钟模块RX-4803SA与时钟模块RX8803SA简介
    发表于 06-08 07:51

    rx8025t中文数据手册_英文资料_驱动程序下载

    本文为您提供RX8025T高精度实时时钟简介RX8025T规格书(英文)、RX8025T使用说明、RX8025T中文资料、驱动
    发表于 09-05 18:40 9412次阅读

    51单片机的IO口输出板子测试自检测试程序免费下载

    本文档的主要内容详细介绍的是51单片机的IO口输出板子测试自检测试程序免费下载。
    发表于 05-26 08:00 5次下载
    51单片机的IO口输出板子测试<b class='flag-5'>自检</b>测试<b class='flag-5'>程序</b>免费下载

    矢网的自检程序如何使用?避免尴尬帖

    大多数应用工程师对于矢网的操作主要还是参数的设置,但是对于像维修人员来说他们就会用到矢网自带的自检程序,其实这个程序操作起来也很方便,当某天发现矢网如果输出功率不准或是有异常报错的时候,可以先
    的头像 发表于 11-09 17:22 501次阅读

    非公版的RX 6800系列将正式解禁

    今天晚上22点整,非公版的RX 6800系列将正式解禁,届时我们也会带来蓝宝石RX 6800系列超白金的首发评测。
    的头像 发表于 11-26 09:08 1761次阅读

    RX 6700、RX 6600系列发售时间确定

    RX 6900、RX 6800系列虽然依然一卡难求,但是主流的RX 6700、RX 6600系列
    的头像 发表于 02-04 09:43 1.1w次阅读
    <b class='flag-5'>RX</b> 6700、<b class='flag-5'>RX</b> 6600<b class='flag-5'>系列</b>发售时间确定

    AMD推出三款全新Radeon RX 6000系列显卡

    AMD今日宣布AMD Radeon RX 6000系列产品线的最新成员:AMD Radeon RX 6950 XT- Radeon RX 6000
    的头像 发表于 05-11 17:11 2384次阅读

    RX产品家族介绍手册 [4] RX700/RX600、RX200、RX100系列

    RX700/RX600系列 RX700/RX600系列的特性
    的头像 发表于 02-20 15:05 1688次阅读

    CubeSuite 的 RX 系列开始

    CubeSuite 的 RX 系列开始
    发表于 04-26 19:34 0次下载
    CubeSuite 的 <b class='flag-5'>RX</b> <b class='flag-5'>系列</b>开始

    FXLS896xAF和FXLS897xCF的自检程序

    电子发烧友网站提供《FXLS896xAF和FXLS897xCF的自检程序.pdf》资料免费下载
    发表于 08-16 18:21 0次下载
    FXLS896xAF和FXLS897xCF的<b class='flag-5'>自检</b><b class='flag-5'>程序</b>

    RX系列RX Driver Package Ver.1.42的应用说明

    电子发烧友网站提供《RX系列RX Driver Package Ver.1.42的应用说明.pdf》资料免费下载
    发表于 01-30 15:13 0次下载
    <b class='flag-5'>RX</b><b class='flag-5'>系列</b>的<b class='flag-5'>RX</b> Driver Package Ver.1.42的应用说明

    RX系列RX驱动程序包第142版发布说明

    电子发烧友网站提供《RX系列RX驱动程序包第142版发布说明.pdf》资料免费下载
    发表于 02-19 10:39 0次下载
    <b class='flag-5'>RX</b><b class='flag-5'>系列</b><b class='flag-5'>RX</b>驱动<b class='flag-5'>程序</b>包第142版发布说明