PIC16

作者: Bill Hawkins、 Zhang Feng、 Xavier Bignalet(Microchip Technology Inc.)

简介

在许多熟悉的系统中,通常需要对消耗品组件进行身份验证。例如,打印机墨盒、车辆中的电池、化妆品盒和送药设备中的药物等。本文档探讨了在现有设计中包含Microchip的CryptoAuthentication™系列ATSHA204A安全元件以实现对消耗品进行安全身份验证的优势。请参见图1。

1.png

图1:安全身份验证的雾化器框图

在本示例中,我们将从Microchip的AN2265“Vibrating Mesh Nebulizer Reference Design”(DS00002265) 开始,其中介绍了振动式网孔雾化器及其如何使用Microchip独立于内核的外设实现。本文档介绍了如何更新雾化器参考设计以包含可拆卸振动网和药盒的安全身份验证来增强设计。

雾化器参考设计具有用于固定振动网(将随时间逐渐磨损)和供应药物(一种耗材供应)的可拆卸药盒。这种储存药物的可拆卸药盒会极大地影响设备的性能。

出于以下几个原因,制造商可能希望保护这些药盒应用不受第三方供应商的影响:

  • 客户对设备的质量和功能的印象在很大程度上受药盒内物质的影响。当更换的第三方药盒不满足制造商的标准,并且提供的性能低于客户的预期时,制造商而不是第三方药盒厂商会接收到投诉。

  • 尤其是在医疗行业中,允许不受控地访问设备可能会导致制造商因用药剂量错误、药物受到污染甚至是消耗品药盒中的药物出错而承担责任。

  • 另一个原因是为了保护收入来源。典型的业务模式包括消耗品销售将提供支撑公司主要收入来源的预期。如果第三方可以在同一个市场上销售,那么制造商的收入会降低,而这部分收入本应补偿基本单元和研发(Research and development,R&D)的成本。

本文档介绍了对雾化器进行的安全增强,包括对可拆卸 药盒进行身份验证和跟踪其使用情况,并且可能限制药 盒的使用以避免出现硬件磨损、未授权重填和重用旧药 盒等问题。 

引入ATSHA204A

雾化器的药盒中使用ATSHA204A芯片向基本单元对药盒进行身份验证。ATSHA204A具有用于使能身份验证的多种功能,例如SHA-256哈希算法、安全EEPROM、惟一序列号、高质量随机数发生器和I 2C接口或单线接口。

SHA-256加密引擎

ATSHA204A在硬件中集成了SHA-256哈希算法。该哈希函数使用输入流(质询)并产生256位(32字节)输出(响应)。哈希函数的两个主要特性如下:

• 无法从哈希输出重新生成输入流。

• 无法改变输入流并获得相同的哈希输出。

ATSHA204A将使用主机单片机提供的质询字符串生成哈希密钥。单片机还可以使用该质询字符串和密钥来执行哈希函数。如果哈希输出与主机单片机预期的输出一致,则证明ATSHA204A器件知道相同的密钥。

安全EEPROM/密钥存储

ATSHA204A具有512字节的EEPROM,按十六个32字节槽排列。其中任何一个槽都可以配置为要在哈希函数中使用的密钥值。当配置ATSHA204A时,槽中的值可以受到写保护、读保护、用其他槽作为密钥进行加密或者保留为可读/可写的EEPROM存储单元。提供物理防篡改和边信道保护,以防止有人解密和探测器件芯片来读取存储器。

惟一序列号

保证每个ATSHA204A都有惟一的72位(9字节)序列号,从而允许制造商通过连接的ATSHA204A惟一识别任何器件。

高质量随机数发生器

ATSHA204A具有基于噪声源的高质量随机数发生器。这可以用来生成将只使用一次的惟一质询,并防止攻击设备记录质询和响应以在主机上回放来冒充有效器件。

I2C/单线接口

ATSHA204A提供I2C接口或单线接口,允许药盒在接口中具有最少的触点。经过身份验证的雾化器使用单线接口,这种接口采用具有三个大型焊盘的芯片封装。ATSHA204A芯片采用可粘到药盒上的设计,主机只提供滑动触点来连接到药盒(就像电池连接器一样),这样药盒就无需电路板或配对连接器。

如何使用ATSHA204A进行身份验证?

安全雾化器演示是单芯片系统设计。PIC16F1718运行整个操作,包括使用ATSHA204A进行身份验证所需的质询/响应。请参见图2

2.png

图2:ATSHA204A身份验证框图

PIC16具有16个存储在存储器中的质询/响应对。每次使用器件时,都会对药盒进行身份验证。当用户按下按钮来启动雾化器时,PIC16主机会向药盒上的ATSHA204A发送32字节质询。然后,ATSHA204A使用密钥对质询进行哈希运算,并将值返回到PIC16。返回的值与预期的响应进行比较,如果匹配,则允许雾化器运行。如果不匹配,雾化器的红色LED指示灯会点亮几秒钟,然后再熄灭。雾化器通过使用自由运行定时器中的低4位从16个质询中进行选择,但具体数量无法预测。

由于PIC16存储有限数量的质询/响应对,这就意味着克隆器件只需处理几个用例即可破坏该系统的安全性。为了防止出现这种情况,可以为每个PIC16主机编程惟一的质询/响应对,这样一来,通过这种方式创建的克隆器件便无法在任何其他器件上工作。

身份验证方法可保护配件/一次性用品,但无法防止克隆主机(在新系统中复制质询/响应对)。要实现更高级别的安全性,需要在主机MCU旁边添加独立安全元件(ATSHA204A)。请参见图3。该主机ATSHA204A会为药盒ATSHA204A产生随机质询,并提供响应以与来自药盒ATSHA204A的响应进行比较。此外,密钥派生实现将进一步提高解决方案的稳健性。

3.png

图3:对称身份验证

作为ATSHA204A的替代产品,ATSHA206A是外形受限应用的理想解决方案,在此类应用中,由于药盒尺寸受限而无法容纳任何PCB,因此只能采用2引脚封装。2引脚ATSHA206A或3引脚ATSHA204A可以塑封到一次性药盒中。ATSHA206A的内部添加了集成电容,可在电源引脚上提供寄生电源能力。本质上,数据和电源共用同一个引脚。

限制药盒的使用

经过身份验证的雾化器保存每个药盒的使用计数。此数据可用于限制药盒的使用。有多种机制可实现此功能。ATSHA204A器件包含EEPROM和SRAM两个存储器块。EEPROM分为三个区域:数据区域、配置区域和 一次性编程(One-Time-Programmable,OTP)区域。

数据区域分为16个通用存储器槽。EEPROM数据区域中的任何槽都可用于存储密钥。

配置区域中有128位分配为LastKeyUse,可用于限制存储在Slot 15中的密钥编号15的使用。每次使用Slot15作为密钥时,这128位都会清零。没有复位机制。在 使用128次之后,将永久禁止Slot/Key 15。因此,每个药盒的使用计数可以限制为128次或更少。

此外,还有512位的OTP存储器可用于存储只读数据或单向熔丝型消耗记录信息。在消耗模式下配置时,这些位可以写入0,但不能写回1。因此,在OTP存储器为全零之前,可以将0移入OTP存储器512次。在OTP存 储器为全零之后,可以禁止使用药盒。

如果药盒的使用次数小于这些值(Slot 15为128次, OTP为512次),则可以将其中一些位预编程为零,以便根据需要提供所需的次数。

关于安全增强功能的深入探讨

存储在主机MCU、ATSHA204A或公司计算机系统中的机密信息密钥必须受到绝对保护。如果密钥泄露,则安全功能将不再起作用,产品也很容易遭到克隆。

Microchip的一些32位单片机具有稳健的安全性,能够提供可信执行环境(Trusted Execution Environment,TEE)、加密加速器、安全引导和安全自举程序等。例如,图4显示了一个SAM L11作为配件身份验证应用中 (其中SAM L11增加了稳健性)的主机MCU正在托管TEE,即从MCU到安全元件的CryptoAuthlib API调用。TEE将Cryptoauthlib API回调会离开的关键代码与系统的其余部分隔离,并避免固件更改。

4.png

图4:一次性药盒身份验证

存储在ATSHA204A中的一次性药盒的密钥不会遭到窥探。ATSHA204A只是Microchip提供的其中一种安全芯片。Microchip还提供其他使用公钥加密(用于网络身份验证)的芯片来防止单一密钥泄露。每个芯片都有自己的密钥,其真实性由证书确定,该证书提供了器件到根证书颁发机构的可追溯性。这些芯片的说明超出了本文档的范围,可通过Microchip网站上的安全设计中心查看更多信息,网址如下:https://www.microchip.com/design-centers/security-ics

附录A:警告、限制和免责声明

医疗参考设计和演示仅用作评估和开发目的。如果将Microchip器件用于生命维持和/或生命安全应用,一切风险由买方自负。买方同意在由此引发任何一切损害、索赔、诉讼或费用时,会维护和保障Microchip免于承担法律责任。

附录B:参考资料

 • AN2265,“Vibrating Mesh Nebulizer Reference Design”(DS00002265),Bill Hawkins和 Zhang Feng,Microchip Technology Inc.

- AN2265 位于 Microchip 产品页面,网址为https://www.microchip.com/en-us/solutions/medical/drug-delivery-devices/nebulizer

• ATSHA206A一次性药盒安全身份验证

- 请参见ATSHA206A产品页面,网址为https://www.microchip.com/en-us/product/ATSHA206A

来源:Microchip 工程师社区

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 155

可使用同一款单片机实现纯模拟控制的同步降压型电源和升压型电源,从而实现输出稳压。两种方案拥有一个共同的优点,即不占用任何处理器资源,这样内核就可以全力满足更为复杂的固件的需求。同时,模拟回路能够更快速地响应负载阶跃和输入电压变化,这对于不少应用而言是非常有用的。

本文讨论的单片机为 Microchip 旗下的 PIC16F753。无论是降压还是升压转换器其所需的外设集是相同的:互补输出发生器、比较器、运算放大器、9 位模数转换器、固定参考电压、斜率补偿模块,以及捕捉和比较 PWM 模块。上述外设应通过固件实现内部连接,以减少所需的外部引脚数。

电路图

降压转换器的输入电压范围为 8 至 16V DC,输出端为 5V DC、2A 和 10W。代码大小105 个字,RAM 容量 0 字节,可用代码大小 1943 字,可用 RAM 容量 128 字节。2A 条件下测定的效率为 94%。

如何以全模拟控制的降压和升压转换器实现输出稳压
图1:降压电源框图

图1所示的是一个同步降压电源框图。此处输出电压使用峰值电流模式控制进行稳 压,并使用误差运算放大器(OPA)来与参考电压进行比较。然后将结果输入到峰 值电流比较器中。内部斜率补偿模块会从误差放大器输出值中先减去一个软件可编 程斜率,再输入到峰值电流比较器。CCP捕捉和比较PWM模块提供一个具有固定频率 和固定占空比的控制信号,而峰值电流比较器输出会被选为互补输出生成器(COG) 下降沿的另一个(分级)源。

升压转换器有着相同的工作原理,图2所示即其原理框图。不过在参数规格上略有不同。具体来说,升压转换器的输入电压范围为3至5V DC,而输出端和RAM容量与降压转换器相同。代码大小99字,可用代码大小1949字。2A条件下测定的效率为87%。

如何以全模拟控制的降压和升压转换器实现输出稳压
图2:升压转换器框图

工作原理

配置完外设并将它们连接在一起后,控制环路会自动运 行,无需占用处理器时间。占空比超过50%时,峰值电流控制方案需要斜率补偿以 防止振荡。占空比较低时, 如果电流检测电阻较小,斜 率补偿还有助于稳定控制环路。PIC16F753具有一个内部斜率补偿模块,将误差放大器输出馈送至峰值电流 比较器之前,可利用此模块从该输出中减去一个可编程 的斜坡。

对于同步开关电源,晶体管控制信号需要一个较小的死区来避免产生直通电流。
COG可根据振荡器频率或模 拟延时链生成此信号。利用模拟延时链,用户可设置一个分辨率为5 ns的死区,该死区非常适合小晶体管。 针对此特定应用,将死区设置为30 ns。

对于降压拓扑,电感电流等于负载电流。为了能够使用下桥臂电流检测电阻来测量 峰值电感电流,需要进行一些修改。通常情况下,电流检测电阻得到的是峰值 电流控制方案无法使用的滤波输出电流。通过电流检测 电阻将输出电容接地后,ESR 会增大,但生成的波形与电感电流波形非常相近。这种方法的缺点在于效率略 低, 但上桥臂电流检测电阻通常需要附加电路(电流镜 或专用IC),而这会增加成本。

而在升压拓扑结构中,电感电流等于输入电流。电感峰值电流由放置在晶体管源极和地之间的电阻直接测量。

输入和输出

控制环路中没有集成输出电流限制功能,因此应使用第二个比较器并将其选作COG 的自动关断源。误差放大器输出即为电感峰值电流限值,因此通过电阻分压器使该值保持为较低值有助于避免浪涌电流问题和灾难性 的短路状态。但是,这种方法的缺点在于系统增益的降低以及对瞬态的响应变慢。OPA输出引脚与斜率补偿 模块输入引脚相同,因此这两个外设可以一起使用,无需任何其他外部连接。如果使用电阻分压器限制OPA输出电压,则必须将其从外部连接到FVR缓冲器输入引脚。

升压转换器的输入电压应通过小型二极管连接至单片机,并自举到输出端。这样, 当输出电压上升时,它就会为单片机和MOSFET驱动器供电。这实现了效率的提升, 因为更高的VGS将会改善RDS(ON),而低于4.5V的间隔对大多数功率晶体管而言都是一个问题。同时,这使得FVR成为唯一现有的稳定参考电压,而电路也需要做出一些改变以确保回路的参考电压永远不受电源或输出电压影响。由于控制回路的参考电压来自于DAC,因而这一外设也需要一个稳定的基准。1.2V的FVR被选作DAC参考电压,可满足上述所有要求。

从电源经过电感和整流二极管再到输出端,升压拓扑结构有一个明确的DC电流流通路径,即使是在开关晶体管阻断的情况下。限流回路只在开关频率变为零之前能起到防止过流的作用。而这之后如果没有额外的保护开关,就可能会出现灾难性的短路事件。因此,我们可以在输出端下桥臂放置一个额外的晶体管以便在短路发生时切断负荷。

就基于比较器的短路保护应用而言,必须在整个工作电压范围内都确保有稳定的参考电压。由于输出电流分流电压通常都太小而无法直接与1.2V FVR一起使用,因此我们需要将其经由外部发送,先通过FVR缓冲器,然后通过电阻分压器,以获取比较器所需的基准电压。由于FVR缓冲器采取了这一应用方式,则运算放大器输出必须与斜率补偿模块一起直接使用,而不应使用额外的分压器。这样不仅不占用处理器时间,还应用了更多的引脚和外设。而就基于ADC的短路保护应用而言,电流监测电阻的电压和FVR值在固件中读取。需要读取FVR电压才能计算VDD值(在低于5V 的条件下),在这种情况下即为ADC参考电压。虽然这不需要使用额外的比较器、I/O引脚或外部电阻,但是它却需要一些程序空间和处理器时间。

我们必须对转换器针对特定负载进行补偿,同时也必须在所有工作条件下验证其稳定性。

与使用专门的PWM控制芯片相比,性能是相似的,但是PIC单片机的使用提升了灵活性。此外,模拟控制回路可以独立运行,所以单片机内核可完全自由地运行用户的算法、测量各项电源参数或发送相关的信息。

应用

应用模拟控制回路的电源可以足够快地响应动态负载和输入电压的变化。对于诸如LED或热电电池等电流控制的负载而言,电压反馈可由平均电流反馈来替代。该电源还可用于需要对电压和电流进行控制的各种应用,例如CC和CV电池充电器等。PIC16F753 DAC具有9位分辨率,在降压转换器应用中可通过1/2输出分压器转换为20 mV的最小电压歩阶,在升压转换器应用中可通过1/5输出分压器转换为50 mV的最小电压歩阶。

该应用需要一个运算放大器、一个比较器和一个DAC。DAC输出端可由内部连接至运算放大器,因此这就节省了一个引脚。CCP模块会针对COG生成一个具有固定频率、固定占空比的信号。根据限制OPA输出的用户选项,电阻分压器需经由外部连接至FVR缓冲器输入端。如果不使用电阻分压器,那么就不需要使用两个引脚,一个就足够了。在这种情况下,与斜率补偿模块输入引脚为同一引脚的运算放大器输出引脚,即被配置为模拟引脚,并且不应被用于其它用途。我们可以将仅用作输入功能的数字引脚当作一个按键来使用或者用于其它类似用途。在运行期间,编程数据I/O引脚和其它两个引脚处于空闲状态,可用于用户特定的用途。

升压转换器替代设计

我们还可以使用PIC12F1501来创建数字控制升压电源。它在轻负载、硬件过压保护 方面效率较高,并且只需使用少量的元件即可。所需的外设包括两个10位ADC通道、一个FVR、比较器、数控振荡器和互补波形发生器。上述外设通过固件进行内部连 接,从而将所需的外部引脚数降低到了三个。该应用的框图如图3所示。

如何以全模拟控制的降压和升压转换器实现输出稳压
图3:数字控制升压电源框图

我们应用比例控制回路来调节输出电压和电流。使用两个ADC通道来读取输出值, 并对控制信号作相应的调整。数控振荡器使用频率可变的固定导通时间脉冲来进行占空比脉冲频率调制。

来源: eefocus

围观 489
订阅 RSS - PIC16