• 正文
  • 相关推荐
申请入驻 产业图谱

嵌入式教育科普|I2C接口全面解析

04/11 09:30
1445
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1、基本概念

I2C的全称是Inter-Integrated Circuit,译为集成电路总线,是一种同步、双向、半双工的两线式串行接口总线。连接到I2C总线上的设备既可以用作主设备,也可以用作从设备。主设备通常是一个微控制器微处理器,用来控制通信的启动和停止、时钟信号(SCL)的产生,以及数据传输;从设备则是等待来自主设备的命令并响应命令接收。

I2C总线是共享的总线系统,因此可以将多个I2C设备连接到该系统上,不同的I2C设备有不同的器件地址,主设备通过I2C设备的器件地址访问指定的I2C从设备,连接方式如下图:

I2C采用的开漏输出,SDA跟SCL两根线都需要加上拉电阻,当总线空闲时候两根线是高电平。I2C的优点在于其简单性、灵活性、易于集成、通信速度快、占用引脚少、连接简单等。然而,由于其半双工的工作方式,以及在同一总线上连接的设备数量有限,I2C在某些应用中可能不是最佳选择,也具有传输距离短、信号干扰大等缺点。

2、工作原理

I2C是一种双线总线,分别是时钟线SCL和数据线SDA。在正常工作中,总线协议有起始条件与停止条件。

起始条件:SCL为高电平,SDA由高电平变为低电平。

停止条件:SCL为高电平,SDA由低电平变为高电平。

起始跟停止条件由主机控制。当主机发出起始条件后,I2C总线会被认为忙碌状态。当主机发出停止条件后,I2C总线会被认为空闲状态。当主机发送一个重新起始条件替代停止位I2C总线也会被认为处于忙碌状态。

主机发出起始条件后,开始读取数据,但这里要注意的是数据的有效性。

数据有效性:SCL时钟线在高电平期间,SDA必须是稳定的。SCL时钟线在低电平时候SDA数据线才允许高电平或者低电平变化。每传送一个数据位产生一个时钟。

在数据传输时,SDA线上面的每个字节数据长度必须是8位。每次传输的字节不受限制,每个字节后面跟随着一个应答位,数据以高有效位传输。如果从机不能够接收数据或者传输一个完整的数据字节,直到他完成某些其他功能。例如一个内部中断,它可以保持SCL为低电平状态,迫使主服务器进入等待状态。当从机准备好接收数据后它会释放SCL时钟线数据继续传输。

飞凌嵌入式

飞凌嵌入式

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。

保定飞凌嵌入式技术有限公司,创建于2006年,是一家专注嵌入式核心控制系统研发、设计和生产的高新技术企业,是国内较早专业从事嵌入式技术的企业之一。 经过十几年的发展与积累,公司拥有业内优秀的软硬件研发团队,在北京及保定建立两大研发基地,在苏州、深圳设有华东、华南技术服务中心,并在北美、欧洲以及亚太等其他国家和地区拥有国际业务网络。公司研发的智能设备核心平台广泛应用于物联网、工控、轨道交通、医疗、电力、商业电子、智能家居、安防、机器人、环境监测等诸多领域。收起

查看更多

相关推荐