嵌入式开发学习日志39——stm32之I2C总线物理层与常用术语

在简单的了解完前面讲述的stm32的串口通信之后,让我们把目光转向串行总线I2C,其用于连接微控制器以及外围设备,同时也是一种被广泛采用的总线标准。

I2C通信设备的物理层具有诸多特点,不过在讲述这些特点前,我们先要对一些术语有些了解。

主机:启动数据传送以及产生时钟信号的设备。

从机:被主机寻址的器件。

多主机:同时多个主机尝试控制总线但不破坏传输的情形。

主模式:用I2CNDAT支持自动字节计数的模式。

从模式:发送和接收操作都由I2C自动控制。

仲裁:当多个主机在同一时间想要控制总线但只允许其中一个控制并进行传输并不破坏传输的过程。

当了解完这些术语之后,下面正式介绍物理层的一些特点。

首先I2C是一个支持多设备接入的总线,这些设备共用这一根线,而接入总线的通讯设备就是上面提到的主机以及从机。

一个I2C总线只有两条线路,一条被称为双向串行数据线,顾名思义,就是用来发送数据(半双工,并非全双工),另一条是串行时钟线,用于数据收发的同步。

当主机或者从机接入到I2C总线之后,都会被分配到一个独立地址,这个地址有什么用呢?在主机顺着总线想要找对应的从机时,就要通过寻址的方式找到从机的独立地址,进而对从机进行访问。就像课堂里老师用学号点名,每个人都有各自的学号,那么老师要知道你去没去上课,只需要看点学号之后有没有人回应即可。

I2C总线一般通过上拉电阻连接到电源,在空闲时,会输出高阻态,如果所有接入总线的设备全部空闲,此时I2C就会通过上拉电阻自动将电平拉到高电平。注意,这里使用I2C进行输出时,设置的是开漏输出模式,而非我们常用的推挽输出。

既然I2C接入了这么多设备,那当多个主机同时要使用总线,岂不是分不清谁是谁了么?欸,这里就用到了上面提到的仲裁的方式来避免这样的情况发生。

I2C总共有三种传输模式,按照传输速率划分,可以分为标准模式(100kbit/s),快速模式(400kbit/s),常用的也是这个,还有高速模式(3.4Mbit/s),但是绝大多数的I2C设备不支持高速,所以这里也不推荐。

既然提及了通信,光有物理层肯定是不够的,下一章会详细讲述有关I2C的协议层部分,看看I2C通信数据的传输都有什么标准和限制。

相关推荐
默默开发13 分钟前
完整版:本地电脑 + WiFi 搭建 AI 自动炒股 + 自我学习系统
人工智能·学习·电脑
for_ever_love__15 分钟前
Objective-C学习 NSSet 和 NSMutableSet 功能详解
开发语言·学习·ios·objective-c
LCMICRO-133108477461 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
盐水冰8 小时前
【烘焙坊项目】后端搭建(12) - 订单状态定时处理,来单提醒和顾客催单
java·后端·学习
Hello小赵8 小时前
视频压缩编码学习(一)—— 基础知识大集合
学习
逐步前行9 小时前
STM32_TIM_寄存器操作
stm32·单片机·嵌入式硬件
似水明俊德9 小时前
02-C#.Net-反射-学习笔记
开发语言·笔记·学习·c#·.net
0南城逆流010 小时前
【STM32】知识点介绍七:PWM功能
stm32·单片机·嵌入式硬件
智者知已应修善业10 小时前
【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25
经验分享·笔记·单片机·嵌入式硬件·算法·51单片机
dashizhi201510 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑