I2C

news/2024/9/27 21:23:50

I2C

  • I2C
    • 1. I2C是什么?
    • 2. I2C总线的特点
    • 3. 5种速率模式
    • 3. I2C总线的硬件设计
    • 4. I2C总线协议
      • 4.1. I2C总线术语的定义
      • 4.2. 数据传输方式
      • 4.3. 4种信号
    • 5. 总结
    • others

参考链接:

  1. UM10204 I2C-bus specification and user manual Rev. 7.0
  2. 一文看懂I2C协议 - 王超的文章 - 知乎
  3. I²C(IIC)总线协议详解—完整版 - 曾小庆的文章 - 知乎
  4. 单片机I2C通信入门(上):硬件部分有哪些注意点?
  5. 单片机I2C通信入门(下):三份文件搞清楚I2C通信协议

1. I2C是什么?

I2C的全称是Inter-Integrated Circuit,意思是芯片与芯片之间的通讯。它是由Philips(飞利浦)公司,现NXP(恩智浦)半导体开发的一种简单的双向两线制总线协议标准。

2. I2C总线的特点

翻译自UM10204 I2C-bus features

  • 只需要两线:一个串行数据线(SDA),一个串行时钟线(SCL)
  • 连接到总线的每一个设备都可以通过唯一的地址进行软件寻址,并且始终存在简单的控制器/目标关系;控制器可以作为控制器-发送器或者控制器-接收器运行。
  • 是真正的多控制总线,包括冲突检测和仲裁,以防止在两个或更多个控制器同时启动数据传输时损坏数据。
  • 串行、8位、双向数据传输在标准模式下最高可达100 kbit/s,在快速模式下最高可达400 kbit/s,在快速模式+下最高可达1 Mbit/s,在高速模式下最高可达3.4 Mbit/s。
  • 串行、面向 8 位的单向数据传输,在超快模式下传输速度高达 5 Mbit/s。
  • 片内滤波可抑制总线数据线上的尖峰,以保持数据完整性。
  • 可连接到同一总线的IC数量仅受最大总线电容的限制。在某些情况下,可能允许更大的电容。

3. 5种速率模式

速率模式-ch 速率模式-en 速率 备注
标准模式 Standard-mode 100 kbit/s
快速模式 Fast-mode 400 kbit/s
快速模式+ Fast-mode Plus 1 Mbit/s
高速模式 High-speed mode 3.4 Mbit/s
超快模式 Ultra Fast-mode 5Mbps 单向传输

3. I2C总线的硬件设计

I2C总线对于设备上的IO口进行了一些阉割,总线在默认状态下是高电平,MOS管导通时变为低电平。

I2C总线为了解决多设备共用总线而不烧毁电路的问题,采用了开漏输出的方案,配合上拉电阻,可以输出完整的高低电平。上拉电阻值,在总线设备多,速度要求高的时候可以设置相对小一些。

4. I2C总线协议

4.1. I2C总线术语的定义

Term 术语 Description 描述
Transmitter 发射机 向总线发送数据的设备
Receiver 接收机 从总线接收数据的设备
Controller 控制器 启动传输、生成时钟信号并终止传输的设备
Target 目标 控制器寻址的设备
Multi-controller 多控制器 多个控制器可以尝试同时控制总线,而不会损坏消息
Arbitration 仲裁 程序以确保如果多个控制器同时尝试控制总线,则只允许一个控制器这样做,并且获胜消息不会损坏
Synchronization 同步 同步两个或多个设备的时钟信号的过程

获胜消息:在多个控制器争夺总线控制权的过程中,最终成功获得控制权的控制器所发送的信息

4.2. 数据传输方式

  1. 假设微控制器 A 想要向微控制器 B 发送信息:
    • A(控制器)寻址 B(目标)
    • A(控制器-发送器),将数据发送到B(目标接收器)
    • A 终止传输。
  2. 如果 A 想要从 B 接收信息:
    • A(控制器)寻址 B(目标)
    • A(控制器-接收器)从 B(目标发送器)接收数据
    • A 终止传输。

4.3. 4种信号

  1. 起始信号
    • SCL处于高电平时,SDA由高到低变化,这种信号是起始信号。
  2. 停止信号
    • SCL处于高电平时,SDA由低到高变化,这种信号是停止信号。
  3. 应答信号
    • I2C最大的一个特点就是有完善的应答机制,从机接收到主机的数据时,会回复一个应答信号来通知主机表示“我收到了”。
    • 应答信号出现在1个字节传输完成之后,即第9个SCL时钟周期内,此时主机需要释放SDA总线,把总线控制权交给从机,由于上拉电阻的作用,此时总线为高电平,如果从机正确的收到了主机发来的数据,会把SDA拉低,表示应答响应。
  4. 非应答信号
    • 当第9个SCL时钟周期时,SDA保持高电平,表示非应答信号。

5. 总结

  1. I2C 4种信号的分别是什么形式?

others

只能说自己对于I2C的了解程度还是不够的。之前使用I2C,无非是驱动OLED屏幕、读取传感器的值这样的任务,没有使用I2C总线连接多个设备使用。以后一定要做个小项目切身体验一下,加深理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30421.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

vscode代码提示emmet abbreviation

问题描述 每次写css的时候,打wi,第一个候选总是莫名其妙的widows,于是想要关掉这玩意。 解决

微信公众号接入月之暗面Kimi

1. 打开链接 https://www.coze.cn/,如下图,点击创建一个bot2. 填写上bot的名字,上传自己的bot 图标3. 接着选择 月之暗面的模型,配置技能、知识库、记忆、对话体验、角色,接着可以在右侧调试一下,没有问题的话,点击发布4. 这里我们根据自己的公众号来选择 订阅号还是服务…

敏捷冲刺day4--数字工匠队

这个作业属于哪个课程 软件工程这个作业的要求是什么 项目冲刺这个作业的目标 冲刺日志4站立式会议照片工作困难 补课影响使得作业时间减少 昨日完成工作 部分任务创建工作 今日计划工作 继续完成登录界面前后端处理 项目燃尽图代码签入每日总结 黎嘉豪:继续完善 陆靖:希望代…

基于机器学习等延伸出的数学知识补救——关于那些大学学了不及时用就会忘掉的知识

因为要学机器学习深度学习之类的,那么对数学基础有要求。但是我大学学了高数后我就没怎么用过(至少没用过偏导之类的),挠头。那么就是为了复习,然后重新构建知识谱图,因为笔记丢了(目移),所以会借用一些资料的笔记。顺序大概就是学机器学习深度学习接触的数学知识,分…

利用系统IO读取磁盘上指定BMP图片的宽和高,以及BMP图片的大小, 并输出到终端,要求图片名称通过命令行传递

/*************************************************** file name:GetBmpInfo.c* author :momolyl@126.com* date :2024/05/11* brief :利用系统IO读取磁盘上指定BMP图片的宽和高,以及BMP图片的大小,* 并输出到终端,要求图片名称通过命令行传…

Scrum冲刺5--5.11

Scrum冲刺4--5.10这个作业属于哪个课程 软件工程这个作业要求在哪里 团队项目这个作业的目标 进行敏捷冲刺,熟悉团队合作开发前端仓库 前端后端仓库 后端每次冲刺日志索引时间 博客5.7 Day1ᕙ(`▿)ᕗ5.8 Day2ᕙ(• ॒ ູ•)ᕘ5.9 Day3(˚ ˃̣̣̥᷄⌓˂̣̣̥᷅ )5.10 Day4 (…

AtCoder Beginner Contest 353

持续掉分A - Buildings (abc353 A) 题目大意 给定\(n\)个数字,输出第一个大于第一个数的下标。 解题思路 依次与第一个数比较,大于则输出。神奇的代码 n = input() a = list(map(int, input().split())) b = [i > a[0] for i in a] if True not in b:print(-1) else:print…