LV.12 D22 IIC总线原理 学习笔记

news2024/12/23 0:44:03

一、IIC总线概述

1.1 IIC总线简介

IIC总线      

        IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线 主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用

         IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生; 每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;

1.2 IIC总线通信过程

1.主机发送起始信号启用总线  

2.主机发送一个字节数据指明从机地址和后续字节的传送方向  

3.被寻址的从机发送应答信号回应主机  

4.发送器发送一个字节数据  

5.接收器发送应答信号回应发送器  

… … (循环步骤4、5)  

n.通信完成后主机发送停止信号释放总线

1.3IIC总线寻址方式

         IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据。
        主机在发送起始信号后必须先发送一个字节的数据,该数据的高7位为从机地址,最低位表示后续字节的传送方向,'0'表示主机发送数据,'1'表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定为发送器或接收器。

 

二、IIC总线信号实现

2.1起始信号与停止信号

        空闲时SCL和SDA都是高电平

        SCL为高电平时,SDA由高变低表示起始信号

        SCL为高电平时,SDA由低变高表示停止信号

        起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态

        停止信号产生后总线处于空闲状态

 

2.2字节传送与应答 

        IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器即一帧共有9位。

2.3 同步信号

        IIC总线在进行数据传送时,时钟线SCL为低电平期间发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定 

三、典型IIC时序 

主机向从机发送数据 

从机向主机发送数据

主机先向从机发送数据,然后从机再向主机发送数据

(为了防止总线使用权被别的设备抢走,允许切换数据传输方向时不停止。)

注:阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送;A表示应答, A非表示非应答,S表示起始信号,P表示终止信号

四、作业

1.若使用IIC总线让从机给主机发送一个字节的数据0xA2,画出SCL和SDA上的时序图

注:从机地址为0x63

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

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

相关文章

<JavaEE> 单例模式的两种实现:“饿汉模式”和“懒汉模式”

目录 一、单例模式概述 二、“饿汉模式”实现单例模式 三、“懒汉模式”实现单例模式 3.1 单线程下的“懒汉模式” 3.2 多线程下的“懒汉模式” 一、单例模式概述 1)什么是单例模式? 单例模式是一种设计模式。 单例模式可以保证某个类在程序中只存…

【C++】STL简介(了解)【STL的概念,STL的历史缘由,STL六大组件、STL的重要性、以及如何学习STL、STL的缺陷的讲解】

这里写自定义目录标题 一、什么是STL二、STL的版本1. 原始版本2. P. J. 版本3. RW版本★ 4. SGI版本 三、STL的六大组件四、STL的重要性五、如何学习STL六、STL的缺陷 一、什么是STL STL ( standard template libaray - 标准模板库 ):是C标准库 的重要组成部分&…

Spring到底是如何解决循环依赖问题的?

Spring作为当前使用最广泛的框架之一,其重要性不言而喻。所以充分理解Spring的底层实现原理对于咱们Java程序员来说至关重要,那么今天笔者就详细说说Spring框架中一个核心技术点:如何解决循环依赖问题? 什么是循环依赖问题&#x…

如何保持操纵机构丝杆的精度?

滚珠丝杆是操纵机构中的重要组成部分,可以传递较高的扭矩,并且具有低摩擦、高效率和快速响应的特性,这使得操纵机构能够实现高速、高精度的运动控制,这对于整个系统的性能和精度具有决定性的影响,保持操纵机构丝杆的精…

U-Shape Transformer for Underwater Image Enhancement(用于水下图像增强的U型Transformer)总结

背景 现有的水下数据集或多或少存在图像数量少、水下场景少、甚至不是真实场景等缺点,限制了数据驱动的水下图像增强方法的性能。此外,水下图像在不同颜色通道和空间区域的衰减不一致也没有统一的框架。 贡献 1)提出了一种处理 UIE 任务的…

UI咨询公司-蓝蓝设计:顶级秘籍:提升UI设计吸引力的3大绝招

想要让你的UI设计在海量应用中脱颖而出,吸引用户眼球吗?如果你正在寻找提升UI设计吸引力的绝妙方法,那么你绝对不能错过本文!我们将为你揭示顶级UI设计师都不会告诉你的3大绝招,让你轻松掌握提升UI设计吸引力的关键技巧…

Cysteine Protease inhibitor 921625-62-9科研

Cysteine Protease inhibitor 5-氨基-3-苯基-1,2,4-噻二唑 英文名称:Cysteine Protease inhibitor 中文名称:半胱氨酸蛋白酶抑制剂 化学名称:5-氨基-3-苯基-1,2,4-噻二唑 CAS:921625-62-9 外观:固体粉末 分子式&#…

智能联动第三方告警中心,完美实现故障响应全闭环

前言 我们曾讨论完善的告警策略是整个数据监控系统的重要组成部分(参见《机智的告警策略,完善监控系统的重要一环》),介绍了如何配置告警通知以及场景示例,帮助用户及时更多潜在的故障和问题,有效地保障系…

值班日历实现不同人显示不同的颜色区别

前端UI用的移动端的vantUI。这里只是我的思路总结&#xff0c;和用什么UI框架关系不大。 先看效果图&#xff1a; <van-calendarref"calendar":poppable"false":show-confirm"false":style"{ height: 580px }":min-date"minD…

11.一维字符数组——求字符串长度, 占内存字节数

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为一维字符数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 求字符串长度&#xff0c; 占内存字节数 二、题目分析 求字符串长度 法一&#xff1a; while(str[i]!‘\0’){ i…

webview2 runtime 安装错误 0x800700b7

最简单的一种是删除C:\Program Files (x86)\Microsoft文件夹&#xff0c;一般情况下&#xff0c;这个文件夹是空的&#xff0c;但在系统目录下&#xff0c;不允许删除&#xff0c;可以选中获取下管理员权限&#xff0c;或是用第三方软件&#xff0c;直接强制删除。 删除之后就…

分享88个焦点幻灯JS特效,总有一款适合您

分享88个焦点幻灯JS特效&#xff0c;总有一款适合您 88个焦点幻灯JS特效下载链接&#xff1a;https://pan.baidu.com/s/1geIPx77y5OCJvLaECq9upQ?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;…

【JavaEE】单例模式

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

Java基本数据类型、包装类及拆装箱详解

Java的基本数据类型和对应的包装类是Java语言中处理数据的两个关键概念。基本数据类型提供了简单而高效的方式来存储数据&#xff0c;而包装类使得基本数据类型具有对象的特性。本文将深入探讨基本数据类型与包装类的应用场景及详细描述&#xff0c;并对自动拆箱和装箱的源码实…

【信息安全】MD5哈希函数

1. MD5介绍 MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种常见的哈希函数&#xff0c;通常用于产生数据的数字摘要&#xff0c;也称为哈希值或摘要值。它是由Ron Rivest在1991年设计的&#xff0c;广泛用于数据完整性验证、密码存储、数字签名等领域。 MD5哈…

HTML CSS JavaScript的网页设计

一、网页界面效果&#xff1a; 二、HTML代码&#xff1a; <!DOCTYPE html> <!-- 声明文档类型--> <html lang"en"> …

如何定位当生产环境CPU飙升的时候的问题

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、排查思路 二、预防CPU飙升 三、总结 前言 在当今的信息化时代&#xff0c;计算机系统在各行各业都发挥着重要的作用。然而&a…

Java中实用的策略模式【Strategy】

一、简介 我们知道Java中有许多的设计模式&#xff0c;总共32个左右。常见的比如简单工厂、建造者、原型、代理、桥接等&#xff0c;这些设计模式相当于是一个规范&#xff0c;主要是总结出来便于大家理解开发的一种算法思路。 今天主要是给大家介绍一下我们常见的策略模式&a…

自动化框架错误排查:本地全通过,pipline上大部分报错

现象: 最近经过一次切环境和验证码部分的代码重构,果不其然,我们的自动化框架就出错了 我在本地修改调试,并在堡垒机上全部跑过 但在pipline上则大部分报错 进一步排查 这么多case报错,而且报错log都一模一样,推断是底层出错 我在堡垒机上使用命令行来跑case,发现与…

【深度学习】Stable Diffusion中的Hires. fix是什么?Hires. fix原理

文章目录 **Hires. fix****Extra noise**Upscalers Hires. fix https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#hires-fix 提供了一个方便的选项&#xff0c;可以部分地以较低分辨率呈现图像&#xff0c;然后将其放大&#xff0c;最后在高分辨率下添…