提供多主机功能,STM32的I2C通信简析

MCU开发加油站 2018-01-26 09:37 次阅读

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:

• 只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;

• 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;

• 它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

• 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;

• 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。

其典型的接口连线如下:

I2C的协议很简单:

数据的有效性

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

起始和停止条件

SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;

SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。

字节格式

发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须处理一个响应位。

应答响应

数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放SDA 线(高)。   

在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。

也就是说主器件发送完一字节数据后要接收一个应答位(低电平),从器件接收完一个字节后要发送一个低电平。

寻址方式(7位地址方式)

第一个字节的头7 位组成了从机地址,最低位(LSB)是第8 位,它决定了传输的 普通的和带重复开始条件的7位地址格式方向。第一个字节的最低位是

“0”,表示主机会写信息到被选中的从机;

“1”表示主机会向从机读信息。当发送了一个地址后,系统中的每个器件都在起始条件后将头7 位与它自己的地址比较,如果一样,器件会判定它被主机寻址,至于是从机接收器还是从机发送器,都由R/W 位决定。

仲裁

I2C是所主机总线,每个设备都可以成为主机,但任一时刻只能有一个主机。

stm32至少有一个I2C接口,提供多主机功能,可以实现所有I2C总线的时序、协议、仲裁和定时功能,支持标准和快速传输两种模式,同时与SMBus 2.0兼容。

MCU开发加油站 技术专区

原文标题:STM32的I2C通信

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

重大事件快讯:高通收购NXP加码16%至440亿美元

1.高通收购NXP加码16%至440亿美元,每股127.5美元; 集微网消息,高通周二将收购荷兰汽车....

的头像 社区化 发表于 02-21 11:10 次阅读 0条评论
重大事件快讯:高通收购NXP加码16%至440亿美元

STM32定时器产生PWM彻底应用

这次学习STM32花了很长时间,一个礼拜多,也有颇多收获,学习过程也有颇多曲折。这次的任务是:用ST....

发表于 02-11 11:26 次阅读 0条评论
STM32定时器产生PWM彻底应用

STM32基础PWM输出

目的:基础PWM输出,以及中断配合应用。输出选用PB1,配置为TIM3_CH4,是目标板的LED6控....

发表于 02-10 16:47 次阅读 0条评论
STM32基础PWM输出

stm32寄存器版矩阵键盘库函数(附详细注释)

新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合....

发表于 02-09 11:48 次阅读 0条评论
stm32寄存器版矩阵键盘库函数(附详细注释)

stm32矩阵键盘原理图及程序介绍

STM32F0 系列产品基于超低功耗的 ARM Cortex-M0 处理器内核,整合增强的技术和功能....

的头像 beanxyy 发表于 02-09 11:30 次阅读 0条评论
stm32矩阵键盘原理图及程序介绍

基于FPGA/DSP技术的飞机总线系统通讯软件设计

目前,随着工艺和技术的进步,集成电路技术的发展已经使得在一个芯片上集成一个可编程系统(Program....

发表于 02-08 15:02 次阅读 0条评论
基于FPGA/DSP技术的飞机总线系统通讯软件设计

STM32的GPIO输出编程实例之点亮三色LED

本实验通过STM32的三个GPIO口驱动三色LED的三个通道,将GPIO设置为推挽输出模式,采用灌电....

的头像 畅学单片机 发表于 02-07 11:14 次阅读 0条评论
STM32的GPIO输出编程实例之点亮三色LED

STM32的GPIO输入编程实例之读取按键状态

按键的一端与STM32的GPIO(PH15)相连,另外一端接地,且PH15外接一个1K电流大小的上拉....

的头像 畅学单片机 发表于 02-10 11:08 次阅读 0条评论
STM32的GPIO输入编程实例之读取按键状态

基于ARM Cortex-M4核的低功耗MCU--LPCXpresso54628详解

NXP公司的LPCXpresso54628是基于ARM Cortex-M4核的低功耗MCU,具有丰富....

发表于 02-06 16:23 次阅读 0条评论
基于ARM Cortex-M4核的低功耗MCU--LPCXpresso54628详解

贸泽电子开始供应恩智浦(NXP)S32V234视觉与感测融合处理器

贸泽电子(Mouser)即日起开始供应恩智浦(NXP)S32V234视觉与感测融合处理器。S32V2....

发表于 02-05 05:55 次阅读 0条评论
贸泽电子开始供应恩智浦(NXP)S32V234视觉与感测融合处理器

串口通信协议stm32

串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用....

发表于 02-01 16:22 次阅读 0条评论
串口通信协议stm32

基于STM32实现孤立词语音识别系统

语音识别是机器通过识别和理解过程把人类的语音信号转变为相应文本或命令的技术,其根本目的是研究出一种具....

发表于 01-31 19:23 次阅读 0条评论
基于STM32实现孤立词语音识别系统

基于CAN总线的在线更新机制的设计实现

LPC11C24支持32个向量中断,中断向量表默认位于FLASH的第一个4KB空间,地址从0x000....

发表于 02-15 22:24 次阅读 0条评论
基于CAN总线的在线更新机制的设计实现

NXP的S32V234视觉和传感器融合处理器在贸泽开售为ADAS 应用提供64位处理功能

2018年1月26日 – 最新半导体和电子元件的全球授权分销商贸泽电子 (Mouser Electr....

的头像 人间烟火123 发表于 01-30 11:33 次阅读 0条评论
NXP的S32V234视觉和传感器融合处理器在贸泽开售为ADAS 应用提供64位处理功能

多功能车辆总线,深扒MVB协议

随着铁路的快速发展,多功能车辆总线(MVB)协议作为列车通信网络(TCN)的重要组成部分,其已经成为....

发表于 01-30 07:03 次阅读 0条评论
多功能车辆总线,深扒MVB协议

一款基于stm32的毕业设计方案

设计选用STM32单片机作控制器,设计温度单反馈的控制系统,对电加热水器内水的温度进行控制。通过PT....

发表于 01-29 14:22 次阅读 0条评论
一款基于stm32的毕业设计方案

基于stm32的电子秤方案大全(二款stm32的电子秤设计方案)

 电子秤(英文名:electronic balance)是衡器的一种,是利用胡克定律或力的杠杆平衡原....

发表于 01-29 12:05 次阅读 0条评论
基于stm32的电子秤方案大全(二款stm32的电子秤设计方案)

基于stm32的8m晶振不起振的原因解析

晶振不起振原因分析: (1) PCB板布线错误; (2) 单片机质量有问题; (3....

的头像 畅学单片机 发表于 01-26 15:41 次阅读 0条评论
基于stm32的8m晶振不起振的原因解析

NXP单片机怎样选型方法

NXP半导体微控制器 一、LPC2300系列ARM将串行通信进行到底 在如今信息化的时代,信息化技术....

发表于 01-26 12:22 次阅读 0条评论
NXP单片机怎样选型方法

深入了解USB驱动之总线驱动程序

总线驱动是不用改的,内核都帮我们做好了,为了了解整个USB驱动的体系,我们来分析一下总线驱动程序。

的头像 嵌入式ARM 发表于 01-26 11:30 次阅读 0条评论
深入了解USB驱动之总线驱动程序