關于數據通信協(xié)議 你了解多少?
一、通訊協(xié)議
熟悉至少一種通訊協(xié)議及應用方法,UART、SPI、CAN、Modbus、CANopen、 Profibus、 Profinet、 EtherCAT;
熟悉中斷機制,I/0控制和常見外設 (UART、SPI、IIC、USB、SD/MMC等) ;
(一) UART通信協(xié)議
UART(通用異步收發(fā)器),這是用于全雙工串行通信的最常見協(xié)議。它是設計用于執(zhí)行異步通信的單個LSI(大規(guī)模集成)芯片。該設備將數據從一個系統(tǒng)發(fā)送到另一系統(tǒng)。
1. 什么是UART通信協(xié)議?
UART是異步,全雙工串口總線。它比同步串口復雜很多。有兩根線,一根TXD用于發(fā)送,一根RXD用于接收。UART的串行數據傳輸不需要使用時鐘信號來同步傳輸,而是依賴于發(fā)送設備和接收設備之間預定義的配置。
UART全稱是通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),它通常稱作UART,是一種異步收發(fā)傳輸器, 是設備間進行異步通信的關鍵模塊。UART負責處理數據總線和串行口之間的串/并、并/串轉換,并規(guī)定了幀格式;通信雙方只要采用相同的幀格式和波特率,就能在未共享時鐘信號的情況下,僅用兩根信號線(RX 和TX)就可以完成通信過程,因此也稱為異步串行通信。
UART它可以實現全雙工傳輸和接收。我們現在可以大概了解什么是UART協(xié)議了,那我們下面就應該來詳細了解一下它,在這個之前我們先了解一下通信方式的分類,它們是怎樣分類的。
什么是通信協(xié)議
通信協(xié)議是指雙方實體完成通信或服務所必需遵循的規(guī)則和約定。協(xié)議可以理解成,是數據通信系統(tǒng)內的共同語言,讓雙方實現信息交換和資源共享。
通信協(xié)議定義了發(fā)送方將要發(fā)送的信息按照一定的協(xié)議封裝成指定格式的數據包,轉換成比特流形式在網絡上傳輸,接受方接收到數據包后,根據協(xié)議進行解析,從而獲取相關信息。主要由三部分組成語義、語法、時序。(參考語言系統(tǒng))
OSI參考模型
OSI參考模型與TCP/IP模型區(qū)別和聯(lián)系
OSI是一個模型,而TCP/IP是一個協(xié)議簇;
一個七層結構,一個五層結構;
TCP/IP的第三層(網絡層)僅支持IP協(xié)議,OSI支持所有的網絡層協(xié)議。
OSI引入了服務、接口、協(xié)議、分層的概念,而TCP/IP借鑒了OSI的概念。
OSI先有模型,后有協(xié)議,先有標準,后進行實踐,而TCP/IP先有協(xié)議和應用再提出了模型,且是參照的OSI模型。
封裝和解析
封裝:數據通過網絡進行傳輸,從高層一層一層的向下傳送,把數據包裝到一個特殊協(xié)議報頭中這個過程叫封裝;
解析:接收設備收到封裝后的數據刪除數據的封裝信息,并根據報頭中的封裝信息決定如何將數據沿協(xié)議棧向上傳遞,這個過程稱為解析。
數據的封裝和解析包括兩個層面:一個層面是協(xié)議內部的數據封裝和解析;另一個層面為數據通過網絡傳輸過程中的封裝和解析。
——常見物聯(lián)網協(xié)議介紹
下面簡單描述一下概念:
HTTP協(xié)議:超文本傳輸協(xié)議,是一種用于分布式、協(xié)作式和超媒體信息系統(tǒng)的應用層協(xié)議。它是一個客戶端(用戶)和服務端(網站)之間請求和響應的標準,通常使用TCP協(xié)議。HTTP協(xié)議同樣可以用于物聯(lián)網系統(tǒng)中。不過對于很多計算和存儲資源有限的物聯(lián)網節(jié)點,不太適合使用HTTP協(xié)議。
AMQP協(xié)議:高級消息隊列協(xié)議。協(xié)議是一個提供統(tǒng)一消息服務的應用層標準協(xié)議,是應用層協(xié)議的一個開放標準,為面向消息的中間件設計。AMQP的工作原理基于發(fā)布/訂閱機制,消息代理內部的交換機組件(Exchange)會把接收到的消息,根據消息的主題,分配到不同的隊列中,以便訂閱者接收。在物聯(lián)網應用中,該協(xié)議主要適用于移動手持設備與后臺數據中心的通信與分析。
MQTT協(xié)議:(消息隊列遙測傳輸)該協(xié)議是為大量計算能力,工作帶寬有限和網絡環(huán)境不可靠的傳感器或控制器而設計的協(xié)議。它是針對物聯(lián)網推出的一種輕量級即時通訊協(xié)議,基于TCP協(xié)議實現。
COAP協(xié)議:受限應用協(xié)議是專用于受限設備的互聯(lián)網應用協(xié)議。它使那些被稱為“節(jié)點”的受限設備能夠更廣泛的進行互聯(lián)網通信。
在這個廣袤的網絡宇宙中,星光熠熠,每顆星星都代表著一個網絡設備,如交換機、路由器等,它們通過網線、光纖等線纜緊密相連,構成了復雜的網絡網。在這熠熠星光間,隱匿著一套神秘而重要的規(guī)則,這就是網絡協(xié)議。這些不可見的軟件、規(guī)則,如同引導著星光航行的精靈,實現著網絡節(jié)點間的互通。
提到網絡協(xié)議,大家腦海中第一時間浮現的應該大名鼎鼎的TCP/IP協(xié)議,即傳輸控制協(xié)議/網際協(xié)議。TCP/IP協(xié)議不僅僅指的是TCP和IP兩個協(xié)議,而是指一個由FTP、SMTP、TCP、UDP、IP等協(xié)議構成的協(xié)議簇。今天我們按照TCP/IP協(xié)議的各層來分別梳理其中最常見的通信協(xié)議。
首先小編總結一張表格,簡單直接列出TCP/IP協(xié)議與OSI七層模型的關系以及各層的功能和主要網絡協(xié)議。
一、物理層
物理層是網絡模型中最低層,是整個系統(tǒng)的基礎。物理層為設備之間的數據通信提供傳輸媒體及互連設備,為數據傳輸提供可靠的環(huán)境。本質就是“信號和介質”。各種現成的協(xié)議有RS-232、RS-449、X.21、V.35、ISDN、以及FDDI、IEEE802.3、IEEE802.4、和IEEE802.5的物理層協(xié)議。
二、傳輸鏈路層
PPP協(xié)議:一種點到點(一根鏈路兩端只有兩個接口)鏈路層協(xié)議,主要用于在全雙工的同異步鏈路上進行點到點的數據傳輸。
三、網絡層
IP協(xié)議:互聯(lián)網協(xié)議,是TCP/IP協(xié)議族的核心協(xié)議。它定義了數據包的格式,使得數據包可以在互聯(lián)網中進行傳輸。IP協(xié)議使用IP地址來尋址,并通過路由選擇算法將數據包從源節(jié)點轉發(fā)到目標節(jié)點。
ARP協(xié)議:ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。其作用是在以太網環(huán)境中,數據的傳輸所依懶的是MAC地址而非IP地址,而將已知IP地址轉換為MAC地址的工作是由ARP協(xié)議來完成的。
RARP協(xié)議:RARP是將ARP反過來,從MAC地址定位IP地址的一種協(xié)議。平時我們可以通過電腦設置IP,也可以通過DHCP自動分配獲取IP地址。比如局域網中有一臺主機只知道物理地址而不知道IP地址,那么可以通過RARP協(xié)議發(fā)出征求自身IP地址的廣播請求,然后由RARP服務器負責回答。
四、傳輸層
TCP協(xié)議:傳輸控制協(xié)議,提供可靠的、面向連接的數據傳輸服務。TCP使用三次握手建立連接,確保數據的完整性和順序性,以及在數據丟失時進行重傳。它適用于對數據傳輸可靠性要求較高的應用,如文件傳輸、電子郵件等。
UDP協(xié)議:用戶數據報協(xié)議,提供無連接的數據傳輸服務。UDP在發(fā)送數據前不需要建立連接,也不提供數據包的重傳機制。它適用于實時性要求較高的應用,如音頻和視頻傳輸、實時游戲等。
五、應用層
HTTP(超文本傳輸協(xié)議):用于在Web瀏覽器和服務器之間傳輸超文本數據,使我們能夠在互聯(lián)網上瀏覽網頁。
HTTPS(安全套接層超文本傳輸協(xié)議):是HTTP的安全版本,使用加密來保護數據傳輸的安全性,例如在網上進行購物或登錄時。
FTP(文件傳輸協(xié)議):用于在網絡上傳輸文件,使用戶可以上傳或下載文件到遠程服務器。
SMTP(簡單郵件傳輸協(xié)議):用于電子郵件的發(fā)送,規(guī)定了郵件客戶端和郵件服務器之間的交互方式。
POP3(郵局協(xié)議版本3)和IMAP(Internet消息訪問協(xié)議):用于接收電子郵件,分別用于從郵件服務器下載郵件或在服務器上管理郵件。
DNS(域名系統(tǒng)):將域名轉換為IP地址的協(xié)議,使我們能夠通過易于記憶的域名訪問網站。
Telnet:用于在網絡上遠程登錄到其他計算機,以便遠程管理和控制。