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