IIC学习笔记

目录

     

 #I2C涉及相关知识

  #I2C相关介绍

欢迎指正,希望对你,有所帮助!!!


                                        个人学习笔记,参考文献,链接最后!!!

     

 #I2C涉及相关知识

        SDA串行数据线: Serial Data Line 串口数据线 缩写 SDA 主要用于数据传输过程中,将数据一个比特或者一组比特按照时间顺序逐个传输的一条线路,在这跟线上进行数据的收发。

        SCL串行时钟线:Serial Clock Line  串口时钟线 缩写  SCL SCL线负责同步数据传输过程中的时序,这跟线保障了IIC是同步通信,也就是使用相同的时钟。

        串行通信协议:串行通信协议指的是,一种在数据传输过程中,信息以位(bit)进行传输的方式,常见的串行通信协议有,SPI  IIC USART  RS232 RS458

        一主多从:一个主设备 (Master),多个从设备 (Slave),在主设备的SCL 和 SDA线上挂在着多个从设备,单片机作为主机,主导IIC总线运行,挂在IIC总线的所有模块都是从机,而从机只有被主机点名后才能控制IIC总线。

        多主多从:多个主设备(Master),多个从设备(Slave),进行通信

        半双工:就像是对讲机,通信双方只能,从A到B 或者B到A  ,A和B不能同时交互传输数据。

        同步通信:通信双方使用时钟相同,不需要规定波特率。

        从机地址:挂在在IIC总线上的从机地址,在通信时需要加入在数据帧中,使从机检测知道,主机和谁通信,从而对应的从机去响应。常见从机地址为7位。

        使用IIC这种通信协议的设备,都有SCL还有SDA这两种引脚,如果在一个模块上面发现了SCL还有SDA引脚那么这个模块就是使用IIC通信协议进行通信的。

        #I2C相关介绍

       I2C: IIC属于两线式串行总线,同步通信,由飞利浦公司开发,用于微控制器(MCU)和外围设备(从设备)进行通信的一种总线,通常用于一主多从或者(常用),多主多从(不常用)。

        IIC硬件电路图连接规则:设备所有的SCL 和SDA都要连接在一起,所有的SCL和SDA都要配置为开漏输出模式(就是没有办法输出高电平) SCL和SDA各自要添加一个上拉电阻,阻值一般为4.7K左右。

                         

        IIC通信开启条件:SCL高电平期间,SDA从高电平切换到低电平,随后SCL也从高电平切换到低电平,代表开始通信。

                                                        

        IIC通信终止条件:SCL高电平期间,SDA从低电平切换到高电平,这个过程是SCL先为高电平,在停止信号发出后,主设备不能再发送数据除非,在发出开始信号。

                                                     

        IIC数据传输:在IIC经过了其实条件之后,就可以传输数据了,IIC通信开始后,SDA变为传输的电平信息,但是在传输数据的时候,必须为SCL高电平,此时SDA电平不能发生变化,传输完成,SCL拉低,SDA在此时改编为需要传输的数据,然后SCL拉高,SDA输出传输,是这样的一个过程,如果在SCL高电平期间SDA电平发生改变会被认为是,起始或者停止条件的一种。

        IIC应答机制:为了保证数据有被接受,IIC有一个特性,就是应答机制,当主机给从机发送了一个数据,此时从机会给主机发送应答信号,告诉主机,自己有成功接收数据。

       IIC应答信号电平(NACK):IIC发送应答信息,时SCL处于高电平,SDA为低电平,此时有效应答,为ACK                          

                                         

                                                                                

        IIC非应答信号(NACK):如果从机没有收到信息,此时发送的信息,就是非应答信号,此时SCL为高电平,SDA为高电平。

                                   

                                        到此介绍完了IIC的所有信号,传输表示形式,

                                                

 #I2C收发数据时数据帧格式介绍

       

           IIC主机发送数据格式:7bit(addresss)+1bit(read/write)+1bit(ACK)+8bit(data)+1bit(ACK)  ,在IIC通信开启之后,SDA上的数据帧是一个字节,也就是8bit附带一个应答位,所以一个数据帧总共有9位,数据帧最高位位(MSB)读写位,0表示主设备向从设备(write)写数据,1表示主设备向从设备(read)读数据

       

        

        上面这种是IIC发送数据帧格式,而IIC读取数据帧格式是和发送IIC数据帧格式是不一样的,下文介绍,而IIC通信协议,从主设备向从设备发送数据帧格式如上图所示,格式如下。  

             ​​​​​​​    7bit(addresss)+1bit(read/write)+1bit(ACK)+8bit(data)+1bit(ACK) 

        IIC主机读取数据格式:首先SDA下拉,产生开始信号,主机发送   7bit(addresss)+1bit(read/write)+1bit(ACK),此时第8为是写,主机收到应答,将要访问的从机寄存器地址发送出去,此时主机转换为接受,从机转换为发送,此时主机从新发送开始信号,附带从机地址,此时,1bit(read/write)为read,最后产生停止信号,结束传输过程

                                然后本文不对硬件IIC进行介绍。【立创·天空星STM32F407VET6】入门手册 - 飞书云文档 (feishu.cn)IIC原理超详细讲解---值得一看-CSDN博客

                                 欢迎指正,希望对你,有所帮助!!!

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

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

相关文章

AI降重技术:论文查重率的智能解决方案

现在大部分学校已经进入到论文查重降重的阶段了。如果查重率居高不下,延毕的威胁可能就在眼前。对于即将告别校园的学子们,这无疑是个噩梦。四年磨一剑,谁也不想在最后关头功亏一篑。 查重率过高,无非以下两种原因。要么是作为“…

软通动力携子公司鸿湖万联中标南方电网调峰调频发电有限公司数据采集装置研究开发项目

近日,软通动力携子公司鸿湖万联成功中标南方电网调峰调频发电有限公司数据采集装置研究开发项目。该项目是针对智能化、国产化、自主可控业务需求研制的基于国产芯片、OpenHarmony系统的抽蓄电站机械化施工数据采集设备。本次中标是软通动力布局数字能源战略的一次胜…

大数据组件--Hue

Apache Hue hue是一个集成化的大数据可视化软件,可以通过hue访问浏览操作主流的大数据生态圈软件。hue本身来自于cloudera后来贡献给了apachehue本身是一个web项目,基于python实现的,通过该web项目的UI集成了各个软件的UI 下面是一个hue调度…

【MySQL】如果表被锁可以尝试看一下事务

今天在MySQL中删除表的时候,发现无法删除,一执行drop,navicat就卡死。 通过 SHOW PROCESSLIST显示被锁了 kill掉被锁的进程后依旧被锁 最后发现是由于存在为执行完的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; kill掉这些事务以…

证书在JAVA中的使用

1.需求 需要访问一个https的接口,是基于tlsv1.2协议的,目前有ca根证书(ca.cert),客户端证书(sparkercomm01.cert)和客户端私钥文件(sparkercomm01.key) 2.转化成jdk能识别的文件 2.1.ca根证书添加到jdk密钥库 执行命令,得到ca.jks文件 keytool -import -alias c…

EXCEL表格怎么批量删除日期后的时间?

竞价师最近有点忙了,因为百度新出来一个“线索有效性诊断”功能 一、下载电话、表单、咨询表格 二、选中整列 三、选中ctrlf 进行替换,日期输入空格,时间输入*,替换为空即可! 四、整列单元格格式“日期”拉倒底部&…

大脑网路分析的进展:基于大规模自监督学习的诊断| 文献速递-先进深度学习疾病诊断

Title 题目 BrainMass: Advancing Brain Network Analysis for Diagnosis with Large-scale Self-Supervised Learning 大脑网路分析的进展:基于大规模自监督学习的诊断 01 文献速递介绍 功能性磁共振成像(fMRI)利用血氧水平依赖&#x…

威士顿携手 TDengine,共同推动工业数据处理效率提升

在全面推动数字化转型的背景下,实体经济与数字化经济的深度融合正成为行业新旧动能转换、建设现代工业经济运行体系、实现高质量发展的战略支点。其中,时序大数据的有效处理成为转型的关键驱动力,为实现智能化决策、精准运营和未来发展提供有…

代码随想录算法训练营:15/60

非科班学习算法day15 | LeetCode110:平衡二叉树 ,Leetcode257:二叉树的所有路径 ,Leetcode404:左叶子之和,Leetcode222:完全二叉树的节点个数 目录 介绍 一、基础概念补充: 1.平衡二叉树 二、LeetCode题目 1.LeetCode110:平…

面试-java多线程与并发

1.如何实现处理线程的返回值 (1)主线程等待法 主线程等待法:程序执行时,没有等到value值赋予完成,就直接在主函数 中执行打印value的值。 缺点:需要自己去实现循环等待的逻辑。若需要等待的变量变多,需要等待的时间可能…

【信息系统项目管理师知识点速记】变更管理

19.2 变更管理 变更管理是指在信息系统开发与维护过程中,控制所有变更请求,从而确保变更的顺利实施和系统的稳定运行。变更管理的目标是使变更过程透明化,保证每个变更有序可控地进行,减少变更带来的负面影响,提高变更实施的效率和质量。变更管理包括变更申请、评估、批准…

qt.qpa.xcb: could not connect to display问题解决

1、问题描述 以服务器pi5作为远程解释器,本地win11使用vscode远程调试视觉时报错如下: qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "xxxxx" even though it was …

英伟达GB200系列AI芯片供不应求;阿里云通义灵码上线Visual Studio插件市场

🦉 AI新闻 🚀 英伟达GB200系列AI芯片供不应求 摘要:英伟达GB200系列AI芯片供不应求,台积电和日月光等公司获追加订单。GB200芯片性能提升30倍,成本和能耗降至25分之一。预计2025年出货量突破百万颗,后段封…

ArkUI JS层

JS层代码分析 关键方法: initialRenderobserveComponentCreationViewStackProcessor.StartGetAccessRecordingForViewStackProcessor.StopGetAccessRecording()loadDocument class Index extends ViewPU {constructor(parent, params, __localStorage, elmtId -…

浏览器优化的案例和最佳实践

浏览器优化的案例和最佳实践 减少HTTP请求数量优化资源文件优化DOM结构提升JavaScript性能优化渲染性能移除不必要的插件和扩展监控并分析页面性能持续优化和测试除了上述的优化方式,还有一些其他的浏览器优化技巧,包括: 减少HTTP请求数量 案例:某电商网站首页有大量的图片和C…

探索Java中的多态

多态(Polymorphism)是面向对象编程(OOP)中的一个核心概念,它允许同一个接口或方法在不同对象上具有不同的实现方式。Java作为一种面向对象的编程语言,广泛地利用了多态特性来提高代码的灵活性和可扩展性。本…

精准把握时间脉络:Java日期时间处理API深度解析与实战指南

在软件开发领域,准确无误地处理日期和时间信息是构建稳定、可靠应用程序的关键一环。随着技术的演进,Java作为一门广泛应用的编程语言,其处理日期和时间的API也经历了显著的变化和发展,旨在为开发者提供更为强大、灵活且易用的工具…

httpclient并发性能问题解决

故事 前段时间进行招聘笔试,有这么一个问题,请描述实践过程中解决httpclient并发性能问题的案例。然后自己之前是有遇到过,但是一直没有总结,趁此机会总结一波。 问题 请描述实践过程中解决httpclient并发性能问题的案例。并描…

企业级低代码开发效率变革赋能业务增长

企业级低代码开发已经成为当今软件开发领域的一大趋势,它为企业带来了前所未有的效率变革,从而赋能业务增长。本文将围绕这一主题,深入探讨低代码开发的概念、优势以及如何在企业级应用中实现高效的低代码开发,以助力我国企业实现…

Linux网络 - 再谈、详谈UDP和TCP协议

文章目录 前言预备netstatpidofcat /etc/services 一、UDP协议UDP协议端格式UDP的缓冲区基于UDP的应用层协议 二、TCP协议1.TCP协议段格式确认应答(ACK)机制三次握手疑问1 最后一次客户端发给服务端的ACK请求怎么保证服务端能够收到? 四次挥手疑问2 为什么挥手是四次…