电子说
在电子设计领域,数据安全和可靠存储一直是至关重要的问题。Atmel的AT88SC1616C作为CryptoMemory家族的一员,为我们提供了一个高性能的安全存储解决方案。今天,我们就来深入了解一下这款芯片。
文件下载:AT88SC1616C-SH.pdf
AT88SC1616C拥有16-Kbit(2-Kbyte)的EEPROM用户内存,被划分为十六个128字节(1-Kbit)的区域,每个区域都具备可编程的访问权限。同时,它还有2-Kbit的配置区域,包含37字节的OTP区域用于用户定义代码,以及160字节的区域用于存储用户定义的密钥和密码。
| Pad | Description | ISO Module | TWI Module | Standard Package Pin |
|---|---|---|---|---|
| V CC | Supply Voltage | C1 | C1 | 8 |
| GND | Ground | C5 | C5 | 4 |
| SCL/CLK | Serial Clock Input | C3 | C3 | 6 |
| SDA/IO | Serial Data Input/Output | C7 | C7 | 5 |
| RST | Reset Input | C2 | NC | NC |
(VCC) 输入为2.7V至5.5V的正电压,由主机提供,为芯片的正常工作提供稳定的电源。
在异步 (T = 0) 协议中,SCL/CLK输入提供载波频率 (f),一位数据的标称长度定义为“基本时间单位”(ETU),等于372/ (f)。在同步协议中,SCL/CLK输入用于正边沿将数据时钟输入设备,负边沿将数据时钟输出设备。
AT88SC1616C提供符合ISO 7816 - 3的异步复位应答序列。当复位序列激活时,设备将输出编程到64位复位应答寄存器中的数据。RST输入垫上的内部上拉允许设备在不连接RST的情况下以同步模式使用,但该芯片不支持同步复位应答序列。
SDA引脚用于串行数据传输,为双向引脚,采用开漏驱动,可与其他开漏或集电极开路设备连接。需要在SDA和 (VCC) 之间连接外部上拉电阻,电阻值和SDA总线上的系统电容将决定SDA的上升时间,进而影响读取操作的最大频率。
| Operating temperature | −40°C to +85°C |
|---|---|
| Storage temperature | −65°C to + 150°C |
| Voltage on any pin with respect to ground | − 0.7 to (V_{CC}) +0.7V |
| Maximum operating voltage | 6.0V |
| DC output current | 5.0mA |
需要注意的是,超出这些绝对最大额定值可能会对设备造成永久性损坏,在设计时一定要严格遵守。
在推荐的工作范围内((V{CC}= +2.7) 至5.5V,(T{AC}= -40^{circ} C) 至 +85°C),芯片的各项直流参数都有明确的规定,如电源电压、电源电流、输入输出阈值等。例如,电源电流在不同的操作模式下(异步读取、异步写入、同步读取、同步写入)均为5mA,待机电流为100µA。
在推荐的工作范围内((V{CC}= +2.7) 至5.5V,(T{AC}= -40^{circ} C) 至 +85°C,(CL = 30 pF)),芯片的交流参数也有相应的要求,如异步时钟频率、同步时钟频率、时钟占空比、上升时间、下降时间等。例如,异步时钟频率在 (V{CC}) 为 +4.5 - 5.5V时为1 - 5MHz,在 (V{CC}) 为 +2.7 - 3.3V时为1 - 4MHz,同步时钟频率为0 - 1MHz。
EEPROM用户内存被划分为16个1024位的区域,不同区域可存储不同类型的数据或文件。只有满足安全要求后才能访问用户区域,这些安全要求由用户在设备个性化时在配置内存中定义。如果多个区域选择相同的安全要求,则这些区域可作为一个更大的区域进行访问。
对用户区域的访问通过内置的控制逻辑实现,该逻辑可通过访问寄存器、密钥寄存器和在设备个性化时编程到配置内存中的密钥进行配置。同时,控制逻辑中还实现了一个加密引擎,用于执行设备的各种高级安全功能。
配置内存由2048位的EEPROM组成,用于存储密码、密钥和代码,并定义每个用户区域的安全级别。对配置内存的访问权限由控制逻辑定义,用户无法更改。
AT88SC1616C支持两种不同的通信协议,具体使用哪种协议由上电序列决定。
适用于智能卡应用,符合ISO 7816 - 3的冷复位要求。上电时,(VCC) 升高,RST、I/O - SDA和CLK - SCL为低;将I/O - SDA设置为接收模式;向CLK - SCL提供时钟信号;400个时钟周期后RST升高。设备将响应一个64位的ATR代码,一旦选择异步模式,不关闭设备就无法切换到同步模式。
上电后,由于RST上的内部上拉,默认进入同步模式。对于使用标准塑料封装的嵌入式应用,这是唯一的通信协议。上电后,(VCC) 升高,RST也升高;(VCC) 稳定后,可驱动CLK - SCL和I/O - SDA。在发出第一个命令之前,必须发送五个时钟脉冲。
| 设备与主机之间的通信有三种基本模式: | Mode | Configuration Data | User Data | Passwords | Data Integrity Check |
|---|---|---|---|---|---|
| Standard | Clear | Clear | Clear | MDC | |
| Authentication | Clear | Clear | Encrypted | MAC | |
| Encryption | Clear | Encrypted | Encrypted | MAC |
标准模式是上电后的默认模式,认证模式在成功的认证序列后激活,加密模式在成功认证后成功激活加密时激活。
在写入周期中遇到电源故障时,可恢复设备存储数据的完整性。该功能可选,主机可根据应用需求选择是否激活。激活后,写入命令执行时间会变长,数据限制为8字节。数据先写入EEPROM的缓冲区,再写入目标地址,如果第二次写入中断,设备会在下次上电时自动从系统缓冲区恢复数据。在2线模式下,激活抗撕裂功能后,主机在写入命令后需要进行长达8mS的ACK轮询,上电时可能需要进行长达2mS的ACK轮询。
如果用户区域配置为写锁定模式,8字节页面的最低地址字节构成该页面字节的写访问字节。写锁定字节可通过将其最低有效位写为“0”来锁定,且写锁定模式激活后,写锁定字节只能编程,即写入“0”的位不能恢复为“1”。在写锁定配置下,一次只能写入一个字节。
密码可用于保护任何用户区域的读写访问。当提供有效密码时,该密码将被记忆并保持有效,直到电源关闭、提供新密码或RST激活。有八个密码集可用于保护用户区域,一次只有一个密码有效,写密码也提供读访问权限。
用户区域的访问可通过认证协议进行保护,可选择四个密钥之一与用户区域配合使用。认证成功后将被记忆并保持有效,直到芯片断电、初始化新认证或RST激活。如果新的认证请求未通过验证,卡片将失去之前的认证,需要重新进行认证。
AT88SC1616C实现了数据有效性检查功能,以校验和的形式存在。在标准模式下,校验和为修改检测码(MDC),主机可从设备读取MDC以验证数据传输的正确性。在认证和加密模式下,校验和变为消息认证码(MAC),提供双向数据完整性检查和数据来源认证功能。只有执行有效认证的主机/设备才能计算有效的MAC,在这些模式下必须使用MAC。如果设备计算的MAC与主机传输的MAC不同,命令将被放弃,模式也将重置,需要重新进行认证和/或加密激活。
在读写和验证密码命令期间,设备与主机之间交换的数据可进行加密,以确保数据的机密性。发行商可在配置内存中设置要求对用户区域进行加密,可选择四个密钥之一用于用户区域。在这种情况下,需要激活加密模式才能读写该区域的数据,且只能传输加密数据。即使不要求加密,主机也可在知道正确密钥的情况下选择激活加密。
启用此功能后,持有特定密码的用户可以完全访问所有八个密码集,包括更改密码的权限。
使用此功能保护的用户区域在任何时候都不允许写入访问,该区域必须在设备个性化期间、熔断安全熔丝之前进行写入。
受此功能保护的用户区域内的数据可以从“1”更改为“0”,但不能从“0”更改为“1”。
为了启用CryptoMemory的安全功能,必须首先对设备进行个性化设置,通过简单的读写命令对配置内存进行编程,设置多个寄存器并加载适当的密码和密钥。要访问配置内存,必须先成功提供安全代码,对于AT88SC1616C设备,安全代码为 $20 0C E0。在配置内存中写入并验证数据后,必须熔断安全熔丝以锁定设备中的信息。
| Atmel Ordering Code | Package | Voltage Range | Temperature Range |
|---|---|---|---|
| AT88SC1616C - MJ | M2 – J Module – ISO | 2.7V–5.5V | Commercial (0°C–70°C) |
| AT88SC1616C - MP | M2 – P Module - ISO | ||
| AT88SC1616C - MJTG | M2 – J Module – TWI | ||
| AT88SC1616C - MPTG | M2 – P Module - TWI | ||
| AT88SC1616C - PU | 8P3 | 2.7V–5.5V | Green compliant (exceeds RoHS) |
| AT88SC1616C - SH | 8S1 | Industrial (−40°C–85°C) | |
| AT88SC1616C - WI | 7 mil wafer | 2.7V–5.5V | Industrial (−40°C–85°C) |
不同的订购代码对应不同的封装类型,如M2 - J模块、M2 - P模块、8P3、8S1等,每种封装都有其特定的尺寸和规格。例如,MJ或MJTG订购代码对应的模块尺寸为M2,尺寸为12.6 x 11.4 [mm],Glob Top为圆形,直径8.5 [mm],厚度0.58 [mm],间距14.25mm。
Atmel AT88SC1616C是一款功能强大、安全性高的存储芯片,适用于智能卡和嵌入式应用。它提供了丰富的安全特性和灵活的配置选项,能够满足不同应用场景的需求。在设计过程中,我们需要根据具体的应用需求,合理选择通信协议、安全模式和配置参数,以确保数据的安全和可靠存储。同时,要注意芯片的电气特性和引脚说明,严格遵守绝对最大额定值,避免对设备造成损坏。大家在实际应用中有没有遇到过类似芯片的使用问题呢?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !