IIC通信协议总结

Posted haoaoooooo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIC通信协议总结相关的知识,希望对你有一定的参考价值。

前言

最近在复习通信协议相关的知识,故此做个总结。


概要

IIC(IIC,inter-Integrated circuit),两线式串行总线,用于MCU和外设间的通信。
IIC为同步通信,同步通信要求发收双方具有同频同相的同步时钟信号,IIC仅有一根时钟线。
IIC只需两根线:数据线SDA和时钟线SCL。以半双工方式实现MCU和外设之间数据传输,传输速率在标准模式下可以达到100kb/s,快速模式下可以达到400kb/s。

扩展

  • 全双工: 允许数据在两个方向上同时传输。
  • 半双工: 允许数据在两个方向上传输,但是同一时间数据只能在一个方向上传输。

IIC协议

1.IIC总线结构

在这里插入图片描述

2.通讯的具体流程

空闲状态:

SDA与SCL线都处于高电平状态。

起始信号与结束信号:

起始信号:由主机发起起始信号,SCL为高电平时,SDA电平发生高到低的变化,作为起始信号。
结束信号:SCL为高电平时,SDA电平发生低到高的变化,作为结束信号。
在这里插入图片描述

应答信号:

主机每发送完一个字节(8个脉冲),在第9个脉冲间释放总线,接收器返回一个应答信号(ACK),协议规定,低电平为有效应答,高电平为无效应答。
在这里插入图片描述

通信流程:

1.起始信号
2.写设备地址(每一个iic器件不一样,具体得看技术手册);
3.等待应答
4.确定写入的地址即WORD ADDRESS
5.等待应答
6.向SDA数据线上写入/读取数据DATA
7.等待应答
8.停止信号

具体案列

待编辑…

以上是关于IIC通信协议总结的主要内容,如果未能解决你的问题,请参考以下文章

IIC通信协议总结

IIC通信协议总结

通信协议:IIC协议的原理和模拟IIC的实现

iic通信协议是什么

SPI与IIC通信协议比对篇

Arduino IIC协议笔记