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

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

3天内不再提示

8位 PIC16 PIC® MCU B类安全软件库例程分析

电子设计 来源:eeweb 作者:微芯片 2021-06-21 18:01 次阅读

这篇技术文章讨论了 B 类安全软件库例程,用于检测单通道微控制器中是否发生故障。这些例程基于 IEC 60730 标准,能够支持 B 类认证过程。这些例程可以直接与最终用户的应用程序集成,以测试和验证控制器的关键功能,而不会影响最终用户的应用程序。本应用笔记还介绍了 B 类安全软件库中提供的应用程序编程接口 (API) 函数。可以在启动或运行时定期调用 B 类安全软件例程以测试以下组件:

  • CPU寄存器
  • CPU程序计数器
  • 不变的记忆
  • 可变内存

本应用笔记还概述了用于测试外部通信、定时、I/O 外设、模拟 I/O 和模拟多路复用器等组件的各种技术,这些技术不属于 B 类安全软件库的一部分。

IEC 60730 标准概述

IEC 60730 标准定义了确保家用电器中使用的受控设备安全运行的测试和诊断方法。IEC 60730 标准的附录 H 将软件分为以下几类:

  • A级
  • B级
  • C级

B 类安全软件库实施属于 B 类类别的重要测试和诊断方法。这些方法使用各种措施来检测和响应与软件相关的故障和错误。根据IEC 60730标准,属于B类功能的控件应具有以下结构之一:

带功能测试的单通道 在此结构中,功能测试在应用固件执行之前执行。

带定期自检的单通道 在此结构中,定期测试嵌入在固件中,并且在固件处于执行模式时定期进行自检。

双通道无比较 在此结构中,两个独立的方法执行指定的操作。

系统要求

推荐以下系统要求来运行 B 类安全软件库: 对于需要独立时隙监控的测试,系统硬件必须提供至少两个独立的时钟源(例如内部振荡器、晶振和线频) )。

B 类安全软件库

8 位 B 类安全软件库包括 API,旨在通过故障检测最大限度地提高应用程序的可靠性。这些 API 有助于满足 IEC 60730 标准合规性。可以使用此库实现以下测试:

  • CPU寄存器测试
  • 程序计数器测试
  • 不变内存(Flash/EEPROM)测试
  • 可变记忆测试
  • 时钟测试
  • 使用线路频率的时钟测试

在以下部分中,将讨论每个测试的测试描述和实现细节。此外,每个部分都列出了执行相应测试所需的 API。

CPU寄存器测试

CPU 寄存器测试执行 IEC 60730 标准定义的功能测试 H.2.16.5。它检测 CPU 寄存器中的固定故障。这确保寄存器中的位不会停留在值“0”或“1”。CPU 寄存器测试是一种无损测试。该测试执行以下主要任务:

CPU 寄存器和幽灵寄存器的测试方法是,首先将二进制序列(长度取决于体系结构)、010101……然后是 101010……依次写入寄存器,然后从这些寄存器中读取值进行验证。

如果返回值不匹配,测试将返回错误代码。

API 函数

该 API 函数实现了 CPU 寄存器测试:

CLASSB_CPURegistersTest()

程序计数器测试

程序计数器 (PC) 测试执行 IEC 60730 标准定义的功能测试 H.2.16.5。PC 保存下一条要执行的指令的地址。该测试执行以下主要任务:

  • PC 测试调用位于闪存中不同地址的函数。
  • 这些函数重置错误标志。
  • 在应用程序代码的许多地方都测试了错误标志。
  • 如果错误标志被清除,则 PC 分支到正确的位置。

API 函数

这个API函数实现了PC测试:

CLASSB_CPUPCTest()

不变内存(Flash/EEPROM)测试

不变存储器 (Flash/EEPROM) 测试实施由 IEC 60730 标准定义的定期修改校验和 H.2.19.3.1。它检测不变存储器中的单位故障。系统中的不变存储器,例如闪存和 EEPROM 存储器,包含在程序执行期间不打算更改的数据。闪存/EEPROM 不变存储器测试使用循环冗余校验 (CRC-16) 计算周期性校验和。用于计算 CRC-16 的 CRC 多项式如下所示。

CRC-16 = 1 1000 0000 0000 0101 = 8005(十六进制)

图 1 是不变内存测试的流程图。CRC 功能可用于测试存储在闪存或 EEPROM 存储器中的数据的完整性。这是通过计算并返回存储在函数调用中定义的位置中的数据的 CRC 值来完成的。以下流程图说明了如何在您的应用程序固件中使用这些功能。

pYYBAGDQYzCARx4xAAB7TlIHv-c573.png

不变记忆测试流程图

如果系统启动时 CRC_Flag 设置为 0x00,则计算参考 CRC 校验和。

参考校验和存储在闪存或 EEPROM 存储器中,CRC 标志设置为 0xFF。

如果 CRC 标志设置为 0xFF,则可以定期调用 CRC16 计算函数。

将步骤 3 计算的校验和与参考校验和进行比较。

如果两个值匹配,则用户应用程序可以设置状态位以指示不变存储器已通过测试并且未发现错误。

编辑:hfy

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

    关注

    146

    文章

    16012

    浏览量

    343566
  • 存储器
    +关注

    关注

    38

    文章

    7147

    浏览量

    161978
  • PIC
    PIC
    +关注

    关注

    8

    文章

    507

    浏览量

    86712
收藏 人收藏

    评论

    相关推荐

    求AD10中Microchip Microcontroller 8-Bit PIC16 2.IntLib文件?

    本帖最后由 sunboy25 于 2013-8-15 11:29 编辑 请问谁有AD10的Microchip Microcontroller 8-Bit PIC16 2.IntLib
    发表于 08-14 08:52

    [8单片机C语言编程:基于PIC16].Programmig.8-bit.PIC.Microcontrollers.in.C

    [8单片机C语言编程:基于PIC16].Programmig.8-bit.PIC.Microcontrollers.in.C是英文版写的,有需要的同学可以下载看看。
    发表于 10-26 16:32

    Microchip PIC16系列原理图库+封装(AD格式)

    Microchip PIC16系列原理图库+封装(AD格式)附件隐藏,回复可见[hide][/hide]PCB爱好者们的聚集地,期待你们的加入↓↓↓(此群仅用于技术交流与学习讨论,群内不定时资料分享)无法入群时,可添加管理员微信d***sy007(请备注:PCB群)
    发表于 11-01 08:26

    【下载】《8单片机C语言编程:基于PIC16

    语言中的配置 71.3 PIC16 MCU 外围设备 71.3.1 定时器 81.3.2 A/D转换器 91.3.3 比较器 101.3.4 并行从端口 101.3.5 中断 111.4 PIC16
    发表于 01-29 17:48

    帮助查找PIC16F1619的外设

    我刚开始用模拟信号。根据一些YouTube视频,我正在寻找关于8PIC的外围图书馆的文档。我使用的是好奇心板,它有PIC16F1619和XC8
    发表于 09-05 16:18

    PIC10/PIC12/PIC16/PIC18或基础服务

    12/PIC16/PIC18或基础服务。我不确定哪一个选择,我不知道它们之间的区别。我在寻找这个,但是没有明确的信息。我必须选择一个,为什么?谢谢您。 以上来自于百度翻译 以下为原文 Hi, I
    发表于 12-03 11:38

    微芯片8MCU ARPIC10、PIC12、PIC16PIC18是什么意思?

    微芯片8MCU ARPIC10、PIC12、PIC16PIC18。数字(10, 12,
    发表于 08-09 11:02

    具有4个16PWM的PIC16

    ,但是根据数据表它只有4个。我想要的是4 16独立PWMs1>=8PWM1 I2C1UART6,有人能推荐PIC16吗?同样,参数搜索是
    发表于 03-27 10:38

    MCU PIC16F1503-I/SL的相关资料分享

    8微控制器 -MCU PIC16F1503-I/SL制造商: Microchip 产品种类: 8
    发表于 11-26 07:25

    Microchip新款通用8位PIC MCU,提供卓越的迁移

    Microchip新款通用8位PIC MCU,提供卓越的迁移路径 近日,美国微芯科技公司(Microchip)宣布推出PIC16(L)F1826和PIC16(L)F1827 [
    发表于 12-18 08:37 738次阅读
    Microchip新款通用8位<b class='flag-5'>PIC</b> <b class='flag-5'>MCU</b>,提供卓越的迁移

    PIC16系列单片机C程序设计与PROTEUS仿真

    PIC16系列单片机C程序设计与PROTEUS仿真
    发表于 06-08 16:34 234次下载

    pic16位单片机学习

    pic16位单片机学习
    发表于 01-14 22:32 8次下载

    电源模块实现PIC16的四通道电源定序器应用设计

    电源模块实现PIC16的四通道电源定序器应用设计
    发表于 03-20 11:33 1次下载
    电源模块实现<b class='flag-5'>PIC16</b>的四通道电源定序器应用设计

    PIC16/18系列开发入门

    PIC16/18系列开发入门
    发表于 11-16 16:51 20次下载
    <b class='flag-5'>PIC16</b>/18系列开发入门

    8位微控制器 -MCU  PIC16F1503-I/SL

    8位微控制器 -MCU PIC16F1503-I/SL 制造商: Microchip 产品种类: 8位微控制器 -MCU RoHS: 详细信息 安装风格: SMD/SMT 封装 / 箱体: SOIC-14 系列:
    发表于 11-18 12:51 18次下载
    8位微控制器 -<b class='flag-5'>MCU</b>  <b class='flag-5'>PIC16</b>F1503-I/SL