自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇讓你學會通信協(xié)議

網(wǎng)絡 通信技術
協(xié)議是通信計算機雙方必須共同遵從的一組約定。如怎么樣建立連接、怎么樣互相識別等。只有遵守這個約定,計算機之間才能相互通信交流。

1.概述什么是通信協(xié)議

協(xié)議是通信計算機雙方必須共同遵從的一組約定。如怎么樣建立連接、怎么樣互相識別等。只有遵守這個約定,計算機之間才能相互通信交流。

比如一些常見的協(xié)議:串口協(xié)議、Modbus協(xié)議、CAN 協(xié)議、TCP/IP協(xié)議等。

『通信協(xié)議』是一個很寬泛的概念,拿OSI(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、會話層、表示層和應用層)來說,每一層都有對應的協(xié)議,我們所說的串口、Modbus、CAN等對應在不同的層次。

很多初學者對『通信協(xié)議』的概念不理解,覺得很高深、很復雜。要搞明白通信協(xié)議,建議結合一些實際例子來理解。

2.UART通信協(xié)議

UART:Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器。

UART,通常我們成為串口,是通信中最常見的一種。

1).串口底層協(xié)議

如上圖,假如設備A發(fā)送一個字符給設備B,需要規(guī)定啟始位、數(shù)據(jù)位、校驗位、停止位以及波特率等。這些約定就是串口通訊的協(xié)議。

另外,傳輸?shù)木€路是通過TTL、232還是485,也是需要通訊雙方(設備A和設備B)約定的,嚴格來說也屬于一種協(xié)議。

我們這里把這些約定統(tǒng)稱為物理層協(xié)議,或者說底層的協(xié)議。

2).串口上層協(xié)議

串口通信不像http通信那么復雜,我這里說的簡單點,就是底層協(xié)議和上層協(xié)議。

基于串口的應用層協(xié)議很多,自定義應用協(xié)議、通用協(xié)議等。

自定義應用協(xié)議

比如:你買一個溫度傳感器模塊,自定義協(xié)議:固定長度3字節(jié)。

這是一個很簡單的自定義協(xié)議,當然,實際應用中自定義協(xié)議一般比這個更復雜,比如多一些標志:命令、數(shù)據(jù)長度、校驗信息等。

通用協(xié)議

比如:Modbus、MAVLink等這些都是基于串口的應用層協(xié)議。

如果只是做應用,我們不必深究通用協(xié)議的原理,掌握如何使用,能正確傳輸數(shù)據(jù)就行(當然,一些基本原理還是要懂)。

3.CAN通信協(xié)議

之前寫過一些《CANOpen系列教程》,很多人第一步就蒙了,什么是CAN 2.0協(xié)議,什么是CANOpen協(xié)議?

看了上面串口的解釋,現(xiàn)在你是不是要清晰一點了呢?

CAN 2.0屬于一種協(xié)議,CANOpen也是一種協(xié)議,這兩種協(xié)議是各自獨立的協(xié)議。

1).CAN底層協(xié)議

CAN 2.0協(xié)議屬于物理層的協(xié)議,分為CAN 2.0 A版本和B版本協(xié)議。

前幾年引入了新的CAN FD協(xié)議,這個協(xié)議可以理解為CAN協(xié)議的升級版,都屬于物理層協(xié)議。

2).CAN上層協(xié)議

基于物理層CAN之上的協(xié)議,比如:CANopen、J1939、DeviceNet等。這些協(xié)議屬于應用層協(xié)議。

應用層協(xié)議一般都是指的軟件,里面的一些內容也是標準協(xié)會進行約定的(比如CANOpne里面的對象字典、PDO、SDO等),大家都按照這個約定進行通信。

4.網(wǎng)絡通信協(xié)議

網(wǎng)絡通信是生活中常見的一種,我們要上網(wǎng),就必須要有網(wǎng)絡,我們需要的數(shù)據(jù)通過多層協(xié)議,最終才能完成傳輸。

網(wǎng)絡通信是一個比較大的概念,包含的協(xié)議種類繁多,對于大部分開發(fā)人員來說,只需要掌握基本原理,學會調用相應接口開發(fā)自己應用程序即可。

做硬件開發(fā)的需要網(wǎng)線電平信號、接口含義等,做應用的需要了解TCP、UDP通信方式區(qū)別等。


責任編輯:武曉燕 來源: strongerHuang
相關推薦

2021-08-26 13:22:46

雪花算法隨機數(shù)

2021-09-14 07:26:26

組合問題循環(huán)

2022-08-29 08:00:11

哈希表數(shù)組存儲桶

2022-03-04 21:06:46

spring事務失效

2024-02-20 19:53:57

網(wǎng)絡通信協(xié)議

2023-10-12 19:37:50

通信協(xié)議HTTP

2022-01-02 08:43:46

Python

2022-02-07 11:01:23

ZooKeeper

2022-12-02 14:42:37

2024-04-12 09:01:08

2010-06-11 14:31:08

通信協(xié)議

2022-06-04 07:46:41

HeapJVM

2023-01-03 08:31:54

Spring讀取器配置

2021-05-11 08:54:59

建造者模式設計

2021-07-05 22:11:38

MySQL體系架構

2021-07-06 08:59:18

抽象工廠模式

2022-08-26 09:29:01

Kubernetes策略Master

2023-11-28 08:29:31

Rust內存布局

2021-07-02 09:45:29

MySQL InnoDB數(shù)據(jù)

2022-08-23 08:00:59

磁盤性能網(wǎng)絡
點贊
收藏

51CTO技術棧公眾號