《通信协议篇》关于工业组网通信协议设计的考虑

        工业组网通信协议可以由串口、现场总线、工业以太网来实现,根据实际的项目需求去采用其中最合适的一种方式来实现通信协议。

一、 三种方式的优劣

        从性能以及多站的特点RS485是作为串口的首选,现场总线以CAN总线为例,所以下面对CAN、RS485以及工业以太网作对比。

1. RS485接口标准

        RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。半双工串行通信,数据最高传输速率为10Mbps,在总线上允许连接多达128个收发器,即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络,但RS-485总线上任何时候只能有一发送器发送,即一主多从。

2. CAN总线

        CAN总线是国际标准的工业级现场总线,传输可靠,实时性高;传输距离最远可以达到10KM,传输速率达到1Mbps;单条总线最多可接110个节点,并可方便的扩充节点数;多主结构,各节点的地位平等,方便区域组网,总线利用率高;实时性高,非破坏总线仲裁技术,优先级高的节点无延时;出错的CAN节点会自动关闭并切断和总线的联系,不影响总线的通讯;报文为短帧结构并有硬件CRC校验,受干扰概率小,数据出错率极低;自动检测报文发送成功与否,可硬件自动重发,传输可靠性很高;硬件报文滤波功能,只接收必要信息,减轻cpu负担,简化软件编制。

3. 工业以太网的优势与不足

优势:

        基于TCP/IP的以太网是一种标准开放式的网络,由其组成的系统兼容性和互操作性好,资源共享能力强,可以很容易的实现将控制现场的数据与信息系统上的资源共享;数据的传输距离长、传输速率高;易与Internet连接,低成本、易组网,与计算机、服务器的接口十分方便,受到了广泛的技术支持。

不足:

        以太网采用的是带有冲突检测的载波侦听多路访问协议(CSMA /CD),无法保证数据传输的实时性要求,是一种非确定性的网络系统; 安全可靠性问题,以太网采用超时重发机制,单点的故障容易扩散,造成整个网络系统的瘫痪;对工业环境的适应能力问题,目前工业以太网的鲁棒性和抗干扰能力等都是值得关注的问题,很难适应环境恶劣的工业现场;本质安全问题,在存在易燃、易爆、有毒等环境的工业现场必须要采用安全防爆技术;总线供电问题。在环境恶劣危险场合,总线供电具有十分重要的意义。

4. RS485、CAN总线与工业以太网的比较

4.1 RS485总线与CAN总线比较

         速度与距离: CAN与RS485以1Mbit/S的高速率传输的距离都不超过100 米,可谓高速上的距离差不多。但是在低速时CAN以5Kbit/S时,距离可达10KM,而485再低的速率也只能到1219米左右(都无中继)。可见CAN在长距离的传输上拥有绝对的优势。以太网百兆无中继最远120米(如使用AMP可达300米)。

        总线利用率:RS485是单主从结构,就是一个总线上只能有一台主机,通讯都由它发起的,它没有下命令,下面的节点不能发送,而且要发完即答,受到答复后,主机才向下一个节点询问,这样是为了防止多个节点向总线发送数据,而造成数据错乱。而CAN-Bus和以太网是多主从结构,每个节点都有CAN控制器,多个节点发送时,以发送的ID号自动进行仲裁,这样就可以实现总线数据不错乱,而且一个节点发完,另一个节点可以探测到总线空闲,而马上发送,这样省去了主机的询问,提高了总线利用率,增强了快速性。所以在汽车等实时性要求高的系统,都是用CAN总线,或者其他类似的总线。

        错误检测机制:RS485只规定了物理层,而没有数据链路层,所以它对错误是无法识别的,除非一些短路等物理错误。这样容易造成一个节点破坏了,拼命向总线发数据(一直发1),这样造成整个总线瘫痪。所以RS485一旦坏一个节点,这个总线网络都挂。而CAN总线有CAN控制器,可以对总线任何错误进行检测,如果自身错误超过128个,就自动闭锁。保护总线。如果检测到其他节点错误或者自身错误,都会向总线发送错误帧,来提示其他节点,这个数据是错误的。大家小心。这样CAN总线一旦有一个节点CPU程序跑飞了,它的控制器自动闭锁。保护总线。所以在安全性要求高的网路,CAN是很强的。

        CAN具有完善的通信协议,可由CAN控制器芯片及其接口芯片来实现, 从而大大降低了系统的开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。

下表为RS485与CAN总线性能对比:

4.2  工业以太网和CAN现场总线的网络协议规范比较

        CAN现场总线作为一种面向工业底层控制的通信网络,其局限性也是显而易见的。首先,它不能与Internet互连,不能实现远程信息共享。其次,它不易与上位控制机直接接口,现有的CAN接口卡与以太网网卡相比大都价格昂贵。还有, CAN现场总线无论是其通信距离还是通信速率都无法和以太网相比。

        工业以太网和CAN现场总线的网络协议规范都遵循ISO /OSI参考模型的基本层次结构。工业以太网采用IEEE802参考模型,相当于OSI模型的最低两层,即物理层和数据链路层,其中数据链路层包含介质访问控制子层(MAC)和逻辑链路控制子层(LLC) 。CAN现场总线的ISO /OSI参考模型也是分为两层,并与工业以太网的分层结构完全相同,但是二者在各层的物理实现及通信机理上却有很大的差别。工业以太网和CAN现场总线的各层在具体网络协议实现上的分析比较如下表所示。

二、 通信协议的可靠性保证

        RS485不像工业以太网以及CAN现场总线,它只提供了物理接口,需要添加可靠性机制来保证数据的可靠性,通常使用的有奇偶校验、循环冗余检测(CRC)以及检验和方法(传输层使用的正是这种方式)。

        CRC常用于链路层,相比检验和方法CRC占用的CPU资源更大,在以太网中CRC是由适配器中专用的硬件实现,它能够快速执行更复杂的CRC操作。在以太网中传输层之所以加入检验和方法是因为怕可能数据包传到在某一链路中恰巧该链路不支持CRC,考虑到CPU的执行效率所以并没有在传输层加入CRC而是检验和方法。但现在一些基于串口的通信协议像Modbus-RTU之类大多数是采用CRC-16检验,所以具体使用哪种方式可以根据数据交互量以及CPU处理速率来决定。

        以上保证的只是链路层上的可靠性,在链路层之上应该添加容错机制,许多协议最常用的便是超时重传机制,因为数据在链路层之上基本不存在比特出错的情况,所以我们考虑的只有丢包情况,各种协议的重传机制大同小异。UDP使用rdt3.0协议是保证在比特出错和丢包的信道数据可靠,在比特不会出错的情况下rdt3.0协议也就是一个重传机制。

发布了36 篇原创文章 · 获赞 4 · 访问量 2785

猜你喜欢

转载自blog.csdn.net/qq845699/article/details/104210473
今日推荐