通信协议之IIC 最详细解读!!

这篇具有很好参考价值的文章主要介绍了通信协议之IIC 最详细解读!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

I2C(Inter-Integrated Circuit,集成电路总线)

通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档

任意两个设备之间都可以进行通信,但同一时刻只能有两个设备之间通信,且数据只能单向传输(半双工)

I2C规定将发起通信的设备称为主设备,主设备发起一次通信后,其它设备均为从设备。主设备需要向从设备产生并发送时钟信号。

数据格式

通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档

传输流程

写操作流程:

  • 主芯片要发出一个start信号

  • 然后发出一个设备地址(用来确定是往哪一个芯片写数据),方向(读/写,0表示写,1表示读)

  • 从设备回应(用来确定这个设备是否存在),然后就可以传输数据

  • 主设备发送一个字节数据给从设备,并等待回应

  • 每传输一字节数据,接收方要有一个回应信号(确定数据是否接受完成),然后再传输下一个数据。

  • 数据发送完之后,主芯片就会发送一个停止信号。

  • 上图:白色背景表示"主→从",灰色背景表示"从→主"

通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档

通讯的起始和停止信号

  • 当 SCL 线是高电平时 SDA 线从高电平向低电平切换,这个情况表示通讯的起始。

  • 当 SCL 是高电平时 SDA 线由低电平向高电平切换,表示通讯的停止。

通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档

响应

i2c的数据字节定义为8-bits长度,对每次传送的总字节数量没有限制,但对每一次传输必须伴有一个应答(ACK)信号, 其时钟由主设备提供,而真正的应答信号由从设备发出,在时钟为高时,通过拉低并保持SDA的值来实现。如果从设备忙, 它可以使 SCL保持在低电平,这会强制使主设备进入等待状态。当从设备空闲后,并且释放时钟线,原来的数据传输才会继续。

通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档

数据有效性

I2C使用SDA信号线来传输数据,使用SCL信号线进行数据同步,如下图。 SDA数据线在SCL的每个时钟周期传输一位数据。(scl=1时,sda的数据有效;scl=0,sda数据改变)

  • 传输时,SCL为高电平的时候SDA表示的数据有效,即此时的SDA为高电平时表示数据“1”,为低电平时表示数据“0”。

  • 当SCL为低电平时,SDA的数据无效,一般在这个时候SDA进行电平切换,为下一次表示数据做好准备。

通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档

如何在SDA上实现双向传输?

主芯片通过一根SDA线既可以把数据发给从设备,也可以从SDA上读取数据,连接SDA线的引脚里面必然有两个引脚(发送引脚/接受引脚)。

  • 主、从设备都可以通过SDA发送数据,肯定不能同时发送数据,怎么错开时间?
    在9个时钟里,
    前8个时钟由主设备发送数据的话,第9个时钟就由从设备发送数据;
    前8个时钟由从设备发送数据的话,第9个时钟就由主设备发送数据。

  • 双方设备中,某个设备发送数据时,另一方怎样才能不影响SDA上的数据?

通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档
通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档
通信协议之IIC  最详细解读!!,通信协议,嵌入式硬件,网络协议,信息与通信,linux,物联网,Powered by 金山文档

硬件原理

电容在上电瞬间相当于短路,此时三极管导通,SDA电平由高到低

因电容两端的电压不能突变,电容再通电的之间,两端的电压为0,当接通的瞬间,它的电压不能突变,还是0V,而此时电源的电流就等于电源的空载电压除以电源的内阻了,相当于电源被短路了.当过一段时间后,电容两端的电压慢慢升高,最后与电源电压一样高,这时电容不再充电,也不存在充电电流了,相当于开路一样

举例:

主设备发送(8bit)给从设备

  • 前8个clk

  • 从设备不要影响SDA,从设备不驱动三极管

  • 主设备决定数据,主设备要发送1时不驱动三极管,要发送0时驱动三极管

  • 第9个clk,由从设备决定数据

  • 主设备不驱动三极管

  • 从设备决定数据,要发出回应信号的话,就驱动三极管让SDA变为0

  • 从这里也可以知道ACK信号是低电平

为何SCL也要使用上拉电阻?

在第9个时钟之后,如果有某一方需要更多的时间来处理数据,它可以一直驱动三极管把SCL拉低。

当SCL为低电平时候,大家都不应该使用IIC总线,只有当SCL从低电平变为高电平的时候,IIC总线才能被使用。

当它就绪后,就可以不再驱动三极管,这是上拉电阻把SCL变为高电平,其他设备就可以继续使用I2C总线了。

优缺点

I2C的优点:

  1. 只需要两根信号线就可以完成传输。

  1. 支持多个主机和从机。

  1. 硬件结构比UART更简单。

  1. 相比于UART,没有严格的波特率要求,但主设备需要生成总线时钟。

I2C的缺点:

  1. I2C的传输速率比不上SPI,是为了与低速设备通信而发明的。

  1. 数据帧大小限制为8位。

  1. 只能进行半双工通信。文章来源地址https://www.toymoban.com/news/detail-714764.html

到了这里,关于通信协议之IIC 最详细解读!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯嵌入式(G4系列)HAL:IIC通信之AT24C02与MCP4017

    目录 前言: IIC协议简介: 1、起始信号和停止信号: 2、应答信号: 3、读写字节: AT24C02: 字节写操作: 页写操作: 读操作: MCP4017: 写操作: 读操作:         本篇文章主要介绍IIC通信协议,同时给大家介绍一下蓝桥杯嵌入式的模块的AT24C02和MCP4017,此外本篇博客会采

    2023年04月09日
    浏览(85)
  • 五种嵌入式经典通信总线协议

    并行通信和串行通信是两种不同的数据传输方式: 并行通信:并行通信是指在同一时间使用多条并行传输的线路传输多个比特的数据。每个比特使用独立的线路进行传输,同时进行。这样可以在一个时钟周期内传输多个比特,提高传输速率。并行通信常用于短距离高速数据传

    2024年01月17日
    浏览(52)
  • 通信协议之IIC 最详细解读!!

    任意两个设备之间都可以进行通信,但 同一时刻只能有两个设备之间通信 ,且数据只能单向传输(半双工) I2C规定将发起通信的设备称为主设备,主设备发起一次通信后,其它设备均为从设备。主设备需要向从设备产生并发送时钟信号。 写操作流程: 主芯片要发出一个s

    2024年02月08日
    浏览(40)
  • 嵌入式五大通信协议详解 (一) UART

    GUN C编译器拓展语法学习笔记(一)GNU C特殊语法部分详解 GUN C编译器拓展语法学习笔记(二)属性声明 GUN C编译器拓展语法学习笔记(三)内联函数、内建函数与可变参数宏 数组存储与指针学习笔记(一)数据类型与存储、数据对齐、数据移植、typedef   通用异步收发传输器

    2024年02月05日
    浏览(54)
  • 嵌入式通信协议【Modbus】Modbus TCP的帧格式

    Client request:例: 19 B2 00 00 00 06 06 03 00 27 00 02 上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( header handle); 19 B2 00 00 00 06 19 B2  00 00 00 06 两个Client发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位

    2024年02月05日
    浏览(79)
  • 嵌入式 RS485 Modbus-RTU与TCP/IP协议详细介绍

    目录 TCP/IP协议 RS485 Modbus-RTU协议 TCP/IP是一种网络通信协议,它是互联网的基础。TCP/IP协议是由两个协议组成的,分别是TCP (传输控制协议)和IP (网络协议)。 TCP (Transmission Control Protocol) 传输控制协议 TCP是一种面向连接的协议,它提供可靠的、有序的数据传输服务。 TCP协议通过

    2024年02月13日
    浏览(44)
  • 嵌入式系统>嵌入式硬件知识

    AI芯片的特点包括 :新型计算范式AI芯片的关键特征: 1、新型的计算范式 AI 计算既不脱离传统计算,也具有新的计算特质,如处理的内容往往是非结构化数据(视频、图片等)。处理的过程通常需要很大的计算量,基本的计算主要是线性代数运算,而控制流程则相对简单。

    2024年02月08日
    浏览(50)
  • 嵌入式硬件

    嵌入式硬件是一种在电子设备中集成且运行特定程序的硬件。它通常与特定软件应用紧密相关,用于实现一个以上的特定功能,如压缩解压缩、保安服务等。嵌入式系统通常涉及到至少一个控制器(或微控制器)和其他一些外部芯片,例如存储器、输入/输出(I/O)接口、传感

    2024年02月09日
    浏览(49)
  • 嵌入式硬件电路·电平

    目录 1.  电平的概念 1.1  高电平 1.2  低电平 2.  电平的使用场景 2.1  高电平使能 2.2  低电平使能 2.3  失能         电平是指电信号电压的大小或高低状态。在数字电子学中,电平有两种状态,高电平和低电平,用来表示二进制中的1或0。在模拟电子学中,电平可以是一

    2024年02月04日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包