打印
[认证加密]

加密芯片ATSHA204A单总线(Single-Wire Interface, SWI)协议

[复制链接]
12129|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Libby@|  楼主 | 2024-7-12 12:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Libby@ 于 2024-7-12 12:19 编辑

#技术资源#
虽然官网提供了 ATSHA204A 的完整文档,但要快速获取有用信息,仍需花费一些时间。最近用逻辑分析仪观察了 ATSHA204A 的单总线协议和通信信号,以 ATSHA204A 为例,详细介绍其唤醒、读取和发送命令的过程。


单线接口(SWI)通信采用系统微处理器上的单个GPIO引脚连接到设备的SDA引脚。这种方法可以将连接器的引脚数量降至最少,特别适用于可移动或可替换的设备。其比特率最高可达25.6 kbps,与标准UART信号兼容。在ATSHA204A器件中,数据在总线上以LSb形式传输。下图显示了0x7F对应逻辑10x7D对应逻辑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。返回值请大家留言


附上工程配置




通过这些步骤和工具的使用,可以更高效地对加密芯片的开发和调试。希望这些分享能帮助刚使用加密芯片的小伙伴们。

欢迎大家留言

使用特权

评论回复
沙发
Libby@|  楼主 | 2024-7-12 16:27 | 只看该作者
ATSHA204A Microchip CryptoAuthenticationTM 数据手册
https://www.microchip.com.cn/newcommunity//Uploads/201907/5d1962cb81d3a.pdf

使用特权

评论回复
板凳
Charlene沙| | 2024-8-15 13:18 | 只看该作者
这种加密芯片一般都是用在什么项目或者环境之中?

使用特权

评论回复
地板
B1lanche| | 2024-8-15 14:20 | 只看该作者
我觉得可以用普通的加密或者校验就可以用吧

使用特权

评论回复
5
Libby@|  楼主 | 2024-8-15 14:31 | 只看该作者
Charlene沙 发表于 2024-8-15 13:18
这种加密芯片一般都是用在什么项目或者环境之中?

加密芯片可以应用到大部分生态环境,比如 IP保护、消耗品、安全下载、反克隆、网络节点报文安全。

使用特权

评论回复
6
Libby@|  楼主 | 2024-8-15 14:32 | 只看该作者
B1lanche 发表于 2024-8-15 14:20
我觉得可以用普通的加密或者校验就可以用吧

使用特权

评论回复
7
Emily999| | 2024-8-15 15:23 | 只看该作者
好像就微芯做的加密效果比较好

使用特权

评论回复
8
Alina艾| | 2024-8-15 16:28 | 只看该作者
原来可以使用I2C的通信就可以用啊

使用特权

评论回复
9
Candic12e| | 2024-8-15 17:34 | 只看该作者
这种需不需要DMA啥的?没必要是吧

使用特权

评论回复
评论
Libby@ 2024-8-16 14:55 回复TA
在这里是用UART,tx和rx,没有用到DMA 
10
Belle1257| | 2024-8-15 18:41 | 只看该作者
其实模拟时序应该就可以

使用特权

评论回复
11
Annie556| | 2024-8-15 19:22 | 只看该作者
话说logic这个是啥信号?是高电平和低电平的意思?

使用特权

评论回复
评论
Libby@ 2024-8-16 14:59 回复TA
logic0 和 logic1分别对应的低电平和高电平 
12
Estelle1999| | 2024-8-16 08:32 | 只看该作者
一般用模拟IO呗,这还用啥I2C的了啊

使用特权

评论回复
13
Carina卡| | 2024-8-16 10:02 | 只看该作者
这种芯片一般需要给他发啥内容就可以呢?

使用特权

评论回复
14
alxd| | 2024-8-16 13:00 | 只看该作者
用CRC校验是为了验证数据准确对么?

使用特权

评论回复
15
Libby@|  楼主 | 2024-8-16 14:54 | 只看该作者
Alina艾 发表于 2024-8-15 16:28
原来可以使用I2C的通信就可以用啊

I2C是可以,单线通讯可以使用更少的资源
加密芯片ATSHA204A 通讯协议之I2C
https://bbs.21ic.com/icview-3393956-1-1.html?fromuser=Libby@
(出处: 21ic电子技术开**坛)

使用特权

评论回复
16
Libby@|  楼主 | 2024-8-16 15:05 | 只看该作者
alxd 发表于 2024-8-16 13:00
用CRC校验是为了验证数据准确对么?

是的,在通讯过程中,加入CRC校验,可以用来验证接收的数据

使用特权

评论回复
17
Libby@|  楼主 | 2024-8-16 15:17 | 只看该作者
Carina卡 发表于 2024-8-16 10:02
这种芯片一般需要给他发啥内容就可以呢?

此芯片可作为密钥的存储,并且提供一些密码算法,比如SHA256/产生随机数

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

51

帖子

0

粉丝