rs485协议详解

RS485主从式多机通信协议1。数据传输协议定义了控制器可以理解使用的信息结构,无论它们通过什么网络进行通信。它描述了一个控制器要求访问其他设备的过程,如何响应其他设备的要求,以及如何检测和记录错误。它制定了消息域格局和内容的公共格式。该协议决定了每个控制器必须知道其设备地址,识别根据地址发送的信息,并决定产生什么行动。如果需要响应,控制器将根据本协议生成反馈信息。1.数据在网络上传输控制器通信使用主―从技术上看,只有一个设备(主设备)可以初始化传输(查询)。其他设备(从设备上看)根据主设备查询提供的数据作出相应反应。主设备可以单独与设备通信,也可以通过广播与所有设备通信。如果单独通信,从设备返回一条消息作为回应,如果通过广播查询,则从设备不作出任何回应。协议建立了主设备查询的格式:设备(或广播)地址、功能代码、要发送的所有数据和错误检测区域。从设备中回应的消息也由协议组成,包括确认要行动的区域、要返回的任何数据和错误检测区域。如果在消息接收过程中出现错误(没有相应的功能代码),或者设备无法执行其命令,设备将建立错误信息并发送回应。2.在相等类型的网络上转移到相等的网络上,控制器使用相等的技术进行通信,因此任何控制器都可以与其他控制器进行初始通信。这样,在单独通信的过程中,控制器既可以作为主设备,也可以作为从设备。在消息位置,本协议仍提供主要信息―从原则上讲,虽然网络通信方法是平等的。如果一个控制器发送消息,它只是作为主要设备,并期望从设备中得到回应。同样,当控制器收到消息时,它将建立一个从设备回应格式并返回到发送的控制器。3、查询―响应周期(1)查询查询信息中的功能代码,告知选定的设备应执行哪些功能。数据段包含任何从设备执行功能的附加信息。错误检测域为从设备中验证消息内容是否正确提供了一种方法。(2)如果从设备中回应正常,回应消息中的功能代码就是查询消息中的功能代码。数据段包括从设备中收集的数据。如果出现错误,将修改功能代码功能代码应消息是错误的,数据段包含描述错误信息的代码。错误检测区允许主设备确认消息内容是否可用。2.传输模式控制器可以设置传输模式RS485串行传输,通信参数为9600,n,8,1。在配置每个控制器时,网络上的所有设备都必须选择相同的串口参数。地址 功能代码 数据数量 数据1 ……. 数据n CRC字节每个字节的位置 1个起始位置 8个数据位,最小有效位先发送 1个停止位错误检测域 CRC(循环冗余码验证)3。1.帧格式传输设备将信息转换为有起点和终点的帧,允许接收设备在信息开始时工作,阅读地址分配信息,判断选择哪个设备(广播方式传输给所有设备),并确定信息何时完成。错误的信息也可以被发现并返回到结果中。信息至少应该发送10ms 时间的停顿间隔开始了。传输的第一个域是设备地址。网络设备不断检测网络总线,包括停顿间隔。当第一个域(地址域)收到时,每个设备解码以确定它是否发送给自己。在最后一个传输字符后,至少一个10ms 时间的停顿标定了消息的结束。停顿后可以开始一个新消息。整个消息帧必须作为连续流通输送。如果帧完成前有超过5ms停顿时间,接收设备将刷新不完整的信息,并假设下一个字节是新消息的地址区域。同样,如果一个新消息小于一个新消息,5ms在此期间,接收到的设备将认为是前一条新闻的延续。这将导致一个错误,因为在最后一条新闻中CRC域的值不能正确。一个典型的新闻帧如下:开始间隔 设备地址 功能代码 数据数量和数据 CRC验证结束2。地址区域信息帧的地址区域包含一个字符8Bit。设备地址可能是0…247 (十进制)。单个设备的地址范围是单个设备的地址范围。1…247。主设备通过将要联系的设备地址放入消息中的地址区域来选择设备。当从设备发送回复消息时,也将自己的地址放入回复地址区域,以便主设备知道哪个设备做出回应。地址0用作广播地址,使所有设备都能理解。3.如何处理功能域消息帧中的功能代码域包含字符8Bits。可能的代码范围是十进制1…255。当然,有些代码适用于所有控制器,有些适用于某些控制器,有些则保留以备后用。当消息从主设备发送到设备时,功能代码域将告诉设备需要执行哪些行为。例如,阅读当前测试参数的值或开关状态,读取设备的诊断状态,允许从设备中转移、记录和验证程序。当从设备中回应时,它使用功能代码域来指示是正常回应(正确)还是某些错误(称为异议回应)。对于正常回应,只从设备中回应相应的功能代码。对于异议回应,从设备返回相当于正常代码的代码,但功能代码的最高位置为逻辑1。例如,从主设备到设备的消息需要读取一组维护存储器,将产生以下功能代码:0 0 0 0 0 0 1 1 (16进制03H)对于正常回应,只从设备中回应相同的功能代码。回应异议,回复:1 0 0 0 0 0 0 1 1 (16进制83H)除了由于异议错误而修改功能代码外,将独特的代码从设备放置到回应消息的数据域中,可以告诉主设备发生了什么错误。主设备响应程序得到异议后,典型的处理过程是重新发送消息,或诊断发送给设备消息并报告给操作员。4.从主设备发送到从设备消息的数据域包含附加信息:从设备执行由功能代码定义的行为所必需的数据。如果没有错误,从设备返回的数据域包含所需的数据。如果出现错误,该领域包含异议代码,主设备应用程序可用于判断下一步行动。在某些信息中,数据域可以是0长。例如,主设备要求从设备回应通信事件记录,而不需要任何额外的信息。数据域最长为70字节。5.错误检测域包含一个字节8Bits。错误检测域的内容是通过对消息内容进行循环冗长的检测方法得出的。CRC域附加在消息的最后,所以域附加在消息的最后,CRC字节是发送消息的最后一个字节。4.错误检测方法1。加班检测用户应为主设备配置预先定义的加班时间隔,时间间隔应足够长,以便任何设备都能作为正常反应。如果从设备中检测到传输错误,消息将不会被接收或回应主设备。这种加班事件将触发主设备来处理错误。发送到不存在的设备的地址也会导致加班。CRC检测CRC域是一个字节,检测整个消息的内容。它通过传输设备计算并添加到消息中。接收设备重新计算收到消息的内容CRC,并与收到的一起CRC域内值比较,如果两个值不同,则是错误的,从设备回应此消息。通信网络只有一个主机,所有通信都由他发起。该网络可以支持多达254个远程从属控制器,但实际支持的从属数量应由所使用的通信设备决定。

rs485协议详解 如何分析出RS485通信协议?

如何分析出RS485通信协议?