加密芯片ATSHA204A单总线(Single-Wire Interface, SWI)协议
本帖最后由 Libby@ 于 2024-7-12 12:19 编辑#技术资源#
虽然官网提供了 ATSHA204A 的完整文档,但要快速获取有用信息,仍需花费一些时间。最近用逻辑分析仪观察了 ATSHA204A 的单总线协议和通信信号,以 ATSHA204A 为例,详细介绍其唤醒、读取和发送命令的过程。
单线接口(SWI)通信采用系统微处理器上的单个GPIO引脚连接到设备的SDA引脚。这种方法可以将连接器的引脚数量降至最少,特别适用于可移动或可替换的设备。其比特率最高可达25.6 kbps,与标准UART信号兼容。在ATSHA204A器件中,数据在总线上以LSb形式传输。下图显示了0x7F对应逻辑1,0x7D对应逻辑0。
在本实验中,主机 UART 端口设置为 7 位数据字和 230.4 kbps 数据速率。硬件上 TX 和 RX 短接并连接 SDA。
所需工具
[*]逻辑分析仪:国内有许多性价比高的工具可以使用。建议使用支持 Atmel 单线接口(SWI)协议的 Logic 软件。
[*]硬件:
[*] SAMD21 Xplained Pro 开发板
[*]一片 3 引脚触点式的 ATSHA204A
[*]几根跳线
[*]硬件连接 将 ATSHA204A 连接到 SAMD21 Xplained Pro 开发板,使用跳线连接所需引脚。确保 PB08 和 PB09 背面短接,并使用上拉电阻。
[*]观察 ATSHA204A 的唤醒信号:唤醒对于系统的正常工作至关重要。根据数据手册,“唤醒条件要求系统处理器手动将SDA引脚拉低持续时间为t(wlo),或者以足够慢的时钟速率发送数据字节0x00,以确保SDA至少低电平持续t(wlo)的最短时间。CryptoAuthLib在每次事务开始时都会进行唤醒,以确保在发送任何命令之前已经被唤醒。如下图保持SDA低电平至少60us,然后保持高至少1.5ms。
实验步骤:先唤醒芯片,再读取芯片版本1)唤醒
[*]唤醒完整波形
[*]分解开来
[*]发送I/O标志位0x88,读取唤醒状态
[*]返回数据块包括4个字节,0x04表示共4个字节,状态0x11表示成功唤醒,后面两位CRC校准值。
2)读取器件版本号(DevRev命令)
[*]发送命令I/O标志位0x77,
[*]数据块 0x7表示共7个字节, 0x30为DevRev命令操作码,三个参数(0x00,0x00,0x00),最后两位CRC校准值0x5d,0x03。返回值请大家留言{:smile:}
附上工程配置
通过这些步骤和工具的使用,可以更高效地对加密芯片的开发和调试。希望这些分享能帮助刚使用加密芯片的小伙伴们。
欢迎大家留言{:smile:} ATSHA204A Microchip CryptoAuthenticationTM 数据手册
https://www.microchip.com.cn/newcommunity//Uploads/201907/5d1962cb81d3a.pdf
这种加密芯片一般都是用在什么项目或者环境之中? 我觉得可以用普通的加密或者校验就可以用吧 Charlene沙 发表于 2024-8-15 13:18
这种加密芯片一般都是用在什么项目或者环境之中?
加密芯片可以应用到大部分生态环境,比如 IP保护、消耗品、安全下载、反克隆、网络节点报文安全。 B1lanche 发表于 2024-8-15 14:20
我觉得可以用普通的加密或者校验就可以用吧
{:handshake:} 好像就微芯做的加密效果比较好 原来可以使用I2C的通信就可以用啊 这种需不需要DMA啥的?没必要是吧 其实模拟时序应该就可以 话说logic这个是啥信号?是高电平和低电平的意思? 一般用模拟IO呗,这还用啥I2C的了啊 这种芯片一般需要给他发啥内容就可以呢? 用CRC校验是为了验证数据准确对么? Alina艾 发表于 2024-8-15 16:28
原来可以使用I2C的通信就可以用啊
I2C是可以,单线通讯可以使用更少的资源
加密芯片ATSHA204A 通讯协议之I2C
https://bbs.21ic.com/icview-3393956-1-1.html?fromuser=Libby@
(出处: 21ic电子技术开**坛)
alxd 发表于 2024-8-16 13:00
用CRC校验是为了验证数据准确对么?
是的,在通讯过程中,加入CRC校验,可以用来验证接收的数据 Carina卡 发表于 2024-8-16 10:02
这种芯片一般需要给他发啥内容就可以呢?
此芯片可作为密钥的存储,并且提供一些密码算法,比如SHA256/产生随机数 你好楼主,我最近也在开发这个芯片,我想问一下这个芯片的I2C协议和单总线协议是可以切换的吗?我看手册上说是基于设备的订购?还是说可以直接用任意一个协议。 dzh20ls 发表于 2025-3-20 21:02
你好楼主,我最近也在开发这个芯片,我想问一下这个芯片的I2C协议和单总线协议是可以切换的吗?我看手册上 ...
不好意思,刚刚看到留言,不可以切换的,根据订购信息,I2C和单总线协议只能选一种 ATSHA204A的唤醒通常需要发送一个唤醒信号。
页:
[1]