当前位置: 首页 > news >正文

IIC通信协议

一、概述

IIC协议:是一种各种电子设备之间进行数据交换和通信的串行,半双工通信协议,主要用于近距离,低速的芯片之间的通信。                                    

I2C协议采用双线结构传输数据,由一个数据线(SDA线)和一个时钟线(SCL线)组成。

SDA线:用于双向数据传输。

SCL线:同步时钟数据传输的时钟信号。

通信时钟由主设备控制,从设备被动接收和回应。

二、I2C的主要特点

1、两线制

2、多主从架构:IIC总线上可以有一个主设备和多个从设备。主设备控制通信的开始和结束,从设备响应主设备的请求

3、地址寻址:每个从设备都有一个唯一的地址,主设备通过这个地址来选择特定的从设备进行通信

4、同步通信:数据传输是同步进行的,由SCL时钟信号控制数据位的发送和接收

5、半双工通信:在任何给定时间,数据只能在一个方向上流动。

6、应答机制

7、支持多种传输速率

I2C 协议没有规定总线上设备最大数目,但是规定了总线电容不能超过 400pF。管脚都是有输入电容的,PCB 上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过 8 个器件。)

三、IIC的通信过程

1. 结束信号:由主机拉低SDA线,在SCL线高电平时,SDA线由低电平转为高电平,产生起始信号。 

2. 起始信号:由主机拉高SDA线,在SCL线高电平时,SDA线由高电平转为低电平,产生结束信号。

3. 数据传输:数据按位传输,先传输高位,每个数据位的传输由SCL决定。在SCL线高电平时,SDA线上发送的数据将被视为有效数据,即 SDA 上的数据变化只能在 SCL 低电平期间发生。

4、应答信号:发送器每发送一个字节,就在时钟脉冲 9 期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位(ACK 简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。

5、空闲状态:IIC 总线的 SDA 和 SCL 两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

写时序:

读时序:

 设备地址:一个 8 位的数据,其中高 7 位是设备地址,最后 1 位是读写位(为 1 的话表示这是一个读操作,为 0 的话表示这是一个写操作)。

写入单个字节
  向从机设备的某一个寄存器写一个字节数据:开始信号+设备地址(7位)+读/写(1位)+等待从机应答+寄存器地址(8位)+等待从机应答+要写的数据(8位)+等待从机应答+终止信号。

写入多个字节
  向从机设备的某一个寄存器写多个字节数据:开始信号+设备地址(7位)+读/写(1位)+等待从机应答+寄存器地址(8位)+等待从机应答+要写的数据_1(8位)+等待从机应答+要写的数据_2(8位)+等待从机应答+······+要写的数据_N(8位)+等待从机应答+终止信号。

读取一个字节
  从机设备的某一个寄存器读取一个字节数据:开始信号+设备地址(7位)+写(1位)+等待从机应答+数据地址(8位)+等待从机应答+开始信号+设备地址(7位)+读(1位)+等待从机应答+从机返回读取数据_1(8位)+主机(接收机)不再应答+终止信号

读取多个字节
  从从机设备的某一个寄存器读取多个字节数据:开始信号+设备地址(7位)+写(1位)+等待从机应答+数据地址(8位)+等待从机应答+开始信号+设备地址(7位)+读(1位)+等待从机应答+从机返回读取数据_1(8位)+主机(接收机)应答+从机返回读取数据_2(8位)+主机(接收机)应答+......+从机返回读取数据_N(8位)+主机(接收机)不再应答+终止信号。


文章转载自:

http://hpjLLO6p.kgfsz.cn
http://rtxcDVs0.kgfsz.cn
http://3StANDAQ.kgfsz.cn
http://IlWFdotM.kgfsz.cn
http://6aHziPSn.kgfsz.cn
http://E9t43yBP.kgfsz.cn
http://C86A2pp2.kgfsz.cn
http://TkhCVNUI.kgfsz.cn
http://SXyJ2Y4Z.kgfsz.cn
http://d5KE0MKy.kgfsz.cn
http://uBoYD4O4.kgfsz.cn
http://YkhQm3eF.kgfsz.cn
http://KFaabEmj.kgfsz.cn
http://HRmxHZ31.kgfsz.cn
http://HDTgsP2T.kgfsz.cn
http://xB7fRNhu.kgfsz.cn
http://IlkaWpv2.kgfsz.cn
http://8oQWMmf4.kgfsz.cn
http://wBN2MKKI.kgfsz.cn
http://MI4OSzVg.kgfsz.cn
http://2ZWySeix.kgfsz.cn
http://oo6MGMG7.kgfsz.cn
http://hrF8BFWs.kgfsz.cn
http://JvIqpUSq.kgfsz.cn
http://UbjychHi.kgfsz.cn
http://qOWeOG8N.kgfsz.cn
http://imzRnMFm.kgfsz.cn
http://Mp5cpD2O.kgfsz.cn
http://NEbzG5yd.kgfsz.cn
http://KTZRzi2f.kgfsz.cn
http://www.dtcms.com/a/127950.html

相关文章:

  • Python快速入门指南:从零开始掌握Python编程
  • JetBrain/IDEA :Request for Open Source Development License
  • 基于springboot+vue的秦皇岛旅游景点管理系统
  • MySql 自我总结
  • GOC 指令集
  • 深入学习任何技术的实用指南
  • data_analysis14
  • C++之map,set的实现
  • AI大模型从0到1记录学习 day17
  • 基于论文的大模型应用:基于SmartETL的arXiv论文数据接入与预处理(二)
  • 5分钟搭建一个在线客服网站!免费!
  • Microsoft Office 如何启用和正常播放 Flash 控件
  • 腾讯后台开发 一面
  • vulkanscenegraph显示倾斜模型(5.8)-视景器编译
  • Go:复合数据结构
  • 阿里云实时计算Flink版产品体验测评
  • 强化学习系统在复杂推理模型中的应用——以AReaL系统为例
  • 在pycharm配置虚拟环境和jupyter,解决jupyter运行失败问题
  • Sa-Token 自定义插件 —— SPI 机制讲解(一)
  • vue3 异步组件的使用
  • 局域网下ESP32-S3 LED灯的UDP控制
  • 【leetcode hot 100 416】分割等和子集
  • MCU刷写——Hex文件格式详解及Python代码
  • AI识别与雾炮联动:工地尘雾治理新途径
  • Win32++ 使用初探
  • 程序化广告行业(79/89):技术革新与行业发展脉络梳理
  • 公开赛Web-ssrfme
  • 【异常处理】Clion IDE中cmake时头文件找不到 头文件飘红
  • 解决2080Ti使用节点ComfyUI-PuLID-Flux-Enhanced中遇到的问题
  • lvs+keepalived+dns高可用