规则1:所有设备开始发送数据前监听总线的电平,如果总线电平为低电平,则不开始发送数据。根据规则1,应用中总线电平规则为:空闲时总线电平为高电平,任何数据发送时均以低电平为起始位。总线为低电平时定义为总线繁忙。该规则在物理电平上解决总线冲突。
规则2:通过判断发送开始时主控芯片的通信状态标志来对总线上的通信状态进行确认。当通信状态标志为真时,表示总线上已有通信数据,总线处于繁忙状态不开始发送数据;反之,表示总线上无通信数据。
规则3:每接收完一个单位数据,计时器复位归零。如果计时器未经过一单位数据时间,则存在接收下一个单位数据的可能,则不开始发送数据。为实际项目灵活处理,一个单位数据可以是位、字节等。
以上三规则满足其中任意一条,则不能开始发送数据;只有都不满足时,才能开始发送数据。
3 、总线调停实际应用与效果
基于上述的调停机制的原理,设计自动分配地址时总线监听、数据处理、数据回传的控制逻辑。如图4所示,成功实现总线的调停,即在某一时刻有且仅有一个设备占用总线。
在图4右侧所示,设计室外机主机发送数据开始计时的10ms内是发送时间,之后是室内机的回传数据时间。在定义室外机发送开始10ms之后计时开始,室内机开始向总线发送数据计时停止,之间的时间为总线调停时间。从图4可以看出此次的总线调停时间为4.5ms(14.5 – 10ms)。图5为实验测试100次总线调停时间统计图。因为忽略室内机接收总线数据时间、内机解码编码以及运算时间,因此实际调停时间略有减少。忽略测量误差情况下,可以看出采用本方法总线调停时间最短约3ms,最长时间也不超过5ms。从测试数据分布可以得出,大多数的总线调停时间为4ms左右,满足实际工程使用要求。
需要指出的是,如果需要进一步缩短整个分配地址时间,可以缩短定义的通信发送时间(如上文所述的10ms时间)。总线竞争的时间是由所有室内机竞争的实际时间而定,并随着竞争的数量减少而减少。