串行通信协议-IIC

基础概念

IIC是一种串行通信总线,也称为I2C(Inter-Integrated Circuit)总线。IIC支持多主多从,当总线上有多个主机同时启用总线时,IIC具备冲突检测和仲裁的功能来防止错误产生。每个连接到IIC总线上的器件都有唯一的地址(7bit),并且每个器件都可以作为主机和从机。

协议原理

拓扑示例

IIC支持多主多从,通过SDA(serial data)、SCL(serial clk)双线来进行通信。典型结构如下:
在这里插入图片描述
协议规定:

  • 每个IIC设备有唯一的7位设备地址,因而理论最多可支持2^7=128个设备,从机最多127,主机不限;
  • 数据部分8比特,以及启动,停止,确认,读写控部分。

速率模式

  • 标准模式(Standard):速率为100kbps,适用于低速或对数据可靠性要求较高的场景,如EEPROM存储器等。
  • 快速模式(Fast):速率为400kbps,适用于需要较高数据传输速率且对数据可靠性要求适中的场景,如音频处理等。
  • 快速模式+(Fast-Plus):速率为1Mbps,适用于需要高速数据传输的场景,如实时图像传输等。
  • 高速模式(High-speed):速率为3.4Mbps,适用于需要非常高速数据传输的场景,如实时音频处理等。
  • 超快模式(Ultra-Fast):速率为5Mbps(单向传输),适用于需要非常高速且数据传输量较大的场景,如实时视频处理等。
    其中,标准模式及快速模式是应用最广的。

数据读写

读时序

在这里插入图片描述
读时序的过程如下:

  1. 主机发送启动位、目标从机地址及写信号
  2. 从机回复ACK
  3. 主机发送寄存器地址
  4. 从机回复ACK
  5. 机发送启动位、目标从机地址及读信号
  6. 从机回复ACK
  7. 从机发送对应数据
  8. 主机不响应
  9. 主机发送停止位

写时序

在这里插入图片描述

写时序的过程如下:

  1. 主机发送启动位、目标从机地址及写信号
  2. 从机回复ACK
  3. 主机一次发送写的寄存器地
  4. 从机回复ACK
  5. 主机发送对应数据
  6. 从机回复ACK
  7. 第5步和第6步可以重复多次,即顺序写多个寄存器
  8. 主机发送停止位

说明:可能连续写

硬件结构

在这里插入图片描述
PIN口的输入输出转换通过开漏实现,fpga可使用inout口,三态门来控制

参考链接

https://blog.csdn.net/helloworld573/article/details/105629235
https://blog.csdn.net/qq_30624591/article/details/85255871
https://zhuanlan.zhihu.com/p/161710767
https://zhuanlan.zhihu.com/p/678229227

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值