IIC总线学习笔记
IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I²C的正确读法为“I平方C”("I-squared-C"),而“I二C”("I-two-C")则是另一种错误但被广泛使用的读法。自2006年10月1日起,使用I²C协议已经不需要支付专利费,但制造商仍然需要付费以获取I²C从属设备地址。
常见术语介绍:
三种不同的通信方式: 单工、半双工、全双工。

串行传输和并行传输。串行传输是设备之间的数据传输,传输中只有一个数据位。并行传输是指在多个并行通道上分组同时传输数据。它是同时在设备之间传输多个数据位。

IIC总线是一种串行、半双工、近距离、低速总线。
I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。

I2C总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。
知识笔记:1、I2C是一个多主机总线,但同一时间只能有一个主机。2、主机有权发起和结束一次通信。3、I2C在同一时间,只能有一个主机使用总线,I2C具有冲突检测和仲裁的功能,当总线上有多个主机使用主线时,I2C会仲裁,选择合适的主机优先使用总线。4、在通信时,发送数据的叫:发送器,接收器的数据:接收器。5、每个连接I2C总线上的设备都有唯一一个地址(7位)。6、每个器件可作主机也可作从机。(同一时刻只能有一个主机)。7、增加或删除设备,不影响其他器件正常工作。
I2C的通信过程:
1、主机发送起始信号,启用总线。
2、主机发送一个字节信号,指明从机地址,和后续字节的传递方向。

最后一位指明传递方向,0 表示 主机→从机。 1表示 从机 → 主机。
3、被寻址从机发送应答信号给主机。
4、发送器发送一个字节数据。
5、接收器发送应答信号回应发送器。
循环 4&5
n、通信完成后,主机发送停止信号释放总线。
I2C的四个主要信号。

启动和停止信号都是由主机发送,由主机控制总线的占用和释放。
SCL 为 高电平 SDA 由高变低 表示起始信号
SCL 为 高电平 SDA 由低变高 表示停止信号

字节传送:数据传送时,串行传输。发送器先传送最高位,后传送最低位。

发送器发送一个字节数据,接收器发送一位应答位回答发送器,一帧共9位。
应答:低电平 0
非应答: 高电平 1
I2C的同步信号: 在通信时,同步接收器和发送器的时序,目的保持数据传输正确。
SCL 为 低电平 SDA 数据线发送一位数据,允许数据变化。
SCL 为 高电平 SDA数据线上不允许数据变化 ,必须保持稳定。

I2C的典型时序

参考资料:
1、IIC(Inter-Integrated Circuit(集成电路总线))_百度百科 (baidu.com)
IIC总线学习笔记的更多相关文章
- IIC驱动学习笔记,简单的TSC2007的IIC驱动编写,测试
IIC驱动学习笔记,简单的TSC2007的IIC驱动编写,测试 目的不是为了编写TSC2007驱动,是为了学习IIC驱动的编写,读一下TSC2007的ADC数据进行练习,, Linux主机驱动和外设驱 ...
- IIC协议学习笔记
"移植"的重要性:并非所有的电路都得自己设计,到了一定阶段,"移植"也是一种学习能力.--CrazyBingo 转眼间期末又到了,最近开始了所谓的期末总预习,比 ...
- IIC总线学习
IIC总线 IIC协议简要说明: 1.2条双向串行线,一条数据线称为SDA,一条时钟线SCL,双向半双工 2.传输的设备之间只是简单的主从关系,主机可以作为主机发送也可以作为主机接收,任何时候只能由一 ...
- openrisc 之 Wishbone总线学习笔记——接口信号定义
这部分内容就是copy下来的,网上到处都有.先看看接口啥样子,在详细说明 接口定义copy http://blog.csdn.net/ce123/article/details/6929897.百度文 ...
- openrisc 之 Wishbone总线学习笔记——总线互联
一,总线命名规范 1,wishbone总线接口信号都是高电平有限 2,wishbone接口信号都是以 _i ,或者是 _o 结束.i表示输入, o表示输出. ()表示该信号为总线信号,总线位宽可以大于 ...
- openrisc 之 Wishbone总线学习笔记——总线特性
特性: 一,互联方式: 支持点到点.共享总线.十字交叉(Crossbar)和基于交换结构(Switch fabric)的互联. 二,数据操作方式:单次读/写操作.块读/写操作,读改写(RMW,Read ...
- PCI 总线学习笔记
转载请注明出处:http://blog.csdn.net/lg2lh/article/details/8042008 PCI的基本协议这里就不介绍了,由于一般的芯片协议都是集成好的,我仅仅须要大体了解 ...
- CAN总线学习笔记
1.CAN总线信息包的格式 问题: 1.CAN总线的初始化要初始化哪些东西? 2.处理器如何与CAN总线之间进行连接? 硬件连接 关于CC2底盘CAN通信的协议格式 备注: 设备地址为01 功能码
- 004:ZYNQ_AXI总线学习笔记(1)
1. WHAT IS AXI? AXI是一种高级可扩展接口,是ARM AMBA的一部分. 2. WHAT IS AMBA? AMBA是高级微控制器总线架构,开放的片内互联总线标准. 3.A ...
- 基于51单片机IIC通信的PCF8591学习笔记
引言 PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入.一个输出和一个串行I2C 总线接口.3 个地址引脚A0.A1 和A2 用于编程硬件地址,允许将最多8 个器件连接 ...
随机推荐
- 机器视觉基本理论(opencv)
1. 什么是图像采样 采样是按照某种时间间隔或空间间隔,将空间上连续的图像变换成离散点的操作称为图像采样 2. 什么是图像分变率 采样 得到的离散图像的尺寸称为图像分辨率.分辨率是数字图像可辨别的最小 ...
- pycharm eslint should be on a new line
修改前: "vue/max-attributes-per-line": [2, { "singleline": 10, "multiline" ...
- 【Vue2.x源码系列08】Diff算法原理
什么是虚拟DOM DOM是很慢的,其元素非常庞大,当我们频繁的去做 DOM更新,会产生一定的性能问题,我们可以直观感受一下 div元素包含的海量属性 在Javascript对象中,虚拟DOM 表现为一 ...
- [ARC114D] Moving Pieces on Line 解题报告
AT题面 简要题意 有一个红色的数轴,相邻两个整点之间连有一条边,所有边初始为红色.数轴上有 \(n\) 个棋子,将一个棋子从 \(a\) 位置移到 \(b\) 位置,可以将 \((a,b)\) 之间 ...
- Kubernetes GoRoutineMap工具包代码详解
1.概述 GoRoutineMap 定义了一种类型,可以运行具有名称的 goroutine 并跟踪它们的状态.它防止创建具有相同名称的多个goroutine,并且在上一个具有该名称的 goroutin ...
- java中接口,抽象类,具体类之间的关系
抽象类实现接口,具体类继承于抽象类
- Vagrant 学习笔记:搭建 K8s 集群
Vagrant学习笔记:搭建K8s集群 通常情况下,我们在使用VMware.VirtualBox这一类虚拟机软件创建虚拟开发环境时,往往需要经历寻找并下载操作系统的安装镜像文件,然后根据该镜像文件启动 ...
- .NET Core 程序实现 Windows 系统 Development、Staging、Production 三种环境的无感部署
〇.前言 日常开发中,程序的环境切换是相当频繁的了,如果不同环境中的某些参数不同,那就需要每次编辑之前手动进行修改,比较麻烦,效率低下. 本文将以 .NET Core WebAPI 项目的配置方法为例 ...
- R EnhancedVolcano 绘制火山图
火山图是用于差异表达分析结果可视化的一种有效方法.今天,我们来介绍一个用于增强火山图绘制的强大 R 包:EnhancedVolcano ,该包拥有强大的绘图功能,用户可以简单的通过设置颜色.形状.大小 ...
- THM武器化
Weaponization thm:https://tryhackme.com/room/weaponization 武器化 了解和探索常见的红队武器化技术.您将学习使用业内常见的方法构建自定义有效载 ...