串行通信協(xié)議的類型_組成_原理
在開始串行通信協(xié)議之前,讓我們將術(shù)語分為三個部分。通信是眾所周知的術(shù)語,涉及兩種或多種媒介之間的信息交換。在嵌入式系統(tǒng)中,通信意味著兩個微控制器之間以位的形式交換數(shù)據(jù)。微控制器中的這種數(shù)據(jù)位交換是通過一組稱為通信協(xié)議的定義規(guī)則來完成的?,F(xiàn)在,如果數(shù)據(jù)按順序發(fā)送,即一個接一個地發(fā)送,則通信協(xié)議稱為串行通信協(xié)議。更具體地,數(shù)據(jù)位在數(shù)據(jù)總線或串行通信中的通信信道上以順序方式一次一個地傳輸。
通信協(xié)議的類型
數(shù)字電子設(shè)備中有不同類型的數(shù)據(jù)傳輸可用,例如串行通信和并行通信。同樣,協(xié)議分為兩種類型,例如串行通信協(xié)議和并行通信協(xié)議。并行通信協(xié)議的例子有 ISA、ATA、SCSI、PCI 和 IEEE-488。同樣,還有幾個串行通信協(xié)議示例,例如 CAN、ETHERNET、I2C、SPI、RS232、USB、1-Wire 和 SATA 等。


在本文中,將討論不同類型的串行通信協(xié)議。串行通信是在數(shù)據(jù)處理外設(shè)之間傳輸信息的最廣泛使用的方法。每個電子設(shè)備,無論是個人計算機 (PC) 還是移動設(shè)備,都在串行通信上運行。該協(xié)議是一種安全可靠的通信形式,具有一組由源主機(發(fā)送方)和目標(biāo)主機(接收方)處理的規(guī)則,類似于并行通信。
串行通信中的傳輸模式
如上所述,在串行通信中,數(shù)據(jù)以位的形式發(fā)送,即二進制脈沖,眾所周知,二進制一代表邏輯高電平,零代表邏輯低電平。根據(jù)傳輸模式和數(shù)據(jù)傳輸?shù)念愋?,有幾種類型的串行通信。傳輸模式分為單工、半雙工和全雙工。
單純形法:
在單純形方法中,媒體即發(fā)送方或接收方中的任何一個都可以同時處于活動狀態(tài)。因此,如果發(fā)送方正在傳輸數(shù)據(jù),則接收方只能接受,反之亦然。所以單純形法是一種單向通信技術(shù)。單純形法的著名例子是電視和廣播。
半雙工方法:
在半雙工方法中,發(fā)送方和接收方都可以處于活動狀態(tài),但不能同時處于活動狀態(tài)。因此,如果發(fā)送方正在傳輸,則接收方可以接受但不能發(fā)送,反之亦然。半雙工的著名示例是互聯(lián)網(wǎng),用戶在其中發(fā)送數(shù)據(jù)請求并從服務(wù)器獲取數(shù)據(jù)。
全雙工方法:
在全雙工方法中,接收器和發(fā)送器可以同時向?qū)Ψ桨l(fā)送數(shù)據(jù)。眾所周知的例子是手機。
除此之外,對于適當(dāng)?shù)臄?shù)據(jù)傳輸,時鐘起著重要作用,它是主要來源之一。時鐘故障會導(dǎo)致意外的數(shù)據(jù)傳輸,甚至有時會導(dǎo)致數(shù)據(jù)丟失。因此,在使用串行通信時,時鐘同步變得非常重要。
時鐘同步
串行設(shè)備的時鐘不同,它分為兩種類型即。同步串行接口和異步串行接口。
同步串行接口:
它是從主機到從機的點對點連接。在這種類型的接口中,所有設(shè)備都使用單 CPU 總線來共享數(shù)據(jù)和時鐘。使用相同的總線共享時鐘和數(shù)據(jù),數(shù)據(jù)傳輸變得更快。此接口中的波特率也沒有不匹配。在發(fā)射器端,數(shù)據(jù)轉(zhuǎn)移到串行線上,提供時鐘作為單獨的信號,因為沒有開始、停止和奇偶校驗位被添加到數(shù)據(jù)中。在接收器端,使用發(fā)送器提供的時鐘提取數(shù)據(jù)并將串行數(shù)據(jù)轉(zhuǎn)換回并行形式。眾所周知的例子是 I2C 和 SPI。

異步串行接口:
在異步串行接口中,沒有外部時鐘信號。異步串行接口主要出現(xiàn)在長距離應(yīng)用中,非常適合穩(wěn)定的通信。在異步串行接口中,由于沒有外部時鐘源,它依賴于幾個參數(shù),例如數(shù)據(jù)流控制、錯誤控制、波特率控制、傳輸控制和接收控制。在發(fā)送端,使用自己的時鐘將并行數(shù)據(jù)轉(zhuǎn)移到串行線上。它還添加了開始、停止和奇偶校驗位。在接收器端,接收器使用自己的時鐘提取數(shù)據(jù),并在剝離起始位、停止位和奇偶校驗位后將串行數(shù)據(jù)轉(zhuǎn)換回并行形式。眾所周知的例子是RS-232, RS-422 和RS-485。

與串行通信相關(guān)的其他術(shù)語
除了時鐘同步之外,串行傳輸數(shù)據(jù)時還需要記住某些事項,例如波特率、數(shù)據(jù)位選擇(成幀)、同步和錯誤檢查。讓我們簡要討論一下這些術(shù)語。
波特率:波特率是數(shù)據(jù)在發(fā)送器和接收器之間以每秒位數(shù) (bps) 的形式傳輸?shù)乃俾?。最常用的波特率?600。但也有其他的波特率選擇,如1200、2400、4800、57600、115200。波特率越大,一次傳輸?shù)臄?shù)據(jù)就越多。同樣對于數(shù)據(jù)通信,發(fā)送器和接收器的波特率必須相同。
成幀:成幀是指從發(fā)送器發(fā)送到接收器的數(shù)據(jù)位數(shù)。數(shù)據(jù)位數(shù)因應(yīng)用而異。大多數(shù)應(yīng)用程序使用 8 位作為標(biāo)準(zhǔn)數(shù)據(jù)位,但也可以選擇 5、6 或 7 位。
同步:同步位對于選擇數(shù)據(jù)塊很重要。它告訴數(shù)據(jù)位的開始和結(jié)束。發(fā)送端會為數(shù)據(jù)幀設(shè)置起始位和停止位,接收端會據(jù)此識別并做進一步的處理。
差錯控制:差錯控制在串行通信中起著重要的作用,因為在串行通信中影響和增加噪聲的因素很多。為了消除此錯誤,使用奇偶校驗位來檢查奇偶校驗和偶校驗。因此,如果數(shù)據(jù)幀包含偶數(shù)個 1,則稱為偶校驗,寄存器中的奇偶校驗位設(shè)置為 1。類似地,如果數(shù)據(jù)幀包含奇數(shù)個 1,則稱為奇校驗并清除寄存器中的奇校驗位。
協(xié)議就像系統(tǒng)用來理解數(shù)據(jù)的通用語言。如上所述,串行通信協(xié)議分為同步和異步兩種類型?,F(xiàn)在將詳細討論兩者。
同步串行協(xié)議
SPI、I2C、CAN、LIN等同步類型的串行協(xié)議在不同的項目中都有使用,因為它是最好的板載外設(shè)資源之一。這些也是主要應(yīng)用程序中廣泛使用的協(xié)議。
SPI協(xié)議
串行外設(shè)接口 (SPI) 是一種同步接口,允許將多個 SPI 微控制器互連。在 SPI 中,數(shù)據(jù)線和時鐘線需要單獨的線。此外,時鐘不包含在數(shù)據(jù)流中,必須作為單獨的信號提供。SPI 可以配置為主機或從機。四個基本的SPI信號(MISO、MOSI、SCK和SS)、Vcc和Ground是數(shù)據(jù)通信的部分。所以它需要 6 根線來發(fā)送和接收來自從機或主機的數(shù)據(jù)。理論上,SPI 可以有無限數(shù)量的從機。數(shù)據(jù)通信在 SPI 寄存器中配置。SPI 可以提供高達 10Mbps 的速度,是高速數(shù)據(jù)通信的理想選擇。

I2C 串行通信
Inter integrated circuit (I2C) 不同IC或模塊之間的兩線通信,其中兩線是SDA(Serial Data Line)和SCL(Serial Clock Line)。兩條線都必須使用上拉電阻連接到正電源。I2C 可以提供高達 400Kbps 的速度,它使用 10 位或 7 位尋址系統(tǒng)來定位 i2c 總線上的特定設(shè)備,因此它可以連接多達 1024 個設(shè)備。它的通信長度有限,非常適合車載通信。I2C 網(wǎng)絡(luò)易于設(shè)置,因為它僅使用兩條線,新設(shè)備可以簡單地連接到兩條公共 I2C 總線線路。與 SPI 一樣,微控制器通常有 I2C 引腳來連接任何 I2C 設(shè)備。
USB
USB(通用串行總線)是具有不同版本和速度的廣泛協(xié)議。最多 127 個外圍設(shè)備可以連接到單個 USB 主機控制器。USB 充當(dāng)“即插即用”設(shè)備。USB 幾乎用于鍵盤、打印機、媒體設(shè)備、相機、掃描儀和鼠標(biāo)等設(shè)備。它專為易于安裝、更快的數(shù)據(jù)額定值、更少的布線和熱插拔而設(shè)計。它取代了體積更大、速度更慢的串口和并口。USB 使用差分信號來減少干擾并允許遠距離高速傳輸。
差分總線由兩根線構(gòu)成,一根代表傳輸?shù)臄?shù)據(jù),另一根代表其補充。這個想法是電線上的“平均”電壓不攜帶任何信息,從而減少干擾。在 USB 中,允許設(shè)備在不詢問主機的情況下消耗一定量的電量。USB 僅使用兩條線進行數(shù)據(jù)傳輸,并且比串行和并行接口更快。USB 版本支持不同的速度,例如 1.5Mbps (USB v1.0)、480 Mbps (USB2.0)、5Gbps (USB v3.0)。沒有集線器時,單個 USB 電纜的長度可達 5 米,有集線器時可達 40 米。
CAN
控制器局域網(wǎng) (CAN) 用于汽車等領(lǐng)域,以實現(xiàn) ECU(發(fā)動機控制單元)和傳感器之間的通信。CAN 協(xié)議功能強大、成本低廉且基于消息,涵蓋許多應(yīng)用,例如汽車、卡車、拖拉機、工業(yè)機器人。CAN 總線系統(tǒng)允許跨所有 ECU 進行中央錯誤診斷和配置。CAN 消息通過 ID 確定優(yōu)先級,以便最高優(yōu)先級的 ID 不會被中斷。每個 ECU 都包含一個芯片,用于接收所有傳輸?shù)南?、決定相關(guān)性并相應(yīng)地采取行動 - 這允許輕松修改和包含額外的節(jié)點(例如 CAN 總線數(shù)據(jù)記錄器)。這些應(yīng)用包括車輛的啟動/停止、防撞系統(tǒng)。CAN 總線系統(tǒng)可以提供高達 1Mbps 的速度。
MICROWIRE
MICROWIRE 是一個 3Mbps [全雙工] 串行 3 線接口,本質(zhì)上是 SPI 接口的一個子集。Microwire 是微控制器上的串行 I/O 端口,因此在 EEPROM 和其他外圍芯片上也會找到 Microwire 總線。這 3 條線是 SI(串行輸入)、SO(串行輸出)和 SK(串行時鐘)。微控制器的串行輸入 (SI) 線,SO 是串行輸出線,SK 是串行時鐘線。數(shù)據(jù)在 SK 的下降沿移出,并在上升沿賦值。SI 在 SK 的上升沿移入。MICROWIRE 的附加總線增強稱為 MICROWIRE/Plus。兩條總線之間的主要區(qū)別似乎是微控制器內(nèi)的 MICROWIRE/Plus 架構(gòu)更為復(fù)雜。它支持高達 3Mbps 的速度。
異步串行協(xié)議
當(dāng)涉及到更遠距離的可靠數(shù)據(jù)傳輸時,異步類型的串行協(xié)議非常重要。異步通信不需要兩個設(shè)備共用的定時時鐘。每個設(shè)備都以商定的速率獨立偵聽和發(fā)送代表數(shù)據(jù)位的數(shù)字脈沖。異步串行通信有時稱為晶體管-晶體管邏輯 (TTL) 串行,其中高電壓電平為邏輯 1,低電壓等于邏輯 0。當(dāng)今市場上幾乎每個微控制器都至少有一個通用異步接收器-用于串行通信的發(fā)送器 (UART)。例如 RS232、RS422、RS485 等。
RS232
RS232(推薦標(biāo)準(zhǔn) 232)是一種非常常用的協(xié)議,用于連接不同的外圍設(shè)備,例如監(jiān)視器、CNC 等。RS232 有公頭和母頭連接器。RS232 是點對點拓撲結(jié)構(gòu),最多連接一個設(shè)備,覆蓋距離可達 15 米,速率為 9600 bps。RS-232 接口上的信息通過邏輯 0 和 1 進行數(shù)字傳輸。邏輯“1”(MARK) 對應(yīng)于 -3 至 -15 V 范圍內(nèi)的電壓。邏輯“0”(SPACE) 對應(yīng)于電壓范圍為 +3 至 +15 V。它采用 DB9 連接器,該連接器具有 9 個引腳,例如 TxD、RxD、RTS、CTS、DTR、DSR、DCD、GND。
RS422
RS422 類似于 RS232,它允許在不同的線路上同時發(fā)送和接收消息,但為此使用差分信號。在RS-422網(wǎng)絡(luò)中,只能有一臺發(fā)送設(shè)備,最多有10臺接收設(shè)備。RS-422 中的數(shù)據(jù)傳輸速度取決于距離,從 10 kbps(1200 米)到 10 Mbps(10 米)不等。RS-422線為4根數(shù)據(jù)傳輸線(2根雙絞線傳輸,2根雙絞線接收)和一根公共GND地線。數(shù)據(jù)線上的電壓可以在-6 V 到+6 V 的范圍內(nèi)。A 和B 之間的邏輯差值大于+0.2 V。邏輯1 對應(yīng)于A 和B 之間的差值小于-0.2 V。 RS-422標(biāo)準(zhǔn)沒有定義具體類型的連接器,通常可以是接線端子或DB9連接器。
RS485
由于RS485采用多點拓撲結(jié)構(gòu),因此在行業(yè)中使用最多,是行業(yè)首選協(xié)議。RS422 可以在差分配置中連接 32 個線路驅(qū)動器和 32 個接收器,但在額外的中繼器和信號放大器的幫助下最多可連接 256 個設(shè)備。RS-485 沒有定義具體類型的連接器,但通常是接線端子或 DB9 連接器。運行速度還取決于線路的長度,在 10 米處可達 10 Mbit/s。線路上的電壓范圍為 -7 V 至 +12 V。RS-485 有兩種類型,例如帶 2 個觸點的半雙工模式 RS-485 和帶 4 個觸點的全雙工模式 RS-485。
結(jié)論
串行通信是電子和嵌入式系統(tǒng)中廣泛使用的通信接口系統(tǒng)之一。不同應(yīng)用的數(shù)據(jù)速率可能不同。在處理這類應(yīng)用時,串行通信協(xié)議可以起到?jīng)Q定性的作用。所以選擇正確的串口協(xié)議就變得非常重要。
以上文章由IC先生網(wǎng)www.mrchip.cn編輯整理發(fā)布,請勿轉(zhuǎn)載。