跳至正文

数据通信的基本概念

数据通信的基本概念-0


前言

通信和通讯是一个意思,网上多有两词混用的,没什么区分的必要,都指的是数据/信息的传输。本文使用通信一词。


一.通信分类

1.1 串行通信和并行通信

串行通信和并行通信都是计算机科学中的概念,指的都是计算机内部或者计算机与外设之间的通信方式。

串行通信:Serial communication,是指使用一条数据线(另外需要地线,可能还需要控制线),将数据一位一位地依次传输,如下图所示。

并行通信:Parallel communication,是指使用多条数据线,同时传输多bit数据,如下图所示。

计算机通信经历了从串行 -> 并行 -> 串行的发展历程。

最开始,人们采用串行通信,因为那时计算机和外设的数据处理速度都较慢,需要传输的数据量较小,所以串行通信就能满足需求了。

但随着计算机的发展,要传输的数据量加大,一次传输一bit太慢了,所以通信方式开始转向并行通信,一次可以传输多bit数据。理论上,并行通信的传输速率是串行数据的N倍(N为并行数据线的条数)。显然,要提高并行通讯的传输速度有两个办法:

一是增加数据线的条数,条数增加则需要消耗更多的芯片接口,也需要更多的PCB走线和物理信号线;

二是增加发送时钟的频率,使得一个bit占用的时间变少。

数据线条数不能一直增加,它受到实际物理条件的限制,那增加发送时钟频率貌似是个好办法。当人们将时钟频率上升到几MHz甚至几十MHz的时候,并行通信的多通道同步问题开始出现,即接收方要成功解码出发送的数据需要几个数据通道的数据同时到达,否者数据就会错乱。例如,8根数据线的并行通信,先传输8bit数据0000_0000,再传输1111_1111,当发送时钟很快时,因为每根数据线长度不一致以及线路上寄生参数的影响,有的通道bit到达快,有的到达慢,这时接收方就无法还原出真实的发送数据,对接受方来说,收到的可能是0011_0111,这就是数据错乱。

当发送速度(MHz/GHz)太快时,并行通信数据通道间的同步变得极其困难,甚至根本不可能。

这时候人们发现,串行通信就没有通道同步问题,发送时钟频率可以很快,可以达到几十甚至上百GHz,这时串行通信的传输速度大大超过了并行通信,而且使用的信号线更少,于是人们又开始将串行通信作为计算机通信的主要方式

1.2 单工通信,半双工通信和全双工通信

单工通信,Simplex communication,数据只能从一个方向向另一个方向传输,而不能反过来,如数据只能A发送B接收,而不能B发送A接收。相关应用:电视、广播。

半双工通信,Half Duplex communication,数据可以双向传输,但是,在同一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信。相关应用:对讲机。

全双工通信,Full Duplex communication,数据允许同时在两个方向上传输,它要求数据两头的设备都有独立的发送和接收数据的能力。相关应用:电话。


二. 同步通信和异步通信

并行通信因为应用少,并没有去区分同步还是异步。只有串行通信有同步异步的区分。

同步和异步通过什么特征来区分众说纷纭,大概有两种流派:

  1. 发送方和接收方共用一条时钟线的称为同步通信,如SPI;不共用时钟线则称为异步通信,如CAN。

  2. 数据中有同步字符的,像以太网中的前导码,以接收到同步字符视为数据字符的开始的通讯方式称为同步通信,反之,异步通讯中没有同步字符,而以起始bit位和停止bit位作为数据开始和结束的标志,如UART。

个人认为流派1逻辑更清晰,流派2以同步字符/起始位停止位来区分不够抽象。

2.1 同步通信

发送方和接收方共用一条时钟线,如下图所示。

2.2 异步通信

异步通信不传输时钟,但接收方时钟仍然必须和发送方保持一致,这就有两个办法:一是双方约定好以哪个时钟频率收发数据;二是接收方根据数据的一些特点推断出发送数据的时钟频率,这个技术称为时钟恢复技术,使用最广泛地时钟恢复技术就是PLL(Phase-Locked Loop,锁相环)技术。

2.3 特别说明

需要特别说明的是,同步/异步通信并没有什么明确的定义,本文也是根据各种书籍以及网络资料总结给出的两者定义,可能与其它地方的说法不同。


三. 常见通信词汇的含义

3.1 比特率

比特率_百度百科 (baidu.com)

比特率 – 维基百科,自由的百科全书 (wikipedia.org)

比特率(Bit Rate)在电信和计算领域是指单位时间内传输送或处理的比特的数量。这时连接速度传输速度数字带宽容量都是比特率的同义词。在音视频领域,比特率是码率的同义词,用来表征音视频的质量。

比特率单位是bit per second(比特每秒,bit/s 或 bps),通常与“千”,“兆”关联使用,如kbps,Mbps,Gbps,换算关系如下:

1Gbps = 10^3^Mbps = 10^6^kbps = 10^9^bps

3.2 带宽

带宽 (计算机) – 维基百科,自由的百科全书 (wikipedia.org)

带宽 – 维基百科,自由的百科全书 (wikipedia.org)

带宽_百度百科 (baidu.com)

带宽一词应用的领域非常多,在无线电通信中,带宽是调制载波占据的频率范围。

对模拟信号来说,带宽又称频宽,单位是Hz,通常我们说的示波器带宽,滤波器带宽都是指的频宽。

在数字通信领域,带宽指的是单位时间内能传输的最大数据量,单位是bps,简单来说,带宽 = 最大比特率。

为了防止混淆,在描述通信速度时,不要使用带宽一词,而用比特率来描述,这样不会引起歧义。

3.3 波特率

波特率 – 维基百科,自由的百科全书 (wikipedia.org)

波特率_百度百科 (baidu.com)

波特(Buad,简写Bd)指的是有效数据讯号调制载波的速率,即单位时间内载波状态变化的次数,调制速率是波特的同义词。

关于波特有两个个易错点需要注意:

  1. 波特本身已经是速率,所以不需要写成Buad Rate,一般中文口语化的沟通上还是常以“波特率”来描述“波特”,其实是不严谨的,但也不能说错
  2. 波特表示的是变化的次数,是个纯数字量,是没有单位的,以“波特每秒”(Baud per second)为单位是一种常见的错误

为解释清楚波特的概念,这里引入另一个名词——码元。

在数字通信中,常常用时间间隔相同的符号来表示数字。这样的时间间隔内的信号称为码元,这个间隔称为码元长度。而波特率就是表征码元传输速率单位,它表示单位时间传输了多少个码元

波特和比特率有时会混淆,两者都是对通信速率的描述,但并不等同,实际上波特与比特率的换算关系如下:

比特率 = 波特 * log~2~N,其中N为码元的状态数,举例说明:

如果在数字传输过程中,用0V表示数字0,5V表示数字1,那么每个码元有两种状态0和1(N=2),每个码元代表一个二进制数字。此时的每秒码元数和每秒二进制数是一样的,这叫两相调制,波特率等于比特率

如果在数字传输过程中,0V、2V、4V和6V分别表示00、01、10和11,那么每个码元有四种状态00、01、10和11(N=4)。每个码元代表两个二进制数字。此时的每秒码元数是每秒二进制数是一半的,这叫四相调制,波特率等于比特率的一半

3.4 通信协议与通信标准

网络传输协议 – 维基百科,自由的百科全书 (wikipedia.org)

通信协议_百度百科 (baidu.com)

收发双方要能够交换数据就必须遵守同一套规则,通信协议就是通信的规则。它规定了通信的内容,通信的方式和通信的时间。

通信协议主要由以下三个要素组成:

语法:即如何通信,包括数据的格式、编码和信号等级(电平的高低)等。

语义:即通信内容,包括数据内容、含义以及控制信息等。

时序:即何时通信,明确通信的顺序、速率匹配和排序。

通讯标准指的是那些经过权威机构(如IEEE,ISO,中国国家标准委员会)认证并发布的通讯协议,通信标准通常规定了通信协议的各个细节,它主要是为了保证收发双方在设计时都有确定的参考。举个例子:电脑外设广泛使用的USB就是一种通讯标准,键盘和主板厂商不需要事先沟通,它们只要都遵照USB标准去设计,最后设计好的键盘插到主板USB接口上就能正常通讯。

通讯协议是一个宽泛地概念,我们自己也可以发明各种通讯协议,而只有那些优秀的,为大众接受的通信协议才能并发布为通信标准。当然,很多通信标准都被淘汰了,但它们几乎都流行过。

对于那些我们常听说的通信协议,几乎都是通信标准,所以,大部分时候通信协议和通信标准是同义词。

3.5 通信物理接口

我们经常说USB接口,网口,HDMI口,这里说道的接口其实有两个含义:一是指USB协议,以太网协议等;二是指物理上的接口,像USB那反人类的无法正反插从外观上又无法直接知道连接方向的USB口(如下图),或是标准的RJ45网口(如下图)。

这里的USB接口既包含了USB协议也包含了物理上的USB口,这里因为USB标准在规定了数据通信协议的同时也将物理接口一并规定了,所以很多时候我们说xx接口其实既指通信协议也指通信物理接口。

但是,还是有大量的通信标准是只规定了通信协议,而没有指定物理接口的,最常见的就是UART,这时一般就不说UART接口,因为UART是没有标准物理接口的,而只说UART协议。

所以,当学习通信标准时,要特别注意此标准是否规定了物理接口,这对于理解协议、设计通信电路都是很重要的。

通常我们从物理接口上也能大致知道这个通信协议是高速的还是低速的,一般pin脚小而排布密集的是高速接口,pin脚间距大的则是低速接口。这里因为高速接口通常是差分走线,差分pin排布密集。

3.6 误码率与误比特率

误码率_百度百科 (baidu.com)

To be continue…


四. 总结

本文主要介绍了数据通信的一些基本概念,包括通信分类,同步/异步通信,以及一些常见的通信名词的解释。在深入学习各种通信协议之前,了解清楚这些基本概念是很有必要的。因本人对通信的理解还不深入,虽然查阅了相当多的资料,但也难免错漏,如发现错漏,欢迎在评论区指出。


如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。

如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。


徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
目录