介紹
串行通信是在數據處理設備和外圍設備之間傳輸信息的最廣泛使用的方法。一般而言,溝通意味着通過書面文件,口頭語言,音頻和視頻課程在個人之間交換信息。
每台設備都可能是您的個人計算機或移動設備在串行協議上運行。該協議是安全可靠的通信形式,具有由源主機(發送方)和目的地主機(接收方)尋址的一組規則。為了獲得更好的洞察力,我已經解釋了串行通信的概念。
在嵌入式系統中,串行通信是以串行數字二進制形式使用不同方法交換數據的方式。用於數據交換的一些眾所周知的接口是RS-232,RS-485,I2C,SPI等。
什么是串口通訊?
在串行通信中,數據是二進制脈沖的形式。換句話說,我們可以說二進制1表示邏輯高電平或5伏特,零表示邏輯低電平或0伏特。串行通信可以采用多種形式,具體取決於傳輸模式和數據傳輸的類型。該傳輸模式被歸類為單工,半雙工和全雙工。每種傳輸模式都有一個源(也稱為發送器)和目的地(也稱為接收器)。
該單純形法是單向通信技術。只有一個客戶端(發送方或接收方一次處於活動狀態)。如果發送者發送,接收者只能接受。無線電和電視傳輸是單工模式的例子。
在半雙工模式下,發送方和接收方都是活動的但不是一次,即如果發送方發送,接收方可以接受但不能發送,反之亦然。一個很好的例子是互聯網。如果客戶端(筆記本電腦)發送網頁請求,則Web服務器處理該應用程序並發回該信息。
在全雙工模式在世界上被廣泛使用的通信。這里發送方和接收方都可以同時發送和接收。一個例子是你的智能手機。
除傳輸模式外,我們還必須考慮主機(發送方或接收方)的字節順序和協議設計。字節順序是將數據存儲在特定內存地址的方式。根據數據對齊,endian被歸類為
-
Little Endian和
-
Big Endian。
以此示例來理解字節序的概念。假設,我們有一個32位十六進制數據ABCD87E2。這些數據如何存儲在內存中?為了清楚地了解,我已經解釋了Little Endian和Big Endian之間的區別。
數據傳輸可以通過兩種方式進行。它們是串行通信和並行通信。串行通信是一種使用雙線即發送器(發送器)和接收器逐位發送數據的技術。使用類似技術的通訊產品包括串口服務器,以太網模塊等產品。
例如,我想從發送器向接收器發送8位二進制數據11001110。但是,哪一點首先消失?最高有效位 - MSB(第 7 位)或最低有效位 - LSB(第 0 位)。我們不能說。在這里,我正在考慮LSB首先移動(對於小Endian)。
從上圖中可以看出每個時鍾脈沖; 發送器將一位數據發送到接收器。
並行通信一次移動8,16或32位數據。打印機和Xerox機器使用並行通信來加快數據傳輸速度。
串行和並行通信之間的區別
串行通信一次只發送一位。因此,這些需要更少的I / O(輸入 - 輸出)線。因此,占用更少的空間並且更能抵抗串擾。串行通信的主要優點是整個嵌入式系統的成本變得便宜並且可以長距離傳輸信息。串行傳輸用於DCE(數據通信設備)設備,如調制解調器。
在並行通信中,一次發送一塊數據(8,16或32位)。因此,每個數據位都需要一個單獨的物理I / O線。並行通信的優點是速度快但缺點是它使用了更多的I / O(輸入 - 輸出)線。並行傳輸用於PC(個人計算機),用於互連CPU(中央處理單元),RAM(隨機存取存儲器),調制解調器,音頻,視頻和網絡硬件。
注意:如果您的集成電路或處理器支持較少量的輸入/輸出引腳,則最好選擇串行通信
為了便於理解,這里是串行和並行通信的比較。
串行通信 | 並行通信 |
---|---|
在一個時鍾脈沖逐位發送數據 | 一次傳輸一大塊數據 |
需要一根電線傳輸數據 | 發送'n'位需要'n'行數 |
通訊速度很慢 | 通訊速度快 |
安裝成本低 | 安裝成本很高 |
優選用於長途通信 | 用於短距離通信 |
示例:計算機到計算機 | 計算機到多功能打印機 |
時鍾同步
為了有效地處理串行設備,時鍾是主要來源。時鍾故障可能導致意外結果。每個串行設備的時鍾信號不同,它分為同步協議和異步協議。
同步串行接口
同步串行接口上的所有設備都使用單CPU總線來共享時鍾和數據。由於這個事實,數據傳輸更快。優點是波特率不會失配。此外,接口組件需要更少的I / O(輸入 - 輸出)線。例如I2C,SPI等。
異步串行接口
該異步接口不具有外部時鍾信號,並將其即依賴於四個參數
-
波特率控制
-
數據流控制
-
傳輸和接收控制
-
錯誤控制。
異步協議適用於穩定通信。這些用於長距離應用。異步協議的示例是RS-232,RS-422和RS-485。
串口通訊如何工作?
微控制器和微處理器等高級CPU 利用串行通信與外部世界以及芯片外圍設備進行通信。為了熟悉,讓我們舉一個簡單的例子。假如你想把一個機器的串口數據發送到電腦上呢?串口服務器。假設您想將筆記本電腦中的文件發送到智能手機。你會怎么發送?可能使用藍牙或WiFi協議,對。
因此,以下是建立串行通信的步驟
-
添加連接。
在第一步中,您的筆記本電腦將搜索100米附近的設備,並列出找到的設備。此過程通常稱為漫游。
-
選擇要通信的設備。
要連接到您的手機,必須完成配對。軟件中已存在默認配置。因此無需手動配置波特率。除此之外,還有四個未知規則。它們是波特率,數據位選擇(成幀),起止位和奇偶校驗。
#1什么是波特率?
波特率是以每秒比特數的形式從發送器向接收器傳輸數據的速度。一些標准波特率是1200,2400,4800,9600,57600。
您必須在兩側設置相同的波特率(移動和筆記本電腦)。
注意:波特率越高,可以在更短的時間內傳輸更多數據。
但是,由於接收器端的采樣頻率不匹配,我建議使用最多115200作為安全限制。
#2框架
成幀顯示您要從主機設備(筆記本電腦)發送到移動設備(接收器)的數據位數。是5,6,7或8位嗎?大多數設備,8位是優選的。在選擇8位數據塊之后,必須由發送方和接收方同意字節順序。
#3同步
發送器將同步位( 1個起始位和1或2個停止位)附加到原始數據幀。同步位有助於接收器識別數據傳輸的開始和結束。此過程稱為異步數據傳輸。
#4錯誤控制
由於接收器端的外部噪聲可能會發生數據損壞。獲得穩定輸出的唯一解決方案是檢查奇偶校驗。
如果二進制數據包含偶數個1,則稱為偶校驗,奇偶校驗位設置為' 1 '。如果二進制數據包括奇數1,則稱為奇校驗,現在奇偶校驗位設置為' 0 '。
異步串行協議
開始使用嵌入式系統時,最常見的問題是使用異步協議的原因?
-
在更遠的距離移動信息
-
用於更可靠的數據傳輸。
一些異步通信協議是:
RS-232協議
-
RS232是第一個用於連接電話調制解調器的串行協議。RS代表推薦標准,現在它已改為EIA(電子工業聯盟)/ TIA(電信工業協會)。
-
它還用於調制解調器,鼠標和CNC(計算數字計算)機器。您只能將單個發射器連接到單個接收器。
-
它支持全雙工通信,允許波特率高達1Mbps。
-
電纜長度限制在50英尺。
如您所知,存儲在內存中的數據采用字節形式。您可能會懷疑字節數據如何轉換為二進制位?答案是串口。
串口有一個名為UART的內部芯片。UART是通用異步接收器發送器的首字母縮寫,它將並行數據(字節)轉換為按位串行形式。
RS-232接口
該RS232串口有九個腳,男或女款型。RS 232C串行通信接口是RS232的后續版本。
RS232中的所有功能都存在於RS232C型號中,但它有25個引腳。在25或9個引腳中,我們僅使用三個引腳來連接終端設備。
RS422接口
我們可以使用RS232僅傳輸高達1Mpbs的數據。為了克服這個問題,RS422進入了圖片。RS422是一款多點串行接口。我們可以使用單總線一次將10個發射器連接到10個接收器。它使用兩根雙絞線電纜(差分配置)發送數據。電纜長度為4000英尺,波特率為10Mbps。
RS485接口
RS485是業界首選的協議。與RS422不同,您可以在差分配置中連接32個線路驅動器和32個接收器。發射器也稱為線路驅動器。但是,一次只有一個發送器處於活動狀態。
注意:對於RS232和RS485,您必須手動終止連接。
Wire協議
一根線類似於I2c協議。但是,不同之處在於一條線協議使用單條數據線和地線。它不需要時鍾信號,從機使用內部晶體振盪器進行時鍾控制。它提供半雙工通信。
一根線使用64位尋址方案。單線接口的優點是,它支持低成本的長距離通信。但是,缺點是它的速度較慢。
異步有線協議非常適合長距離通信。但是,給同步串行接口提供范圍有一個缺點。
缺點是,如果需要連接更多的發射器和接收器,則安裝成本會很高。
同步串行協議
同步通信協議是板載外設的最佳資源。優點是您可以在同一總線上連接更多設備。一些同步協議是I 2 C,SPI,CAN和LIN。
I2C協議
I2c(內部集成電路)是一種雙線雙向協議,用於在同一總線上的不同設備之間交換數據。I2c使用7位或10位地址,允許最多連接1024個設備。但是,它需要時鍾信號來產生啟動和停止條件。其優點是它提供400 kbps的數據傳輸。它適用於車載通信。
SPI協議
SPI(串行外設接口)協議以連續的流方式發送和接收數據,不會中斷。建議該協議用於高速數據通信。它可以提供的最大速度是10 Mbps。
與i2c不同,SPI有4條線。它們是MOSI(主輸出從機),MISO(主機輸出),時鍾和從機選擇信號。從理論上講,我們可以連接無限數量的從設備,實際上它取決於總線的負載電容。
CAN協議
該協議專用於車輛系統或汽車。它是一種面向消息的協議,用於多路電線以節省銅。它是一種多主多串行總線,用於車輛自動啟動/停止,防撞系統等應用。
USB
USB接口是串行或並行端口的最佳替代方案。與USB端口相關的數據傳輸比串行和並行接口快得多。USB支持從1.5 Mbps(USB 1.0)到4.8 Gbps(USB 3.0)的速度。今天,大多數嵌入式設備使用USB OTG(On the Go編程)技術將hex文件轉儲到微控制器。
Microwire
Microwire是一種三線串行通信協議。它在微控制器上有一個串行I / O端口,用於連接外圍芯片。它支持高達3Mbps的速度。它比i2c和SPI協議的子集更快。
結論
串行通信是電子和嵌入式系統領域的重要組成部分。如果兩個設備想要在同一總線上交換信息,則數據傳輸速率至關重要。因此,有必要為任何應用選擇有效的串行協議
更多物聯網通信領域技術文章歡迎訪問:http://shop.usr.cn/