本帖最后由 liao6 于 2025-8-22 10:33 编辑
嵌入式一主多通信比较常见,数据交叉交互,一不小心主控就超时总线死锁,头疼的很,数据如何梳理,分享一下我的经验,欢迎交流。
案例:
主机:MCU
从机:IC1,IC2
通信方式:IIC
通信方式为1个主机,2个从机,主机对从机可读可写。
IC1,IC2的设备地址不同,因为对从机操作要求可读可写,那么,总线通信设计要考虑鲁棒性,这里我采用的就是状态机分时通信,同一时间只对一个从机进行读或者写操作,这样就避免了,通信时数据交叉干扰问题。请看下图:
每读取/写入一个寄存器数据,就进入下一个状态,间隔10ms之后,再操作下一个寄存器,IC1设别的读/写操作完成,再去操作IC2设备的寄存器。
这样处理一主多从通信,数据交互就很清晰,用逻辑分析仪抓通信数据时看起来也一目了然。
|