主从模式
采用主从结构类似于监控MODBUS 别人的同类反映:为防止485总线通讯冲突,欲采用主从通讯方式接入单元为主机,而各控制节点为从机,通讯总是由主机发起,主机对从机进行巡检,以实现对从机状态的监测(如开关状态)或对从机进行控制。当发生某些事件时,主机在巡检过程之后插入控制过程。 巡检过程+控制过程总时长应不超过0.1S 并最好有时间裕量 以保证系统反应的及时性。 注意即使按下了按键,智能开关等也不会主动与接入单元通信。而是记录下按键次数,或者控制设备。同时,接入单元每0.1s会向各设备发送一个心跳信号
多主时的防冲突机制
一对多,如果多个同时发送则会出现总线冲突;采用一主多从,主查询的方式;缺点是对主性能要求高,如果主损坏系统就损坏;同时效率低 防冲突的一些解决办法: 为了解决各个节点主动获取总线控制权的问题,人们想到了利用监听总线状态的方式实现总线控制权的本地判断和获取,也就是CSMA/CD协议实际上做的工作[3]。即所有节点在发送前监听总线上是否有其他节点在发送数据,如果有,就暂时不发送。另外在发送数据的同时,边发送边监听,如果监听到冲突则冲突双方都停止发送。这样做,既能保证每一个节点都具有发起通信的权利,又能尽量减少发生总线冲突的机会,提高整个系统的吞吐量。 已有的一种实现方法是可通过将RX线取反之后接到CPU的INT0中断,用以检测总线上是否有数据传送,如果空闲,可获得总线控制权发送数据;然后监听自己发送的数据,(将发送的接收回来比较),判断是否发生的总线冲突。 该方法解决了总线控制权分配的时延问题,但是需要使用至少4个管脚(INT0、RXD、TXD、驱动器使能管脚),并且占用外部中断和内部定时器中断,需要利用软件监听发送的数据避免总线冲突。系统资源耗费较多,编程复杂,在一些场合的应用也有局限性。 添加总线判断机制利用中断监听总线,RX取反接到CPU的中断,占用了CPU资源 发送就是要避免同时发送的情况 发送优化:即便不添加总线监听,也要起码做一些检查,尽量避免总线冲突如果有别的设备在发送数据,则该设备应该在接收数据,则这个时候不能发送数据总线状态变量:需要将总线置于忙的情况:有接收数据在发送需要置空闲的时:接收之后一定间隔 就是在接收之后的间隔检查处判断,如果间隔大于一定值,则将总线设置为空闲{接收后启动间隔检查,如果小于某个间隔间隔检查递增,如果大于某个间隔清零接收计数,间隔检查可以继续递增,当大于某个值时可以置位总线空闲标志,供发送时使用}本设备发送完毕之后
参考其他网络的防冲突机制
以太网 无主,竞争机制 令牌