首页 > 其他分享 >IIC协议master可以和master 通信吗

IIC协议master可以和master 通信吗

时间:2022-11-20 23:01:28浏览次数:42  
标签:SCL 高电平 总线 通信 master SDA IIC I2C

协议介绍

  • I2C(Inter-Integrated Circuit)是一种通用的【总线协议】,一种简单的双向两线制总线协议标准;

  • 实现I2C需要两根信号线完成信息交换,SCL时钟信号线,SDA数据输入/输出线。它属于【同步通信】,由于输入输出数据均使用一根线,支持【双向数据交换】,因此通信方向为【半双工】;

  • I2C可以支持多主机(multi-master)系统,允许有多个master,并且每个master都可以与所有的slaves通信(master之间不可通过I2C通信,并且每个master只能 【轮流】 使用I2C总线)

  • I2C的数据传输速率位于串口和SPI之间,大部分I2C设备支持100KHz和400KHz模式

  • 使用I2C传输数据会有一些额外消耗:每发送8bits数据,就需要额外1bit的元数据(ACK或NACK)

I2C物理层

  1. 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个I2C通讯总线中,可连接多个I2C通讯设备,支持多个通讯主机及多个通讯从机。

  2. 一个I2C总线只使用两条总线线路,一条双向串行数据线(SDA),一条串行时钟线(SCL)。数据线即用来表示数据,时钟线用于数据收发同步。

  3. 每个连接到总线的设备都有一个【独立的地址】,主机可以利用这个地址进行不同设备之间的访问。

  4. 总线通过上拉电阻接到电源。当I2C设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成【高电平】。

  5. 多个主机同时使用总线时,为了防止数据冲突,会利用【仲裁】方式决定由哪个设备占用总线。

  6. 具有三种传输模式:标准模式传输速率为100kbit/s,快速模式为400kbit/s,高速模下可达3.4Mbit/s,但目前大多I2C设备尚不支持高速模式

I2C协议层

协议中主要规定了4种信号:

  • 起始信号
  • 停止信号
  • 数据位
  • 应答信号

以主机向从机写数据为例,其基本结构如图所示,依次为:
起始信号——从机地址(7位)——读写信号(1位)——数据位——应答位——……——停止位

  • 起始信号(S):当 SCL 线是高电平时,SDA 线从高电平向低电平切换;

  • 停止信号(P):当 SCL 是高电平时,SDA 线由低电平向高电平切换。

  • 帧地址:I2C总线上的每个设备都有自己的独立地址,主机发起通讯时,通过SDA信号线发送设备地址(SLAVE_ADDRESS)来查找从机。I2C协议规定设备地址可以是7位或10位,实际中7位的地址应用比较广泛。

  • I2C使用SDA信号线来传输数据,使用SCL信号线进行数据同步。

    • SDA数据线在SCL的每个时钟周期传输一位数据。传输时,SCL为高电平的时候SDA表示的数据有效,即此时的SDA为高电平时表示数据“1”,为低电平时表示数据“0”。当SCL为低电平时,SDA的数据无效,一般在这个时候SDA进行电平切换,为下一次表示数据做好准备。
  • I2C的数据和地址传输都带响应。响应包括“应答(ACK)”和“非应答(NACK)”两种信号。

  • 作为数据接收端时,当设备(无论主从机)接收到I2C传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发送“应答(ACK)”信号,发送方会继续发送下一个数据;
    若接收端希望结束数据传输,则向对方发送“非应答(NACK)”信号,发送方接收到该信号后会产生一个停止信号,结束信号传输。

标签:SCL,高电平,总线,通信,master,SDA,IIC,I2C
From: https://www.cnblogs.com/amxiang/p/16909967.html

相关文章

  • IIC读时为什么要发送两次设备地址?
     玩单片机的朋友都知道IIC通信这个工具,但好多人只是会用,内部的原理不求甚解,或是想要了解其原理,但却对抽象的时序描述一头雾水。本文将从实测的IIC波形入手,带你看到真实的......
  • 六_docker网络之跨主机网络通信(1)
    Docker跨主机网络通信常见的跨主机通信方案主要有以下几种:形式描述Host模式容器直接使用宿主机的网络,这样天生就可以支持跨主机通信。这样方式虽然可以解决......
  • 解密-利用Masterkey离线导出Chrome浏览器中保存的密码
    利用Masterkey离线导出Chrome浏览器中保存的密码快速说明需要浏览器LoginData文件和lsass进程的内存文件步骤一获得目标LoginDatacopy%LocalAppData%\Googl......
  • IIC总线的仲裁机制
    转:https://blog.csdn.net/lpwsw/article/details/121778724先说结论:遵循3个机制“线与”机制。多主机时,总线具有“线与”的逻辑功能,即只要有一个节点发送低电平时,总线......
  • 灵界的科学丨六、星际通信新科技──寻找外星人
    摘自李嗣涔教授《灵界的科学》外星先进文明科技领先地球的关键,是外星人掌握了意识的物理,能够制造仿照天眼的仪器,自由进出虚数空间遨游宇宙,同时创造出瞬间科技。人类......
  • 还在手撸TCP/UDP/COM通信?一个仅16K的库搞定!
    摘要在一些项目中,可能会用到串口(COM)通信,也可能会使用TCP-Server,TCP-Client,UDP等等,这种实现起来都大差不差,所以我封装了一个无任何依赖小而美的通信框架,通用性强,安全稳......
  • IIC总线时序
    IIC标准速率为100Kbit/s,快速模式400Kbit/s,支持多机通信,支持多主控模块,但是同一时刻只允许有一个主控。由数据线SDA和时钟SCL构成串行总线;每个电路模块都有唯一地址。I2C设......
  • IIC协议时序2
                                       I2C通讯协议及时序图    I2C总线,PHILIPS公司定义的......
  • 线程间通信
    ---线程由于是在同一个进程中,所以线程间通信使用全局变量进行通信 共享资源:多个线程都可以操作的资源为共享资源,对共享资源的操作代码段称为临界区。对共享资源的无序......
  • 进程间通信
    ---pipe管道概念:在内存中开辟管道空间,生产一个管道对象,多个进程使用同一个管道'''管道通信multiprocessing中管道通信只能用于有亲缘关系进程中,即父子进程,兄弟进程2.......