IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> IIC总线学习之一 -> 正文阅读

[嵌入式]IIC总线学习之一

IIC简要介绍

IIC英文全称Inter-Integrated Circuit,是一种串行通信总线,在线上可以存在多个主机以及多个从机。目的是为了让主板、嵌入式系统或手机用以连接低速周边设备,由飞利浦公司在上世纪80年代发明。

特征

	1、只要求两条总线线路,一条串行数据线(SDA),一条串行时钟线(SCL).
	2、每个连接到总线的器件都可以通过唯一的地址和一直存在的最简单的主机/从机关系软件设定地址;主机可以作为主机发送器或主机接收器。
	3、多主机总线,如果有两个或者两个以上主机同时初始化数据传输可以通过冲突检测或者仲裁防止数据被破坏。
	4、串行的8位双向数据传输在标准模式下可达100kbit/s,快速模式可达到400kbit/s,高速模式可到达3.4Mbit/s。
	5、片上滤波器可以滤去总线上的毛刺波,保证数据完整。
	6、连接到相同总线上的IIC器件数量只受到总线最大电容400pF的限制。

应用实例

概念

	IIC总线支持任何IC生产过程(NMOS、CMOS、双极性)。每个器件都有一个唯一地址识别,而且都可以作为一个发送器或者接收器。

IIC总线术语

硬件电路实现

两个主控器的IIC总线连接
SDA和SCL都是双向电路,都是通过一个直流源或者上拉电阻连接到正的电源电压。当总线空闲时,两条路都是高电平。连接到总线的器件的输出级必须是漏极开路或者是集电极开路才能执行***线与***的功能。
器件连接到总线方式

软件协议帧说明

位传输

由于连接到IIC总线的器件有不同的工艺,逻辑‘0’和逻辑‘1’的电平不是固定的,它由Vdd的相关电平决定。
每传输一个数据位就产生一个时钟脉冲。

数据的有效性

SDA线上的数据必须在时钟的高电平周期保持稳定。数据的高或低电平状态只有在SCL线是低电平时才能改变。
位传输

起始和停止条件

起始条件和停止条件一般由主机产生。总线在起始条件后被认为是***忙状态***,在停止后的某段时间后,总线再次被认为是***空闲状态***。
***起始条件***在SCL是高电平时,SDA由高电平向低电平切换。
***停止条件***在SCL是高电平时,SDA由低电平向高电平切换。
起始和停止条件

数据传输

字节格式

1、发送到SDA线上的每个字节必须是8位
2、每次传输的字节数量不受限制
3、每个字节后必须跟一个响应位
4、首先传输的是数据的最高位(MSB)
当从机正在处理其他事件(比如中断)才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平迫使主机进入等待状态。当从机准备好接收下一个字节并释放时钟线SCL后,数据继续传输。

响应

数据传输必须带响应。相关的响应时钟由主机产生。在响应的时钟脉冲期间,发送器释放SDA线(高电平),在响应期间,接收器必须将SDA线拉低,使它在这个时钟电平的高电平时期保持稳定的低电平。(考虑建立和保持时间)
IIC总线的数据传输
IIC总线的响应

仲裁和时钟发生

同步

当多主机存在时,每个主机都通过在SCL线上产生主机的时钟脉冲来传输报文。数据只在时钟的高电平周期有效,因此需要一个时钟来进行诸逐位仲裁。
SCL线被有最长低电平周期的器件保持低电平,此时低电平周期短的器件会进入高电平的等待状态。
当所有器件低电平周期结束后,时钟线被恢复为高电平。所有器件开始对高电平周期进行计数,首先完成高电平周期的器件会再次将SCL线拉低。

综上,产生同步时钟低电平周期由低电平时钟周期最长的器件决定,高电平周期由高电平周期最短的器件产生。
在这里插入图片描述

仲裁

当SCL线是高电平时,仲裁在SDA线产生。
仲裁过程

用时钟同步机制作为握手

时钟同步机制除了在仲裁过程使用外,还可以使能接收器处理字节级或位级的快速数据传输。
在字节级的快速传输中,器件可以快速接收数据字节,但需要更多的时间去保存接收到的字节或准备另一个要发送的字节。然后,从机以一种握手过程在接收和响应一个字节后使SCL线保持低电平,迫使主机进入等待状态,直到从机准备好下一个要发送的字节。
在位级的快速传输中,器件通过延长每个时钟总线的低电平周期减慢总线时钟。从而,任何主机的速率都可以适配这个器件的内部操作速率。

7位的地址格式

数据传输都遵从以下格式。在起始条件结束后,发送一个从机地址,紧接着第八位是数据方向位(R/W,'0’表示发送(写)、‘1’表示接收(读)),后面是一个响应信号。一般数据传输由主机产生的停止位终止。
完整的数据传输

数据传输格式

1、主机发送到从机(数据方向不变)
数据方向不变

2、在第一个字节后,主机由发送器变为接收器(数据方向改变)
数据方向改变

3、复合格式(传输方向改变时,起始条件和从机地址都会被重复)

复合格式

7位寻址

第一个字节的位定义

头7位为从机地址,最低位(LSB)是第8位。
第一字节定义
第一个字节中的位定义

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:38:55  更:2022-01-17 11:39:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:26:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码