数据通信的基本概念
通信和通訊是一個意思,網(wǎng)上多有兩詞混用的,沒什么區(qū)分的必要,都指的是數(shù)據(jù)/信息的傳輸。本文使用通信一詞。
一.通信分類
1.1 串行通信和并行通信
串行通信和并行通信都是計(jì)算機(jī)科學(xué)中的概念,指的都是計(jì)算機(jī)內(nèi)部或者計(jì)算機(jī)與外設(shè)之間的通信方式。
串行通信:Serial communication,是指使用一條數(shù)據(jù)線(另外需要地線,可能還需要控制線),將數(shù)據(jù)一位一位地依次傳輸,如下圖所示。
并行通信:Parallel communication,是指使用多條數(shù)據(jù)線,同時(shí)傳輸多bit數(shù)據(jù),如下圖所示。
計(jì)算機(jī)通信經(jīng)歷了從串行 -> 并行 -> 串行的發(fā)展歷程。
最開始,人們采用串行通信,因?yàn)槟菚r(shí)計(jì)算機(jī)和外設(shè)的數(shù)據(jù)處理速度都較慢,需要傳輸?shù)臄?shù)據(jù)量較小,所以串行通信就能滿足需求了。
但隨著計(jì)算機(jī)的發(fā)展,要傳輸?shù)臄?shù)據(jù)量加大,一次傳輸一bit太慢了,所以通信方式開始轉(zhuǎn)向并行通信,一次可以傳輸多bit數(shù)據(jù)。理論上,并行通信的傳輸速率是串行數(shù)據(jù)的N倍(N為并行數(shù)據(jù)線的條數(shù))。顯然,要提高并行通訊的傳輸速度有兩個辦法:
一是增加數(shù)據(jù)線的條數(shù),條數(shù)增加則需要消耗更多的芯片接口,也需要更多的PCB走線和物理信號線;
二是增加發(fā)送時(shí)鐘的頻率,使得一個bit占用的時(shí)間變少。
數(shù)據(jù)線條數(shù)不能一直增加,它受到實(shí)際物理?xiàng)l件的限制,那增加發(fā)送時(shí)鐘頻率貌似是個好辦法。當(dāng)人們將時(shí)鐘頻率上升到幾MHz甚至幾十MHz的時(shí)候,并行通信的多通道同步問題開始出現(xiàn),即接收方要成功解碼出發(fā)送的數(shù)據(jù)需要幾個數(shù)據(jù)通道的數(shù)據(jù)同時(shí)到達(dá),否者數(shù)據(jù)就會錯亂。例如,8根數(shù)據(jù)線的并行通信,先傳輸8bit數(shù)據(jù)0000_0000,再傳輸1111_1111,當(dāng)發(fā)送時(shí)鐘很快時(shí),因?yàn)槊扛鶖?shù)據(jù)線長度不一致以及線路上寄生參數(shù)的影響,有的通道bit到達(dá)快,有的到達(dá)慢,這時(shí)接收方就無法還原出真實(shí)的發(fā)送數(shù)據(jù),對接受方來說,收到的可能是0011_0111,這就是數(shù)據(jù)錯亂。
當(dāng)發(fā)送速度(MHz/GHz)太快時(shí),并行通信數(shù)據(jù)通道間的同步變得極其困難,甚至根本不可能。
這時(shí)候人們發(fā)現(xiàn),串行通信就沒有通道同步問題,發(fā)送時(shí)鐘頻率可以很快,可以達(dá)到幾十甚至上百GHz,這時(shí)串行通信的傳輸速度大大超過了并行通信,而且使用的信號線更少,于是人們又開始將串行通信作為計(jì)算機(jī)通信的主要方式。
1.2 單工通信,半雙工通信和全雙工通信
單工通信,Simplex communication,數(shù)據(jù)只能從一個方向向另一個方向傳輸,而不能反過來,如數(shù)據(jù)只能A發(fā)送B接收,而不能B發(fā)送A接收。相關(guān)應(yīng)用:電視、廣播。
半雙工通信,Half Duplex communication,數(shù)據(jù)可以雙向傳輸,但是,在同一時(shí)刻,只允許數(shù)據(jù)在一個方向上傳輸,它實(shí)際上是一種切換方向的單工通信。相關(guān)應(yīng)用:對講機(jī)。
全雙工通信,Full Duplex communication,數(shù)據(jù)允許同時(shí)在兩個方向上傳輸,它要求數(shù)據(jù)兩頭的設(shè)備都有獨(dú)立的發(fā)送和接收數(shù)據(jù)的能力。相關(guān)應(yīng)用:電話。
二. 同步通信和異步通信
并行通信因?yàn)閼?yīng)用少,并沒有去區(qū)分同步還是異步。只有串行通信有同步異步的區(qū)分。
同步和異步通過什么特征來區(qū)分眾說紛紜,大概有兩種流派:
發(fā)送方和接收方共用一條時(shí)鐘線的稱為同步通信,如SPI;不共用時(shí)鐘線則稱為異步通信,如CAN。
數(shù)據(jù)中有同步字符的,像以太網(wǎng)中的前導(dǎo)碼,以接收到同步字符視為數(shù)據(jù)字符的開始的通訊方式稱為同步通信,反之,異步通訊中沒有同步字符,而以起始bit位和停止bit位作為數(shù)據(jù)開始和結(jié)束的標(biāo)志,如UART。
個人認(rèn)為流派1邏輯更清晰,流派2以同步字符/起始位停止位來區(qū)分不夠抽象。
2.1 同步通信
發(fā)送方和接收方共用一條時(shí)鐘線,如下圖所示。
2.2 異步通信
異步通信不傳輸時(shí)鐘,但接收方時(shí)鐘仍然必須和發(fā)送方保持一致,這就有兩個辦法:一是雙方約定好以哪個時(shí)鐘頻率收發(fā)數(shù)據(jù);二是接收方根據(jù)數(shù)據(jù)的一些特點(diǎn)推斷出發(fā)送數(shù)據(jù)的時(shí)鐘頻率,這個技術(shù)稱為時(shí)鐘恢復(fù)技術(shù),使用最廣泛地時(shí)鐘恢復(fù)技術(shù)就是PLL(Phase-Locked Loop,鎖相環(huán))技術(shù)。
2.3 特別說明
需要特別說明的是,同步/異步通信并沒有什么明確的定義,本文也是根據(jù)各種書籍以及網(wǎng)絡(luò)資料總結(jié)給出的兩者定義,可能與其它地方的說法不同。
三. 常見通信詞匯的含義
3.1 比特率
比特率_百度百科 (baidu.com)
比特率 - 維基百科,自由的百科全書 (wikipedia.org)
比特率(Bit Rate)在電信和計(jì)算領(lǐng)域是指單位時(shí)間內(nèi)傳輸送或處理的比特的數(shù)量。這時(shí)連接速度、傳輸速度、數(shù)字帶寬容量都是比特率的同義詞。在音視頻領(lǐng)域,比特率是碼率的同義詞,用來表征音視頻的質(zhì)量。
比特率單位是bit per second(比特每秒,bit/s 或 bps),通常與“千”,“兆”關(guān)聯(lián)使用,如kbps,Mbps,Gbps,換算關(guān)系如下:
1Gbps = 103Mbps = 106kbps = 109bps
3.2 帶寬
帶寬 (計(jì)算機(jī)) - 維基百科,自由的百科全書 (wikipedia.org)
帶寬 - 維基百科,自由的百科全書 (wikipedia.org)
帶寬_百度百科 (baidu.com)
帶寬一詞應(yīng)用的領(lǐng)域非常多,在無線電通信中,帶寬是調(diào)制載波占據(jù)的頻率范圍。
對模擬信號來說,帶寬又稱頻寬,單位是Hz,通常我們說的示波器帶寬,濾波器帶寬都是指的頻寬。
在數(shù)字通信領(lǐng)域,帶寬指的是單位時(shí)間內(nèi)能傳輸?shù)淖畲髷?shù)據(jù)量,單位是bps,簡單來說,帶寬 = 最大比特率。
為了防止混淆,在描述通信速度時(shí),不要使用帶寬一詞,而用比特率來描述,這樣不會引起歧義。
3.3 波特率
波特率 - 維基百科,自由的百科全書 (wikipedia.org)
波特率_百度百科 (baidu.com)
波特(Buad,簡寫B(tài)d)指的是有效數(shù)據(jù)訊號調(diào)制載波的速率,即單位時(shí)間內(nèi)載波狀態(tài)變化的次數(shù),調(diào)制速率是波特的同義詞。
關(guān)于波特有兩個個易錯點(diǎn)需要注意:
為解釋清楚波特的概念,這里引入另一個名詞——碼元。
在數(shù)字通信中,常常用時(shí)間間隔相同的符號來表示數(shù)字。這樣的時(shí)間間隔內(nèi)的信號稱為碼元,這個間隔稱為碼元長度。而波特率就是表征碼元傳輸速率單位,它表示單位時(shí)間傳輸了多少個碼元。
波特和比特率有時(shí)會混淆,兩者都是對通信速率的描述,但并不等同,實(shí)際上波特與比特率的換算關(guān)系如下:
比特率 = 波特 * log2N,其中N為碼元的狀態(tài)數(shù),舉例說明:
如果在數(shù)字傳輸過程中,用0V表示數(shù)字0,5V表示數(shù)字1,那么每個碼元有兩種狀態(tài)0和1(N=2),每個碼元代表一個二進(jìn)制數(shù)字。此時(shí)的每秒碼元數(shù)和每秒二進(jìn)制數(shù)是一樣的,這叫兩相調(diào)制,波特率等于比特率。
如果在數(shù)字傳輸過程中,0V、2V、4V和6V分別表示00、01、10和11,那么每個碼元有四種狀態(tài)00、01、10和11(N=4)。每個碼元代表兩個二進(jìn)制數(shù)字。此時(shí)的每秒碼元數(shù)是每秒二進(jìn)制數(shù)是一半的,這叫四相調(diào)制,波特率等于比特率的一半。
3.4 通信協(xié)議與通信標(biāo)準(zhǔn)
網(wǎng)絡(luò)傳輸協(xié)議 - 維基百科,自由的百科全書 (wikipedia.org)
通信協(xié)議_百度百科 (baidu.com)
收發(fā)雙方要能夠交換數(shù)據(jù)就必須遵守同一套規(guī)則,通信協(xié)議就是通信的規(guī)則。它規(guī)定了通信的內(nèi)容,通信的方式和通信的時(shí)間。
通信協(xié)議主要由以下三個要素組成:
語法:即如何通信,包括數(shù)據(jù)的格式、編碼和信號等級(電平的高低)等。
語義:即通信內(nèi)容,包括數(shù)據(jù)內(nèi)容、含義以及控制信息等。
時(shí)序:即何時(shí)通信,明確通信的順序、速率匹配和排序。
通訊標(biāo)準(zhǔn)指的是那些經(jīng)過權(quán)威機(jī)構(gòu)(如IEEE,ISO,中國國家標(biāo)準(zhǔn)委員會)認(rèn)證并發(fā)布的通訊協(xié)議,通信標(biāo)準(zhǔn)通常規(guī)定了通信協(xié)議的各個細(xì)節(jié),它主要是為了保證收發(fā)雙方在設(shè)計(jì)時(shí)都有確定的參考。舉個例子:電腦外設(shè)廣泛使用的USB就是一種通訊標(biāo)準(zhǔn),鍵盤和主板廠商不需要事先溝通,它們只要都遵照USB標(biāo)準(zhǔn)去設(shè)計(jì),最后設(shè)計(jì)好的鍵盤插到主板USB接口上就能正常通訊。
通訊協(xié)議是一個寬泛地概念,我們自己也可以發(fā)明各種通訊協(xié)議,而只有那些優(yōu)秀的,為大眾接受的通信協(xié)議才能并發(fā)布為通信標(biāo)準(zhǔn)。當(dāng)然,很多通信標(biāo)準(zhǔn)都被淘汰了,但它們幾乎都流行過。
對于那些我們常聽說的通信協(xié)議,幾乎都是通信標(biāo)準(zhǔn),所以,大部分時(shí)候通信協(xié)議和通信標(biāo)準(zhǔn)是同義詞。
3.5 通信物理接口
我們經(jīng)常說USB接口,網(wǎng)口,HDMI口,這里說道的接口其實(shí)有兩個含義:一是指USB協(xié)議,以太網(wǎng)協(xié)議等;二是指物理上的接口,像USB那反人類的無法正反插從外觀上又無法直接知道連接方向的USB口(如下圖),或是標(biāo)準(zhǔn)的RJ45網(wǎng)口(如下圖)。
這里的USB接口既包含了USB協(xié)議也包含了物理上的USB口,這里因?yàn)閁SB標(biāo)準(zhǔn)在規(guī)定了數(shù)據(jù)通信協(xié)議的同時(shí)也將物理接口一并規(guī)定了,所以很多時(shí)候我們說xx接口其實(shí)既指通信協(xié)議也指通信物理接口。
但是,還是有大量的通信標(biāo)準(zhǔn)是只規(guī)定了通信協(xié)議,而沒有指定物理接口的,最常見的就是UART,這時(shí)一般就不說UART接口,因?yàn)閁ART是沒有標(biāo)準(zhǔn)物理接口的,而只說UART協(xié)議。
所以,當(dāng)學(xué)習(xí)通信標(biāo)準(zhǔn)時(shí),要特別注意此標(biāo)準(zhǔn)是否規(guī)定了物理接口,這對于理解協(xié)議、設(shè)計(jì)通信電路都是很重要的。
通常我們從物理接口上也能大致知道這個通信協(xié)議是高速的還是低速的,一般pin腳小而排布密集的是高速接口,pin腳間距大的則是低速接口。這里因?yàn)楦咚俳涌谕ǔJ遣罘肿呔€,差分pin排布密集。
To be continue…
四. 總結(jié)
本文主要介紹了數(shù)據(jù)通信的一些基本概念,包括通信分類,同步/異步通信,以及一些常見的通信名詞的解釋。在深入學(xué)習(xí)各種通信協(xié)議之前,了解清楚這些基本概念是很有必要的。因本人對通信的理解還不深入,雖然查閱了相當(dāng)多的資料,但也難免錯漏,如發(fā)現(xiàn)錯漏,歡迎在評論區(qū)指出。
總結(jié)
- 上一篇: Verilog功能模块——AXI4-Li
- 下一篇: Xilinx IP解析之 Fast Fo