单片机多对多通信如何解决发送和接收混乱的问题

2025-04-07 22:14:16
推荐回答(1个)
回答1:

首先,这必须采用RS485总线,才可以组成多机的通信网络。
其次,就要设计一个比较严密的通信协议,以解决在任何一个时刻都只能有一个单片机向总线发送数据。
在无数据发送时,所有单片机都处于接收状态。每个单片机都要时刻监测总线的状态,当总线上有数据发送时,即检测到发送的起始位时,就产生中断,立即设置总线忙标志位,这时,只能接收,不能进入发送状态,就算是有数据需要发送也要等待总线进入闲置状态以后再发送。通信协议中包括每发送一帧数据的字节数,或确定一个结束标志字节,当所有处于接收状态的单片机收到结束字节后,即可解除总线忙状态,就可以发送数据了。
最后,为了避免多个等待发送数据的单片机,在解除总线忙状态后出现同时抢占总线进入发送状态,每个等待发送数据的单片机,在解除总线忙状态后,随机延时一点时间再发送,这样,多个等待发送的因延时不同,应该只有一个先进入发送状态,而其它的则接收到数据后再次进入总线忙状态而再次等待。