嵌入式基础知识学习:I2C通信协议

https://zhuanlan.zhihu.com/p/647656964
https://blog.csdn.net/FYBZ2020/article/details/128486981

I2C总线概述

I2C(Inter-Integrated Circuit)总线是两线式串行通信总线,是微电子通信控制领域广泛采用的一种总线标准。

在介绍I2C总线工作原理之前,首先必须明确几个基本概念:
发送器(Transmitter):发送数据到总线的器件;
接收器(Receiver):从总线接收数据的器件;
主机(Master):初始化发送、产生时钟信号和终止信号发送的器件;
从机(Slave):被主机寻址的器件。

I2C总线可以将单片机与其他具有I2C总线通信接口的外围设备连接起来。通过串行数据(SDA)线和串行时钟(SCL)线与连接到该双线的器件传递信息。每个I2C器件都有一个唯一的识别地址(I2C总线支持7位和10位地址),而且都可以作为一个发送器或接收器使用(由器件的功能决定)。I2C器件在执行数据传输时也可以看作是主机或从机,主机是初始化总线数据传输并产生允许传输时钟信号的器件,此时任何被寻址的其他I2C器件都被认为是从机。

I2C总线是双向传输的总线,因为主机和从机都可以成为发送器和接收器,不论主机是发送器还是接收器,时钟信号SCL都要由主机产生。

I2C总线有标准(100Kbps)、快速(400Kbps)和高速(3.4Mbps)三种数据传输速度模式,支持高速模式的可以向下支持低速模式。I2C总线连接的I2C器件数量仅受到总线的最大电容400pF限制,总线连接的器件越多,连线越长,分布电容越大。

I2C总线通信协议

通信协议是通信各方必须遵守的规则,否则通信无法进行,在编写通信程序时需要了解相应的通信协议。
I2C总线通信协议主要内容有:
(1)总线空闲 SCL线和SDA线均为高电平。
(2)开始信号 在SCL线为高电平时,SDA线出现下降沿,该下降沿即为开始信号。
(3)数据传送 开始信号出现后,SCL线为高电平时从SDA线读取的电平为数据;SCL线为高电平时,SDA线的电平不允许变化,只有SCL线为低电平时才可以改变SDA线的电平;SDA线传送数据时,从高位到低位逐位进行,一个SCL脉冲高电平对应1位数据。
(4)停止信号 SCL线为高电平时,SDA线出现上升沿,该上升沿为停止信号,停止信号过后,总线被认为空闲(SCL线、SDA线均为高电平)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】ORB-SLAM2调用OAK-D双目摄像头进行点云建图

编辑:OAK中国 首发:A. hyhCSDN 喜欢的话,请多多👍⭐️✍ 内容来自用户的分享,如有疑问请与原作者交流! ▌前言 Hello,大家好,这里是OAK中国,我是助手君。 近期在CSDN刷…

马斯克发布一封指控 Sam Altman 的匿名信引发猜测,OpenAI “宫斗大戏”终迎结局?

就在昨晚,持续了数日的 OpenAI 宫斗大戏,似乎终于要大结局了——OpenAI 官宣:Sam Altman 将回归 OpenAI,重新担任 CEO! “我们已达成原则性协议,Sam Altman 将重返 OpenAI 担任 CEO,新的初始董…

OpenGL的学习之路 -5

1.视景体 正交投影 人眼看世界,有一个可见范围。范围内可见,范围外不可见。视景体就是这么一个概念。 (上图仅学习记录用) 在OGL中,有两种投影方式,对应两种视景体。第一种,正交投影&#xf…

Linux进程状态(僵尸进程,孤儿进程)+进程优先级+进程调度与切换

Linux进程状态[僵尸进程,孤儿进程]进程优先级 一.进程状态1.进程排队2.教材上对于进程状态的描述:1.阻塞挂起 3.Linux下具体的进程状态:1.Linux下的进程状态数组2.R3.S:可终止睡眠---浅度睡眠1.补充:前台进程和后台进程2.一种"奇怪"的现象 4.D:不可终止睡眠---深度睡…

探索人类命运与宇宙奥秘的震撼之旅 豆瓣高分巨作《三体》湖北卫视开播

当思考触及宇宙的边缘,当人类命运与外星文明相碰撞,电视剧《三体》以其深邃的内涵和引人深思的故事,重新审视人类的过去、现在和未来,带我们逐步揭开地外未知文明“三体”世界的神秘面纱。根据著名科幻作家刘慈欣同名小说改编&…

Ubuntu新手使用教程

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Django之ORM

ORM全称对象关系映射 作用:通过python面向对象的代码简单快捷的操作数据库,但是封装程度太高,有时候sql语句的效率偏低,需要自己写sql语句 类----->表 对象--->记录 对象属性--->记录某个字段对应的值 写在models.p…

深度解析:用Python爬虫逆向破解某查查加密数据!

大家好!我是爱摸鱼的小鸿,关注我,收看编程干货。 本期文章将带你详细地逆向解析某查查加密数据的构造逻辑,Follow me~ 特别声明:本篇文章仅供学习与研究使用,不用做任何非法用途,请大家遵守相关法律法规 作者:Maker陈,本文字数:1.2k,阅读时长≈2分钟 目录 一、逆向目…

如何通过内网穿透实现远程访问Linux SVN服务

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

骑行三家村赏红杉之旅:挑战与汗水共存,美景和惊喜同行的路线

2023年11月25日,一个冬日里阳光明媚的周末,校长骑行队的骑友们相约,共同踏上了骑行三家村赏红杉林的旅程。这次骑行路线从大观公园门口开始,途径大观湿地公园、干勾尾、碧鸡关加油站、太平、水沟盖板路、明朗、绝望坡、山顶、三家…

kali安装内网穿透工具并实现ssh远程连接

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh远程连接kali 1…

自动化立体仓库PLC控制系统手动运行功能

IF NOT "模式手动I" THEN "堆垛机过程数据块".手动模式封锁 : 0; "堆垛机过程数据块".手动点动保持显示 : 0; RETURN; END_IF; IF NOT "堆垛机过程数据块".手动模式封锁 THEN "FC41 系统总清占位"(); …

成都优优聚美团代运营——让您脱颖而出!

随着互联网的快速发展,越来越多的企业开始注重线上业务的拓展,而美团作为国内领先的生活服务平台之一,自然成为了许多品牌宣传和推广的重要渠道。在成都地区,优优聚美团代运营公司凭借多年的经验和专业团队的优势,成为…

单调栈:LeetCode 907. 子数组的最小值之和

907. 子数组的最小值之和 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大,因此 返回答案模 10^9 7 。 思路同乘法原理 LeetCode 828. 统计子串中的唯一字符-…

护眼灯有效果吗?对孩子眼睛好的护眼台灯推荐

2022年12月29日,内蒙古消费者协会发布的比较试验结果显示,被检测的35款读写作业台灯样品中有12款标记项目不符合国家强制性标准要求,占被检测样品的34%,其中博士有成、大力智能、霍尼韦尔位列质量黑榜。该从哪些方面注意权衡做好选…

如何用CHAT配置linux的远程连接?

问CHAT:配置linux的远程连接 1.下载ssh 2.启动ssh服务 3.查看ssh服务状态 4.设置ssh服务开机自启动 5.设置windows的cmd下ssh 6.通过cmd的ssh命令远程到linux linux的ip:10.8.9.23 用户名:Li CHAT回复:以下是为配置Linux的远程连接的步骤说明&#xff1a…

AMD ROCm软件栈组件介绍

AMD ROCm™ Platform 1.1 ROCm简介 参考:https://github.com/RadeonOpenCompute/ROCm ROCm(Radeon Open Compute)开源软件栈。 在NVIDIA GPU上,术语“CUDA”通常是指GPU编程编译器、API和运行时库,但ROCm不那么单一…

Qt QTimer

目录 public/slot function signals static public function 使用 public/slot function // 构造函数 // 如果指定了父对象, 创建的堆内存可以自动析构 QTimer::QTimer(QObject *parent nullptr);// 设置定时器时间间隔为 msec 毫秒 // 默认值是0,一旦窗口系统…

【虹科干货】什么是软件成分分析(SCA)?

大家或许都发现了,开发人员愈发依赖开源代码来快速为其专有软件添加功能。据估计,开源代码占专有应用程序代码库的 60-80%。相伴而来的,除了更高的效率,还有更高的风险。因此,管理开源代码对于降低组织的安全风险至关重…

sonarqube9.3表结构

一、概述 sonar9.3版本表结构 projects:项目表 project_branchs: 项目分支表 metrics:软件度量指标表 (-- 3代码行数 20复杂度 90代码重复度 112技术债务占比 92遗留违规总数 93阻断 94严重 95主要 -- 29单元测试数 34单元测试成功率 31单…