步骤 | 单片机1 | 单片机2 | A线 | B线 |
1 | 总线空闲 | 总线空闲 | 1 | 1 |
2 | 获取总线控制权 | 其它操作 | 0 | 1 |
3 | 向FRAM内单片机2的数据接收区写入一包通信数据 | 其它操作 | 0 | 1 |
4 | 向B线发送走个负脉冲,通知单片机2,启动超时定时器 | 其它操作 | 0 | 负脉冲 |
5 | 其它操作 | 响应来自B线的脉冲,读取FRAM内数据接收区的内容(无须获取总线操作) | 0 | 1 |
6 | 其它操作 | 对数据进行处理后,向FRAM内单片机1的数据接收区写入回传数据或通信失败标志 | 0 | 1 |
7 | 其它操作 | 向B线发送1个负脉冲,通知单片机1 | 0 | 负脉冲 |
8 | 清超时定时器,读取数据区内容。如果失败可以做重发或其它处理;如果成功则拉高A线,释放I2C总线,1次通信工程结束 | 其它操作 | 1 | 1 |
9 | 如果超时定时器溢出,说明单片机2没有响应单片机1的通知,可以做重发或故障处理 |
欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |