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

    文章

    17140

    浏览量

    351049
  • 存储器
    +关注

    关注

    38

    文章

    7484

    浏览量

    163786
  • PIC
    PIC
    +关注

    关注

    8

    文章

    507

    浏览量

    87551
收藏 人收藏

    评论

    相关推荐

    EN8F1823E完全替代PIC16F883,PIC16F1883,PIC16F1936,PIC16F1937

    PIC
    捷尚微辉芒微MCU单片机
    发布于 :2024年07月30日 16:59:15

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

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

    【下载】《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

    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新款通用8PIC MCU,提供卓越的迁移

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

    Microchip推具智能模拟功能与核心独立外设的8PIC单片机系列

    Microchip Technology Inc.(美国微芯科技公司)在近日于美国加州圣荷西举行的EE Live!和嵌入式系统大会上宣布推出PIC16(L)F170X 和PIC16(L)F171X系列 8
    发表于 04-01 10:09 1185次阅读

    pic16单片机学习

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

    基于PIC16(L)F1574/5/8/9带高精度 16 PWM 的 14/20 引脚 MCU

    PIC16(L)F1574/5/8/9 单片机将 16 PWM 与模拟功能相结合,可适应各种应用的需求。这些器件提供了 4 个带独立定 时器的
    发表于 06-29 11:25 22次下载
    基于<b class='flag-5'>PIC16</b>(L)F1574/5/<b class='flag-5'>8</b>/9带高精度 <b class='flag-5'>16</b> <b class='flag-5'>位</b> PWM 的 14/20 引脚 <b class='flag-5'>MCU</b>

    关于8MCU PIC16F19197产品系列的特点介绍

    本视频介绍了Microchip首款针对广受欢迎的低功耗、电池供电且带触摸功能的LCD应用而优化的8MCU PIC16F19197产品系列,他可以帮助开发者轻松完成低功耗,
    的头像 发表于 07-10 11:06 5192次阅读

    PIC16/18系列开发入门

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

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

    8微控制器 -MCU PIC16F1503-I/SL 制造商: Microchip 产品种类: 8
    发表于 11-18 12:51 18次下载
    <b class='flag-5'>8</b><b class='flag-5'>位</b>微控制器 -<b class='flag-5'>MCU</b>  <b class='flag-5'>PIC16</b>F1503-I/SL

    PIC MCU和dsPIC DSC的B安全软件

    电子发烧友网站提供《PIC MCU和dsPIC DSC的B安全软件
    发表于 09-19 16:14 0次下载
    <b class='flag-5'>PIC</b> <b class='flag-5'>MCU</b>和dsPIC DSC的<b class='flag-5'>B</b><b class='flag-5'>类</b><b class='flag-5'>安全</b><b class='flag-5'>软件</b><b class='flag-5'>库</b>