[应用相关] IIC在传输过程中是否可被打断

[复制链接]
6067|49
wengh2016 发表于 2024-3-4 11:54 | 显示全部楼层
在软件实现上,可以通过编程技巧使得IIC通信看似可以被打断。比如,通过优先级更高的中断服务例程暂时挂起IIC通信过程,待中断处理完成后再恢复IIC通信。
uptown 发表于 2024-3-4 16:26 | 显示全部楼层
使用带有中断功能的IIC控制器或在软件层面实现中断服务程序来处理IIC通信过程中可能出现的中断情况。
bestwell 发表于 2024-3-5 08:49 | 显示全部楼层
在MCU(微控制器)中,当I²C正在执行数据传输时,如果有更高优先级的中断请求到来,CPU可以响应中断并暂时挂起I²C事务的处理,执行更高优先级的任务。一旦中断服务程序执行完毕,CPU返回到原始上下文时,I²C传输可以通过软件重新启动或者继续剩余的传输步骤。
1988020566 发表于 2024-3-5 11:22 | 显示全部楼层
IIC协议本身不支持中断               
jimmhu 发表于 2024-3-5 13:17 | 显示全部楼层
I2C是一种同步串行通信协议,它依靠SCL时钟线的边沿来触发数据在SDA线上的传输。当一个设备开始传输数据时,它将占用总线直到当前传输结束,在此期间其他设备必须等待而不能进行传输。
alvpeg 发表于 2024-3-5 15:47 | 显示全部楼层
在I2C传输过程中,如果主设备收到中断请求,可以暂停与从设备的数据传输,处理中断事件。处理完中断事件后,主设备可以继续与从设备进行数据传输。这种情况下,I2C数据传输是被打断的。
youtome 发表于 2024-3-5 20:21 | 显示全部楼层
当主机发起起始信号后,总线就处于占领状态,此时,任何其他的操作都不能打断数据的传输,直到主机发出停止信号,总线才恢复空闲状态。然而,如果在数据传输过程中,主机想要停止传输,它可以发送一个停止信号来中断传输。
Pretext 发表于 2024-3-5 20:38 | 显示全部楼层
使用空闲时间进行传输,或者使用DMA。
maqianqu 发表于 2024-3-6 07:24 | 显示全部楼层
如果IIC通信确实需要被打断,设计者需要考虑由于打断而引入的时序问题。这可能涉及到重新同步或者重新发起通信过程等问题。
软核硬核 发表于 2024-3-6 09:17 | 显示全部楼层
如果设备在传输过程中没有在预期的时间内检测到应答信号,它将认为发生了错误,并可能重新传输。
lzbf 发表于 2024-3-7 10:51 | 显示全部楼层
虽然I2C总线在传输过程中不能被其他设备打断,但是可以通过发送停止信号或发送不匹配的地址来中断传输。
可怜的小弗朗士 发表于 2024-3-21 13:11 | 显示全部楼层
I2C是基于时钟的总线,可以被打断
V853 发表于 2024-6-4 06:49 | 显示全部楼层
在重新传输过程中,电流传输被中断,直到设备恢复对总线的控制并完成传输。
chenjun89 发表于 2024-6-4 07:59 来自手机 | 显示全部楼层
IIC每次通信前都必须先有起始信号,所以不得行,你可以用硬件DMA赖发送数据。
天天向善 发表于 2024-6-6 23:49 | 显示全部楼层
IIC(Inter-Integrated Circuit)在传输过程中是可被打断的,具有总线冲突检测和处理机制,以应对打断情况,保障数据传输的正确性和稳定性。
芯路例程 发表于 2024-6-8 09:50 | 显示全部楼层
在每次通信之前,iic 必须有一个起始信号,所以你不能这样做,你可以使用硬件 dma 发送数据。
埃娃 发表于 2024-6-28 18:15 | 显示全部楼层
这个应该可以会被打断
AIsignel 发表于 2024-7-4 12:32 | 显示全部楼层
如果使用硬件 iic + 中断,则可能会被中断
LinkMe 发表于 2024-7-5 22:16 | 显示全部楼层
如果使用硬件、 iic、 + 、中断,则可能会中断
LEDyyds 发表于 2024-7-9 17:20 | 显示全部楼层
可以被打断,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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