您当前的位置:首页 > 养生 > 内容

rs485通信的详细讲解 史上最全的RS485串口通讯的详细讲解

rs485通信的详细讲解 史上最全的RS485串口通讯的详细讲解

RS485接口组成的半双工网络一般是两线制,多采用屏蔽双绞线传输。这种连接方式是一种总线拓扑结构,同一总线上最多可以连接32个节点。我们知道,初始数据是模拟信号输出的简单过程量,然后仪器接口是RS232接口,可以实现点对点通信,但是这种方法可以实现联网功能,然后RS485解决了这个问题。因此,本文以问答的形式详细介绍了RS485接口。

一、什么是RS-485接口?它与RS-232-C接口相比有什么特点?

答:由于RS-232-C接口标准出现较早,不可避免地存在一些不足,主要表现在以下四点:

(1)接口的信号电平高,容易损坏接口电路的芯片,而且由于与TTL电平不兼容,需要用电平转换电路与TTL电路连接。

(2)传输速率低。在异步传输中,波特率为20Kbps。

(3)接口采用信号线和信号回线,形成共地传输形式。这种共地传输容易产生共模干扰,所以抗噪声干扰能力弱。

(4)传输距离有限。最大传输距离的标准值是50英尺。其实只能用50米左右。鉴于RS-232-C的缺点,出现了一些新的接口标准,RS-485就是其中之一。它具有以下特点:

1)RS-485的电气特性:逻辑1 由两条线之间的电压差(2-6)V表示;逻辑0 & gt;由两条线之间的电压差-(2-6)V表示。当接口的信号电平低于RS-232-C时,不容易损坏接口电路的芯片,而且这个电平与TTL电平兼容,所以与TTL电路连接很方便。

2)RS-485的最大数据传输速率为10Mbps。

3)RS-485接口是平衡驱动器和差分接收器的结合,增强了抗共模干扰能力,即具有良好的抗噪声干扰能力。

4)RS-485接口最大传输距离的标准值是4000英尺,实际可以达到3000米。另外,RS-232-C接口只允许一个收发器连接在总线上,即单站能力。而RS-485接口允许在总线上连接多达128个收发器。也就是说,它具有多站能力,因此用户可以通过使用单个RS-485接口来方便地设置设备网络。

5) RS-485接口抗噪声性能好,传输距离远,具有多站能力,是首选串行接口。因为RS485接口组成的半双工网络一般只需要两根线,所以RS485接口采用屏蔽双绞线传输。接口连接器采用DB-9 9芯插头插座,与智能终端RS485的接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(引脚)。

二、RS-422和RS-485串行接口标准

1、平衡传输

RS-422、RS-485与RS-232的区别在于数据信号采用差分传输,也称平衡传输。它使用一对双绞线,其中一个定义为A,另一个定义为b。

通常发送驱动器A和B之间的正电平为2 ~ 6V,是一种逻辑状态,负电平为-2 ~ 6V,是另一种逻辑状态。还有一个信号地c,还有一个启用RS-485中的端子,但这可以在RS-422中使用或不使用。启用端子用于控制传输驱动器和传输线之间的断开和连接。当启用端子是活动的,发送驱动器处于高阻抗状态,这称为第三状态,也就是说,它是不同于逻辑1 和0 & gt;

接收者也被规定为与发送者相对立。接收者和发送者通过平衡双绞线连接AA和BB。当接收器AB之间存在大于200mV的电平时,输出正逻辑电平,当小于-200mV时,输出负逻辑电平。接收器平衡线上的电平范围通常在200毫伏到6V之间。

2、RS-422电气规程

RS-422标准的全称是平衡电压数字接口电路的电气特性,它定义了接口电路的特性。图2显示了一个典型的RS-422四线接口。其实还有一根信号地线,一共五根线。图1显示了其DB9连接器的引脚定义。由于接收端采用高输入阻抗,发送驱动器比RS232具有更强的驱动能力,所以允许在同一条传输线上连接多个接收节点,最多10个节点。也就是一个主人,其余的都是奴隶。从机不能互相通信,所以RS-422支持一点对多的双向通信。接收机的输入阻抗为4k,因此发射机的最大负载能力为104k 100(终端电阻)。由于RS-422四线接口采用独立的发送和接收通道,因此不需要控制数据的方向。设备之间任何必要的信号交换都可以通过软件(XON/XOFF握手)或硬件(一对单独的双绞线)来实现。RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10 MB/s,平衡双绞线的长度与传输速率成反比,只有在传输速率低于100 KB/s时才能达到最大传输距离,最高速率传输只能在短距离内实现。通常,在100米长的双绞线上可以获得的最大传输速率仅为1 MB/s。

RS-422需要一个端接电阻,其阻值约等于传输电缆的特性阻抗。矩距离传输不需要端接电阻,即一般小于300米。终端电阻器连接到传输电缆的最远端。

3、RS-485电气规程

由于RS-485是从RS-422发展而来的,所以RS-485的许多电气规则与RS-422的相似。比如采用平衡传输模式,需要在传输线上连接端接电阻。RS-485可以采用两线制和四线制,两线制可以实现真正的多点双向通信。

使用四线连接时,像RS-422,只能实现一点对多的通信,即只能有一个主设备,其余都是从设备。不过,它比RS-422有所改进,无论是四线还是双线连接,总线上还可以连接32个器件。

RS-485与RS-422的不同之处在于其共模输出电压不同。RS-485在-7V到12V之间,RS-422在-7V到7V之间。RS-485接收器的最小输入阻抗为12k,S-422为4k。老的夏少云S-485符合所有的RS-422规范,所以RS-485的驱动可以在RS-422网络中使用。

RS-485和RS-422一样,最大传输距离约为1219米,最大传输速率为10 MB/s,平衡双绞线的长度与传输速率成反比。只有当传输速率低于100kb/s时,才能使用最长的电缆长度。最高速率的传输只能在短距离内实现。一般100米长的双绞线最大传输速率只有1 MB/s。

RS-485需要两个终端电阻,其电阻值等于传输电缆的特性阻抗。矩距离传输不需要端接电阻,即一般小于300米。终端电阻连接在传输总线的两端。

三、 RS-422和RS-485的网络安装点

RS-422可以支持10个节点,RS-485可以支持32个节点,这么多节点组成一个网络。网络拓扑一般采用终端匹配的总线结构,不支持环形或星形网络。在构建网络时,您应该注意以下几点:

1、使用双绞线电缆作为总线,并串联所有节点。从总线到每个节点的引出线长度应尽可能短,以使引出线中的反射信号对总线信号的影响最小。展示了实际应用中一些常见的错误连接方法(A、C、E)和正确连接方法(B、D、F)。虽然网络连接A、C、E不正确,但在短距离、低速率下仍可能正常工作,但随着通信距离的延长或通信速率的提高,其不利影响会越来越严重。主要原因是信号在每个分支的末端反射,与原信号叠加,会造成信号质量下降。

2、要注意母线特性阻抗的连续性,阻抗不连续的点会发生信号反射。这种不连续性容易发生在以下情况:总线的不同段使用不同的电缆,或者在总线的某一段上相互靠近地安装了太多的收发器,或者向总线引出了太长的支线。

简而言之,应提供单个一、连续信号通道作为总线。

四、关于RS-422和RS-485传输线匹配的一些注意事项

一般而言,RS-422和RS-485总线网络应使用端接电阻进行匹配。但短距离、低速率时可以忽略终端匹配。那么在什么情况下不要你不用考虑搭配吗?理论上,当在每个接收数据信号的中点采样时,只要反射信号在采样开始时衰减得足够低,就可以忽略匹配。但是,这在实践中很难掌握。美国MAXIM公司的一篇文章提到了一个经验原理,可以用来判断需要匹配什么样的数据速率和电缆长度:当信号转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的三倍以上时,就不能进行匹配。例如,具有斜率限制特性的RS-485接口MAX483的输出信号的上升或下降时间至少为250ns,典型双绞线上的信号传输速率约为0.2m/ns(24AWGPVC电缆)。只要数据速率在250kb/s以内,电缆长度小于16m,当MAX483用作RS-485接口时,可以省略终端匹配。

终端匹配一般采用端接电阻的方法。如前所述,RS-422在总线电缆的远端并联电阻,而RS-485应该在总线电缆的始端和末端并联电阻。一般RS-422网络的端接电阻为100,RS-485网络的端接电阻为120。等效于电缆特性阻抗的电阻,因为大多数双绞线电缆的特性阻抗约为100 ~ 120。这种匹配方法简单有效,但有一个缺点:匹配电阻功耗较大,不适合功耗限制严格的系统。

另一种省电匹配方法是RC匹配。使用电容器C来切断DC分量可以节省大部分功率。然而,电容C的值是一个难点,需要在功耗和匹配质量之间进行折衷。

还有一种使用二极管的匹配方法。虽然这个方案没有实现真正的匹配,它可以利用二极管的箝位效应快速减弱反射信号,从而达到改善信号质量的目的。节能效果显著。

五、 RS-422和RS-485的接地问题

电子接地非常重要,但往往被忽视。接地处理不当往往会导致电子系统运行不稳定,甚至危及系统安全。RS-422和RS-485传输网络的接地也很重要,因为不合理的接地系统会影响整个网络的稳定性,特别是在工作环境恶劣、传输距离长的情况下,对接地的要求更加严格。否则接口损坏率高。在许多情况下,当连接RS-422、RS-485通信链路时,只需将A 和B& <每个接口的两端都有一对双绞线。而忽略了信号地的连接,这种连接方式在很多场合可以正常工作,但却埋下了很大的隐患,原因有以下两点:

1、共模干扰:如前所述,RS-422和RS-485接口都是以差分方式传输信号,因此不需要检测相对于某个参考点的信号,系统只需要检测两条线之间的电位差。但是,人们往往忽略了收发器有一定的共模电压范围,比如RS-422的共模电压范围是-7 ~ 7V,而RS-485收发器的共模电压范围是-7 ~ 12V。只有满足以上条件,整个网络才能正常工作。当网络线路中的共模电压超过这个范围时,会影响通信的稳定性和可靠性,甚至损坏接口。以图1为例,当发射机驱动器A向接收机B发送数据时,发射机驱动器A的输出共模电压为VOS,由于两个系统有各自独立的接地系统,因此存在地电位差VGPD。然后,接收器输入端的共模电压VCM将达到VCM=vosgpd。RS-422和RS-485标准都规定VOS小于等于3V,但VGPD可能幅度较大(几十甚至几十伏),并可能伴有强干扰信号,导致接收机共模输入VCM超过正常范围,在传输线上产生干扰电流,影响正常通信,甚至损坏通信接口电路。

2、(EMI)问题:变送器输出信号的共模部分需要一个返回通道。如果没有低阻返回通道(信号地),就会以辐射的形式返回源头,整个公交车就像巨型天线一样向外辐射电磁波。

基于以上原因,虽然RS-422、RS-485采用差分平衡传输方式,但整个RS-422或RS-485网络必须有一个低阻信号地。低阻信号地连接两个接口的工作地,使共模干扰电压VGPD短路。

这个信号地可以是附加线(非屏蔽双绞线)或者屏蔽双绞线的屏蔽层。这是最常见的接地方法。

值得注意的是,这种方法只对高阻共模干扰有效。由于干扰源内阻大,短路后不会形成大的接地回路电流,不会对通信造成很大影响。当共模干扰源内阻较低时,会在地线上形成较大的回路电流,影响正常通信。笔者认为,可以采取以下三种措施:

(1)如果干扰源的内阻不是很小,可以在接地线上加一个限流电阻来限制干扰电流。接地电阻的增加可能会增加共模电压,但只要控制在合适的范围内,不会影响正常通信。

(2)采用浮动技术切断接地回路。这是一种常见且非常有效的方法。当共模干扰的内阻很小时,上述方法不再适用。此时可以考虑将引入干扰的节点(例如工作环境恶劣的现场设备)悬空(即系统的电路接地与套管或大地隔离),这样接地回路被切断,不会形成大的回路电流。

(3)采用隔离接口。在某些情况下,出于安全或其他原因,电路的接地必须与外壳或大地相连,不能悬空。这时可以用一个隔离接口来切断接地电路,但隔离侧的公共端和其他接口的工作地之间还是要有一根接地线连接。

六、 RS-422和RS-485的网络故障保护

RS-422和RS-485都规定接收器阈值为200mV。这种调节可以提供相对较高的噪声抑制能力。如上所述,当接收机A电平比B电平高200mV以上时,输出为正逻辑,否则,输出为负逻辑。但由于第三种状态的存在,即主机在发送端发送一个信息数据后,将总线置于第三种状态,即总线空闲时,没有信号驱动总线,使得AB之间的电压为-200 ~ 200 mV,直至趋于0V,这就带来了一个问题:接收端的输出状态不确定。如果接收器的输出为0V,网络中的从机会将其解释为新的起始位,并尝试读取后续字节。由于永远不会有停止位,将会产生帧错误结果,不再有设备请求总线,网络将会瘫痪。除了上述母线空载的情况,两线电压差会小于200mV,母线开路或短路时也会出现这种情况。因此,应该采取一些措施来防止接收方处于不确定状态。

通常情况下,总线是有偏差的。当总线空闲或开路时,通过偏置电阻将总线偏置在某一状态(差分电压-200mV)。图一。将A拉至地,B拉至5V。电阻值典型值为1k,随电缆电容的变化而变化。

上述方法是一个经典的方法,但它仍然可以解决不了总线短路的问题。有的厂商把接收阈值移到-200mV/-50mV,可以解决这个问题。

七、RS-422和RS-485的瞬态保护

上面提到的信号接地措施只能保护低频共模干扰,但可以对高频瞬态干扰无能为力。因为传输线对于高频信号相当于电感,接地线对于高频瞬态干扰实际上相当于开路。这种瞬态干扰虽然持续时间短,但可能有几百千伏。

实际应用环境中仍然存在高频瞬态干扰的可能。一般为大功率感性负载,如电机、变压器、继电器等。或者雷电会造成高幅瞬态干扰,如果保护不当会损坏RS-422或RS-485通信接口。这种瞬态干扰可以通过隔离或旁路来保护。

1、隔离保护方法。这种方案实际上将瞬态高电压转移到隔离接口中的电隔离层。由于隔离层绝缘电阻高,不会有破坏性的浪涌电流,起到保护接口的作用。通常使用高频变压器、光耦等元件来实现接口的电气隔离。现有的设备制造商已经将所有这些组件集成到一个IC中,这非常易于使用。这种方案的优点是可以承受高电压和长时间的瞬态干扰,实现简单,缺点是成本高。

2、旁路保护方法。这种方案使用瞬态抑制元件(如TVS、MOV、气体放电管等。)来绕过对地球有害的瞬变能量。优点是成本低,缺点是防护能力有限。它只能保护一定能量范围内的瞬态干扰,这可以不会持续很长时间。而且需要一个连接地球的良好通道,实现起来比较困难。在实践中,上述两种方案结合起来灵活应用,如图1所示。在这种方法中,隔离接口隔离大幅度瞬态干扰,旁路元件保护隔离接口免受过度瞬态电压击穿。

八、采用RS485接口时,如何考虑传输电缆的长度?

当使用RS485接口时,对于特定的传输线,从发电机到负载的数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要受信号失真和噪声的限制。最大电缆长度与信号速率之间的关系曲线是铜芯24AWG双绞线电话电缆(线径为0。51mm),线间旁路电容为52。5PF/米,当终端负载电阻为100欧姆时获得。当数据信号速率下降到90Kbit/S以下时,假设最大允许信号损耗为6dBV,电缆长度限制在1200M。实际上,这是可能的

九、如何实现RS-485/422组播

在任何时候,RS-485总线上只能有一个发送器发送。半双工模式,只有一个主从可以发送。在全双工模式下,主站可以一直发送,只有一个从站可以发送。

十、RS-485/RS422接口通讯,什么情况下需要采用端子匹配?电阻值怎么确定?如何配置终端匹配电阻?

在长线信号传输中,为了避免信号反射和回波,需要在接收端连接终端匹配电阻。其终端匹配电阻值取决于电缆的阻抗特性,与电缆长度无关。

RS-485/RS-422一般采用双绞线连接(屏蔽或非屏蔽),终端电阻一般在100-140之间,典型值为120。在实际配置中,电缆的两个终端节点,即最近端和最远端连接一个终端电阻,而中间部分的节点不能连接终端电阻,否则会造成通信错误。

10一、RS-485网络不我不知道哪个车站最远。我们应该如何连接匹配电阻?

这是因为当用户形成RS-485网络时,他们没有遵循站点和总线之间的连接应该尽可能短的原则。如果公交布线遵循这个原则,就不存在不知道哪个站最远的问题。此外,应该注意的是,使用这样的布线,系统将不能很好地工作。

10二、RS-485/RS-422接口为什么通讯停止时接收器仍有数据输出?

由于RS-485/RS-422要求数据传输完成后,所有传输使能控制信号关闭,接收使能有效,此时总线驱动器进入高阻态,接收器可以监控总线上是否有新的通信数据。但此时总线处于被动驱动状态(如果总线有终端匹配电阻,A线和B线差分电平为0,接收器输出不确定,对AB线差分信号变化敏感;如果没有端子匹配,总线处于高阻状态,接收机的输出是不确定的),所以容易受到外界噪声干扰。当噪声电压超过输入信号的阈值(典型值200mV)时,接收器会输出数据,导致相应的UART接收无效数据,使后续的正常通信出错;另一种情况可能发生在传输使能控制开启/关闭时,导致接收器输出信号,这也可能导致UART错误地接收信号。

解决方法:

1)在通信总线上,采用上拉同相输入(A线)下拉反相输入(B线)的方法箝位总线,保证接收机的输出处于固定1 水平;

2)接口电路更换为MAX308x系列的接口产品,内置故障安全模式;

3)软件消除,即在通信数据包中加入2-5个初始同步字节,满足同步头后才能开始真正的数据通信。

影响RS-485总线通信速度和可靠性的三个因素

1、通信电缆中的信号反射

在通信过程中,有两种信号反射:阻抗不连续和阻抗不匹配。阻抗不连续,信号在传输线末端突然遇到电缆阻抗。信号会在这个地方引起反射,如图1所示。这种信号反射的原理类似于光从一种介质进入另一种介质所引起的反射。为了消除这种反射,必须在电缆末端跨接一个与电缆特性阻抗大小相同的终端电阻,使电缆阻抗连续。由于电缆上的信号传输是双向的,所以可以在通信电缆的另一端桥接相同大小的终端电阻。理论上,只要在传输电缆末端跨接一个与电缆特性阻抗相匹配的终端电阻,信号反射就再也不会发生了。但在实际应用中,由于传输电缆的特性阻抗与通信波特率等应用环境有关,特性阻抗不可能完全等于终端电阻,因此或多或少的信号反射还是会存在的。

信号反射的另一个原因是

归根结底,信号反射对数据传输的影响是反射信号触发了接收机输入端的比较器,导致接收机接收到错误的信号,导致CRC错误或整个数据帧错误。

在信号分析中,衡量反射信号强度的参数是RAF(反射衰减因子)。其计算公式如公式(1)所示。

RAF=20lg(Vref/Vinc)(1)

其中:Vref——反射信号的电压;Vinc-电缆和收发器或终端电阻之间连接点处的入射信号电压。

具体测量方法如图3所示。例如,2.5MHz入射信号的正弦波的峰峰值为5V,反射信号的峰峰值为0.297V,则通信电缆在2.5MHz通信速率下的反射衰减系数为:RAF=20lg(0.297/2.5)=-24.52dB。

为了减少反射信号对通信线路的影响,通常采用噪声抑制和抗偏置。在实际应用中,为了简单方便,对于反射信号比较小的情况,往往采用加偏置电阻的方法。在通信线路中,如何通过增加偏置电阻来提高通信可靠性的原理将在后面详细介绍。

10四、通信电缆的信号衰减

影响信号传输的第二个因素是电缆传输过程中的信号衰减。传输电缆可以看作是由分布电容、分布电感和电阻组成的等效电路。

电缆的分布电容c主要由双绞线的两根平行导线产生。导线的电阻对这里的信号影响很小,可以忽略。信号损失主要是由于电缆的分布电容和分布电感组成的LC低通滤波器。PROFIBUS(西门子为DP总线选择的标准电缆)使用的LAN标准双芯电感在不同波特率下的衰减系数。

10五、通信电缆中的纯电阻负载

影响通信性能的第三个因素是纯阻性负载(也称为DC负载)的大小。这里的纯阻性负载主要由端接电阻、偏置电阻和RS-485收发器组成。

在描述EIARS-485规范时,提到RS-485驱动器可以在32个节点和150端接电阻的情况下输出至少1.5V差分电压。一个接收机的输入电阻为12 k,整个网络的等效电路如图5所示。按此计算,RS-485驱动器的负载能力为:RL=32个并联的输入电阻||2个终端电阻=((12000/32)(150/2))/(12000/32)(150/2))51.7。

目前常用的RS-485驱动有和利时公司使用的max 485、 ds 3695、 max 1488/1489和SN75176A/D等。其中一些具有20的负载能力。在不考虑其他很多因素的情况下,根据驱动能力和负载的关系,一个驱动器所能带的最大节点数将远远大于32。

当通信波特率相对较高时,需要对线路上的电阻进行偏置。偏置电阻的连接方法。其功能是在线路进入空闲状态后,将总线线路(空闲模式)上无数据时的电平拉离零电平。这样,即使线路中存在相对较小的反射信号或干扰,连接到总线的数据接收器也不会由于这些信号的到达而发生故障。偏置电阻的大小可以通过下面的例子计算:端接电阻RT1=RR2=120

假设反射信号的最大峰峰值vref0.3 VP-p,则负半周的电压vref0.15v;终端电阻 0.15/(120 || 120)=2.5ma时反射信号引起的反射电流iref,一般RS-485收发器(含SN75176)的磁滞值为50mV,即:

(Ibias-Iref)(Rt1||Rt2)50mV

因此,可以计算出偏置电阻产生的偏置电流I bias3.33ma。

5V=Ibias(R上拉R下拉(Rt1||Rt2))(2)

R上拉=R下拉=720可通过等式2计算。

在实际应用中,有两种方法可以给RS-485总线增加偏置电阻:

(1)将偏置电阻平衡分配给总线上的每个收发器。这种方法为连接到RS-485总线的每个收发器增加一个偏置电阻,并为每个收发器增加一个偏置电压。

(2)一段母线上只使用一对偏置电阻。这种方法对于总线上的大反射信号或干扰信号是有效的。值得注意的是,增加偏置电阻会增加总线负载。

10六、RS-485总线负载能力与通信电缆长度的关系

在设计RS-485总线的网络配置(总线长度和负载数量)时,要考虑三个参数:纯阻性负载、信号衰减和噪声容限。纯阻性负载和信号衰减这两个参数之前已经讨论过,现在讨论噪声容限。RS-485总线接收器的噪声容限至少应大于200mV。前面的讨论基于噪声容差为0的假设。

在实际应用中,为了提高总线的抗干扰能力,总是希望系统的噪声容限优于EIARS-485标准的规定。总线负载与通信电缆长度的关系可以从下面的公式看出:vend=0.8(v driver-v loss-v noise-v bias)(3)

其中:Vend为总线末端的信号电压,规定为0.2V在标准测量中;Vdriver是驱动器的输出电压(与负载数量有关。负载数量在5到35之间,Vdriver=2.4V;当负载数小于5时,Vdriver=2.5V;当负载数大于35时,v driver2.3v);Vloss是信号在总线中传输过程中的损耗(与通信电缆的规格和长度有关)。从表1提供的标准电缆的衰减系数,可以根据公式衰减系数b=20lg(Vout/Vin)计算出Vloss=Vin-Vout=0.6V(注:通信波特率为9.6kbps,电缆长度为1km。如果特殊费率增加,Vloss也会相应增加);噪声为噪声容差,规定为0.1V在标准测量中;Vbias是偏置电阻提供的偏置电压(典型值为0.4V)。

公式(3)中乘以0.8是为了防止通信电缆进入满载状态。从等式(3)可以看出,Vdriver的大小与总线上负载的数量成反比,Vloss的大小与总线的长度成反比。其他参数仅与所使用的驱动器类型相关。所以在所选驱动的RS-495总线上,在通信波特率一定的情况下,负载的多少直接关系到信号能传输的最大距离。具体关系是:

在总线允许的范围内,负载数量越多,信号能传输的距离越小;负载数据越少,信号传输得越远。

10七、分布电容对RS-485总线传输性能的影响

电缆的分布电容主要是由双绞线的两根平行导线产生的。此外,导体和地之间也存在分布电容。虽然它很小,但它可以在分析中不可忽视。分布电容对总线传输性能的影响主要是因为基波信号在总线上传输,信号表达式只有1 和0 & gt;在一个特殊的字节中,比如0x01,信号0 & gt;使得分布电容有足够的充电时间,但当信号1 到达时,由于分布电容中的电荷,来不及放电,(Vin )-(Vin-)-仍大于200mV。结果,接收者被误认为0 & gt;最终导致整个数据帧的CRC校验错误和传输错误。

由于总线上分布的影响,造成数据传输错误,降低了整个网络的性能。有两种方法可以解决这个问题:

(1)降低数据传输的波特率;

(2)使用分布电容小的电缆,提高传输线路质量。

10八、单工、半双工和全双工定义

1、如果在通信过程中的任何时刻,信息只能从一方甲传到另一方乙,则称为单工。

2、如果信息可以在任何时刻从A传到B,从B传到A,但只能存在一个方向,则称为半双工传输。

3、如果在任何时刻线路上都有从A到B and B到A的双向信号传输,则称为全双工。

电话线是双线全双工信道。由于采用了回声消除技术,双向传输信号不会混淆。双工信道有时会将接收和发送分开

简介:ModBus网络是由带有智能终端的可编程控制器和计算机通过公用线路或本地专线连接而成的工业通信系统。系统结构包括硬件和软件。它可以应用于各种数据采集和过程监控。

ModBus网络只有一个主机,所有通信都是他发的。该网络可支持多达247个远程从属控制器,但实际支持的从属控制器数量取决于所用的通信设备。有了这个系统,每台PC机都可以与中央主机交换信息而不影响每台PC机执行自己的控制任务。

了解了Modbus通信协议是怎么回事,就可以现场使用各种第三方软件做通信测试了。

Modbus协议包括ASCII、RTU、TCP等。但是没有物理层。该协议定义了控制器可以识别和使用的消息结构,而不管它们通过什么网络进行通信。标准Modicon控制器使用RS232C实现串行Modbus。Modbus的ASCII和RTU协议规定了消息和数据的结构、命令和应答方式。数据通信采用主/从模式,主终端发送数据请求消息。在接收到正确的消息后,从终端可以向主终端发送数据以响应请求。主机也可以直接发送消息修改从机的数据,实现双向读写。

Modbus协议需要检查数据。串行协议中,除奇偶校验外,ASCII模式使用LRC校验,RTU模式使用16位CRC校验。但是,TCP模式不需要额外的检查,因为TCP是一种可靠的面向连接的协议。此外,Modbus使用主从模式定期发送和接收数据。在实际使用中,如果从站断开连接(如故障或关机),主终端可以对其进行诊断,当故障修复后,可以自动连接网络。因此,Modbus协议的可靠性是好的。

至于Modbus的ASCII、RTU和TCP协议,其中TCP和RTU协议非常相似,我们只需要去掉RTU协议的两个字节的校验码,然后在RTU协议的开头加上五个0和一个6,通过TCP/IP网络协议发送出去。

1通信传输模式:

通信被分成独立的报头和传输的编码数据。以下通信传输模式的定义也与ModBusRTU通信协议兼容:

初始结构=4字节的时间

地址码=1字节

代码=1字节

数据区=N字节

错误检查=16位CRC代码

结束结构=4字节时间

地址码:地址码是通信传输的第一个字节。该字节表示用户设置了地址码的从机将接收主机发送的信息。而且每个从机都有一个唯一的地址码,响应回送从自己的地址码开始。主机发送的地址码表示它将被发送到的从机地址,而从机发送的地址码表示从机发回的地址。

代码:通信传输的第二个字节。ModBus通信协议定义了从1到127的功能号。本仪器仅使用部分功能代码。作为主机请求发送,它通过功能代码告诉从机要执行什么操作。作为从机的响应,从机发送的功能码与主机发送的功能码相同,表示从机已经响应了主机的操作。如果从机发送的功能码最高位为1(例如功能码很大,同时为127),则表示从机对操作没有响应或发送错误。

数据区:根据不同的功能代码,数据区是不同的。数据区可以是实际值、设定值、主机发送给从机的地址或从机发送给主机的地址。

CRC:两字节检错码。

2通信协议:

当通信命令发送到仪器时,符合相应地址码的设备接收通信命令,去掉地址码,读取信息,无误后执行相应的任务;然后将执行结果返回给发送方。返回的信息包括地址码、执行动作的功能码、执行动作后结果的数据、错误校验码。如果出了问题,不要不要发送任何信息。

1.信息框架结构

地址码功能码数据区错误校验码

8位8位N 8位16位

地址码:地址码是信息帧的第一个字节(8位),从0到255。该字节表示地址由用户设置的从机将接收主机发送的信息。每个从机必须有一个唯一的地址码,只有满足地址码的从机才能响应环回。当从机发回信息时,等效的地址码表明信息来自何处。

功能代码:主设备发送的功能代码告诉从设备执行什么任务。表1-1中列出的功能代码具有特定的含义和操作。

数据区:数据区包含了从机需要执行的动作或者从机收集的反馈信息。这些信息可以是数值、参考地址等。例如,如果功能代码告诉从机读取寄存器的值,则数据区必须包含要读取的寄存器的起始地址和读取长度。对于不同的从机,地址和数据信息是不同的。

错误校验码:主机或从机可以使用校验码来确定接收到的信息是否有错误。有时,由于电子噪声或其他一些干扰,信息在传输过程中会发生微小的变化,错误校验码保证了主机或从机在传输过程中不会对错误的信息进行处理。这增加了系统的安全性和效率。错误由CRC-16检查。

注:信息帧的格式基本相同:地址码、功能码、数据区、错误校验码。

2.错误检查

冗余循环码(CRC)包含2个字节,即16位二进制。CRC代码由发送设备计算,并放在发送信息的末尾。接收设备重新计算接收到的信息的CRC码,并比较计算出的CRC码是否与接收到的CRC码一致。如果它们不一致,则表明有错误。

3Modbus支持的功能代码:

:命令1、01,读取和写入数字寄存器(线圈状态):

计算机发送命令:[设备地址][命令号01][起始寄存器地址的高8位][低8位][读寄存器数量的高8位][低8位][CRC校验的低8位][CRC校验的高8位]

示例:[11][01][00][13][00][25][CRC低][CRC高]

其意义如下:

设备地址:一条485总线可以连接多个设备,这里的设备地址表示你想和哪个设备通信。比如我要和17沟通(十进制17就是十六进制11)。

命令号01:读取数字量的命令号固定为01。

高8位和低8位起始地址:表示要读取的开关量的起始地址(起始地址为0)。例如,示例中的起始地址是19。

寄存器的高8位和低8位表示从起始地址读取了多少个开关。在示例中,有37台交换机。

CRC校验:从头至尾进行校验。

响应:[设备地址][命令号01][返回的字节数][数据1][数据2].[数据n][CRC校验的高8位][CRC校验的低8位]

示例:[11][01][05][CD][6b][B2][0e][1b] [CRC高][CRC低]

其意义如下:

设备地址和命令号同上。

返回的字节数:表示数据的字节数,即data 1,2中n的值.名词(noun的缩写)

数据1.n:由于每个数据都是一个8位数字,所以每个数据代表8个开关的值,每个位为0表示对应的开关打开,为1表示闭合。例如,在示例中,这意味着20号开关(索引号19)闭合,21号开关断开,22号开关闭合,23号开关闭合,24号开关断开,25号开关断开,26号开关闭合,27号开关闭合.如果查询的开关量不是8的整数倍,那么最后一个字节的高位部分无意义,置0。

CRC校验同上。

:命令2、05,写入数字量(线圈状态):

计算机发送命令:[设备地址][命令号05][要设置的寄存器地址的高8位][低8位][设置数据的高8位][低8位][CRC校验的低8位][CRC校验的高8位]

例如:[11][05][00][AC][FF][00][CRC高][CRC低]

其意义如下:

地址同上。

命令号:写入数字量的命令号固定为05。

要设置的寄存器地址的高8位和低8位表示要设置的开关的地址。

要设置的数据是8位高和8位低:指示要设置的开关值的状态。我

响应:如果计算机发出的命令成功原样返回,否则不作响应。

3、03命令,读取和写入模拟寄存器(保持寄存器):

计算机发送命令:[设备地址][命令号03][起始寄存器地址的高8位][低8位][读寄存器数量的高8位][低8位][CRC校验的高8位][CRC校验的低8位]

示例:[11][03][00][6B][00][03] [CRC高] [CRC低]

其意义如下:

地址同上。

命令号:模拟读数的命令号固定为03。

起始地址的高8位和低8位:表示要读取的模拟量的起始地址(起始地址为0)。例如,示例中的起始地址是107。

寄存器的高8位和低8位表示从起始地址读取了多少模拟量。在本例中,有3个模拟量。注意,在返回的信息中,一个模拟量需要返回两个字节。

响应:[设备地址][命令号03][返回的字节数][数据1][数据2].[数据n][CRC校验的高8位][CRC校验的低8位]

示例:[11][03][06][02][2b][00][00][64] [CRC高][CRC低]

其意义如下:

设备地址和命令号同上。

返回的字节数:表示数据的字节数,即data 1,2中n的值.n .示例返回三个模拟量的数据,因为一个模拟量需要2个字节,所以总共有6个字节。

一.n:其中[数据1][数据2]是第一个模拟的高8位和低8位,[数据3][数据4]是第二个模拟的高8位和低8位,依此类推。示例中返回的值分别为555、0和100。

CRC校验同上。

4、06命令,写入单个模拟寄存器(保持寄存器):

计算机发送命令:[设备地址][命令号06][要设置的寄存器地址的高8位][低8位][设置数据的高8位][低8位][CRC校验的高8位][CRC校验的低8位]

示例:[11][06][00][01][00][03] [CRC高] [CRC低]

其意义如下:

地址同上。

命令号:写模拟量的命令号固定为06。

要设置的寄存器地址的高8位和低8位表示要设置的模拟寄存器的地址。

要设置的数据为8位高8位低:表示要设置的模拟数据。例如,在本例中,寄存器1的值设置为3。

请注意,在该命令中只能设置一个模拟量。

响应:如果计算机发出的命令成功原样返回,否则不作响应。

5、16命令,写入多个模拟寄存器(保持寄存器):

计算机发送命令:[设备地址] [命令号16] [要设置的寄存器地址的高8位][低8位][数据量的高8位][数据集的低8位][低8位][…][…][CRC校验的高8位][CRC校验的低8位]

示例:[11][16][00][01][00][01][00][05] [CRC高][CRC低]

其意义如下:

地址同上。

命令号:写模拟量的命令号固定为16。

要设置的寄存器地址的高8位和低8位表示要设置的模拟寄存器的地址。

要设置的数据个数高8位低8位:表示要设置的数据个数,这里为1。

要设置的数据为8位高8位低:表示要设置的模拟数据。例如,在示例中,将寄存器1的值设置为5。

响应:如果计算机成功返回到以下命令,否则,它将不会响应。

响应:[设备地址][命令号16][要设置的寄存器地址的高8位][低8位][数据量的高8位][数据量的低8位][CRC校验的高8位][CRC校验的低8位],如上例所示,返回:

[11][16][00][01][00][01] [CRC高] [CRC低]


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 王意忠(关于王意忠的介绍)

下一篇: 佳能微单全系列(以摄影为主买佳能微单哪种好)



推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号