个人主页:云纳星辰怀自在
座右铭:“所谓坚持,就是觉得还有希望!”
单工、半双工和全双工
数据通常是在两个站(点对点)之间进行传输,按照数据流的方向可分为三种传输模式:单工、半双工、全双工。
单工 (Simplex)
1. 定义:数据只能单向传输,通信双方角色固定。
2. 特点:
- 发送方只能发送,接收方只能接收
- 无反向通信能力
3. 常见应用:
- 广播系统(电台、电视台)
- 键盘到计算机的信号传输
- 传统有线电视系统
半双工 (Half-Duplex)
1. 定义:数据可双向传输,但不能同时进行。数据可以沿两个方向传送,但同一时刻一个信道只允许单方向传送,因此又被称为双向交替通信。半双工方式要求收发两端都有发送装置和接收装置。若要改变传输方向,需由开关进行切换,产生时间延迟。
2. 特点:
- 通信双方可交替作为发送方和接收方
- 需要信道切换时间(Turnaround Time)
常见应用:
- 对讲机系统
- 传统集线器(Hub)网络
- 部分无线通信系统(如WiFi的CSMA/CA)
全双工 (Full-Duplex)
1. 定义:数据可同时双向传输
2. 特点:
- 双方可同时发送和接收数据
- 无信道切换延迟
3. 常见应用:
- 电话通信
- 现代以太网(使用双绞线)
- 5G移动通信
对比总结表
特性 | 单工 | 半双工 | 全双工 |
传输方向 | 单向 | 双向交替 | 双向同时 |
同时收发能力 | 否 | 否 | 是 |
信道利用率 | 低 | 中等 | 高 |
延迟 | 低 | 中等(有切换延迟) | 低 |
实现复杂度 | 简单 | 中等 | 复杂 |
所需物理通道 | 1条 | 1条 | 2条(或频分复用) |
典型应用 | 广播、遥感 | 对讲机、传统网络 | 电话、现代网络 |
传输时间计算
通用计算公式
总传输时间 = (数据量 / 传输速率) + 传播延迟
关键参数:
- 数据量 (Data Size):要传输的数据总量(比特)
- 传输速率 (Rate):信道传输能力(bps)
- 传播延迟 (Propagation Delay):信号在介质中传播的时间
传播延迟 = 距离 / 传播速度
典型传播速度:
- 光纤/电缆:2×10⁸ m/s(光速的2/3)
- 无线:3×10⁸ m/s(光速)
-
- 单工传输时间
-
时间 = (数据量 / 速率) + 传播延迟
示例:从卫星向地面站传输10MB数据,距离36,000km,速率1Mbps
- 数据量 = 10 × 8 × 10⁶ = 80 × 10⁶ bits
- 传输时间 = 80×10⁶ / 10⁶ = 80s
- 传播延迟 = 36,000,000 / (3×10⁸) = 0.12s
- 总时间 = 80 + 0.12 = 80.12s
半双工传输时间
以RS485 DLT645协议为例:
总时间 = (数据量/速率) + 传播延迟 + 切换延迟 × 切换次数 + 响应延时
📚关键参数:
💎响应时间Tresp:从接受指令后,开始处理并返回应答的时间(物理层,不包含返回传输时间)。
💎切换延迟Tswitch:
- 半双工需切换收发方向(通常1-10μs),RS-485收发器物理切换时间约 10μs~100μs.
- 协议开销:例如,DLT645要求字节间停顿时间 Tb ≤ 500ms,但实际优化后通常为 1ms~10ms.
💎切换次数:传输过程中的方向切换次数
📚注意事项
⚙️协议层数据单位:8比特/字节
⚡数据域基本单位:DLT645协议中所有数据域(如地址、控制码、数据内容)均以字节(8比特)为最小单位。例如:
- 地址域固定为6字节(48比特)。
- 数据域长度L以字节计数(读操作≤200字节,写操作≤50字节)。
⚡数据编码规则:数据域中的每个字节需进行 ±0x33转换(发送时加33H,接收时减33H),但转换前后仍以8比特形式存在。示例:
- 若数据值为0x01,发送时转为0x34(0x01 + 0x33),接收端还原为0x01。
⚙️物理层传输单位:11比特/字节
⚡串行通信开销:实际通过RS-485传输时,每个字节需添加起始位(1比特)、停止位(1比特),部分场景可能包含校验位(1比特)。注:若使用偶校验,物理层每字节需11比特;若无校验则为10比特.典型配置为:
1起始位 + 8数据位 + 1停止位 = 10比特/字节 或
1起始位 + 8数据位 + 1校验位 + 1停止位 = 11比特/字节
因此,协议层1字节(8比特)在物理层需10~11比特传输
⚡对帧长度的影响:
- 最小帧(无数据域):约12字节(协议层) → 物理层传输约132比特(按11比特/字节计算)。
- 含数据域的帧:协议层16字节(128比特)对应物理层 176比特(16×11)。
📊 协议帧结构与比特占用示例
以典型读数据帧为例(协议层16字节):
字段 | 长度(字节) | 协议层比特数 | 物理层比特数 (11位/字节) |
起始符 | 1 | 8 | 11 |
地址域 | 6 | 48 | 66 |
起始符 | 1 | 8 | 11 |
控制码 | 1 | 8 | 11 |
数据长度 | 1 | 8 | 11 |
数据域(示例) | 4 | 32 | 44 |
校验码 | 1 | 8 | 11 |
结束符 | 1 | 8 | 11 |
总计 | 16字节 | 128比特 | 176比特 |
示例1:DLT645协议
采用半双工通信DLT645协议的主站和从站电表,主站向从站每隔100ms询问交流三相电压uL1、uL2, uL3, 有功功率PwrActv_W, 电网频率Frq合计5个信号,通信速率为9600bps<bits per second>.
⚙️单次交互总延时:
Ttotal =
- Ttrans_cmd = 数据帧长度波特率 ,命令帧:约16字节(18ms);应答帧:约20~30字节(23ms~35ms),含电能数据等。
- 切换延迟Tswitch: RS-485收发器物理切换时间约 10μs~100μs, 协议开销:DLT645要求字节间停顿时间 Tb ≤ 500ms,但实际优化后通常为 1ms~10ms。取决于切换收发器时机,如果在发完报文后立刻切换,则部分被重叠在传输时间中。
- 响应延时Tresp :响应延时与波特率正相关20ms:<115200bps>~ 80ms<2400bps>
Ttotal = 18 + 35 + 2*5 + 20 = 83 ms.
即主站数据开始发送到接受1个数据≥ 83ms.
结论: 主站发送指令报文间隔周期至少要≥ 83ms. 基于该数据,可以设置为100ms发送周期T。
📚评估单个信号实际平均周期
以上仅是单个信号,如果需要满足示例中5个信号,因为半双工的通信机制问题,只能轮询型式:
- 主站必须先处理一个信号,譬如uL1,主站发送uL1请求后,等待从站回复uL1,
- 在明确收到后,继续发送uL2,发送间隔至少100ms。
- 所以,对于uL1而言,采样周期TuL1 = 100 * 5 = 500ms
继续考虑以下场景::总线上挂接多个电表时,主站需依次轮询。取决于所有节点需要读取信号数量。
以RS485 ModBus协议为例<RTU模式>
在 RS485 半双工网络中应用 Modbus RTU 协议时,主站发送请求到接收从站响应的总传输时间需综合 物理传输时间、从站处理时间 和 协议强制等待时间 三大核心因素。
总时间公式:Ttotal=Ttx_cmd + T3.5 + Tslave + Ttx_resp + 2*Tswitch
- Ttx_req:主站请求帧传输时间
- Tswitch:RS485收发器方向切换时间(发送→接收)
- Tgap:协议强制帧间延迟(≥3.5字符时间)
- Tproc:从站处理时间
- Ttx_resp:从站响应帧传输时间
- Tswitch:RS485收发器方向切换时间(接收→发送,从站响应时)
注:寄存器长度直接影响请求帧与响应帧的字节数,进而影响Ttx_req和 Ttx_resp。
📚时间分量详解与计算
1. 帧传输时间(Ttx)
- 计算公式:
,
- 物理层单字节比特数(Bphy):
📉标准配置:11比特/字节(1起始位 + 8数据位 + 1奇偶校验位 + 1停止位)
📉无校验配置:10比特/字节(需设备支持)
3. 帧字节数与寄存器长度的关系:
📉请求帧字节数 = 固定部分 + 寄存器相关部分
⚡固定部分:6字节(地址1B + 功能码1B + CRC 2B)
⚡寄存器相关:4字节(起始地址2B + 寄存器数量2B)
例:读取10个寄存器的请求帧总长 = 6 + 4 = 10字节.
📉响应帧字节数 = 固定部分 + 寄存器数据长度
⚡固定部分:3字节(地址1B + 功能码1B + 数据长度1B)
⚡寄存器数据长度:2 × N字节(N为寄存器数量,每个寄存器占2字节)
例:响应10个寄存器的帧总长 = 3 + 2×10 = 23字节
2. 协议强制延迟(Tgap)
定义:帧间最小间隔 ≥3.5字符时间(用于标识帧结束)
计算公式:
Table 1 典型值
波特率 | 11比特/字节 (ms) | 10比特/字节 (ms) |
9600bps | 4.01 | 3.64 |
19200bps | 2.00 | 1.82 |
115200bps | 0.33 | 0.30 |
3. RS485方向切换时间(Tswitch)
范围:5μs~100μs(硬件自动切换约5-20μs,软件控制约20-100μs)。
工程建议:按 50μs(0.05ms)估算,两次切换共 0.1ms。
4. 从站处理时间(Tproc)
范围:5ms~100ms(高性能PLC通常<10ms,低端传感器可达30-100ms)
影响因素:寄存器数量、从机计算能力(读取N个寄存器时,Tproc 可能随N增大而增加)
Table 2 📌 寄存器数量与时间关系对比表<参考>
寄存器数量(N) | 请求帧长(字节) | 响应帧长(字节) | Ttotal (ms, 9600bps) |
1 | 8 | 5 | 36.5 |
10 | 10 | 23 | 56.0 |
30 | 10 | 63 | 95.8 |
125 (Max) | 10 | 253 | 248.6 |
注:波特率9600bps,Bphy=11,Tproc=15ms,Tswitch=0.1ms |
💎 总结
核心公式:
其中 L_req = 6+4(固定),L_resp = 3+2N(N=寄存器数量)。
关键影响:寄存器数量 N 显著增大响应帧长度,是优化重点(尤其N>30时)。
全双工传输时间
时间 = MAX(发送时间, 接收时间) + 传播延迟
由于双向同时传输:
发送和接收可同时进行
时间取决于较长的操作方向
示例:
双向视频会议,A向B发送5MB数据,B向A发送3MB数据,距离500km,速率100Mbps
- A→B发送时间 = (5×8×10⁶) / 10⁸ = 0.4s
- B→A发送时间 = (3×8×10⁶) / 10⁸ = 0.24s
- 传播延迟 = 500,000 / (2×10⁸) = 0.0025s
- 总时间 = MAX(0.4, 0.24) + 0.0025 = 0.4025s
通信模式选择因素
性能需求
需求 | 推荐模式 | 原因 |
高吞吐量 | 全双工 | 无切换开销,双向同时传输 |
低延迟 | 全双工 | 消除切换延迟 |
简单监控 | 单工 | 实现简单,成本低 |
物理介质限制
介质类型 | 支持模式 | 说明 |
同轴电缆 | 半双工/单工 | 传统电视系统 |
双绞线(Cat5e+) | 全双工 | 现代以太网标准 |
光纤 | 全双工 | 使用不同波长实现双向传输 |
无线电 | 半双工为主 | 共享介质需要冲突避免机制 |
成本与复杂度
模式 | 实现成本 | 复杂度 | 适用场景 |
单工 | 最低 | 最低 | 广播、传感器网络 |
半双工 | 中等 | 中等 | 对讲系统、传统局域网 |
全双工 | 最高 | 最高 | 现代网络、实时通信系统 |
技术演进与应用
现代应用中的双工技术
以太网演进:
- 传统以太网(10BASE5):半双工,CSMA/CD
- 现代以太网(100BASE-TX+):全双工,无冲突检测
无线通信:
- WiFi 6(802.11ax):引入OFDMA实现准全双工
- 5G NR:使用动态TDD实现高效半双工
卫星通信:
- 传统:单工(电视广播)
- 现代:全双工(Starlink用户终端)
双工转换技术
📚频分双工 (FDD):
- 使用不同频率区分收发通道
- 应用:LTE网络、传统电话系统
📚时分双工 (TDD):
- 相同时段交替收发
- 应用:5G NR、WiFi、蓝牙
示例对比:
技术 | 双工类型 | 特点 | 典型应用 |
FDD | 全双工 | 需要成对频谱 | LTE FDD |
TDD | 半双工 | 单一频谱,时隙分配灵活 | 5G TDD, TD-LTE |
FDMA | 全双工 | 子载波划分 | DOCSIS 3.1 |
未来发展趋势
📚全双工无线通信:
- 自干扰消除技术
- 同时同频全双工(Co-time Co-frequency FD)
📚智能双工切换:
- 基于AI的动态双工模式选择
- 6G网络的适应性双工架构
📚量子通信双工:
- 量子纠缠实现超低延迟双向通信
- 量子密钥分发(QKD)中的双工应用