MODBUS基本通信原理

上传人:大米 文档编号:492742596 上传时间:2023-06-09 格式:DOC 页数:8 大小:675KB
返回 下载 相关 举报
MODBUS基本通信原理_第1页
第1页 / 共8页
MODBUS基本通信原理_第2页
第2页 / 共8页
MODBUS基本通信原理_第3页
第3页 / 共8页
MODBUS基本通信原理_第4页
第4页 / 共8页
MODBUS基本通信原理_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《MODBUS基本通信原理》由会员分享,可在线阅读,更多相关《MODBUS基本通信原理(8页珍藏版)》请在金锄头文库上搜索。

1、3 MODBUS 基本通信原理3.1 串行通信本设计中,上位计算机与下位 TDM508 仪表所连接的接口用的是 RS485 接口。下面将 具体讨论 RS232C 和 RS485 接口标准.3。1。1 RS232 接口标准RS-485 是由 RS232C 发展而来的。而 RS232C 是由美国电子工业协会 EIA 推荐的 标准接口,原本是用于串行二进制数据交换的数据通信设备和数据终端设备之间的标准接 口,是目前最常用的一种串行接口标准。RS-232C 的信号线是单方向的,两个方向的数据传输线共用一个地线,接口电路采用双 极性电源供电。使用的最高传输速率为几十 Kbps,最大传输距离为 15m.R

2、S232C 采用全 双工方式。(1) 数据终端设备 DTE 和数据通信设备 DCE数据终端设备 DTE 是产生二进制信号的数据源,也是接收数据的目的地,一般可以认 为 DTE 就是一台计算机。数据通信设备 DCE 是一个使传输信号符合线路要求,或者满足 DTE 要求的信号匹配器。 DCE 是提供 DTE 与通信线路之间通信的建立、维持和终止连接等功能的设备。调制解调器 Modem 就是一个典型的 DCE。RS232C 是一种为 DTE 和 DCE 之间通信而定义的接口标准,在微机系统中主要用于 主机与调制解调器 Modem 之间的通信。现在 RS232C 也已经广泛地运用于微机系统之间 的通信

3、,即 DTE 和 DCE 之间的通信,成为一种被普遍接受的通信接口标准。(2) RS232C 的电气性能RS232C 标准中的信号电平是按负逻辑定义的。逻辑“1”(标准中标识为 MARK)的 电平标准为-3V25V;逻辑“0(标识为 SPACE)的电平标准为+3V+25V。控制信号的接通状态 ON 规定为 SPACE;断开状态 OFF 规定为 MARK.噪声容限为(3V5V).输入端开路时,终端定义为 MARK。RS-232C 规定的逻辑电平与 TTL 电平、MOS 电平均不一样,在应用中需要进行 RS-232C 电平同其他信号电平的转换。MC1488 与 MC1489 是实现 TTL 电平与

4、 RS-232C 电平转换的 专用集成芯片。(3) RS-232C 接口功能RS-232C 标准定义了 25 个接口信号,使用 25 芯的 D 型插座。在微机的串行通信中最常用的信号有 10 个,如表 3-1 所示。这些信号可以分为二类,一类是基本的数据传输信号, 有 TxD、RxD 和 GND,这三个信号可以构成最简单的连接方式.另一类是传输控制信号,包 括 DTR、RTS、DSR、CTS、DCD 等。PGND 是保护地,一般与设备的机架相连或接电缆 的屏蔽层.引脚123456782022表 31符号PGNDTxDRxDRTSCTSDSRGNDDCDDTRRI常用的 RS-232C 接口信号

5、 方向OIOIIIOI功能屏蔽地,保护地发送数据接收数据请求发送允许发送数据装置准备好信号地载波检测数据终端准备好振铃信号3.1.2 RS-485 接口标准RS-485 标准是一种差分平衡的电气接口,即采用一对平衡差分信号线,可以实现多站 点的通信。RS485 是半双工的电气接口,由使能信号 EN 控制发送或接收,接口功能示意 图 31 所示.SN75176 就是一种典型的 RS485 电气接口。RS485 采用平衡驱动和差分接收,接收器输入电压的范围为-7V+12V,接收器输入灵 敏度为200mV。传输的最大速率在距离为 12m 处时为 10Mbps;120m 时为 1Mbps;1200m

6、时为 100Kbps。图 31 RS-485 电气接口与互连RS485 标准可以看作是 RS-422 标准的一种变形,主要区别在于 RS422 是全双工的 接口。RS-485 标准克服或改善了 RS-232C 标准的许多不足,特别是在提高抗干扰能力方面 RS-485 大大地优于 RS-232C,因而在许多场合得到广泛的应用。RS-485 需要 2 个终接电阻,其阻值要求等于传输电缆的特性阻抗.在近距离传输时可不需 终接电阻,即一般在 300m 以下不要终接电阻.终接电阻接在传输总线的两端。3.2 MODBUS 通讯协议3。2。1 MODBUS 协议简述MODBUS 协议是应用于电子控制器上的一

7、种通用语言。本设计所用到的 TDM508 系列 仪表使用的就是 MODBUS-RTU 通讯协议。MODBUS 协议详细定义了校验码、数据序列 等,这些都是特定数据交换的必要内容。MODBUS 协议在一根通讯线上使用主从应答式连 接(半双工),这意味着在一根单独的通讯线上信号沿着相反的两个方向传输。首先,主计 算机的信号寻址到一台唯一的终端设备(从机),然后,终端设备发出的应答信号以相反的 方向传输给主机。MODBUS 协议只允许在主机(PC、PLC 等)和终端设备之间通讯,而不允许独立的终 端设备之间的数据交换 , 这样各终端设备不会在它们初始化时占据通讯线路,而仅限于响应 到达本机的查询信号

8、。当数据帧到达终端设备时,它通过一个简单的“端口”进入被寻址到的设备,该设备去掉 数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后 , 它将自己生成的数据加入到取得的“信封中,把数据帧返回给发送者。返回的响应数据中包 含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的被请 求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应,或者返回一个错误 指示帧。表 32 表示了 MODBUS 的数据帧格式。表 32 MODBUS 的数据帧格式地址(Address)域8-Bits功能(Function)域

9、8-Bits数据(Data)域N8Bits错误校验(Check)域16-Bits3.2.2 地址(Address)域地址域在帧的开始部分,由一个字节(8 位二进制码)组成,十进制为 0255,在我们的系 统中只使用 1247,其它地址保留。这些位标明了用户指定的终端设备的地址,该设备将接 收来自与之相连的主机数据。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响 应包含了该地址的查询。当终端发送回一个响应,响应中的从机地址数据便告诉了主机哪台 终端正与之进行通信.3。2。3 功能(Function)域功能域代码告诉了被寻址到的终端执行何种功能.表 33 列出了 TDM508 系列仪表用

10、到的功能码,以及它们的意义和功能。表 3-3 TDM508 系列仪表用到的功能码代码0102030516意义读 DO 状态读 DI 状态读数据寄存器控制 DO预置多寄存器行为获得数字(继电器)输出的当前状态(ON/OFF)获得数字输入的当前状态(ON/OFF)获得一个或多个寄存器的当前二进制值控制数字(继电器)输出状态(ON/OFF)设定二进制值到一系列多寄存器中3。2。4 数据(Data)域数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些 数据的内容可能是数值、参考地址或者设置值。例如:功能域码告诉终端读取一个寄存器, 数据域则需要指明从哪个寄存器开始及读取多少个

11、数据 ,内嵌的地址和数据依照类型和从机 之间的不同内容而有所不同。3.2.5 错误校验(Check)域该域允许主机和终端检查传输过程中的错误.有时,由于电噪声和其它干扰,一组数据在 从一个设备传输到另一个设备时在线路上可能会发生一些改变,出错校验能够保证主机或者 终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率,错误校 验使用了 16 位循环冗余的方法(CRC16)。错误校验(CRC)域占用两个字节,包含了一个 16 位的二进制值.CRC 值由传输设备计算 出来,然后附加到数据帧上,接收设备在接收数据时重新计算 CRC 值,然后与接收到的 CRC 域中的值进行比较,如果

12、这两个值不相等,就发生了错误。CRC 运算时,首先将一个 16 位的寄存器预置为全 1,然后连续把数据帧中的每个字节 中的 8 位与该寄存器的当前值进行运算,仅仅每个字节的 8 个数据位参与生成 CRC,起始位和 终止位以及可能使用的奇偶位都不影响 CRC。在生成 CRC 时,每个字节的 8 位与寄存器中 的内容进行异或,然后将结果向低位移位,高位则用“0”补充,最低位(LSB)移出并检测, 如果是 1,该寄存器就与一个预设的固定值(0A001H)进行一次异或运算,如果最低位为0, 不作任何处理。上述处理重复进行,直到执行完了 8 次移位操作,当最后一位(第8 位)移完以后,下 一个 8 位字

13、节与寄存器的当前值进行异或运算,同样进行上述的另一个 8 次移位异或操作, 当数据帧中的所有字节都作了处理,生成的最终值就是 CRC 值。生成一个 CRC 的流程为:(1)预置一个 16 位寄存器为 0FFFFH(全 1),称之为 CRC 寄存器。2。 把数据帧中的第一个字节的 8 位与 CRC 寄存器中的低字节进行异或运算,结果存回 CRC 寄存器.3. 将 CRC 寄存器向右移一位,最高位填以 0,最低位移出并检测。4. 如果最低位为 0,重复第三步(下一次移位);如果最低位为 1,将 CRC 寄存器与一 个预设的固定值(0A001H)进行异或运算.5. 重复第三步和第四步直到 8 次移位

14、。这样处理完了一个完整的八位。6。 重复第 2 步到第 5 步来处理下一个八位,直到所有的字节处理结束。7. 最终 CRC 寄存器的值就是 CRC 的值。本设计中,用了 CRC16 查表法来实现 MODBUS 最后两个字节的错误校验域,具体程 序详见附录。3.2。6 查询回应周期查询:查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设 备要执行功能的任何附加信息.例如功能代码 03 是要求从设备读保持寄存器并返回它们的 内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误 检测域为从设备提供了一种验证消息内容是否正确的方法。回应:如果从设备产生一正常的回应 ,在回应消息中的功能代码是在查询消息中的功能 代码的回应。数据段包括了从设备收集的数据:象寄存器值或状态。如果有错误发生,功能 代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码.错误 检测域允许主设备确认消息内容是否可用.图 3-2主从 查询回应周期表3.3 通讯应用格式详解3.3。1 读 DO 状态(功能码 01)查询数据帧:主机发送给从机的数据帧。 01 号功

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号