自动地址分配技术是否成功有两个方面的制约因素:一是自动地址分配的逻辑(或者算法)是否高效;另一因素是在总线发生竞争的情况下,是否有一套高效的调停机制。其中自动地址分配原理及逻辑已在前文《自动地址分配技术多联机空调系统中的应用》中详细阐述。本文在多联机系统上对总线调停机制从原理、实例、实验效果多方面详细介绍。
1 总线调停机制的必要性
多联机系统连接图如图1所示。此时室内机暂时未分配地址,地址处于未知状态。当室外机发出地址复位指令时,所有的室内机几乎同时收到室外机地址复位指令。所有室内机执行完复位当前地址相关操作,接着室内机向总线上传地址申请数据。若没有总线调停机制,所有数据在总线叠加导致总线波形畸变最终破坏正常通信。图2所示为无调停机制下多设备发送数据与总线数据的实测波形。其中,通道1是某一室内机发送端测得的数据波形,通道2是在接收端接收到的总线的数据波形。从图2可以直观地发现,总线电平逻辑、数据波特率明显发生错乱。换而言之在没有总线的调停机制下,总线数据叠加后直接结果就是破坏总线电平。可见总线调停是保证总线通信正常必不可少的环节,也是保证通信成功的关键方法。
2 总线调停机制的基本原理
调停机制简单而言就是制定一个竞争规则。即在总线空闲时,为防止同时有多个设备发送数据,需要决定哪个设备获得总线使用权的规则。该规则的执行结果是某一时刻只能有一个设备能发送数据,而其他竞争失败的设备处于等待状态。图3示意两设备总线竞争的调停机制,详细规制如下。
规则1:所有设备开始发送数据前监听总线的电平,如果总线电平为低电平,则不开始发送数据。根据规则1,应用中总线电平规则为:空闲时总线电平为高电平,任何数据发送时均以低电平为起始位。总线为低电平时定义为总线繁忙。该规则在物理电平上解决总线冲突。
规则2:通过判断发送开始时主控芯片的通信状态标志来对总线上的通信状态进行确认。当通信状态标志为真时,表示总线上已有通信数据,总线处于繁忙状态不开始发送数据;反之,表示总线上无通信数据。
规则3:每接收完一个单位数据,计时器复位归零。如果计时器未经过一单位数据时间,则存在接收下一个单位数据的可能,则不开始发送数据。为实际项目灵活处理,一个单位数据可以是位、字节等。
以上三规则满足其中任意一条,则不能开始发送数据;只有都不满足时,才能开始发送数据。
3 总线调停实际应用与效果
基于上述的调停机制的原理,设计自动分配地址时总线监听、数据处理、数据回传的控制逻辑。如图4所示,成功实现总线的调停,即在某一时刻有且仅有一个设备占用总线。
在图4右侧所示,设计室外机主机发送数据开始计时的10ms内是发送时间,之后是室内机的回传数据时间。在定义室外机发送开始10ms之后计时开始,室内机开始向总线发送数据计时停止,之间的时间为总线调停时间。从图4可以看出此次的总线调停时间为4.5ms(14.5 – 10ms)。图5为实验测试100次总线调停时间统计图。因为忽略室内机接收总线数据时间、内机解码编码以及运算时间,因此实际调停时间略有减少。忽略测量误差情况下,可以看出采用本方法总线调停时间最短约3ms,最长时间也不超过5ms。从测试数据分布可以得出,大多数的总线调停时间为4ms左右,满足实际工程使用要求。
需要指出的是,如果需要进一步缩短整个分配地址时间,可以缩短定义的通信发送时间(如上文所述的10ms时间)。总线竞争的时间是由所有室内机竞争的实际时间而定,并随着竞争的数量减少而减少。
4 结束语
本文从原理和实际工程应用详细阐述了自动地址分配过程中的总线竞争调停机制。结合前文介绍的自动地址分配方法可以高效快速地实现自动地址分配。虽然是基于多联机的应用场合,但是本技术不限于多联机系统,其方法和原理可以推广到其他相似的场合。从实际工程应用测试结果分析,基于本方法的总线调停机制是一个高效的调停机制,能高效的解决总线竞争问题。
参考文献:
[1] 刘运中,张天富.无极性通信在VRV空调系统中的应用[J]. 电子产品世界EEPW,2014,21(10):43-45.
[2] [美] John G.Proakis,Dimitris G.Manolakis著,方艳梅,刘永清等译. 数字信号处理——原理、算法与应用(第四版) [Digital Signal Processing,Fourth Edition ] [美][M],电子工业出版社,2014:120-246.
[3] 瑞萨R5F系列芯片硬件参考手册 r01uh0146ej0310_rl78g13.
[4] 百度百科, 拨码开关, http://baike.baidu.com/view/2519271.htm.
[5] 百度百科, CAN总线协议, http://baike.baidu.com/view/1535722.htm.