点对点握手程序
简介
握手用于控制两个通信伙伴之间的数据流。 如果设备以不同的速度操作,则使用握手方法可以防止在传输期间产生的数据丢失。
我们可从根本上区别以下方法:
列表: 方法和接口概述
方法 | RS232 | RS422 | RS485 |
---|---|---|---|
软件数据流控制 XON/XOFF | X | X | ‑ |
硬件数据流控制 (RTS/CTS) | X | ‑ | ‑ |
伴随信号的自动操作 | X | ‑ | ‑ |
软件数据流控制
在通信模块上按照以下方式执行软件数据流控制:
XON/XOFF
- 只要通过参数分配将通信模块设置为 "XON/XOFF" 操作模式,该通信模块就将发送 XON 字符,从而允许通信伙伴发送数据。
- 在接收缓冲区上溢前达到所组态的较大帧数,或达到 16 个字符时,通信模块会发送 XOFF 字符,从而请求通信伙伴停止发送。 如果通信伙伴仍然继续发送数据,则在接收缓冲区上溢时将生成一条错误消息。 在最后一个帧中接收到的数据将被丢弃。
- 只要 CPU 提取帧并且接收缓冲区已准备好再次接收数据,通信模块就会发送 XON 字符。
- 如果通信模块在发送期间接收到 XOFF 字符,则其将取消当前的发送操作,直至从其通信伙伴处再次接收到 XON。 如果在特定的可组态时间内未接收到 XON,则会取消发送操作,并输出相应的错误消息。
提示 可为 XON 和 XOFF 组态字符(任何 ASCII 字符)。 在 XON/XOFF 软件数据流控制的参数分配期间,用户数据不可包含任何已组态的 XON 或 XOFF 字符。 |
硬件数据流控制
提示 *为 "Hardware RTS always ON, ignore DTR/DSR" 参数分配连接 DTR/DSR 信号。 如果组态了 "Hardware RTS always ON",则必须将所使用的接口信号完全连接起来。 请确保本地 RTS(输出)与通信伙伴的 CTS (输入)相连接,而本地 CTS 与通信伙伴的 RTS 相连接。 相应地,本地 DTR 必须与通信伙伴的 DSR 相连接,而本地 DSR 与通信模块的 DTR 相连接。 |
图片: 接口信号的接线
硬件 RTS 始终切换,忽略 DTR/DSR
- 只要通过参数分配将通信模块设置为带有 "Hardware RTS always ON" 的工作模式,该通信模块就会向通信伙伴输出 RTS = ON 信号,以指示其准备就绪状态。
- 只要在缓冲区上溢前达到所组态的较大帧数或 16 个字符,RTS 就将被设置为 OFF。
如果通信伙伴仍继续发送数据,则在接收缓冲区上溢时会生成一条错误消息。 在最后一个帧中接收到的数据将被丢弃。
- 只要 CPU 提取帧并且接收缓冲区已准备好再次接收数据,RTS 就会被设置为 ON。
- 如果 CTS 在发送操作期间切换为 OFF,则通信模块会中断发送操作,直至将 CTS 重置为 ON。 如果 CTS 未在特定的可组态时间内重置为 ON,则会取消发送操作,并输出一条相应的错误消息。
硬件 RTS 始终开启
"Hardware RTS always ON" 模式对应于 "Hardware RTS always ON, ignore DTR/DSR" 模式。 但还需要连接 DTR 和 DSR。
- 只要通过参数分配将通信模块设置为带有 "Hardware RTS always ON" 的工作模式,该通信模块就会设置 DTR = ON 和 RTS = ON,以向通信伙伴表示其准备就绪状态。
- 只要在缓冲区上溢前达到所组态的较大帧数或 16 个字符,RTS 就将被设置为 OFF。
如果通信伙伴仍继续发送数据,则在接收缓冲区上溢时会生成一条错误消息。 在最后一个帧中接收到的数据将被丢弃。
- 只要 CPU 提取帧并且接收缓冲区已准备好再次接收数据,RTS 就会被设置为 ON。
- 如果 CTS 在发送操作期间切换为 OFF,则通信模块会中断发送操作,直至将 CTS 重置为 ON。 如果 CTS 未在特定的可组态时间内重置为 ON,则会取消发送操作,并输出一条相应的错误消息。
- 从 DSR = ON 切换为 DSR = OFF 将取消激活的发送作业并触发错误消息。
伴随信号的自动操作
硬件 RTS 始终切换
在通信模块上按照以下方式执行 "Hardware RTS always switched":
- 只要通过参数分配将通信模块设置为带有 "Hardware RTS always switched" 的操作模式,该通信模块就会将线路 RTS 设置为 OFF,将 DTR 设置为 ON(通信模块准备就绪)。
在将 DSR 线路设置为 ON 后才能发送帧。 只要将 DSR 设置为 OFF,就无法通过 RS232C 接口发送数据。 取消发送作业并生成一条相应的错误消息。
- 发送作业未决时,RTS 会设置为 ON,并且启动组态的 RTS 接通延迟。 数据输出时间结束后,系统会检查通信伙伴是否已将 CTS 设置为 ON。 如果已设置为 ON,则会通过 RS232 接口发送数据。
- 如果 CTS 线路在 RTS 接通延迟范围内未设置为 ON,或在传输期间 CTS 切换为 OFF,则发送作业会被中止,并生成一条错误消息。
- 一旦数据发送完毕且**过组态的清除 RTS 关断延迟,RTS 线路将立即设置为 OFF。 系统不会等待 CTS 更改为 OFF。
- 始终都可通过 RS232 接口接收数据。 如果存在通信模块的接收缓冲区上溢的危险,则将不会有响应。
- 从 DSR = ON 切换为 DSR = OFF 将取消激活的发送作业并触发错误消息。
提示 设置“RTS 接通延迟”(RTS ON delay),使通信伙伴能够在此时间结束之前进入准备好接收状态。 设置“RTS 关断延时”(RTS OFF delay),使通信伙伴能够在 RTS 设置为 OFF 以及取消发送请求前完整接收帧的最后字符。 |
提示 组态自动使用 RS232 信号后,将不能通过相应指令控制 RTS 和 DTR! |
时序图
下图显示了在已组态数据流控制“硬件 RTS 始终切换”(Hardware RTS always switched) 下,发送作业的时间顺序:
图片: “硬件 RTS 始终切换”(Hardware RTS always switched) 的时序图
更多信息
提示 通信模块接受 DTR/DSR 或 RTS/CTS 的操作,该操作采用以下设置: 硬件 RTS 始终切换,忽略 DTR/DSR 硬件 RTS 始终开启 硬件 RTS 始终切换 |
shtxjd.cn.b2b168.com/m/