打印
[认证加密]

加密芯片ATSHA204A 通讯协议之I2C

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

#技术资源#

上次完成了ATSHA204A单总线(SWI)协议,今天整理了ATSHA204A 的I2C协议和通信信号,以下是 ATSHA204A 通过 I2C 协议进行通信的详细过程,包括唤醒、读取和发送命令。
I2C 接口:数据(SDA)和时钟(SCL)两个引脚。I2C 接口支持最高 1Mbps 的比特率。在 I2C 接口上,数据首先在总线上传入/传出 ATSHA204A 的 MSb。



1. 唤醒
ATSHA204A 在低功耗模式下,默认处于睡眠状态,需要唤醒后才能进行通信。唤醒过程如下:

1.    发送唤醒信号:主机将 I2C 总线上的 SDA 拉低至少 60 us。
2.    等待唤醒时间:主机等待 2.5 ms,SDA保持高电平至少2.5ms。
3.    检查唤醒响应:唤醒后,ATSHA204A 会在总线上发送一个固定的响应,即 0x11, 0x02, 0x33, 0x43,确认设备已经唤醒。

2. 发送命令
ATSHA204A 的命令传输包括以下步骤:
1.    起始条件 :主机发送起始条件。
2.    设备地址和写操作:主机发送设备地址(7-bit 地址)和写操作(8-bit,最低位为 0)。
3.    命令 (0x03):

  • 总长度 (Count):命令的总字节长度,包括 Count 字节本身。
  • 命令操作码 (Opcode):表示具体执行的命令,例如读取、写入、加密等。
  • 参数 (Param1 和 Param2):命令所需的参数。
  • 数据 (Data):一些命令可能需要附带的数据。
  • 校验和 (CRC):CRC-16,CRC 多项式为 0x8005,用于验证命令的完整性。
4.    停止条件 :主机发送停止条件。

3. 读取响应
读取 ATSHA204A 的响应步骤如下:
1.    起始条件:主机发送起始条件。
2.    设备地址和读操作:主机发送设备地址和读操作(最低位为 1)。
3.     命令 (0x03):
  • 总长度 (Count):响应的总字节长度。
  • 响应数据 :根据命令不同,返回不同的数据。
  • 校验和 (CRC)。
4.    停止条件 (Stop Condition):主机发送停止条件。

实际通信:先唤醒芯片,假设我们要发送一个 Read 命令读取数据,过程如下:
1)唤醒 : 唤醒完整波形,拉低 SDA > 60 μs,等待 2.5 ms


返回数据块包括4个字节,0x04表示共4个字节,状态0x11表示成功唤醒,后面两位CRC校准值



2)发送read 命令:读取32个字节的命令,
  • 起始条件
  • 设备地址 + 写操作
  • 发送数据:
       Count:7
       Opcode:0x02(Read 命令)
       Param1:
       Param2:
       Data:空
       CRC:根据上述数据计算得到
  • 停止条件

如下 0x60 0x03 0x070x02 0x80 0x00 0x00 0x09 0xAD 读取配置区域 (0~31)

3)发送空闲:

通过这些步骤,主机可以与 ATSHA204A 进行安全的 I2C 通信,实现各种安全操作。

欢迎大家留言

使用特权

评论回复
沙发
芯岚微| | 2024-9-9 10:49 | 只看该作者
McuStudio 国内领先的MCU开发神器,全面兼容各大厂商的多样芯片。
McuStudio 能够简化芯片配置、缩短项目开发周期,可以生成 keil,iar,gcc 等平台的工程代码。
通过图形化的配置及可快速生成工程代码的一款便捷应用,使用者仅可通过拖拽,选择,输入的方式即可配置微控制器的时钟、外设、引脚和中间件堆栈,另外平台还支持拓展的方式来开发一些复杂的功能!
欢迎访问官网 https://www.mcuteam.com/ 了解详情

使用特权

评论回复
评论
Libby@ 2024-9-9 11:33 回复TA
谢谢留言,但是谢绝打广告 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

43

帖子

0

粉丝