常用I2C从设备介绍

什么叫从设备呢,从设备是指被主控设备选中从而按照具体协议通信的设备就是从设备,那么I2C从设备就是主控和被控走的是I2C协议,常见的I2C从设备有:HDMI,cmos camera(手机平板前后摄像头),电容触摸屏TS,重力传感器gsensor,eeprom存储设备,我们在工作中经常会做I2C的驱动开发,也就是I2C的从设备驱动开发。I2C提供接口时同时遵循I2C协议通信,当然一个设备可能支持多个接口,如我们的eeprom可以支持I2C,也可以支持spi。I2C从硬件角度的一个连接框架如下:

其中SCL是时序控制线,SDA是数据线,上面的话从设备只画了两个,实际上从设备可能是很多的,那么我的SOC主控需要读写数据的时候是如何区分是哪个从设备的呢:是通过从设备地址,这个地址是唯一的,一般是7bit、10bit,那么从设备相应soc的时候怎么知道是读取,还是写数据呢,此时就出现了I2C协议了,协议格式如下:

上图解释:Scl是主要是发送一个时钟来控制sdl的一个数据发送,什么时候发送开始新信号,什么时候发送从设备地址出来,什么时候告诉从设备是读操作还是写操作,sda中高电平表示读,低电平表示写,发送完读写标志后从设备会给soc一个ack(从高拉低电平),响应了以后就可以读写数据了,读写完成会发个ack,最终如果没有数据了会发送一个p结束信号。

那么接下来真正的一个操作过程,以及数据表示是怎么样的呢?此时就需要时序SCL参与了,具体分析如下(画的丑,没办法):

开始位是从soc发出来的,表示方法是突然从高电平变成低电平:意思是再我们的scl高电平的周期,sdl从高变低就表示了一个s:开始信号,另外我们sda的有效数据是在scl高电平的时候采集的,低电平时无效。发了从设备地址,接下来soc会拉高电平,同时从设备为了响应又会拉低,这样由于都是再一根线sda上,立刻对方就能检测到电流的变化。接下来就是数据传输了,传输完成同样再scl为高电平的时候会拉高电平表示停止信号。实际上这个协议针对开始和结束做了特殊处理的,就是正常情况下是高电平的时候是不能改变电平的,为了避免特殊情况把高变低为开始,低变高位结束。

如何操作从设备,操作的时候需不需要传递操作地址,寄存器地址等?实际上是需要传递操作地址的,所以读写的时候I2C协议可能有变体:写的话有传递操作地址,读的时候首先要告诉读的一个地址,也算是一个操作地址,然后得重新发开始位告诉从设备现在是做读操作,然后发从设备地址,R标志。

写:

读:

所以需要注意这种变体区别。。。今天先写到这里吧,嘻嘻^_^

I2C协议时序以及协议变体相关推荐

  1. 【SugerTangYL】SPI协议及其变体

    目录 前言 一.SPI Interface (一)串口通信 (二)SPI Interface 1.一主一从 2.一主多从 3.菊花链 二.SPI通信时序及简易模型 (一)SPI传输时序 (二)简易模型 ...

  2. 总线协议之I2C总线时序

    路漫漫其修远兮,吾将上下而求索 I2C总线时序 http://hi.baidu.com/yangfengyuk/blog/item/16e586fa52fd211f6d22ebfe.html/cmti ...

  3. spi协议时序图和四种模式实际应用详解

    大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...

  4. 关于I2C协议和SPI协议学习之中的补充修改

    I2C协议时序图中的应答位 ack位 通过实际代码操作,终于弄懂了主从设备如何通过I2C进行一问一答的交流 由于I2C是半双工的协议 所以在相同的时间内,是无法同时进行数据的IN和OUT,只能的等一方 ...

  5. I2C详解(3) I2C总线的规范以及用户手册(2) I2C其他的总线协议以及总线速度

    I2C详解(3) I2C总线的规范以及用户手册(2) I2C 其他的总线协议以及总线速度 I2C详解(1) 一文快速了解I2C的工作原理 I2C详解(2) I2C总线的规范以及用户手册(1) I2C ...

  6. I2C接口控制器之协议解析

    I2C总线使用多主从架构,一般在小数据量场合使用,传输距离短. I2C协议解析 接口一共需要两条总线路,即SCL(串行时钟线).SDA(串行数据线),I2C总线式半双工的,所以任意时刻只能有一个主机, ...

  7. UART、SPI、I2C串行通讯协议解释 同步/异步 全双工/半双工通信含义

    欢迎加入QQ技术交流群:100479172 一.什么是同步/异步通信? 同步通信:一方发送,另一方应答,否则不进行下一次传输(带时钟同步信号传输). 异步通信:一方发送,不考虑另一方是否收到,直接进行 ...

  8. [转]关于I2C和SPI总线协议的优缺点

    关于I2C和SPI总线协议 IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral ...

  9. NB-IoT系列协议--3GPP--Release 16--TS 36.300--总体描述;阶段2

    NB-IoT系列协议--3GPP--Release 16--TS 36.300--总体描述:阶段2 1.范围 2.定义 3.缩写 4.总体架构 4.1 概述 4.2 功能划分 4.3 无线电协议体系结 ...

最新文章

  1. 影著协公布的使用费收取标准
  2. 【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )
  3. BCGControlBar菜单编程方法详解
  4. CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar-Android M新控件
  5. JRebel : java.lang.OutOfMemoryError: PermGen space 异常
  6. 回到顶部最简单的JQuery实现代码
  7. 五个数字从小到大排序java,五个数冒泡排序 用c语言数组定义5个数使用冒泡排序 从小到大...
  8. 真正的maven私服搭建器--Artifactory
  9. 转载:警惕!!骗人的“培训机构” “北大青鸟”事件
  10. leetcode - 437. 路径总和 III
  11. android slidingmenu框架,常用框架之SlidingMenu的使用(基于AndroidStudio)
  12. 四级,六级报名网站很卡怎么办?
  13. 鲁大师2023年Q3电脑排行:三足鼎立,PC圈一场旷日持久之战即将开启
  14. 2021年塔式起重机司机考试及塔式起重机司机复审考试
  15. 【自动驾驶】超声波雷达障碍物检测
  16. 浅谈Hybrid技术——Big-man
  17. word如何转化成pdf,最新图文教学,学会只需1分钟
  18. CSDN著名技术专家Visual C++2010开发体验心得——从Visual C++6 0到Visual C++201
  19. 阿里云ECS服务器开放端口号
  20. 职业高中计算机应用基础说课模板,职业教育:计算机应用基础类一等奖作品:《青春形象设计》说课课件.ppt...

热门文章

  1. vc不支援此种界接口_今夏大热VC美白精华合集评测,变白不止一点点
  2. 基于多项式插值的亚像素边缘定位算法
  3. 各种进制转换[1](一篇就够)
  4. python中星号_Python中的星号符号
  5. JAVA最全面试题答案整理
  6. EFCore的数据仓储模式
  7. linux etcfstab 权限,etc/fstab linux开机自动挂载
  8. springboot 连接不上 redis 的三种解决方案!
  9. gauge对应的JAVA类型_Java_Gauge(1)
  10. 牛客网_智力题选择题