IIC控制EEPROM——IIC协议

IIC协议简介

特点:串行,同步,半双工。

IIC(Inter-Integrated Circuit, 互联集成电路)协议是由Philips公司开发的一种简单的,双向二线制同步串行总线。使用两根线进行数据交互(SDA和SCL),一根线用于传输数据(SDA),一根线用于同步时钟(SCL),其中SDA数据线是双向串行总线。

优点:

缺点:

IIC协议-物理层

IIC协议的物理层特点主要有:

  1. IIC协议支持多设备进行通信。在IIC协议中,通讯设备分为主机和从机,并且支持“多主多从”通信。上图中,FPGA芯片是主机,其他 EEPROM(带电可擦除可编程只读存储器),SENSOR(传感器)和 RTC(实时时钟)为从机。
  2. IIC协议有两根通讯总线—— SDA 和 SCL。SDA是双向串行数据总线,SCL是单向串行时钟总线。数据线传输数据,时钟线传输时钟。两根总线空闲时均为高电平。
  3. IIC协议中,每个连接到总线的设备都具有一个唯一的设备地址。主机通过唯一的设备地址选择控制从机设备。
  4. 在“多主多从”模式中,IIC协议使用仲裁方式决定哪个设备占用总线。
  5. IIC协议有三种传输速度模式:标准模式——100kb/s,快速模式——400kb/s,高速模式——3.4Mb/s。
仲裁机制的原理

IIC协议-协议层

IIC协议的时序主要有:空闲①,开始时序②,数据传输③,停止时序④。

每个时序下总线状态如下所述:

①:空闲时,SCL和SDA都由上拉电阻拉高,保持高电平。

②:开始时,SCL保持高电平不变,然后 master 拉低SDA,使 SDA 产生一个下降沿。

③:数据传输,SCL进行规律的时钟跳变,其中SCL为高电平时,SDA的数据有效,此时SDA传输的数据要保持稳定,不能改变;SCL为低电平时,SDA数据无效,此时进行传输数据更新。总共传输8个字节,在传输8个字节之后,接收方需要发送一个ack 信号,发送ack信号时,SDA由接收方控制,ack为0时,ack有效,ack为1时,ack无效,同样ack的传输也是SCL高电平有效。

④:停止时,SCL保持高电平,将SDA从低电平拉高到高电平,使SDA产生一个上升沿。

其他(IIC协议与SCCB协议)

SCCB协议与IIC协议十分相似,SCCB(serial camera control bus)协议是一种用与控制摄像头的协议,常见于摄像头参数配置。SCCB协议物理层由两个总线SCL和SDA构成(和IIC一致),主要的读写时序也是一样的。

两者的区别:

  1. SCCB协议中的ack位是don't care的(除读数据需传输NACK),而IIC协议不是。
  2. SCCB协议只能进行3-Phase Write,2-Phase Write, 2-Phase Read 操作(每次只能写/读1个字节),而IIC协议可以连续写/读多个字节数据。

可以理解为SCCB协议就是IIC协议的简化版。

3-Phase Write

2-Phase Write

2-Phase Read

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值