CAN匯流排網路層與傳輸層的理解(五)

2021-10-05 22:35:22 字數 2909 閱讀 8913

iso15765-2中定義了網路層和傳輸層的內容,下面就對這兩部分分別進行介紹。

所有網路層的服務都有統一的結構,為了定義服務,有三種服務原語

所有的網路層服務也有統一的格式,如下:

service_name.type
網路層提供了兩種服務

n_usdata.request
n_usdata.confirm
n_usdata_ff.indication
用於把接收到的分段報文的首幀傳送給上層,如果首幀發現任何錯誤,那麼整個報文都將被忽略;如果資料長度(ff_dl)大於接收方可用的緩衝區,也會被認為是乙個錯誤。

n_usdata.indication
用於給上層提供接收到的資料。

n_changeparameter.request
用於對特定內部引數的動態配置請求。

n_changeparameter.confirm
用於向上層確認修改特定協議的請求已經完成(成功與否)。

mtype —— 報文型別,有兩種:

n_ai —— address information

(1)n_sa,network source address,長度8位

(2)n_ta,network target address,長度8位

(3)n_tatype,network target address type,列舉型別

物理定址:一對一通訊,支援網路層所有型別的報文

功能定址:一對多通訊,只支援單幀傳輸(廣播)

(4)n_ae,network address extension,長度8位

—— 資料長度,長度32位

—— 傳輸的資料

—— blocksize,separationtime minimum(詳情見傳輸層)

—— blocksize,separationtime minimum的值,長度8位

—— 服務執行結果,列舉型別

(1)n_ok:服務執行成功

(2)n_timeout_a:超過時間n_asmax/n_armax

(3)n_timeout_bs:超過時間n_bsmax

(4)n_timeout_cr:超過時間n_crmax

(5)n_wrong_sn:接收到非預期序列號(pci.sn)

(6)n_invalid_fs:流控幀接收到無效的狀態

(7)n_unexp_pdu:接收到非預期的pdu

(8)n_wft_ovrn:接收方在流控幀中發出等待狀態

(9)n_buffer_ovflw:接收方在流控幀中發出溢位狀態

(10)n_error:網路層發現除上述錯誤之外的錯誤

—— 修改引數配置結果,列舉型別

(1)n_ok:服務執行成功

(2)n_rx_on:服務沒有執行

(3)n_wrong_parameter:引數沒有定義

(4)n_wrong_value:引數值超出範圍

(1)傳送/接收報文

(2)報告傳送/接收報文的結果

2.2.1 單幀傳輸(singleframe transmission)

2.2.2 多幀傳輸(multiple-frametransmission)

2.2.2.1 多幀包含:

① 首幀(first frame)

② 連續幀(consecutive frame)

接收端通過流控機制(flowcontrol)防止傳輸過程中幀丟失,在緩衝區已滿時,接收端傳送流控幀(flowcontrol frame)通知傳送端暫時先不要發報文。

2.2.2.1.1  流控幀(flowcontrol frame)包含以下兩個內容:

2.2.2.1.2 流控機制(flow control)的兩種模式:

2.2.2.1.3 接收段緩衝區儲存以下狀態來控制連續幀(consecutive frame)的傳送:

2.2.2.2 傳輸層pdu(protocol data unit):

(1)n_ai:address information,參見本章小節(網路層)內容

(2)n_pci:protocol control information,定義了傳送的n_pdu是哪一種幀

(3)n_data:需要傳送的資料

本文參考的標準是iso15765-2:2016(e),與舊版相比又有所擴充,並且把協議分成了網路層和傳輸層兩部分。網路層提供了交換報文的位址資訊,決定幀的接收端和傳送端;傳輸層則主要在於幀的傳輸機制及多幀的拆分,協議後面還講了四類幀的錯誤處理機制,這裡沒有講,感興趣的可以自行研究一下。以上均是筆者自己的理解,如有錯誤歡迎指正。

CAN匯流排網路「負載率」計算

can匯流排負載率 表徵的是單位時間內匯流排上的 位流 相對於匯流排頻寬的佔比。換就話說,匯流排實際資料傳輸速率與理論上能達到的資料傳輸速率的比值。以景區的負載率為例,每個景區都有乙個容納遊客負荷上限人數 比如說10000人 如果此時景區內只有1000人,則此時景區負載率是10 景區負載率是乙個空間...

傳輸層與網路層的區別

傳輸層位於網路層之上,傳輸層協議為不同 主機上執行的應用程序提供 邏輯通訊,而 網路層協議 為不同主機提供邏輯通訊。網路層負責ip資料報的產生以及ip資料報在邏輯網路上的路由 網路層只是根據網路位址將源結點發出的資料報傳送到目的結點 點到點 其主要任務是 通過路由選擇演算法,為報文或分組通過通訊子網...

傳輸層 和網路層的區別

在 協議棧中,傳輸層位於網路層之上,傳輸層協議為不同 主機上執行的程序提供 邏輯通訊,而 網路層協議 為不同主機提供邏輯通訊。這個區別很微妙,但是卻非常重要。讓我們用一家人作為 模擬來說明一下這個區別。設想一下有兩所房子,乙個位於 東海岸而另乙個位於 西海岸,每所房子裡都住著12個小孩。東海岸的房子...