I2C总线之(一)---概述
- 概述:
I²C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。
I²C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。
SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发)
SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。
- 输出级
每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管,输入缓冲为一只高输入阻抗的同相器,这种电路具有两个特点:
1)由于SDA、SCL为漏极开路结构(OD),因此它们必须接有上拉电阻,阻值的大小常为 1k8, 4k7 and 10k ,但1k8 时性能最好;当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线"与"关系。
2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致,为"时钟同步"和"总线仲裁"提供了硬件基础。
- 主设备与从设备
系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型,由生产厂家制定,低3位为器件引脚定义地址,由使用者定义。主控器件通过地址码建立多机通信的机制,因此I2C总线省去了外围器件的片选线,这样无论总线上挂接多少个器件,其系统仍然为简约的二线结构。终端挂载在总线上,有主端和从端之分,主端必须是带有CPU的逻辑模块,在同一总线上同一时刻使能有一个主端,可以有多个从端,从端的数量受地址空间和总线的最大电容 400pF的限制。
- 主端主要用来驱动SCL line;
- 从设备对主设备产生响应;
二者都可以传输数据,但是从设备不能发起传输,且传输是受到主设备控制的。
4.速率:
普通模式:100kHz;
快速模式:400kHz;
高速模式:3.4MHz;
没有任何必要使用高速SCL,将SCL保持在100k或以下,然后忘了它吧。
P.S:时序部分将在第二天更新,FPGA实现在第三天。
I2C总线之(一)---概述相关推荐
- I2C总线之(二)---时序
一.协议 1.空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态.此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高. ...
- SylixOS iMX6平台I2C总线驱动
原理概述 I2C总线驱动概述 I2C总线驱动是I2C适配器的软件实现,提供I2C适配器与从设备间完成数据通信的能力,比如起始,停止,应答信号和MasterXfer的实现函数.驱动程序包含初始化I2C总 ...
- SylixOS 基于STM32平台的GPIO模仿I2C总线的驱动开发流程
2019独角兽企业重金招聘Python工程师标准>>> 概述 本文档以STM32F767平台为例,详细介绍SylixOS上GPIO模仿I2C总线的驱动开发流程. 初始化 GPIO模仿 ...
- I2C 总线原理与架构
一.I2C总线原理 I2C是一种常用的串行总线,由串行数据线SDA 和串行时钟线SCL组成.I2C是一种多主机控制总线,它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须 ...
- ESP32学习6:I2C总线
一.概述 I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART.CAN 等通讯协议的外部收发 ...
- I2C详解(3) I2C总线的规范以及用户手册(2) I2C其他的总线协议以及总线速度
I2C详解(3) I2C总线的规范以及用户手册(2) I2C 其他的总线协议以及总线速度 I2C详解(1) 一文快速了解I2C的工作原理 I2C详解(2) I2C总线的规范以及用户手册(1) I2C ...
- 【InterFace】I2C 总线详述
背景 昨天出去了一趟,人问:你熟悉什么?答:软硬件.结果,好尴尬. 硬件一般都做什么内容? 答:电源设计. 能说下升压.降压电路是怎么实现的吗? 答:不能.(Ps:后续增加 电源设计原理) 通讯都用到 ...
- Linux I2C总线详解
概述: 1.I2C概念 2.I2C硬件结构图 3.I2C总线初始化 4.I2C控制器device 节点添加及driver注册 5.I2C设备节点添加及driver注册 5.adapter设备及驱动添加 ...
- PCA9306—I2C总线和SMBus双向电平转换器
概述 PCA9306是一款支持I2C总线和SMBus的双向电平转换器,支持从1.0V-3.6V(Vref(1))到1.8V-5.5V(Vbias(ref)(2))的电平转换,并且带有使能输入. PCA ...
最新文章
- VS不显示最近打开的项目
- linux shell 合并文本
- 操作系统知识——互斥和死锁
- 这10个好习惯助你成为优秀的程序员
- Node.js Undocumented(2)
- java ee的小程序_扩展Java EE应用程序的基础
- Median(二分+二分)
- 童程童美机器人编程上海虹口校区_呼市童程童美少儿编程学习中心
- android能播放4k视频格式,四平台六款手机4K视频播放实测
- 包含资金约束的多阶段报童模型
- windowsXP消灭蓝屏的另类招式
- 迪文屏DMT12800K070_A2WTC踩坑实录(一)
- 领英给好友群发消息的方法和细节
- 错误Could not locate executable null\bin\winutils.exe in the Hadoop binaries的解决方案
- SLC、MLC、TLC闪存颗粒
- 计算机全键在线使用说明书,最全的电脑键盘所有键的功能说明,建议收藏!
- The First :使用Anaconda+pycharm学习图像处理
- 运营技巧|要如何提升用户留存率?
- 服务器主机型号,服务器的主机型号
- 八斗大数据清华班全链路 百度网盘