工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

睿遠(yuǎn)研究院丨IO-Link消息處理模塊

睿遠(yuǎn)研究院丨IO-Link消息處理模塊

2025/5/29 9:52:05

前言

本周來到消息處理模塊,通信世界的精髓就是消息的處理,如何把0,1,0,1解析成有意義的數(shù)據(jù),就是消息模塊需要打下的基礎(chǔ)。

消息處理模塊要根據(jù)在物理層已經(jīng)轉(zhuǎn)變成byte的內(nèi)容,進(jìn)行消息解析,特別是固定的協(xié)議一般都有協(xié)議的報(bào)文頭和報(bào)文尾,根據(jù)簡單規(guī)則過濾該報(bào)文是否為合法報(bào)文,避免進(jìn)一步的深度解析,減少M(fèi)CU的處理壓力。

01 M-Sequence定義

主站與從站的交互,通過一系列的消息來交換數(shù)據(jù),因此我們稱之為“M-Sequence”,它也是IO-Link里的重要概念。

IO-Link屬于典型的一問一答式交互,主站發(fā)送消息,從站回應(yīng)消息,如果主站不發(fā)送消息,從站就不會(huì)回應(yīng)消息。

圖片

一個(gè)M-Sequence包含了主站的消息和從站的消息:

??主站消息由若干個(gè)UARTFrame組成

??第一個(gè)UART為MC(M序列控制字),表示當(dāng)前報(bào)文的類型,簡單理解為功能碼,表示本次M序列的功能是什么,讀寫ISDU還是讀Event等;

??第二個(gè)UART的前2個(gè)bit,表示當(dāng)前的M序列Type,決定了當(dāng)前主站和從站的報(bào)文長度;

??根據(jù)第一個(gè)UART和第二個(gè)UART就基本確定了功能和數(shù)據(jù)長度,后續(xù)就是填充數(shù)據(jù)即可。

02 M-Sequence類型

圖片

M-Sequence定義了不同階段的報(bào)文類型,雖然規(guī)范總共羅列了10種,但其實(shí)一般也就用其中的3種,包括TYPE_0、TYPE_1_V、TYPE_2_V,其他的類型在目前IO-Link v1.1.4中基本無用武之地。

TYPE_1_1是完全交互PD,不交互OD,僅在IO-Link v1.0規(guī)范中使用。

 TYPE_0

圖片

一般在Startup使用,主站和從站還沒有協(xié)商數(shù)據(jù)時(shí)使用,一般用于讀取DPP數(shù)據(jù);雙方來回只交互一個(gè)OD數(shù)據(jù)。

TYPE_1_V

圖片

一般在PRE-OP使用,沒有PD數(shù)據(jù)交互,只有OD數(shù)據(jù),OD可以是1,2,8,32字節(jié);通常很多廠商都是用8字節(jié)OD來交互,提高效率,又不浪費(fèi)字節(jié)。

 TYPE_2_V

圖片

一般在OP使用,主要交互PD數(shù)據(jù),中間夾雜OD數(shù)據(jù),確保PD按照固定數(shù)據(jù)傳輸數(shù)據(jù),同時(shí)又可以傳輸OD的數(shù)據(jù)。

03 MC解析

圖片

MC報(bào)文的Bit 7作為區(qū)分讀寫操作的標(biāo)志位。

MC報(bào)文的Bit 6Bit5作為通訊通道的標(biāo)志,因?yàn)槊看窝h(huán)都有OD數(shù)據(jù),因此每次通信的通道都是3 ISDU通道;而當(dāng)需要上報(bào)事件時(shí)候才會(huì)進(jìn)行2 Diagnosis通道傳輸;最后是1 Page通道,在Startup階段通過1 Page通道讀取DPP1,2參數(shù),如果在正常通信狀態(tài)下,要讀取DPP參數(shù),也是采用1 Page通道。

最后5個(gè)bit作為地址標(biāo)識(shí),或者在進(jìn)行ISDU傳輸時(shí)作為計(jì)數(shù)器,讓雙方知道當(dāng)前已經(jīng)發(fā)送到哪個(gè)報(bào)文了,不至于紊亂。

圖片

上圖為根據(jù)具體的標(biāo)志位展示的所有可能的報(bào)文類型,大家在抓到相關(guān)IO-Link報(bào)文時(shí)可以根據(jù)這個(gè)表格去判斷當(dāng)前的通道和讀寫狀態(tài)。

04 CKT解析

圖片

主站的第二個(gè)消息包含兩部分內(nèi)容:

M-Sequence Type,根據(jù)所處的狀態(tài)確定其值,一般來說,Startup階段是0,PreOP階段為1,OP階段為2;當(dāng)然這個(gè)不是絕對(duì)的,只是大部分這么使用而已。

Checksum,主站發(fā)送所有消息并加上一個(gè)種子值0x52一起異或,為了節(jié)約消息的開銷,又對(duì)8bit的異或值做了運(yùn)算得到一個(gè)6bit的checksum和M-SequenceType拼接到一起。

異或值的計(jì)算如下:

圖片

END

本篇內(nèi)容就先到這里啦,消息處理模塊是IO-Link通信的重中之重,建議大家多花時(shí)間學(xué)習(xí)和消化。

如果有相關(guān)疑問,或者對(duì)IO-Link產(chǎn)品有需求,歡迎隨時(shí)通過微信公眾號(hào):Rasight,與我們聯(lián)系交流。

審核編輯(
王靜
)
投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

睿遠(yuǎn)研究院丨IO-Link主從狀態(tài)機(jī)解析

睿遠(yuǎn)研究院丨IO-Link數(shù)據(jù)鏈路層解析

睿遠(yuǎn)研究院丨IO-Link物理層編碼解析

【睿遠(yuǎn)研究院】IO-Link物理層概覽

IO-Link通信技術(shù)概述