【2-8】同步通信与异步通信
前言
前面我们介绍过编码规则,强调了时钟对于收发双方的重要性。有单独的时钟信号,称作同步,无单独的时钟信号称作异步。
文章目录
- 前言
- 1. 同步通信
- 2. 异步通信
- 2.1 ModbusRTU
- 2.2 HDLC
- 3. 例题
- 后记
- 修改记录
1. 同步通信
同步通信是一种数据传输方式,其中发送方和接收方使用相同的时钟信号来协调数据的发送和接收。
发送方和接收方共享同一个时钟信号,这个时钟信号可以是外部提供的,也可以由发送方生成并随数据一起传输。
由于不需要额外的起始位和停止位来标记每个字符的边界,同步通信可以实现更高的数据传输效率。
USB是一个很好的例子,通常,主机负责生成时钟信号,并通过这个时钟信号来协调外设的数据传输。
2. 异步通信
在异步通信中,我们除了需要区分波特率,还要知道字符的起始和终止位置。整个异步通信领域,基本上都采用了在字符之间插入同步信息的方式,也就是插入起始位、停止位来实现异步通信。
这里,我们举两例。
2.1 ModbusRTU
这是一个简单的工业上的通讯协议,它在传输每个字符的时候可以指定起始位、数据位、停止位、奇偶校验:
2.2 HDLC
HDLC(高级数据链路控制)是一种链路层协议的国际标准,旨在实现远程用户间资源共享以及信息交互。
HDLC的起始标志和终止标志都是特殊的八位序列 01111110
(十六进制为 0x7E
),这个序列用于界定HDLC帧的开始和结束。
至于为什么是 01111110
(7E
) 也有个说法,它包含六个连续的“1”,这在正常的数据流中出现的概率相对较低,所以拿它作为一中标志。
为啥它在当时出现的概率相对较低呢?因为在 ASCII
编码中可显示字符的最后一个,也就是波浪号 ~ 的ASCII编码对应 7E
,再往后就是一个不可见的控制字符 DEL
,也就是 7F
了。故采用 7E
是颇为合理的选择。
您可参考:《ASCII码对照表》
决定了使用 7E
,也就是6个连续的1之后,HDLC不得不进行零比特填充,不过这都是后话了,咱们之后再详细讨论HDLC。
3. 例题
在异步通信中,每个字符包含1个起始位,7个数据位,1个奇偶校验位和1个终止位,每秒传输100个字符,采用DPSK调制,则码元速率为?有效数据速率为多少?
解:
使用奈奎斯特定理
R = B ⋅ log 2 N 100 ⋅ ( 1 + 7 + 1 + 1 ) = B ⋅ log 2 2 B = 1000 B a u d R = B \cdot \log_2N \\ 100 \cdot (1+7+1+1) = B \cdot \log_2{2} \\ B = 1000 Baud R=B⋅log2N100⋅(1+7+1+1)=B⋅log22B=1000Baud
由于除数据位以外,都是为了同步、差错校验而存在,所以要乘以一个数据位占整个字符的比值:
1000 b p s × 7 10 = 700 b / s 1000 bps \times \frac{7}{10} = 700 b/s 1000bps×107=700b/s
后记
大家也可以参考郭天祥老师的3分钟短视频来熟悉这种同步、异步的感觉:认识异步通信和同步通信
文中有任何错误、遗漏,烦请各位老铁在评论区指出,共同学习进步。
修改记录
更新日期 | 修改内容 |
---|---|
2025年4月5日 | 完成初稿 |