IIC协议及其对ACK应答信号的处理】的更多相关文章

1,SCL一直由Master控制,SDA依照数据传送的方向,读数据时由Slave控制SDA,写数据时由Master控制SDA.当8位数据传送完毕之后,应答位或者否应答位的SDA控制权与数据位传送时相反. 2,开始位“Start”和停止位“Stop”,只能由Master来发出.3,地址的8位传送完毕后,成功配置地址的Slave设备必须发送“ACK”.否则否则一定时间之后Master视为超时,将放弃数据传送,发送“Stop”.4,当写数据的时候,Master每发送完8个数据位,Slave设备如果还有…
原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! TCP 是一种提供可靠性交付的协议. 也就是说,通过 TCP 连接传输的数据,无差错.不丢失.不重复.并且按序到达. 但是在网络中相连两端之间的介质,是复杂的,并不确保数据的可靠性交付,那么 TCP 是怎么样解决问题的? TCP 是通过下面几个特性保证数据传输的可靠性: 序列号和确认应答信号 超时重发控制 连接管理 滑动窗口控制 流量控制 拥塞控制 通过序列号和确认应答信号提高可靠性 如下图,在 TCP 中,当发送端的数据到…
IIC是飞利浦公司开发的两线式串行总线,主要应用在单片机和外围电子器件之间的数据通讯. IIC总线优点是节约总线数,稳定,快速,是目前芯片制造上非常流行的一种总线,大多数单片机已经片内集成了IIC总线接口,无需用户自己模拟,只需配置相关寄存器即可使用,但是,为了更好地理解IIC总线协议,可以自行按照IIC时序图进行模拟,加深理解. IIC总线有两条串行线,其一是时钟线SCK,其二是数据线SDA. 在寻常的应用之中,单片机常常作为主机,外围器件作为从机使用. 每一个从机器件都拥有唯一的一个地址,这…
"移植"的重要性:并非所有的电路都得自己设计,到了一定阶段,"移植"也是一种学习能力.--CrazyBingo 转眼间期末又到了,最近开始了所谓的期末总预习,比赛最终还是把作品交了,也算是对自己这学期一个交代了吧,感觉不总结出来总是少点什么,所以还是在努力一把,熬夜把之前的东西整理出来吧.Bingo说的"移植"是一种能力,但是完全拿别人的代码拿来用不加以思考和学习,那样是没有意义的,这学期就是因为"移植"的太多了,才感觉学到的…
1.总纲--复习IIC(inter integrated circuit)协议以及自己顺便读一下数据手册. /*************************************************************************************/ 1.1IIC协议的总结 1.2AT24C02的数据手册的阅读 1.3AT24C02关键部分的摘抄,以及IIC协议的引入及使用 1.4关键代码的编写,以及AT24C02的上层协议. /*****************…
目录 IIC协议理解(转) 个人小结记录 (记一下这个就够了) 以下为转载记录 概述 概述 输出级 主设备与从设备 速率 时序 空闲状态 起始位与停止位 数据的有效性 数据的传送 工作过程 主设备向从设备发送数据 主控器读取数据的过程 以C语言理解IIC title: IIC协议理解(转) date: 2019/1/28 17:50:13 toc: true --- IIC协议理解(转) 原文地址 https://www.cnblogs.com/BitArt/archive/2013/05/28…
1. 综述 I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备. 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据.在CPU和被控IC之间.IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上.但在STM8中,400kHZ已经是最快速度了. 2.关于STM8S103手册的I2C简介 芯片手册中只对I2C的特点进行了简单的讲解,但并未深入解析其中的过程. 3. I2C详细解析 I2C…
IIC协议解释 推荐资源: http://m.elecfans.com/article/574049.html       and       https://blog.csdn.net/firefly_cjd/article/details/51921129  (动态图讲解) (1)概述 I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有…
IIC协议解释 (1)概述 I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性. 经常IIC和SPI接口被认为指定是一种硬件设备,但其实这样的说法是不尽准确的,严格的说他们都是人们所定义的软硬结合体,分为物理层(四线结构)和协议层(主机,从机,时钟极性,时钟相位). IIC,SPI的区别不仅在与物理层,IIC比SPI有着一套更…
1. 综述 由上篇博客可知道IIC协议如何用代码实现,本篇博客就不涉及协议内容,只讲解如何使用. 本次的实验传感为:DS3231(时钟模块),对于时钟模块的具体信息我也就不多介绍,大家可以自行度娘,具体功能无非就是让单片机中能够起到获取时间的作用.该模块是可以由IIC协议去驱动的,再加上所要的操作也是比较简单,部分刚接触IIC协议的小伙伴可以拿来练手的一个模块. 2. 明确任务顺序 个人习惯,在每驱动一个新传感的时候,我会将我要完成的传感分为几个任务点.接下来就展示一下我在写DS3231模块时的…
(1)概述 I2C(Inter-Integrated Circuit BUS) 集成电路总线,该总线由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性.经常I2C和SPI接口被认为指定是一种硬件设备,但其实这样的说法是不尽准确的,严格的说他们都是人们所定义的软硬结合体,分为物理层(四线结构)和协议层(主机,从机,时钟极性,时钟相位).I2C,SPI的区别不仅在与物理层,I2C比SPI有着一套更为复杂的协议层定义.…
案例采用明德扬设计思想完成.IIC协议是非常常用的接口协议,在电子类岗位招聘要求中经常出现它的身影.关于IIC协议这里只做简要介绍,详细信息请自行百度或查阅相关Datasheet,网上资料非常多.该篇博文主要讲如何使用verilog来描述IIC协议,以读写EEPROM为例带领大家了解下明德扬四段式状态机规范和优势,另外还有一些自己在设计过程中总结的经验技巧. IIC协议时序格式以Datasheet中时序图的形式供大家参考.IIC协议有一条时钟线SCL和一条双线数据总线SDA.SDA在SCL高电平…
很多数字传感器.数字控制的芯片(DDS.串行ADC.串行DAC)都是通过IIC总线来和控制器通信的.不过IIC协议仍然是一种慢速的通信方式,标准IIC速率为100kbit/s,快速模式速率为400kbit/s.本文致力于讲述如何用计数器控制和分频时钟控制两种方式完成IIC的读写操作. IIC协议   IIC协议是一种多机通讯,由SDA数据线和SCL时钟线构成串行总线,所有的IIC设备都可以挂载到总线上,但每个设备都有唯一的设备读地址和设备写地址.在使用IIC作为数字接口的芯片datasheet中…
十六.IIC协议详解+Uart串口读写EEPROM 本文由杭电网友曾凯峰根据小梅哥FPGA IIC协议基本概念公开课内容整理并最终编写Verilog代码实现使用串口读写EEPROM的功能. 以下为原文内容: 在看完小梅哥讲解IIC总线基本概念后,就有种想跃跃欲试的想法,下面先复习下梅哥讲解的IIC总线若干基本概念.以下基本概念均为小梅哥总结,我就直接拿过来供大家参考学习. IIC基本特性 总线信号 SDA:串行数据线 SCL:串行数据时钟 总线空闲状态 SDA:高电平 SCL:高电平 IIC协议…
1.起始和停止条件: 起始信号:时钟线SCL为高电平时,数据线SDA从高电平拉到低电平,表示通信开始. 停止信号:时钟线SCL为高电平时,数据线SDA从低电平拉到高电平,表示通信结束. 2.时钟线的上升沿锁存数据.因此数据线SDA只能在时钟线SCL为低电平时发生翻转,在高电平时保持不变. 如图1所示. 图1  起始和停止条件 3.应答信号 在一个字节传输的8个时钟后的第9个时钟期间,接收器必须回送一个应答位(ACK)给发送器.如图2所示. 数据线SDA发送完8位数据之后,就不再驱动总线,此时数据…
总线信号 :  SDA :串行数据线 SCL  :串行时钟 总线空闲状态 : SDA :高电平 SCL :高电平 起始位:SCL为高电平期间    SDA出现下降沿 终止位:SCL为高电平期间 SDA出现上升沿 数据传输 :SDA的数据在SCL高电平期间被写入从机.所以SDA的数据变化要发生在SCL低电平期间. IIC时钟频率:不高于400K 应答:当IIC主机(不一定是发送端还是接受端)将8位数据或命令传出后,会将SDA信号设置为输入,等待从机应答(等待SDA由高电平拉为低电平) 若从机正确应…
ack 应答机制 对于某些不太重要的数据,对数据的可靠性要求不是很高,能够容忍数据的少量丢失, 所以没必要等 ISR 中的 follower 全部接收成功. 所以 Kafka 为用户提供了三种可靠性级别,用户根据对可靠性和延迟的要求进行权衡, 选择以下的配置. acks 参数配置: acks: 0:  producer 不等待 broker 的 ack,这一操作提供了一个最低的延迟,broker 一接收到还 没有写入磁盘就已经返回,当 broker 故障时有可能丢失数据; 1:  produce…
我TMD也是服了,反正我板子搞了半天也不成功我也不知道为什么,野火STM32-MINI,一直卡EV5,不管了 先代码沾上 工程目录(板子为野火STM32 MINI) 串口相关代码: bsp_usart.h #ifndef __USART_H #define __USART_H #include "stm32f10x.h" #include <stdio.h> /** * 串口宏定义,不同的串口挂载的总线和IO不一样,移植时需要修改这几个宏 * 1-修改总线时钟的宏,uart…
关于AT24C02芯片的一些参数性能可参考其他的一些相关资料.此处只贴出程序. 宏文件AT24CXX.h #ifndef _AT24CXX_H_ #define _AT24CXX_H_ #include "IIC.h" #include "SysTick.h" #define EEPROM_TYPE AT24C02 //实际中用到的EEPROM类型 /* 可以供选择的EEPROM类型 */ #define AT24C01 128 #define AT24C02 25…
/* 第1个参数为I2C操作句柄 第2个参数为从机设备地址 第3个参数为从机寄存器地址 第4个参数为从机寄存器地址长度 第5个参数为发送的数据的起始地址 第6个参数为传输数据的大小 第7个参数为操作超时时间 */HAL_I2C_Mem_Write(&hi2c2,salve_add,0,0,PA_BUFF,sizeof(PA_BUFF),0x10); HAL_I2C_Mem_Write_IT(): HAL_I2C_Mem_Read(); HAL_I2C_Mem_Read_IT(); HAL_I2C…
i2c如果用到主从的关系的时候,需要考虑: give_ack();//从器件发送,来表示占用总线,让sda总线保持低电平. get_ack();//主器件判断是否有器件占用总线,sda有器件占用,是低电平. give_nack();//从器件发送来表示释放总线,sda线高电平 版权声明:本文为博主原创文章,未经博主允许不得转载.…
最近遇到一个BUG,跟IIC通信有关,所以借这个机会总结一下IIC总线协议 1.引脚接口介绍 1.A0,A1,A2为24LC64的片选信号,IIC总线最多可以挂载8个IIC接口器件,通过对A0,A1,A2寻址,可以实现对不同的EEPROM操作 2.WP为读写使能信号,当WP悬空或者接地,EEPROM可读可写,当WP接电源,EEPROM只能读不能写.因为我们要对EEPROM写,所以这里WP信号悬空 3.SCL为时钟信号线,最高频率400Khz 4.SDA为数据线,双向线(inout),当为in时,…
I2C两线式串行总线通讯协议,它是由飞利浦开发的,主要用于连接微控制器及其外围设备之间,它是由数据线SDA和信号线SCL构成的,可发送和接收数据即在MUC和I2C设备之间,I2C和I2C之间进行全双工信号传输,高速I2C总线一般可达到400kbps.一般我们也称为TWI接口. I2C支持多主机模式: 即在这个主线上可以挂载n个I2C外设. 对于I2C协议,其实也很简单,不要想的那么复杂,其实就是电平的变换.我们可以人为的分为6个部分 整体时序图: 各状态: 空闲状态 I2C总线的SCK和SDA两…
本节来学习IIC接口下的24C02 驱动分析,本节学完后,再来学习Linux下如何使用IIC操作24C02 1.I2C通信介绍 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,是一个多主机的半双工通信方式 每个挂接在总线上的器件都有个唯一的地址 位速在标准模式下可达 100kbit/s,在快速模式下可达400kbit/s,在高速模式下可待3.4Mbit/s. 2. I2C总线系统结构,如下所示 其中SCL时钟线的频率由主机提供,且从机不能主动来引起数据传输,必须等待主机先发信号才…
I2C总线通讯协议 1. I2C总线简介 I2C是Inter-Integrated Circuit的简称,读作:I-squared-C.由飞利浦公司于1980年代提出,为了让主板.嵌入式系统或手机用以连接低速周边外部设备而发展. 1.1 物理接口 I2C总线只使用两条双向漏极开路的信号线(串行数据线:SDA,及串行时钟线:SCL),并利用电阻上拉.I2C总线仅仅使用SCL.SDA两根信号线,就实现了设备间的数据交互,极大地简化了对硬件资源和PCB板布线空间的占用.I2C总线广泛应用在EEPROM…
I2C 与 Touch slide 最近做了一个与触摸滑条相关的测试,利用I2C通讯协议来配置触摸控制芯片的相关寄存器,读取触摸读数,并通过STM Studio动态显示触摸读数的变化过程.这个测试相对简单,只要搞定I2C通讯协议,后面的触摸控制芯片的相关寄存器配置就变得很简单了,所以我就简单地总结一下I2C通讯部分笔记. 实验平台:IAR 及 STM Studio 实验主芯片:自制STM8L051/101评估板 触摸控制芯片:ProxSense IQS263 使用硬件触摸滑条(Touch sli…
在逻辑设计领域,只涉及单个时钟域的设计并不多.尤其对于一些复杂的应用,FPGA往往需要和多个时钟域的信号进行通信.异步时钟域所涉及的两个时钟之间可能存在相位差,也可能没有任何频率关系,即通常所说的不同频不同相. 图1是一个跨时钟域的异步通信实例,发送域和接收域的时钟分别是clk_a和clk_b.这两个时钟频率不同,并且存在一定的相位差.对于接收时钟域而言,来自发送时钟域的信号data_a2b有可能在任何时刻变化. 图1 跨时钟域通信 对于上述的异步时钟域通信,设计者需要做特殊的处理以确保数据可靠…
一.MPU6050中的IIC时序 1.1 START和STOP SDA和SCL在高电平时,SDA拉低表示START.SCL拉低,表示可以传输数据. SDA和SCL在低电平时,SDA拉高表示STOP. SCL拉高,表示传输数据结束. /****************************************** *函数原型: void IIC_Start(void) *功能: 产生IIC起始信号 ******************************************/ voi…
1.IIC物理层 IIC通信属于同步半双工通信,IIC总线由两根信号线组成.一根是数据线SDA,一根是时钟线SCL,时钟线只能由主机发送给从机,数据线可以双向进行通信,总线上可挂载多个设备,挂载数量受到总线最大电容400pF限制,同时也受地址位数的影响. 连接在IIC总线上的设备都有自己的地址,主机可以通过地址寻找到挂载在总线上的设备,如果是一个MCU与外部设备例如OLED进行连接的时候,MCU的地址可以通过软件进行修改,外部设备如OLED(无法直接进行程序配置的设备)则可以通过修改它的硬件电路…