首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏linux驱动个人学习

    I2C通讯协议

    同时有多于一个主机尝试控制总线 但不破坏报文 仲裁 是一个在有多个主机同时尝试控制总线,但只允许其中一个控制总线并使报文不被破坏的过程 同步 两个或多个器件同步时钟信号的过程 2、硬件结构 每一个I2C 这就是时钟同步,它解决了I2C总线的速度同步问题。 I2C位传输 数据传输:SCL为高电平时,SDA线若保持稳定,那么SDA上是在传输数据bit; 若SDA发生跳变,则用来表示一个会话的开始或结束(后面讲) 数据改变:SCL为低电平时,SDA线才能改变传输的 I2C开始和结束信号 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 ?   另外I2C的通信速率为100Kb,快速为400Kb

    1.8K60发布于 2018-03-07
  • 来自专栏RainMark 的文章

    I2C 总线协议

    1.I2C协议 2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 1.3 I2C应答信号 Master每发送完8bit数据后等待Slave的ACK。 即在第9个clock,若从IC发ACK,SDA会被拉低。 Master发送I2C addr(7bit)和w操作0(1bit),等待ACK 3. Slave发送ACK 4. Master发送reg addr(8bit),等待ACK 5. Master发送I2C addr(7bit)和r操作1(1bit),等待ACK 7. Slave发送ACK 8. Slave发送data(8bit),即寄存器里的值 9. 第8步和第9步可以重复多次,即顺序读多个寄存器 读一个寄存器 读多个寄存器 2. PowerPC的I2C实现 Mpc8560的CCSR中控制I2C的寄存器共有6个。

    1.9K20发布于 2019-09-10
  • 来自专栏全栈程序员必看

    i2c总线的通信协议(i2c通信协议原理)

    I2C的数据传输速率位于串口和SPI之间,大部分I2C设备支持100KHz和400KHz模式。使用I2C传输数据会有一些额外消耗:每发送8bits数据,就需要额外1bit的元数据(ACK或NACK)。 I2C协议 I2C协议把传输的消息分为两种类型的帧: 一个地址帧 —— 用于master指明消息发往哪个slave; 一个或多个数据帧 —— 由master发往slave的数据(或由slave发往 master),每一帧是8-bit的数据。 注:协议要求每次放到SDA上的字节长度必须为8位,并且每个字节后须跟一个ACK位,在下面会讲到。 数据在SCL处于低电平时放到SDA上,并在SCL变为高电平后进行采样。 注:本文是对两篇文档中协议部分的翻译整理,并做了调整和补充,见文末的附录链接。

    2.6K10编辑于 2022-07-29
  • 来自专栏iot-me

    I2C通信协议

    简介 I2C通信协议(Inter-Integrated Circuit)是由Philips公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要使用USART、CAN等通信协议的外部收发设备,现在被广泛地用于系统内多个集成电路 (I2C)间的通信。 物理层 支持多主机从机,如下图总线上挂载了多个i2c设备,通过指定地址选择操作的设备。 当I2C设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。 (OD门可实现线与功能) 具有三种传输模式:标准模式传输速率为100kbit/s ,快速模式为 400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多I2C设备尚不支持高 速模式 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 协议层 读数据 写数据

    69920编辑于 2022-02-11
  • 来自专栏韦东山嵌入式

    Linux系统驱动之I2C协议

    协议 参考资料: i2c_spec.pdf 1. 下图:白色背景表示"主→从",灰色背景表示"从→主" 3.3 I2C信号 I2C协议中数据传输的单位是字节,也就是8位。但是要用到9个时钟:前面8个时钟用来传输8数据,第9个时钟用来传输回应信号。 响应信号(ACK):接收器在接收到8位数据后,在第9个时钟周期,拉低SDA SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平期间变化 I2C协议信号如下: 3.4 协议细节 如何在SDA上实现双向传输? 当它就绪后,就可以不再驱动三极管,这是上拉电阻把SCL变为高电平,其他设备就可以继续使用I2C总线了。 对于IIC协议它只能规定怎么传输数据,数据是什么含义由从设备决定。

    3.5K20编辑于 2021-12-08
  • 来自专栏硬件大熊

    UART、SPI、I2C协议异同点

    I2C、SPI、UART都是常见的低速板级通信协议,目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、Touch控制器、指纹模块、蓝牙模块、WIFI模块也都兼容这三种通信方式的一种或几种。 对于这三种通信协议的差别,可以区分到非常细,包括信号的单位、传输协议中的封包格式等。 UART一般由TXD、RXD、GND三根线组成,是一种异步传输协议。 比较简单,所以CPU输出log一般都是通过一个UART口来输出,是目前最常用的调试接口,其传输速度比较慢,传统的传输速度在115200bps或以下,不过现在大部分UART控制器也能支持到4Mbps或者8Mbps I2C是两根线,SDA(数据)和SCL(时钟),是一种半双工同步传输协议。 UART和后面两者最大的区别在于后面两者是同步的,要有统一的时钟线,而UART不需要,接线方便,但收发双方都需要配置相同的波特率,即设备要有自己的时钟源;I2C协议中是有地址规则的,因此在一对多通信的时候更有优势

    76410编辑于 2022-06-23
  • 来自专栏电子电路开发学习

    一文看懂I2C协议

    据非官方统计,90%电子行业的公众号都介绍过3种串行通讯协议:UART、SPI和I2C。这3种串行协议也是电子开发行业最常用的协议。前面介绍了串口通讯协议及其FPGA实现,SPI协议。 本篇文章介绍I2C通讯协议及其FPGA实测波形。 文末有【I2C官方标准文档下载方法】。 4种信号 I2C协议最基础的几种信号:起始、停止、应答和非应答信号。 起始信号 I2C协议规定,SCL处于高电平时,SDA由高到低变化,这种信号是起始信号。 9-10-11-12-13-14 S8R_START2 = 8, S9R_CTRL_BYTE2 = 9, S10R_ACK3 = 10, S11R_DATA = 11, S12R_NACK TI:理解I2C文档_SLVA704 TI在2015年发布了一篇SLVA704文档, 全文共8页,精简的概括了I2C协议的电气特性,操作时序,读写时序等,比较适合I2C入门学习。 ? 3.

    2.5K30发布于 2021-04-02
  • 来自专栏AI电堂

    一文带你读懂I2C协议

    1、什么是I2C协议 I2C协议是一个允许多个 “从机” 芯片和一个或更多的 “主机” 芯片进行通讯的协议。它就像串行外设接口(SPI)一样,只能用于短距离通信。 如:I2C、SPI等有时钟信号的协议,都属于这种通信方式。 异步通信: 接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。 5、数据传输协议 主设备和从设备进行数据传输时遵循以下协议格式。数据通过一条SDA数据线在主设备和从设备之间传输0和1的串行数据。 在I2C主设备进行读写操作的过程中,主设备在开始信号后控制SCL产生8个时钟脉冲,然后拉低SCL信号为低电平,在这个时候,从设备输出应答信号,将SDA信号拉为低电平。 8I2C的代码实现 参考了STM32的HAL库中I2C驱动,主设备发送函数HAL_I2C_Master_Transmit()具体如下: /** * @brief Transmits in master

    33.1K411编辑于 2022-12-08
  • 来自专栏码神随笔

    MCU常见通信总线串讲(三)—— I2C总线协议

    通信协议则是指在通信总线上传输数据时所遵循的规则和约定,以确保不同设备之间能够正确地交换信息,我们也可以把他叫做通信总线协议。 系列文章,主要讲解以下几个总线协议,读者可以按需选择: UART和USART RS232、RS485总线 IIC总线 SPI总线 CAN总线 USB总线 一、I2C总线的概念 其实站在我个人开发的角度来说 ,I2C使用的比SPI多,他的主要概念如下: I2C(Inter-Integrated Circuit)是一种串行通信协议,用于连接微控制器和外部设备,例如传感器、存储器芯片、显示屏等。 二、 I2C协议I2C协议层规定了在I2C通信中需要遵循的一些基本规则和标准,其中包括以下内容: 物理层规定: 定义了I2C总线的物理结构、传输介质(通常是双绞线)、电气特性(如电压电平、 I2C协议规定设备地址可以是7位或10位,实际中7位的地址应用比较广泛。 时序规定: 规定了时钟脉冲的频率、数据传输的时序要求,以确保通信的稳定性和可靠性。

    2.4K31编辑于 2023-11-09
  • 来自专栏飞鸟的专栏

    8、VTP协议

    交换机的默认模式,提供VTP消息:包括VLAN ID 和名字信息,学习相同域名的VTP消息,转发相同相同的域名VTP信息,可以添加、删除和更改VLAN。可以有多个Server但是最少有一个。

    82540编辑于 2022-01-05
  • 来自专栏嵌入式开发圈

    详述I2C总线协议、时序,入门不再是难事

    EEPROM存储器系统架构图 今天笔者就和大家聊一聊I2C总线: 位传输 I2C总线是由飞利浦(Philips)公司开发的一种双向二线制同步串行总线,实现有效的IC间的控制,它只需要两根线(SDA和SCL 起始和停止条件 数据传输 字节传输 发送数据时,由主机先发送一个起始信号,再将SDA信号切换为输出模式,然后将8位数据依次由高到低发送出去; 发送完成后,主机将SDA信号切换为输入模式,等待丛机回应ACK I2C总线数据传输 丛机地址 在I2C总线系统中,每个设备都有它的固定地址,一般由芯片的A0,A1和A2决定。丛机地址字节由七位地址位(D7-D1位)和一位方向位(为D0位)组成。 EEPROM的器件地址 读写过程 1.写数据过程 1.主机发送I2C总线停止信号,防止总线忙写数据失败 2.主机发送I2C总线复位信号,确保写数据之前总线处于空闲状态 3.主机发送I2C总线开始信号 主机读/写数据过程 结语 I2C总线在嵌入式应用中非常广泛,基本上所有的电力电子设备都会用到这个总线; 笔者根据自身多年的工作经验,记录下了我对它的理解,如果有写的不对,希望大家能多多指出,今天的I2C

    4.1K20发布于 2021-07-07
  • 来自专栏韦东山嵌入式

    第019课 I2C协议详解及裸机程序分析

    第001节_I2C协议与EEPROM I2C协议 I2C在硬件上的接法如下(图19-1)所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说 :: e.老师说下课(停止) 我们就使用这个简单的例子,来解释一下IIC的传输协议。 对于IIC协议它只能规定怎么传输数据,数据什么含义它完全不能够控制,数据的含义有从设备决定。 第002节_S3C2440的I2C控制器 在嵌入式系统里面的主控芯片一般都会有I2C控制器,要是没有可以根据I2C协议用GPIO管脚模拟,但是非常麻烦,我们要发送数据时,可以把数据放到某个寄存器,它就会自动的发出时钟 当我们想发送一个数据的时候,要设置某个寄存器启动传输,它也一样会产生时钟,然后从设备就会把数据通过SDA传到I2C控制器里面,组装进某个寄存器里面,最终寄存器会把接收到的8位数据返回给我们的程序,从这里可以看到

    1.9K20发布于 2020-09-30
  • 来自专栏架构专题

    WebSocket协议 8

    WebSocket是个不太干净协议。 ---- 本文包括以下内容: 一、WebSocket协议只能浏览器发起么? 二、WebSocket和HTTP什么关系? ---- 一、WebSocket协议只能浏览器发起么? 不是。目前此协议的受众的也不仅仅是web开发者。 WebSocket只是一种协议,它和http协议一样,使用类似okhttp的组件,可以在任何地方进行调用,甚至可以借助WebSocket实现RPC框架。 ? 如果服务端支持的话,就可以切换到WebSocket协议。简单点讲:连接已经在那了,通过握手切换成ws协议,就是切换了连接的一个状态而已。 如此操作,可以尽量避免普通 HTTP 请求被误认为 WebSocket 协议。 其他的,像Sec-WebSocket*字样的头信息,表明了客户端支持的子协议以及其他信息。

    1.1K20发布于 2019-09-24
  • 来自专栏PHPer 进击

    网络协议 8 - TCP协议(上):性恶就要套路深

    ----     上次说了“性本善”的 UDP 协议,这哥们秉承“网之初,性本善,不丢包,不乱序”的原则,徜徉在网络世界中。      根据上述对 TCP 头的分析,我们知道对于 TCP 协议要重点关注以下几个问题: 顺序问题,稳重不乱; 丢包问题,承诺靠谱; 连接伟豪,有始有终; 流量控制,把握分寸; 拥塞控制,知进知退。 因此,TCP 协议要求 A 最后要等待一段时间,这个等待时间是 TIME_WAIT,这个时间要足够长,长到如果 B 没收到 A 的回复,B 重发给 A,A 的回复要有足够时间到达 B。      协议规定 MSL 为 2 分钟,实际应用中常用的是 30 秒、1分钟和 2 分钟等。     还有一种异常情况,B 超过了 2MS 的时间,依然没有收到它发的 FIN 的 ACK。 参考: 百度百科-TCP 词条; 刘超-趣谈网络协议系列课;

    69720发布于 2019-04-11
  • 来自专栏开源519

    I2C总线架构 之 I2C核心

    引言 在之前的 「《I2C总线架构 之 设备驱动》」 和 「《I2C总线架构 之 总线驱动》」 中一再提到i2c核心,本篇文章就总结一下i2c核心的主要功能。 分层思想 在之前的篇章中,大致能够了解i2c核心功能主要是为i2c设备驱动和i2c总线驱动的注册操作提供API。这种设计的好处在于实现:高内聚,低耦合。 i2c总线与i2c设备相互独立,互无联系;两者都是通过调用i2c核心提供的API实现匹配。即两者只与i2c核心有联系,这样也就可以实现一个固定i2c总线驱动可以和任一符合条件的设备驱动匹配。 具体API 这里对i2c总线驱动和i2c设备驱动进行分析,关键在于分析i2c_client与i2c_driver如何实现匹配的。 「传输数据:i2c_transfer」 此函数是设备驱动文件用来与i2c器件传输i2c协议数据的,封装好的i2c数据传输API。

    3.2K21发布于 2020-09-03
  • 来自专栏用户1692782的专栏

    手撕RTSP协议系列(8)——PAUSE

    上一篇我们讲解了RTSP PLAY消息,PLAY请求成功之后,RTSP server就会一直向客户端发送RTP数据包!开始“播放”之后,我们相应的就会有暂停,停止等操作!本篇我们就先来看下RTSP的PAUSE!

    2.3K41发布于 2020-10-30
  • 来自专栏全栈程序员必看

    I2C电平转换电路_i2c电平转换芯片

    发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169431.html原文链接:https://javaforall.cn

    1.1K10编辑于 2022-09-22
  • 来自专栏个人路线

    I2C 同步串行总线

    I2C 概述 I2C(Inter Integrated Circuit)集成电路间总线是由 Philips 公司开发的一种简单、双向二线制同步串行总线。I2C 以主从方式工作。 I2C 的通信方式为半双工,因为只有一根 SDA 线,所以在同一时间内只可以单向通信。 I2C 接口定义了完成 I2C 传输的通用方法集合,包括: I2C 控制器管理:打开或关闭 I2C 控制器; I2C 消息传输:通过消息传输结构体数组进行自定义传输 I2C 时序主要有四个元素组成:起始信号 I2C 操作流程如下: 初始化I2C 设置I2C 波特率 I2C 写操作 I2C 读操作 I2C 模块相关 API 接口名 描述 unsigned int IoTI2cInit(unsigned int (unsigned int id, unsigned int baudrate); 设置I2C波特率 I2C 接口调用举例如下: 代码功能:定义了 I2C 接口功能以及 I2C 相关参数,GPIO_

    1.2K30编辑于 2023-02-23
  • 来自专栏Java进阶架构师

    【网络协议】专题总结以及网络协议高频面试题汇总(8篇)

    这是一份超详细的HTTP协议攻略,内容大纲如下: ? 内容如下(点击即可跳转): 一篇文章带你详解 HTTP 协议(上) 一篇文章带你详解 HTTP 协议之报文首部及字段详解(中) 一篇文章带你详解 HTTP 协议(下) 这是一份超详细的TCP/IP 协议攻略,内容大纲如下: ? 内容如下(点击即可跳转): 一篇文章带你详解 TCP/IP 协议 一篇文章带你详解 TCP/IP 协议(完结) 初次接触,可能对所谓三次握手四次挥手理解过于抽象? 没关系,上面的文章已经为你系统构建了网络协议相关的知识点,现在,我手把手带你走一遍面试官喜欢问的高频面试题吧。 十五道java开发常遇到的计算机网络协议高频面试题

    1.4K20发布于 2018-09-21
  • 来自专栏小语雀网

    HTTP协议8种请求类型及介绍

    CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

    96920编辑于 2022-05-06
领券