I2C通信

定义了物理层接口(2线)和数据传输协议。

I2C说明

I²C(Inter-Integrated Circuit),中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,是由飞利浦公司在1980年代初设计的,方便了主板、嵌入式系统或手机与周边设备组件之间的通讯。
在这里插入图片描述
接口包含2根线:SDA、SCL。
IO设置为开漏输出,外部提供上拉
通讯时钟由此次通信的主机提供;
连接到总线的每个设备均可通过唯一地址进行软件寻址;
I²C是多主设备总线,可提供仲裁和冲突检测;但同一时刻的一次通信只存在至多1个主机。

数据传输协议

串行数据序列的结构可以分为:开始信号,地址位,读写位,应答信号,数据段,停止信号。

空闲状态SDA、SCL都是1;
开始信号保持SCL=1,SDA输出0(检测到SDA下降沿),SCL再输出0;
地址位通常地址位占7位数据,主设备如果需要向从机发送/接收数据,首先要发送对应从机的地址,然后会匹配总线上挂载的从机的地址;
读写位该位指定数据传输的方向;0-写、1-读
应答信号主机每次发送完数据之后会等待从设备的应答信号ACK。主机发送完第8位数据后SCL=0,此时主机输出SDA=1,到第九个时钟信号再读SDA?=0。从机应答就是在第九个时钟到来前输出SDA=0;若第九个时钟读到SDA=1,则表示从机没有应答ACK,会导致数据传输停止。
数据段传输的数据总共有8位,由发送方设置。发送之后会紧跟一个ACK 位。重复发送,直到数据完全传输为止。
停止信号保持SCL=0,主机先输出SDA=0,SCL输出1,SDA再输出1(检测到SDA上升沿)

发出开始信号的设备成为此次通信的主设备;在主设备发送开始条件信号之后,所有从机即使处于睡眠模式也将变为活动状态,并等待接收地址位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值