xixi2017 发表于 2023-11-6 20:18

I2C的应答与非应答

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

最后发送应答也能终止啊
页: [1]
查看完整版本: I2C的应答与非应答