[PIC®/AVR®/dsPIC®产品] I2C的应答与非应答

[复制链接]
3661|15
 楼主| xixi2017 发表于 2023-11-6 20:18 | 显示全部楼层 |阅读模式
I2C(Inter-Integrated Circuit)总线是一种常用于连接微控制器、传感器、存储设备和其他集成电路之间的通信总线协议。在I2C通信中,有两个基本概念,即应答(Acknowledge)和非应答(Nacknowledge),用于确认数据传输的成功或失败。

应答(Acknowledge):

当一个I2C从设备接收到一个字节的数据后,它需要向主设备(通常是微控制器)发送一个应答信号以确认接收到数据。这个应答通常是一个低电平脉冲。
应答信号告诉主设备从设备已成功接收到数据,并准备好接收更多的数据或执行下一个操作。
如果主设备收到应答信号,则它会继续发送更多数据或命令给从设备。这个过程可能包括多个字节的数据传输。
在I2C总线上,应答通常是在SDA(数据线)上由被动设备控制,而SCL(时钟线)用于同步数据传输。
非应答(Nacknowledge):

非应答信号是一个高电平脉冲,用于表示从设备不愿接收更多数据或无法成功接收到当前的数据。
主设备在发送完最后一个字节后,如果从设备不打算接收更多数据,或者从设备无法成功接收到当前的数据,它会发送一个非应答信号。
非应答信号告诉主设备停止发送数据或执行其他操作,因为从设备无法继续通信。
非应答通常用于错误处理或表示从设备无法执行所请求的操作。
在I2C通信中,应答和非应答是重要的通信机制,用于确保数据的可靠传输和协调主从设备之间的操作。通过应答和非应答信号,主设备和从设备可以有效地进行双向通信,进行数据读取和写入,并处理通信中可能出现的错误。这些信号帮助确保I2C总线上的稳定和可靠的通信。

 楼主| xixi2017 发表于 2023-11-6 21:35 | 显示全部楼层
写I2C的时候还要注意,什么时候是从机响应,什么时候是主机发起响应,这两个是有区别的。
Undshing 发表于 2023-11-12 18:47 | 显示全部楼层
这两个差别不大吧
Henryko 发表于 2023-11-14 11:07 来自手机 | 显示全部楼层
最后结束前发应答和非应答有什么区别啊?
Stahan 发表于 2023-11-16 14:47 来自手机 | 显示全部楼层
发送应答后再发停止好像也可以使用啊
Stahan 发表于 2023-11-16 14:47 来自手机 | 显示全部楼层
发送应答后再发停止好像也可以使用啊
forgot 发表于 2023-11-17 10:43 | 显示全部楼层
非应答信号是一个高电平脉冲,用于表示从设备不愿接收更多数据或无法成功接收到当前的数据。
AloneKaven 发表于 2023-11-21 10:12 来自手机 | 显示全部楼层
Stahan 发表于 2023-11-16 14:47
发送应答后再发停止好像也可以使用啊

还是按照协议标准来比较好
Bowclad 发表于 2023-11-23 14:56 来自手机 | 显示全部楼层
按标准来的好处是别人都能看得懂
tpgf 发表于 2023-12-1 09:12 | 显示全部楼层
无论是什么设备 iic的时序都是相同的
aoyi 发表于 2023-12-1 09:44 | 显示全部楼层
iic总线上连接的上拉电阻的范围是多少呢
gwsan 发表于 2023-12-1 12:41 | 显示全部楼层
应答信号一般在多长时间内进行应答呢
nawu 发表于 2023-12-2 08:00 | 显示全部楼层
我觉得这种握手的通讯是比较可靠的
zljiu 发表于 2023-12-2 08:33 | 显示全部楼层
在什么情况下返回值是错误码呢
tfqi 发表于 2023-12-2 09:11 | 显示全部楼层
应答信号有相应的前导波形吗
Henryko 发表于 2023-12-4 10:18 来自手机 | 显示全部楼层
最后发送应答也能终止啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

145

主题

2034

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部