0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

提供多主机功能,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兼容。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NXP
    NXP
    +关注

    关注

    60

    文章

    1214

    浏览量

    177222
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348735
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87206

原文标题:STM32的I2C通信

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

收藏 人收藏

    评论

    相关推荐

    M4C1294NCPDT怎么实现I2C通信

    我们想用TM4C1294NCPDT实现i2c总线的通信,即tm4c1294在主模式下实现数据的收发,作为主时可以收到总线上其他
    发表于 04-01 09:20

    【原创分享】STM32学习笔记|I2C详解

    地址查找从机I2C通常用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。很多外围器件采用I2C通讯接口访问。STM32I2C基础内容1、
    发表于 06-18 09:27

    SPI通信简

    串行(IO引脚较少)低速总线最常用的是SPI和I2CI2C(即IIC)是一种半双工总线(即同一时刻只能收或只能发),每个芯片只需提供两个两个引脚(SDA和SCL)即可实现块芯片间的
    发表于 08-12 07:04

    I2C总线的相关资料推荐

    16.1 I2C工作原理16.1.1 I2C串行总线概述I2C总线是PHLIPS公司推出的一种双线式串行总线,是具备主机系统所需的总线裁决
    发表于 11-29 06:41

    I2C总线驱动和设备驱动

    为400kbit/s常见iic设备eeprom触摸芯片温湿度传感器mpu6050(姿态传感器)…框架图I2C核心提供I2C总线驱动和设备驱动的注册方法、注销方法、I2C
    发表于 12-13 06:18

    I2C通信协议简介

    一.I2C通信协议简介1.物理层I2C物理层有以下特点:I2C是支持设备的总线,支持多个通讯主机
    发表于 01-13 07:20

    I2C总线简单介绍

    和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信I2C总线最主要的优点是其简单性和有效性。是一种主机总线;当主机
    发表于 01-14 07:10

    STM32I2C特性是什么?

    I2C通信协议具有哪些特点?常见的I2C通信系统有哪些?STM32I2C特性是什么?
    发表于 01-18 07:44

    I2C总线的原理是什么

    采用串行总线技术可以大大简化硬件的设计,体积减少,可靠性高。常见的总线,I2C(inter IC bus),单总线,SPI总线。I2C串行总线:(1)进行主机
    发表于 01-18 07:36

    I2C总线支持几种传输模式

    I2C 总线提供了一种串行通信方式,用在 MCU 与 EEPROM,LCD模块,温度传感器等等之间控制。I2C 用两条线 (数据线SDA 和时钟线 SCL) 在设备间传输数据。
    发表于 02-11 07:05

    I2C总线简介

    I2C 简介I2C 是双线双向的串行总线,它为设备之间数据交换提供了一种简单高效的方法。I2C 标准是一个具有冲突检测机制和仲裁机制的真正意义上的
    发表于 02-22 06:55

    I2C通信简

    文章目录I2C简介i2c-dev.hi2c.hTSC2007代码测试设备树I2C简介ls /dev这里拿我们的七寸LVDS屏幕的触摸芯片为例子,通过底座的原理图,可以看到LVDS使用了I2C
    发表于 02-23 06:28

    I2C通信详解

    关于蓝桥杯嵌入式板子的I2C,如果你以前没有接触过I2C通信。重点:懂得通过电路图判断出I2C设备的地址会看I2C读写时序图。底层驱动,考试
    发表于 02-28 11:24

    基于GD32F427开发板的硬件I2C与软件I2C驱动0.91OLED屛

    1、硬件I2C&软件I2C驱动0.91OLED  并行总线至 I2C 总线协议的转换及接口;  同一接口既可实现主机功能又可实现从机
    发表于 12-14 16:42

    STM32串口通信简明知识

    STM32串口通信简明知识
    的头像 发表于 10-25 15:48 781次阅读
    <b class='flag-5'>STM32</b>串口<b class='flag-5'>通信简</b>明知识