i2c总线相关知识
0 2022-11-30

  I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。

  一、 技术性能:

  工作速率有100K和400K两种;

  支持多机通讯;

  支持多主控模块,但同一时刻只允许有一个主控;

  由数据线SDA和时钟SCL构成的串行总线;

  每个电路和模块都有唯一的地址;

  每个器件可以使用独立电源

  二、 基本工作原理:

  以启动信号START来掌管总线,以停止信号STOP来释放总线;

  每次通讯以START开始,以STOP结束;

  启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R. /W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;

  当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号;

  每个数据字节在传送时都是高位(MSB)在前;

  写通讯过程:

  1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;

  2. 发送一个地址字节(包括7位地址码和一位R/W);

  3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);

  4. 主控收到ACK后开始发送第一个数据字节;

  5. 被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;

  6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;

  读通讯过程:

  1. 主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;

  2. 发送一个地址字节(包括7位地址码和一位R/W);

  3. 当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);

  4. 主控收到ACK后释放数据总线,开始接收第一个数据字节;

  5. 主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;

  6. 主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;

     I2C总线特征

  I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址(可以从I2C器件的数据手册得知),主从设备之间就通过这个地址来确定与哪个器件进行通信,在通常的应用中,我们把CPU带I2C总线接口的模块作为主设备,把挂接在总线上的其他设备都作为从设备。

  I2C总线上可挂接的设备数量受总线的最大电容400pF 限制,如果所挂接的是相同型号的器件,则还受器件地址位的限制。

  I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉电阻的阻值有关。

  I2C总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。

   I2C总线协议

  I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。总线在空闲状态时,SCL和SDA都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当SCL为高而SDA由低到高的跳变,表示产生一个停止条件。在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备将释放总线,总线再次处于空闲状态。如图所示:

  在了解起始条件和停止条件后,我们再来看看在这个过程中数据的传输是如何进行的。前面我们已经提到过,数据传输以字节为单位。主设备在SCL线上产生每个时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,回传给主设备一个应答位,此时才认为一个字节真正的被传输完成。当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否定应答位。数据传输的过程如图所示:


  在前面我们还提到过,I2C总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。如图所示:



声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
  • 浅析I²C总线设计的关键事项

    对于硬件工程师,I²C再熟悉不过了,两根线,一根数据SDA一根时钟SCL。当时在使用avrCPU设计数据采集器产品的CPU主板,外挂了Siliconlab的温湿

    昨天
  • 基于提高RS485接口芯片通信质量的设计

    RS-485接口芯片能担当起一种电平转化的角色,把TTL信号、COMS信号等转化为能在485总线上传输的差分信号,把接收到的485差分信号转化为MCU能够识别的

    昨天
  • 研华推出一款CAN总线带隔离保护功能的PCI-104通讯模块PCM-3680I

    PCM-3680I符合PCI-104接口标准,这使得它在类似震动这种现场恶劣的环境下也能提供较好的解决方案。和其他的连接方式相比,PCM-3680I提供了比其他

    昨天
  • 采用全数字化视频和声音发送接口HDMI的视频流输入输出实验

    本实验基于ECE-CVK7-75TFPGA开发板实现。软件使用Vivado2018.1。基于HDMI的视频流输入输出实验1HDMI概述HDMI高清多媒体界面(英

    昨天
  • 基于UFS2.1标准的UFS接口简单介绍

    本篇主要介绍UFS的架构、系统模型、信号定义(包括eUFS和UFSCard)等,以对UFS接口有个粗略的了解。下一篇将针对电源、复位、时钟等部分进行详细介绍。1

    昨天
  • 一体化直驱电机的驱动器设计

    作为工业生产线基础的传动设备,一般都采用“交流电动机+机械减速机构”的方式来驱动,简单适用且价格低廉。但是今天,由机械减速机构带来的不利影响,如齿轮箱等的油污泄

    昨天
  • 基于采用磁耦隔离和硬件零延时技术的RS485总线节点设计

    引言在工业控制设备之间中长距离通信的诸多方案中,RS485总线因其硬件设计简单、控制方便、成本低等优点,广泛应用于工厂自动化、工业控制、小区监控、水利自动测控等

    前天
  • 英特尔成功开发出了Light Peak光接口技术

    为了有效解决今天电子设备在处理大数据流量时遇到的接口瓶颈问题,英特尔投入巨资开发出了LightPeak光接口技术。尽管一位来自一线PC厂商的工程师以及一位市场分

    前天
  • CAN总线的在汽车轮速传感器中的应用

    目前,网络技术是汽车电子领域发展的一项新技术。它不仅是解决汽车电子化中的线路复杂和线束增加问题的技术,而且其通讯和资源共享能力成为新的电子与计算机技术在车上应用

    02-06
  • CAN总线基础知识学习笔记

    依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加油!1CAN的一些基本

    02-06
  • 一文看懂EMC防护器件之TVS

    一 前言电压及电流的瞬态干扰是造成电子电路及设备损坏的主要原因,常给人们带来无法估量的损失。这些干扰通常来自

    02-03
  • 电机的控制技术原理

    在现代电子产品中,自动控制系统,电子仪器设备、家用电器、电子玩具等等方面,直流电机都得到了广泛的应用。大家熟悉的录音机、电唱机、录相机、电子计算机等,都不能缺少

    02-03
下载排行榜
更多
广告