0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C总线上主设备和从设备的连接关系

ARM与嵌入式 来源:ARM与嵌入式 2023-06-23 21:50 次阅读

I2C总线是一种同步、双向、半双工的两线式串行接口总线。这里,半双工的含义是指在任意给定的时刻,只有一个方向上是可以通信的。

I2C总线最早由Philips半导体公司于20世纪80年代研发面市。I2C最初的设计目标是为微处理器/微控制器系统与电视机外围芯片之间的连接提供简单的方法。 I2C总线由两条总线组成:串行时钟线SCL和串行数据线SDA。 SCL线——负责产生同步时钟脉冲。 SDA线——负责在设备间传输串行数据。 I2C总线是共享的总线系统,因此可以将多个I2C设备连接到该系统上。连接到I2C总线上的设备既可以用作主设备,也可以用作从设备。 主设备负责控制通信,通过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。 从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生。 在相同的总线上,I2C支持多个主设备的同时存在。图1-1显示了I2C总线上主设备和从设备的连接关系。 50c8f4b4-11a5-11ee-962d-dac502259ad0.png50e184de-11a5-11ee-962d-dac502259ad0.png 当总线空闲时,SDA 和SCL 都处于高电平状态,当主机要和某个从机通讯时,会先发送一个开始条件,然后发送从机地址和读写控制位,接下来传输数据(主机发送或者接收数据),数据传输结束时主机会发送停止条件。传输的每个字节为8 位,高位在前,低位在后。

开始条件:SCL 为高电平时,主机将SDA 拉低,表示数据传输即将开始。

从机地址:主机发送的第一个字节为从机地址,高7 位为地址,最低位为R/W 读写控制位,1 表示读操作,0 表示写操作。

一般从机地址有7 位地址模式和10 位地址模式两种,如果是10 位地址模式,第一个字节的头7 位是11110XX 的组合,其中最后两位(XX)是10 位地址的两个最高位,第二个字节为10 位从机地址的剩下8 位,如下图所示: 50ff7638-11a5-11ee-962d-dac502259ad0.png

应答信号:每传输完成一个字节的数据,接收方就需要回复一个ACK(acknowledge)。写数据时由从机发送ACK,读数据时由主机发送ACK。当主机读到最后一个字节数据时,可发送NACK(Notacknowledge)然后跟停止条件。

数据:从机地址发送完后可能会发送一些指令,依从机而定,然后开始传输数据,由主机或者从机发送,每个数据为8 位,数据的字节数没有限制。

重复开始条件:在一次通信过程中,主机可能需要和不同的从机传输数据或者需要切换读写操作时,主机可以再发送一个开始条件。

停止条件:在SDA 为低电平时,主机将SCL 拉高并保持高电平,然后在将SDA 拉高,表示传输结束。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87600
  • 主机
    +关注

    关注

    0

    文章

    897

    浏览量

    34609
  • I2C总线
    +关注

    关注

    8

    文章

    357

    浏览量

    60408

原文标题:I2C总线

文章出处:【微信号:ARM与嵌入式,微信公众号:ARM与嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【我是电子发烧友】【转】 I2C总线协议详解

    电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。  (2I2
    发表于 07-20 22:29

    I2C设备驱动的开发

    linux3.2内核提供的I2C驱动都是主设备的,想让I2C设备,请教哪位大神做过I2C
    发表于 08-21 12:05

    浅谈I2C总线

    I2C 接口和 SPI 接口的作用相同,但二者的使用方法有些不同。 I2C 总线用两根线来连接多支路总线中的多个
    发表于 11-30 11:50

    请问STM32 I2CI2C_OwnAddress1作为设备主设备调用address是同一个地址吗

    用过STM32的前辈,请问下就是在STM32中配置I2C端口时,I2C_OwnAddress1说是设备地址,是一个8位数据,我想问下它作为设备
    发表于 02-20 07:08

    I2C 总线协议图解

    ,SPI和uart为双工。2I2C总线特征 I2C总线上的每一个设备都可以作为主设备或者
    发表于 08-01 16:12

    秒懂I2C串行总线的工作原理以及特点

    ,您可以将多个设备连接到单个主设备上(如SPI),并且可以让多个主器件控制单个或多个器件。当您希望有多个微控制器记录数据到单个存储卡或将
    发表于 09-05 08:00

    I2C总线的工作原理、优缺点和应用

    I2C总线I2C结合了SPI和UART的优点。使用I2C,您可以将多个设备
    发表于 07-31 12:30

    AVR单片机 I2C总线 的使用 精选资料分享

    基于AVR单片机的Arduino提供了使用I2C总线的库,使用很方便,但是若想有个性化的功能就很难实现本文就在AVR单片机上使用I2C作简要介绍先简单介绍一下I2C
    发表于 07-15 06:56

    I2C总线是什么

    I2C总线I2C总线(读做“IC”或“I2C
    发表于 07-21 09:03

    I2C简介

    线(SDL)组成。I2C 总线上可以接多个 I2C 设备,每个器件都有一个唯一的地址识别。同一时间只能有一个主设备,其他为
    发表于 08-10 06:28

    I2C总线驱动和设备驱动

    为400kbit/s常见iic设备eeprom触摸芯片温湿度传感器mpu6050(姿态传感器)…框架图I2C核心提供I2C总线驱动和设备驱动
    发表于 12-13 06:18

    I2C总线是如何去定义的

    I2C总线编辑本词条由“科普中国”科学百科词条编写与应用工作项目审核 。I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线
    发表于 12-29 06:30

    I2C总线简介

    总线时发生数据冲突。I2C 总线控制器,能满足 I2C 总线的各种规格并支持所有与 I2C
    发表于 02-22 06:55

    I2C到底能做什么?

    什么?什么类型的设备使用I2CI2C如何帮我解决系统中遇到的实际问题?I2C是使主设备(例如处理器,微控制器(MCU)或专用集成电路(AS
    发表于 11-15 07:31

    I2C总线的使用与编程

    数据。 主发送器模式:设备向从属接收器发送数据。 主接收器模式:设备从属发送器接收数据。 接收器模式:主发送器接收多个数据字节。
    发表于 09-04 07:23