二总线通信设计专栏
- 《二总线,替代传统485总线通讯,选型及应用-CSDN博客》
- 《二总线,替代传统485总线通讯,低成本直流载波方案实现及原理-CSDN博客》
- 《二总线,替代传统485总线通讯,调试避坑指南之最大的电流环路坑-CSDN博客》
- 《二总线,替代传统485总线通讯,从站设计关注一个地方十倍提升-CSDN博客》
- 《二总线,替代传统485总线通讯,主动上报方案简易实现方法-CSDN博客》
- 《二总线,替代传统485总线通讯,地址自动分配或主动上报方案-CSDN博客》
- 《二总线,替代传统485总线通信,商用高效从机掉线检测方案-CSDN博客》
- 《二总线,替代传统485总线通信,线材选型及避坑-CSDN博客》
- 《二总线,替代传统485总线通讯,主站设计-CSDN博客》
- 《二总线,替代传统485总线通讯,直流载波主机设计方案-CSDN博客》
- 《二总线,替代传统485总线通讯,低成本直流载波PCB设计要点总结-CSDN博客》
- 《二总线,替代传统485总线通讯,在线地址分配商用方案解析-CSDN博客》
- 《二总线,替代传统485总线通讯,高速直流载波通信应用-CSDN博客》
一、概述
在总线通信中如二总线、485通信,本身不能像CAN一样实现主动上报,因此一般都采用的是主从模式,对于某些特殊系统,要求对设备掉线检测即时性要求非常高,如防盗相关系统,由于一般总线通信中常用波特率是9600bps,巡检方式远远达不到要求。
二、本文内容
本文将针对非标准总线通信系统提供一种从机掉线快速发现的机制,无论是XM2BUS的二总线通信,还是485通信,均可利用此机制来完成快速检测;本机制适应范围之所以是非标准,就是协议是私有可自行修改的系统,如果本身要求是公开完整的modbus协议,那就不适合了。
三、实现方法
我们以通信波特率9600bps,一个系统64个设备来进行举例,整个通信过程仍然由主机负责协调,主机将总线时间划分为掉线检测时间、常规通信时间;常规通信时间就是原有的轮询方式,二掉线检测时间,则划分这个时间段只负责掉线检测,不做其它用途。
首先,我们来分析一个从机上报自己是否正常,必须包含的内容,即地址(1 Byte),虽然我们只有64个设备,也先用1Byte来表示地址,以便方便后续扩展;对于总线通信系统而言,校验也必不可少,因此再设定1Byte校验,可以是取反操作的XOR校验码,这样一个从机就必须包含2Byte数据反馈给主机。
然后,主机下发一条广播指令,包括指令码+时间+间隔+校验,所有从机收到此指令后,开始清零计时器,在规定时间内,按在时刻【地址号*间隔】上传自身地址+校验共计2Byte。
对于64个设备从机系统,按1ms/Byte初略计算,间隔设定为3ms,则64*3=192ms,则可以完成一次掉线检测,当主机收到某个从机数据异常或者无数据,则可以单独针对那台从机进行轮询,以达到复检目的。
按此方法可以得到确定的掉线检测时间为192ms,再根据系统要求掉线检测的时间,一般是3秒,我们可自行设定掉线检测时间段的分配,比如1秒分配一次掉线检测时间段。
四、总结
掉线检测的思路主要是利用了尽量对无用信息的删减,以达到总线效率最高,其中最重要的一环就就是总线时间同步,这个也是不能忽略的部分,本文介绍的方案中,总线时间同步精度尽量做到0.1ms,这就涉及到对整体程序的构思了。