首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

IIC

下图是一个嵌入式系统中处理器仅通过2根线的IIC总线控制多个IIC外设的典型应用图 ?...IIC 通信协议 IIC 串行总线一般有两根信号线,一根是双向的数据线 SDA ,另一根是时钟线 SCL ,其时钟信号是由主控器件产生。...所有接到 IIC 总线设备上的串行数据 SDA 都接到总线的 SDA 上,各设备的时钟线 SCL 接到总线的 SCL 上。对于并联在一条总线上的每个 IIC 都有唯一的地址。...空闲状态 当 IIC 总线的数据线 SDA 和时钟线 SCL 两条信号线同时处于高电平时,规定为总线的空闲状态。...IIC 总线操作 对 IIC 总线的操作实际就是主从设备之间的读写操作。大致可分为以下三种操作情况: 主设备往从设备中写数据 数据包括从机寄存器地址和需要写入寄存器的数据data ?

98911

IIC协议

IIC是半双工,而不是全双工)。 b.每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和主机接收器。...c.IIC是真正的多主机总线,(而这个SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。...一个典型的IIC接口如下图(1)所示 ? 图(1) (3)IIC的协议层 IIC的协议层才是掌握IIC的关键。...设备里写东西,然后再紧接着写入IIC设备里的寄存器地址,而我直接写入了0x68,导致出错},每次数据传送总是由主机产生的终止信号结束。...即使是含有IIC硬件的单片机(如stm32 103系列)也有一定的缺陷,所以一般也会模拟IIC的时序。现将具体时间截图如下: ?

1.1K10

IIC实测波形入手,搞懂IIC通信

1 IIC基础知识 首先复习一下IIC基础知识,这部分看不懂的请先带着疑问,然后我们通过分析IIC的真实波形,这些疑问可能就豁然开朗了~ 1.1 IIC是什么 IIC(Inter Integrated...以下函数都是单片机在执行,即主机发出的动作,所以一定要从单片机的角度思考哦~ 另外,不要看到程序就匆匆掠过,为帮助理解,我对代码进行了一定的注解,仔细分析每条代码,想想与IIC的逻辑如何对应起来,IIC...逻辑还没懂的,读完本篇,分析过真实的IIC波形后,再来看看代码,会有不一样的体会。...return receive; } 4 真实IIC波形详细分析 4.1 读取从机数据(单字节读) 下面这张图(请横屏观看)展示IIC读某个器件的寄存器的一个字节的真实波形(注:实际是读了2个不同寄存器的值...,应该可以脑补出哦,哈哈~ 最后 通过真实的IIC波形分析,对IIC通信逻辑有没有更加直观的认识呢?

1.8K41

迷乱的通信协议之IIC时序分析(上)

但是随着时间的加长,再加上平常也没怎么去注意内部的一些时序跳动,导致了该协议的一些原理都已经忘却,对于本人来说,这是个捡芝麻丢西瓜的领悟,所以打算在接下来的一段时间对基础的的一些串行协议重新进行详细的分析...好了,步入今天正题~ 首先了解下下IIC是什么?...1、IIC的起始信号与停止信号 作用简介: 起始信号的作用是让在IIC总线上的从设备检测到,然后明白主机要准备给它发送数据了; 停止信号的作用是给正在进行的IIC通信发送一个结束的信号,让它停下,该休息了...时序分析:DATAIN是由主机发出,DATA OUT是指从机的反馈,从上面的时序图可以发现,在第9个时钟周期,主机释放SDA信号线,从机把SDA信号线拉低(同时在SCL为高电平时可检测到),代表响应产生...等待响应——第1次写入八位数据——等待响应——第2次写入八位数据——等待响应—……—第n次写入八位数据——等待响应——发出停止信号 未完待续 今天由于时间问题就先讲到这了,等明天再继续对读操作的时序进行分析

1.2K20

Linux驱动开发的IIC设备驱动的投机取巧

前言 LinuxIIC驱动想必大家都耳熟能详,网上也有很多相关的教程。 网上的教程总结,比如: 方法问题描述Linux 3.X.X版本之后,设备树+驱动此方法是比较符合linux驱动的写法的。...他将会操作多个文件 上面的做法都有些困难及弊端存在,经过摸索了一遍Linux的I2C驱动框架,我发现可以很精简的写一个I2C设备的设备驱动。...分析I2C总线驱动说明 I2C总线驱动的代码在linux的源码中--i2c-dev.c中。 在代码中可以看到他提供一套文件操作接口,open,read,write,close接口。...通过整个源码的分析,我们主要看看open和ioctl接口。其中: open接口,代码分析:通过inode获取设备子设备号,根据子设备号获取I2C适配器。然后申请一个从设备对象。...return res; } 投机取巧的I2C驱动写法 通过i2c总线驱动的源码分析,实际我们的设备驱动可以通过这种模仿这个总线驱动来写。

1.8K20

IIC 通信协议

IIC 通信协议 I2C(IIC,Inter-Integrated Circuit),数据线SDA(data)和时钟SCL(clock)构成的串行总线,双向传送。...高速IIC总线一般可达400kbps以上。 IIC是半双工通信方式。 时序图 主机:起始信号—–>第一位——>第二位———> …….....——–>第八位———> 等待应答信号——->停止信号 大致的一个数据传输流程是:主机向SDA线上发送一个起始信号,表示有信号进行传输,此时所有连接到IIC总线上的芯片都处于接收状态,接下来,主机发送想要与其进行数据传输的从机地址信号...时序分析 空闲状态 SDA和SCL同时为高电平时,总线处于空闲状态 起始信号与停止信号 起始信号:SCL为高电平时,SDA电平发生高到低的跳变 停止信号:SCL为高电平时,SDA电平发生低到高的跳变

50400

2.1 IIC协议的FPGA实现(一)IIC 总线规范简介

2.1 IIC协议的FPGA实现 2.1.1 IIC 总线规范简介 1) IIC 总线特性介绍   在现代电子产品开发过程中,为了简化系统,提高系统的可靠性,缩短产品开发周期,增加硬件构成的灵活性,推出了一种高效...、可靠、方便的 IIC串行总线。...所谓硬件 ID 就是 IIC 设备的辨识 ID,硬件 ID 会随着厂商还有设备的种类而有所改变。开发板上的 IIC 设备是某厂商的 IIC 储存器,即 24LC04,硬件 ID 为 4’b1010。...至于硬件地址就是 IIC 设备在总线上辨识地址,默认下为 3 位,即同类的 IIC 设备在同一条 IIC总线上仅允许占据 8 个而已。然而,开发板上的 24LC04 为 3’b000。...在进行IIC时序分析时,必须要考虑芯片的时序,见下表: ?

1.4K10

2.1 IIC协议的FPGA实现(二)IIC协议的FPGA实现

2.1 IIC协议的FPGA实现 2.1.2 IIC协议的FPGA实现               图2 13 IIC模块的建模图   图2 13是 IIC 储存模块的建模图,左边是顶层信号,右边则是沟通用的问答信号...IIC 总线的起始位也就类似串口或者 PS/2 等传输协议的起始位,然而不同的是, IIC 总线的起始位是 SCL 拉高 TR + TSU_STA + THD_STA + TF 之久,换之 SDA 则是拉高...图2 15 结束位   图2 15是结束位的时序图, IIC 设备的操作好坏一般都取决结束位。...对此, Verilog 可以这样表示,结果如代码2 3所示:           代码2 3 IIC结束位代码实现 1. begin 2....接下来是仿真验证,结果如下:           图 2 22 IIC总线仿真时序图   结合上述仿真波形图和程序可以看出:   起始位:SCLK为高电平时,SDAT由高到低,指示IIC总线传输数据的开始

1.3K40
领券