二总线,替代传统485总线通信,商用高效从机掉线检测方案

 二总线通信设计专栏

一、概述

    在总线通信中如二总线、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,这就涉及到对整体程序的构思了。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值