I2C时序简单分析

简介: I2C时序简单分析

I2C时序简单分析


I2C总线介绍


  • 起始信号:SCL位于高饱和时,SDA由高->低,即下降沿时


  • 停止信号:SCL处于高饱和时,SDA由低->高,,即上升沿


  • 传输数据:SCL为低可以改变SDA数据上的替换。在SCL上升沿的过程将SDA数据传输出去


  • 应答:I2C以字节(8位)的方式进行传输,总线上每传输完成一个字节后会产生一个应答信号,master需要产生对应的一个额外时钟。(SDA为应答表示应答,为高认可表示没有应答)


  • 正常的I2C总线数据:开始+ I2C设备ID + R / W + ACK +数据(0)+ ACK + ... + ... +数据(n)+ ACK + STOP

image.png


波形图分析



主机写,从机应答,主机读取应答:写完一字节(8位)后,读取从机应答位:若为0,表示从机应答,可以继续下一步操作,若为1,表示从机非应答,不能进行下一步操作。


image.png


如图(红色是SDA):发送一个字节”0”。首先产生开始信号,然后依次发送7位设备地址(0101010)+ W(0)+ ACK(0)+ 8bitdata(00110000)+ ACK(0 )+停止信号



主机读,主机产生应答:读完一字节(8位)后,由主机产生应答(或非应答位):若产生应答位,表示可以继续读下一个字节,若产生非应答,表示不可以继续读下一字节操作。


image.png


如图(红色是SDA):读一个字节“ 0”。首先产生开始信号,然后依次是7位设备地址(0101010)+ W(1)+ ACK(0)。+数据(00110000)+ NACK(1)+停止信号


读取多个字节


image.png


如图(红色是SDA):读2个字节“ 01”。首先产生开始信号,然后依次是7位设备地址(0101010)+ W(1)+ ACK(0)+ data0(00110000)+ ACK( 0)data1(00110001)+ NACK(1)+停止信号

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
Linux 网络安全 开发工具
Linux安装ssh以远程连接
Linux安装ssh以远程连接
1541 0
|
2月前
|
机器学习/深度学习 监控 安全
Jailbreak 36计————向天再借500分
本内容由IT老兵“老李”倾情奉献,结合《三十六计》智慧,深入剖析大语言模型越狱攻击的36种策略。每计包含思路、详解、案例、防御与点评,内容详实,实战性强,助你在“大模型安全挑战者计划”中脱颖而出。
458 8
|
4月前
|
Ubuntu Linux Shell
Linux环境下VSCode快速安装终极指南:debian/ubuntu/linux平台通用
以上就是在Linux环境下安装VSCode的终极指南,抛开繁复的专业词汇,以平易近人的文字、形象生动的比喻让你轻松学会这一过程。别忘了,你的小伙伴VSCode已经在应用菜单里等你了!
1023 23
|
7月前
|
Web App开发 移动开发 前端开发
React音频播放器样式自定义全解析:从入门到避坑指南
在React中使用HTML5原生<audio>标签时,开发者常面临视觉一致性缺失、样式定制局限和交互体验割裂等问题。通过隐藏原生控件并构建自定义UI层,可以实现完全可控的播放器视觉风格,避免状态不同步等典型问题。结合事件监听、进度条拖拽、浏览器兼容性处理及性能优化技巧,可构建高性能、可维护的音频组件,满足跨平台需求。建议优先使用成熟音频库(如react-player),仅在深度定制需求时采用原生方案。
241 12
|
机器学习/深度学习 存储 人工智能
深度学习之不遗忘训练
基于深度学习的不遗忘训练(也称为抗遗忘训练或持久性学习)是针对模型在学习新任务时可能会忘记已学习内容的一种解决方案。该方法旨在使深度学习模型在不断接收新信息的同时,保持对旧知识的记忆。
256 4
|
安全
技术笔记:KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结(转)
技术笔记:KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结(转)
526 0
|
传感器 编解码 Linux
V4l2 专栏
V4l2 专栏
301 1
|
Docker 容器
Docker 安装 ELK
Docker 安装 ELK
168 0