浅谈IIC总线通讯协议

相关概念

IIC总线是PHLIPS公司在八十年代初推出的一种同步串行的半双工总线,支持多主机多从机,具备总线裁决功能,用于连接整体电路。

整体电路:同一块板子上,两个芯片之间的连接(SOC<–IIC–>传感器)

IIC硬件结构简单,连接方便,成本较低,因此在各个领域得到了广泛的应用。例如:温湿度传感器,脉搏血氧饱和度传感器,触屏芯片等。

IIC总线需要接两个上拉电阻,使总线在空闲态保持高电平的状态。

IIC总线为两线制,两根双向信号线,一根是数据线(SDA),一根是时钟线(SCL)。

实际使用过程中大多数情况下使用的是单主机多从机的模式。主动发起通讯的叫做主机,只能被动接收通信的叫做从机。挂载到一根IIC总线的所有从设备都有唯一的从机地址。发送数据的器件叫做发送器,接收数据的器件叫做接收器。

时钟信号由主机产生,作用给从机。

IC总线时序图

时序:根据时钟信号的变化,数据线上数据的变化情况。

1.起始信号:时钟线为高电平期间,数据线由高电平向低电平变化。

2.停止信号:时钟线为高电平期间,数据线由低电平向高电平变化。

起始信号和终止信号都是由主机发出的,起始信号产生后,总线就处于占用的态,终止信号产生后,总线就处于空闲态。

3.数据信号:时钟线为高电平期间,接收器从数据线上读取数据,时钟线为低电平期间,发送器向数据线上写入数据。

IIC总线在进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线为低电平期间,数据线上的高电平或低电平状态才允许被变化。

4.应答信号和非应答信号
数据传送时,每一个字节必须保证是8位长度,且先传送高位,每一个被传送的字节后面都必须跟随以为应答位。(即一帧数据有9位)

在一帧数据的第九个时钟周期,低电平期间,接收器向数据线写入数据,高电平期间,发送器从数据线上读取数据。

低电平是应答信号,高电平是非应答信号。

IIC总线的通讯协议

IIC总线上传送的数据信号包括地址信号和真正的数据信号。

主机在起始信号号必须传送一个从机的地址啊(7位),第8位是数据的传送方向(R/W)。
R:表示主机接收数据,用“1”表示。
W:主机发送数据,用“0”表示。

总线上的每一个从机都会将这7位地址码与自己的地址进行比较,如果相同,则认为自己被主机寻址,根据第8位(R/W)将自己设定为接收器或发送器。

1.主机发送一个字节给从机(从机向主机接收一个字节)

2.主机发送多个字节给从机(从机向主机接收多个字节)

3.主机向从机接收一个字节(从机发送一个字节给主机)

4.主机向从机接收多个字节(从机发送多个字节给主机)

从机只能被动的收发数据,主机向从机接收数据,最后会发一个NACK再停止。
如果从机收到的是一个应答信号,会发送下一个字节的数据给主机;如果从机没有收到应答信号,就不会再发送下一个字节的数据。

# 浅谈IIC总线通讯协议相关推荐

  1. IIC总线通讯协议、EEPROM芯片

    EEPROM芯片: 掉电不会丢失数据,可以保存数据. IIC串行总线的组成及工作原理: IIC总线传输协议 IIC产生起始与终止信号: IIC字节的传送与应答: 应答位作用: 数据帧格式: 总线寻址 ...

  2. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)

    参考:基于STM32-Oled(IIC)的使用 作者:奋斗的小殷 发布时间: 2021-05-07 13:09:26 网址:https://blog.csdn.net/boybs/article/de ...

  3. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、单总线获取DHT11模块温湿度并通过IIC显示到屏幕(软件IIC)

    参考:基于stm32软件IIC的oled显示温湿度 作者:ZPZ DayUp 发布时间: 2021-07-25 20:52:43 网址:https://blog.csdn.net/m0_5619768 ...

  4. 浅谈 IIC I2C 总线协议

    简介 IIC(也称I2C或I2C)总线是Philips公司开发的一种简单.双向二线制同步串行总线,是Inter-Integrated Circuit的缩写. IIC只用两条双向线,一条SDA(Seri ...

  5. CAN通讯程序C语言,嵌入式C语言环境下的CAN总线通讯协议

    培训.咨询.项目开发,请与[思想]联系 1.结构体 通过前面文章<>的介绍,对于CAN通讯协议有三个非常重要的信息,分别是报文ID.数据场.解析与偏移.实现通讯协议的第一步就是定义一个报文 ...

  6. 浅谈网络之“TCP协议”

    下图是一次TCP通讯的时序图.TCP连接建立断开.包含大家熟知的三次握手和四次握手. 首先客户端主动发起连接.发送请求,然后服务器端响应请求,然后客户端主动关闭连接.两条竖线表示通讯的两端,从上到下表 ...

  7. IIC(I2C)通讯协议详解(7位寻址)

    文章目录 写在前面 内容 什么是IIC SDA .SCL线 IIC是多主机总线 IIC通讯流程 数据有效性 起始和停止符 传输数据和响应 ★★ 数据格式(先就7位地址格式) 主机- -发送器 发送到 ...

  8. 浅谈1394总线的那点事

    随着航空电子技术发展,总线技术已经成为航空电子系统最重要的组成部分.由于航空及航天电子系统的构造变的更加复杂,整个系统的数字化信息量急剧增加,所以传统的RS232.ARINC429.CAN等总线已经不 ...

  9. 趣谈计算机网络1 - 通讯协议综述

    前言: 本文为<趣谈网络协议>学习笔记,原文地址:趣谈网络协议_网络协议_网络编程-极客时间 一.概述 1. 商城购物的流程 a. 网络协议三要素 状态:200/404等 首部 内容 例子 ...

最新文章

  1. Linux学习(十五)---Python定制篇---apt软件管理和远程登录
  2. 【Xamarin开发 Android 系列 4】 Android 基础知识
  3. set在python中什么意思_python中set是什么意思
  4. word中安装MathType
  5. Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别?
  6. Highcharts教程--把js代码从html中抽离出来,放到单独的一个js文件中。由html页面调用...
  7. rxjs 怎么使用_使用RxJS Observables进行SUPER SAIYAN
  8. PlaceholderTextView
  9. 哪里可以免费下载ps字体?【附字体安装教程】
  10. 计算机如何驱动无线网络,无线网卡驱动怎么安装,小编教你怎么给电脑安装无线网卡驱动...
  11. Android 小米推送服务集成
  12. 每月的第一个工作日执行的corn表达式
  13. 资源汇总 | 墨天轮2021年数据库技术直播回顾
  14. 解读72篇DeepMind深度强化学习论文
  15. python实现泊松分布_常见的分布及如何使用python实现
  16. 2172php,MAX2172 直接变频至低IF的调谐器,用于数字音频广播
  17. db4o官方停止支持及面向对象数据库的一些感想
  18. 小鼠肺内皮细胞 (MPEC)
  19. ServiceDesk Plus IT自主服务平台
  20. 酒店预订系统源码c语言,HotelManage - 源码下载|系统编程|源代码 - 源码中国

热门文章

  1. Unity3D 2021.1.2F1 发布了。赋国际版本下载地址。
  2. idea下实现tomcat热部署(修改class等不重启项目)
  3. jq和js的关系_jquery与js的区别是什么?
  4. U8修改消息任务内的单据显示模板
  5. 好人不长命 祸害遗千年
  6. 2只继电器控制三相电机正反转
  7. 直流电机(BLDC)转速和频率的计算关系
  8. Proteus8仿真:51单片机IrLink红外发送加接受模块的使用
  9. Win10任务栏程序设置显示最近使用项
  10. 《计量经济学》学习笔记之一元线性回归模型