【众拳STM8 46 讲】I2C 串形总线工作原理

I2C总线特点

1. I2C总线由飞利浦推出的一种串行总线

2. 具备多主机系统(可以外挂很多器件:如STM8,收音机等),具有总线裁决和高低速器件同步功能的高性能串口总线

3. I2C总线只有两根双向信号线:数据线SDA(Serial Data),时钟线SCL(Serial Clock)

4. I2C总线相当于公路主干道,外挂器件相当于交通工具,只要遵守协议就可以跑数据

5. I2C适合板载芯片之间的通讯,不适合远距离通讯

I2C总线协议

I2C总线通过上拉电阻(2.2K)接正电源。当总线空闲时,SDA和SCL都是高电平,连接到总线上任一器件输出低电平,那么总线信号遍低,即各器件与SDA和SCL都是“与”关系。

  • 每一个器件都有一个地址
  • 在多主机系统中,可能同时有几个主机启动总线,I2C总线会启用总线仲裁,决定有谁优先使用总线
  •  

I2C总线的数据传送

I2C总线进行数据传输时:

  • SCL为高电平期间,SDA数据保持稳定不能变化
  • SCL为低电平期间,SDA数据允许进行数据变化

I2C总线起始和终止信号

  • 起始信号:SCL线高电平,SDA线由高电平->低电平
  • 终止信号:SCL线高电平,SDA线由低电平->高电平

起始和终止都是主机发出,产生起始信号后,总线就处于被占用状态;产生终止信号后,总线就处于空闲状态

总结:SCL高电平,如果SDA电压不变,那么就是在传数据,如果SDA电压有变化,那么要么起始信号要么终止信号

在进行数据传输时,如果主机希望继续占用总线进行新的数据传输,那么可以不产生终止信号,马上再次发出起始信号即可

 

数据传输格式

主机字节发送和应答

每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。

主机发送完8个字节后,主机的SDA线电平就会拉高,进入空闲状态;同时从机会将SDA线拉底来应答主机,表示数据接收完毕。

 

总线寻址

I2C采用寻址为1个字节,定义如下:

  • 第 0 位(R/T位)表示数据传输方向:0 表示主机向从机写数据(主机发送数据T),1 表示主机由从机读数据(主机接收数据R)
  • 第 1 ~ 7 位表示从机的地址

 

相关电平持续时间规则

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值