2、IIC

(1)基本概念

  • IIC总线是一种串行、半双工总线,同步通信、主要用于近距离、低速的芯片之间的通信。
  • IIC串行总线一般有两根信号线,一根是双向的数据线SDA收发数据,另一根是时钟线SCL双方时钟同步。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。
  • IIC是真正的多主机总线,(IIC可以在通讯过程中,改变主机)。如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。
  • 多个IIC器件可以并联在IIC总线上,每个器件有特定的地址,分时共享IIC总线。连接到IIC总线上的设备既可以用作主设备,也可以用作从设备。
  • 主设备负责控制通信,通过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生。
  • 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s ,高速模式下可达3.4Mbit/s。

(2)硬件连接

IIC 总线由两根信号线和一根地线组成。两根信号线都是双向传输的。IIC协议标准规定发起通信的设备称为主设备,主设备发起一次通信后,其它设备均为从设备。


注意:实际使用中,一般是单片机作为主机,其它器件作为从机,单片机先向器件发送信息表示要读取数据,之后转变传输方向,器件发送数据到单片机。

(3)通信过程
当总线空闲时,SDA 和SCL 都处于高电平状态,当主机要和某个从机通讯时,会先发送一个开始条件,然后发送从机地址和读写控制位,接下来传输数据(主机发送或者接收数据),数据传输结束时主机会发送停止条件。传输的每个字节为8 位,高位在前,低位在后。

  • 开始条件(启用总线):SCL 为高电平时,主机将SDA 拉低,表示数据传输即将开始。
  • 从机地址:主机发送的第一个字节为从机地址,高7 位为地址,最低位为R/W 读写控制位,1 表示读操作,0 表示写操作。

一般从机地址有7 位地址模式和10 位地址模式两种,如果是10 位地址模式,第一个字节的头7 位是11110XX 的组合,其中最后两位(XX)是10 位地址的两个最高位,第二个字节为10 位从机地址的剩下8 位,如下图所示:

Start A6 A5 A4 A3 A2 A1 A0 R/W ACK
Start 1 1 1 1 0 A9 A8 R/W ACK A7 A6 A5 A4 A3 A2 A1 A0 ACK
  • 应答信号:每传输完成一个字节的数据,接收方就需要回复一个ACK(acknowledge)。写数据时由从机发送ACK,读数据时由主机发送ACK。当主机读到最后一个字节数据时,可发送NACK(Notacknowledge)然后跟停止条件。
  • 数据:从机地址发送完后可能会发送一些指令,依从机而定,然后开始传输数据,由主机或者从机发送,每个数据为8 位,数据的字节数没有限制。
  • 重复开始条件:在一次通信过程中,主机可能需要和不同的从机传输数据或者需要切换读写操作时,主机可以再发送一个开始条件。
  • 停止条件(释放总线):在SDA 为低电平时,主机将SCL 拉高并保持高电平,然后在将SDA 拉高,表示传输结束。

(4)IIC总线优点

  • 简单的两线串行 IIC 总线,节省 PCB 布板走线空间。
  • 完全集成的 IIC总线协议消除了地址解码器。
  • 标准支持广泛,大量无铅封装 I2C 总线兼容集成芯片进一步降低了空间需求。
  • 控制方式简单、器件封装形式小、通信速率较高。
    **温馨提示:**下一章节将讲述SPI通信协议。

常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(二)相关推荐

  1. 嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议

    文章首发于同名微信公众号:DigCore 欢迎关注同名微信公众号:DigCore,及时获取最新技术博文. 原文链接:https://mp.weixin.qq.com/s/amO7rGkqFJtCzuy ...

  2. 常用的嵌入式硬件通信接口协议(UART、IIC、SPI、RS-232、RS-485、RS-422、CAN、USB、IRDA)(一)

    一.概述 通信协议是两个(或多个)设备之间进行通信,必须要遵循的一种协议.通讯协议分为物理层和协议层. 物理层:规定通讯系统中具有机械.电子功能部分的特性,确保原始数据在物理媒体的传输: 协议层:规定 ...

  3. 硬件基础:理解串口通信以及232,485,422常见问题

    这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲.因为更多的时候,都是产品做好了,比如触摸屏需要和控制器,PLC通信.理想的情况下,一般只要一上电,不需要太多的操作和配置,就可以通信上. 在这里 ...

  4. 单片机-硬件接口(UART/IIC/SPI/RS232/USB/CAN)异同

    1.中文名  USART:通用同步异步收发器   UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)  I2C(INTER IC BUS ...

  5. 串口及串口通信硬件详解UART,I2C,SPI,USB

    1.计算机与计算机或计算机与终端之间的数据传送串行通讯和并行通讯二种方式 1.1.串行通信 和 并行通信 并行通讯通常可以一次传送8bit.16bit.32bit甚至更高的位数,相应地就需要8根.16 ...

  6. 嵌入式四大通信接口的解释

    UART / IIC / SPI / WIRE 1. 裘千丈轻功水上漂之UART 射雕英雄传中的裘千丈说,UART就是我的轻功水上漂过河.想从河上过(通信),提前布暗桩,行走时步伐按桩距固定(波特率提 ...

  7. 【硬件通讯协议】SIP总线协议以及模拟(软件)SPI

    参考资料 NXP 官方网站提供的 SPI 总线规范 S12SPIV4.pdfhttps://www.nxp.com/files-static/microcontrollers/doc/ref_manu ...

  8. 【回眸】牛客网刷刷刷!嵌入式软件中也会遇到的嵌入式硬件,通讯,通讯协议专题(一)

    前言 最近继续刷题,看看嵌入式软件还需要了解一些嵌入式硬件中的通讯协议和常用接口协议 比如说SPI CAN I2C 通讯协议专题 1.波特率 波特率= 每秒传送的字符数 * 字符位数.串口的工作模式为 ...

  9. 嵌入式硬件入门——Flash Memory(W25Q64+SPI协议)

    Flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失. 文章目录 Flash Fla ...

最新文章

  1. 百度SEO站群Emlog最新付费模板带会员 做资源网不错
  2. modbus连续读取时数据不正确_使用MODBUS协议与传感器、工控屏对接时碰到的问题...
  3. 百度Apollo放出豪言:下半年每月上市一款新车
  4. 腾讯疯狂扩展7000人!我居然挂在了项目这块。。。
  5. Lesson 3 上机练习题——继承
  6. sublime能编译PHP吗,让sublime编译php、js
  7. OpenCv中 width 和 widthStep的区别
  8. 国内期刊 CCT 模板编译经验
  9. 常用Dos命令及打开方式
  10. 用Python制作核酸检测日历
  11. oracle误删除数据恢复
  12. 油管YouTube直播点赞订阅提示PR字幕Mogrt动态图形模板
  13. 2017146期计算机开机号,[彩吧]福彩3D17147期开机号103
  14. 服务器合租速度的决定因素
  15. 三角形面积的两种计算方法
  16. Android数据传输加密(一):Base64转码算法
  17. 传说中的“睡眠算法”的输出分析
  18. 怎样提高解决问题的能力
  19. npm i -4048错误
  20. 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校副教授Dan Zhang:基于线性规划的近似动态规划方面的一些最新成果...

热门文章

  1. Eth-Trunk的配置
  2. 超级壁纸android,【教程】MIUI最新超级壁纸安卓全机型安装指南
  3. 主成分分析法及特征值的含义
  4. BBS 与 BLog(博客)的区别到底是什么?[转载]
  5. Maven ArtifactDescriptorException: Failed to read artifact descriptor for com.sun.mail 异常
  6. 计算机网络-因特网概述
  7. 微信小程序 button 按钮
  8. 第二十章:因特网协议第四版(IPv4):转发和本地传递
  9. 持续集成:通过Jenkins API创建项目和节点
  10. 狂神Javaweb笔记