IIC通信协议

IIC是串行半双工同步总线

I2C总线为两线制,只有两根双向信号线,一根是数据线SDA,另一根是时钟线SCL,IIC总线外接两个上拉电阻作用:在总线处于空闲状态,总线处于高电平状态

IIC总线硬件连接

1、IIC总线支持多主机多从机模式,在同一时刻,只能一个主机和一个从机进行通讯

2、在实际使用过程中,大部分使用单主机多从机模式

3、挂接到IIC总线上的每一个从机设备,都有自己唯一的7位从机地址

4、发送器:向数据线上写入数据, 接收器:从数据线上读取数据

5、主机:主动向数据线上发起数据(起始信号,停止信号), 从机只能被动从总线上接收数据

6、时钟线只能由主机产生,作用给从机完成数据收发同步

IIC时序

起始信号

1、起始信号:在SCL为高电平期间,数据线从高电平到低电平的变化(下降沿)

2、起始信号和停止信号都是由主机产生

3、起始信号产生之后总线处于占用状态

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

停止信号

停止信号:在SCL为高电平期间,数据线从低电平到高电平的变化(上升沿)

数据传输信号

在SCL为高电平期间,总线上数据保持稳定,所以接收器可以从数据线上读取数据

在SCL为低电平期间,总线上数据允许发生变化,所以发送器可以向数据线上写入数据

应答信号

1、每一个字节传输必须保证8位长度(1字节=8位),先传输高位,在发送低位

2、每传输8位数据位之后,必须跟随应答信号,一帧数据 = 8位数据位 + 1位应答信号 = 9位

3、发送器发送8位数据位之后,在第9个时钟周期,接收器向数据线上写入应答信号或者非应答信号

在第9个时钟周期,发送器从数据线上,读取数据

读0:接收器返回应答信号

读1:接收器返回非应答信号

寻址

1、IIC总线进行数据传输是广义的,既可以传输数据,也可以传输地址

2、寻址过程 = 7位从机地址 + 读写位 = 8位,读:1 写:0

3、在起始信号产生之后,发送7位从机地址和读写位

IIC协议

主机给从机发送一个字节

主机:发送器

从机:接收器

主机给从机发送多个连续字节

从机给主机发送一个字节

主机:接收器

从机:发送器

从机给主机发送多个连续字节

框图 

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

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

相关文章

tamarin运行

首先我们找到安装tamarin的文件位置,找到以后进入该文件夹下 ubuntuubuntu:~$ sudo find / -name tamarin-prover /home/linuxbrew/.linuxbrew/var/homebrew/linked/tamarin-prover /home/linuxbrew/.linuxbrew/Cellar/tamarin-prover /home/linuxbrew/.linuxbrew/…

URAT串口通信协议

UART是异步串行全双工总线,面向设备和设备之间的连接 配置相关内容 1、串口为串行通讯方式,代表一个时钟周期,只可以收发一位数据 2、115200代表什么,以及115200单位 单位:bps(比特率、二进制/秒) 115200代表&#…

泉盛UV-K5/K6全功能中文固件

https://github.com/wu58430/uv-k5-firmware-chinese/releases 主要功能: 中文菜单 许多来自 OneOfEleven 的模块: AM 修复,显著提高接收质量长按按钮执行 F 操作的功能复制快速扫描菜单中的频道名称编辑频道名称 频率显示选项扫描列表分配…

mysql 实现去重

个人网站 首发于公众号小肖学数据分析 1、试题描述 数据表user_test如下,请你查询所有投递用户user_id并且进行去重展示,查询结果和返回顺序如下 查询结果和返回顺序如下所示 解题思路: (1) 对user_id列直接去重: &#xff…

小程序开通电子发票

总目录 文章目录 总目录前言结语 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 首先登录商户号:https://pay.weixin.qq.com/index.php/core/home/lo…

FPGA模块——IIC协议(读写PCF8591)

FPGA模块——IIC协议(读取PCF8591) PCF8591/AT8591芯片对iic协议的使用 PCF8591/AT8591芯片 低功耗8位CMOS数据采集设备,4路模拟输入,1路模拟输出,分时多路复用,读取数据用串型iic总线接口,最大…

计算机硬件的基本组成

一、冯诺依曼结构 存储程序: “存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。 冯诺依曼计…

Linux进程间通信之匿名管道

文章目录 为什么要有进程间通信pipe函数共享管道原理管道特点管道的应用场景(进程池)ProcessPool.ccTask.hpp 为什么要有进程间通信 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通…

FlinkCDC数据实时同步Mysql到ES

考大家一个问题,如果想要把数据库的数据同步到别的地方,比如es,mongodb,大家会采用哪些方案呢? ::: 定时扫描同步? 实时日志同步? 定时同步是一个很好的方案,比较简单,但是如果对实时要求比较高的话,定…

JAVAEE---计算机是如何组成的

计算机软件硬件 硬件是冯诺依曼体系结构,这个结构的精髓在于将存储和执行分开。 这里存储器内存外存(硬盘,u盘,光碟等) cpu是计算机的大脑,是计算机最核心的地方。 cpu中央处理:进行算术运算…

ESP32 Arduino实战协议篇-搭建独立的 Web 服务器

在此项目中,您将创建一个带有 ESP32 的独立 Web 服务器,该服务器使用 Arduino IDE 编程环境控制输出(两个 LED)。Web 服务器是移动响应的,可以使用本地网络上的任何浏览器设备进行访问。我们将向您展示如何创建 Web 服务器以及代码如何逐步工作。 项目概况 在直接进入项目…

03. Python中的语句

1、前言 在《Python基础数据类型》一文中,我们了解了Python中的基础数据类型,今天我们继续了解下Python中的语句和函数。 2、语句 在Python中常用的语句可以大致分为两类:条件语句、循环语句。 2.1、条件语句 条件语句就是我们编码时常见…

Redis篇---第八篇

系列文章目录 文章目录 系列文章目录前言一、说说 Redis 哈希槽的概念?二、Redis 常见性能问题和解决方案有哪些?三、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?前言 前些天发现了一个巨牛的人工智能学习网站…

基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码

基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于世界杯算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于世界杯优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神经网络…

Linux基础全整理 从入门到放弃,一些想说的话

阅读目录 断更后一些想说的话用户useraddpasswdpasswd文件详解 chageusermoduserdelshadow 文件格式切换用户 用户组groupaddgroup文件格式groupmodgroupdel登陆远程机器 磁盘RAIDraid0(安装系统)raid1(存放数据)raid 5&#xff0…

Prompt 编程的优化技巧

大家好,我是木川 一、为什么要优化 一)上下文限制 目前 GPT-3.5 以及 GPT-4最大支持 16K 上下文,比如你输入超过 16k 的长文本,ChatGPT 会提示文本过大,为了避免 GPT 无法回复,需要限制 上下文在16k 以内 上…

【数据结构算法(一)】递归篇(常见实例讲解)

🌈键盘敲烂,年薪30万🌈 ⭐本篇讲解实例: 斐波那契、兔子问题、猴子吃桃问题、跳台阶问题、汉诺塔、杨辉三角 ⭐用到的递归思想: 无记忆递归、记忆递归(重点掌握) 目录 一、斐波那契: ①无记忆多路递归&am…

重生奇迹mu转职任务详解

重生奇迹mu神骑士怎么转 神骑士是一种转职类型,需要你的角色达到一定等级以及完成相应任务方可转职。以下是神骑士转职的具体步骤: 1.等级要求:首先,你的角色需要达到150级才能进行神骑士转职任务。 2.神骑士转职任务&#xff…

十七、Linux的组管理

1、Linux组基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件所有者、所在组、其它组的概念 1.所有者 2.所在组 3.其他组 4.改变用户所在的组 2、文件/目录 所有者 一般为文件的创建者,谁创建了该文件,就自…
最新文章