工控網首頁
>

應用設計

>

睿遠研究院丨IO-Link物理層編碼解析

睿遠研究院丨IO-Link物理層編碼解析

2025/5/9 13:48:23

上篇講到IO- Link物理層的一些電氣參數,本篇繼續補充幾個關鍵點。

圖片

這里要特別注意一下CQD,要設置到1nF以下,避免COM3速率的報文被濾波,導致沒法支持COM3的速率。

01 IO- Link的編碼格式

介紹完電氣參數后,我們來看一下IO-Link在物理層的編碼格式,它采用的是11bit編碼,包括1bit起始位1bit停止位8bit數據1bit校驗位,先傳輸低位,再傳輸高位比如傳輸0xF1時,你在邏輯分析儀上看到二進制其實是10111000000,共11bit,第一個bit是開始bit,為低電平,中間8bit 01110000是實際傳輸的0xF1的二進制的取反,最后兩個bit分別為校驗位(偶校驗)和停止位。

圖片

因為IO- Link規定:

邏輯值“1”對應于C/Q線和L-線之間的電壓差為0V;

邏輯值“0”對應于C/Q線和L-線之間的電壓差為+24V;

所以我們看到的邏輯1其實是低電平信號。那么01110000取反后就是10001111,然后再把順序調換一下,因為我們正常讀寫字節都是高位在前,低位在后,因此它的實際數據就是11110001,這就是我們需要發送的0xF1在物理層的實際情況。

如果大家采用STM32進行開發,在UART設置中,一定記得把長度,停止位,校驗碼設置正確,如下例子:

圖片

02 喚醒電流

圖片

喚醒的特性,就是觸發一個喚醒電流,讓從站進行IO- Link通信狀態

喚醒請求(WURQ)以主站(端口)引發的電流脈沖開始,持續一段時間TWU。

喚醒請求包括以下階段:

??主站根據C/Q 連接的電平,注入一個電流 IQWU。對于等效于邏輯“1”的輸入信號,這是一個電流源;對于等效于邏輯“0”的輸入信號,這是一個電流匯。

??延遲一段時間,直到準備好接收。

??從站可以通過C/Q 線上的電壓變化或在時間TWU內對相應驅動元件的電流進行評估來檢測到喚醒請求脈沖。

IQWU

主站喚醒電流脈沖的振幅,最小500mA。

TWU

主設備喚醒電流脈沖的持續時間,在75到85微秒之間。

TREN

接收使能延遲,最大500us。

圖片

從這個看,可以簡單理解為,喚醒就是在線路上喊了一聲“喂,你好嗎?”然后開始按照速率的高低發送它要請求的數據,如果從站不回應,主站就一直一直的發送,直到從站回復為止。

03 通信速率

IO-Link規定了3種通信速率:

??COM3(230.4K)

??COM2(38.4K)

??COM1(4.8K)

為啥是這三個速率,具體原因我也沒找到。230400的16進制是0x38400、38400的16進制是0x9600,估計按照規律找了3個不同的速率,正好差別6-8倍,來滿足當時的工業通信需求。

而如今,通信訴求越來越多,速率的訴求也隨之而來,已經有很多用戶不再滿足于當下的速率,希望能提升IO- Link的通信速率。當然這個不是當下就能一蹴而就的,它涉及到硬件、軟件等規范的更新和市場化。

不過我們在實際開發測試中,已經把速率提升到了400K,未來提升到1M也是有可能的。

圖片

對于不同的通信速率,報文與報文之間的時間間隔、主站和從站的時間延遲等就需要定義清晰,協議棧里對如下幾個時間做了詳細規定:

計量單位:TBIT= 1/(transmission rate)

COM1:208.33us

COM2:26.04us

COM3:4.34us

圖片

04 物理層接口

圖片

最后講一下物理層的接口,規范定義了2類接口,Class A和Class B。Class B提供了兩路電源,特別是當下有大負載的HUB,一般都是通過Class B來進行供電。

圖片

主站Pin腳的分配

圖片

從站Pin腳的分配

圖片

結語

好了,本篇內容就到這里,物理層的部分就基本講完了,想要深入學習IO-Link的同學,可以拿邏輯分析儀把IO-Link的報文抓來一一解讀,這樣學習起來會更快。提前做個劇透,下篇我們將開始講述數據鏈路層的故事,還請各位看官保持關注。

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

提交

查看更多評論
其他資訊

查看更多

【睿遠研究院】IO-Link物理層概覽

IO-Link通信技術概述

睿遠研究院丨IO-Link規范解讀