1概述什么是通信協(xié)議
協(xié)議是通信計(jì)算機(jī)雙方必須共同遵從的一組約定。如怎么樣建立連接、怎么樣互相識(shí)別等。只有遵守這個(gè)約定,計(jì)算機(jī)之間才能相互通信交流。
比如一些常見(jiàn)的協(xié)議:串口協(xié)議、Modbus協(xié)議、CAN 協(xié)議、TCP/IP協(xié)議等。
『通信協(xié)議』是一個(gè)很寬泛的概念,拿OSI(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層)來(lái)說(shuō),每一層都有對(duì)應(yīng)的協(xié)議,我們所說(shuō)的串口、Modbus、CAN等對(duì)應(yīng)在不同的層次。
很多初學(xué)者對(duì)『通信協(xié)議』的概念不理解,覺(jué)得很高深、很復(fù)雜。要搞明白通信協(xié)議,建議結(jié)合一些實(shí)際例子來(lái)理解。
2UART通信協(xié)議
UART:Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器。
UART,通常我們成為串口,是通信中最常見(jiàn)的一種。
1.串口底層協(xié)議
如上圖,假如設(shè)備A發(fā)送一個(gè)字符給設(shè)備B,需要規(guī)定啟始位、數(shù)據(jù)位、校驗(yàn)位、停止位以及波特率等。這些約定就是串口通訊的協(xié)議。
另外,傳輸?shù)木€路是通過(guò)TTL、232還是485,也是需要通訊雙方(設(shè)備A和設(shè)備B)約定的,嚴(yán)格來(lái)說(shuō)也屬于一種協(xié)議。
我們這里把這些約定統(tǒng)稱為物理層協(xié)議,或者說(shuō)底層的協(xié)議。
2.串口上層協(xié)議
串口通信不像http通信那么復(fù)雜,我這里說(shuō)的簡(jiǎn)單點(diǎn),就是底層協(xié)議和上層協(xié)議。
基于串口的應(yīng)用層協(xié)議很多,自定義應(yīng)用協(xié)議、通用協(xié)議等。
自定義應(yīng)用協(xié)議
比如:你買(mǎi)一個(gè)溫度傳感器模塊,自定義協(xié)議:固定長(zhǎng)度3字節(jié)。
這是一個(gè)很簡(jiǎn)單的自定義協(xié)議,當(dāng)然,實(shí)際應(yīng)用中自定義協(xié)議一般比這個(gè)更復(fù)雜,比如多一些標(biāo)志:命令、數(shù)據(jù)長(zhǎng)度、校驗(yàn)信息等。
通用協(xié)議
比如:Modbus、MAVLink等這些都是基于串口的應(yīng)用層協(xié)議。
如果只是做應(yīng)用,我們不必深究通用協(xié)議的原理,掌握如何使用,能正確傳輸數(shù)據(jù)就行(當(dāng)然,一些基本原理還是要懂)。
3CAN通信協(xié)議
之前寫(xiě)過(guò)一些《CANOpen系列教程》,很多人第一步就蒙了,什么是CAN 2.0協(xié)議,什么是CANOpen協(xié)議?
看了上面串口的解釋?zhuān)F(xiàn)在你是不是要清晰一點(diǎn)了呢?
CAN 2.0屬于一種協(xié)議,CANOpen也是一種協(xié)議,這兩種協(xié)議是各自獨(dú)立的協(xié)議。
1.CAN底層協(xié)議
CAN 2.0協(xié)議屬于物理層的協(xié)議,分為CAN 2.0 A版本和B版本協(xié)議。
前幾年引入了新的CAN FD協(xié)議,這個(gè)協(xié)議可以理解為CAN協(xié)議的升級(jí)版,都屬于物理層協(xié)議。
2.CAN上層協(xié)議
基于物理層CAN之上的協(xié)議,比如:CANopen、J1939、DeviceNet等。這些協(xié)議屬于應(yīng)用層協(xié)議。
應(yīng)用層協(xié)議一般都是指的軟件,里面的一些內(nèi)容也是標(biāo)準(zhǔn)協(xié)會(huì)進(jìn)行約定的(比如CANOpne里面的對(duì)象字典、PDO、SDO等),大家都按照這個(gè)約定進(jìn)行通信。
4網(wǎng)絡(luò)通信協(xié)議
網(wǎng)絡(luò)通信是生活中常見(jiàn)的一種,我們要上網(wǎng),就必須要有網(wǎng)絡(luò),我們需要的數(shù)據(jù)通過(guò)多層協(xié)議,最終才能完成傳輸。
網(wǎng)絡(luò)通信是一個(gè)比較大的概念,包含的協(xié)議種類(lèi)繁多,對(duì)于大部分開(kāi)發(fā)人員來(lái)說(shuō),只需要掌握基本原理,學(xué)會(huì)調(diào)用相應(yīng)接口開(kāi)發(fā)自己應(yīng)用程序即可。
做硬件開(kāi)發(fā)的需要網(wǎng)線電平信號(hào)、接口含義等,做應(yīng)用的需要了解TCP、UDP通信方式區(qū)別等。
原文標(biāo)題:通信教程 | 概述通信協(xié)議
文章出處:【微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
溫度傳感器
+關(guān)注
關(guān)注
48文章
2918瀏覽量
155899 -
通信協(xié)議
+關(guān)注
關(guān)注
28文章
861瀏覽量
40273 -
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6909瀏覽量
88849
原文標(biāo)題:通信教程 | 概述通信協(xié)議
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論