睿遠(yuǎn)研究院丨IO-Link物理層編碼解析
上篇講到IO- Link物理層的一些電氣參數(shù),本篇繼續(xù)補(bǔ)充幾個(gè)關(guān)鍵點(diǎn)。
這里要特別注意一下CQD,要設(shè)置到1nF以下,避免COM3速率的報(bào)文被濾波,導(dǎo)致沒法支持COM3的速率。
01 IO- Link的編碼格式
介紹完電氣參數(shù)后,我們來看一下IO-Link在物理層的編碼格式,它采用的是11bit編碼,包括1bit起始位;1bit停止位;8bit數(shù)據(jù),1bit校驗(yàn)位,先傳輸?shù)臀唬賯鬏敻呶槐热鐐鬏?em>0xF1時(shí),你在邏輯分析儀上看到二進(jìn)制其實(shí)是10111000000,共11bit,第一個(gè)bit是開始bit,為低電平,中間8bit 01110000是實(shí)際傳輸?shù)?xF1的二進(jìn)制的取反,最后兩個(gè)bit分別為校驗(yàn)位(偶校驗(yàn))和停止位。
因?yàn)镮O- Link規(guī)定:
邏輯值“1”對(duì)應(yīng)于C/Q線和L-線之間的電壓差為0V;
邏輯值“0”對(duì)應(yīng)于C/Q線和L-線之間的電壓差為+24V;
所以我們看到的邏輯1其實(shí)是低電平信號(hào)。那么01110000取反后就是10001111,然后再把順序調(diào)換一下,因?yàn)槲覀冋Wx寫字節(jié)都是高位在前,低位在后,因此它的實(shí)際數(shù)據(jù)就是11110001,這就是我們需要發(fā)送的0xF1在物理層的實(shí)際情況。
如果大家采用STM32進(jìn)行開發(fā),在UART設(shè)置中,一定記得把長(zhǎng)度,停止位,校驗(yàn)碼設(shè)置正確,如下例子:
02 喚醒電流
喚醒的特性,就是觸發(fā)一個(gè)喚醒電流,讓從站進(jìn)行IO- Link通信狀態(tài)。
喚醒請(qǐng)求(WURQ)以主站(端口)引發(fā)的電流脈沖開始,持續(xù)一段時(shí)間TWU。
喚醒請(qǐng)求包括以下階段:
??主站根據(jù)C/Q 連接的電平,注入一個(gè)電流 IQWU。對(duì)于等效于邏輯“1”的輸入信號(hào),這是一個(gè)電流源;對(duì)于等效于邏輯“0”的輸入信號(hào),這是一個(gè)電流匯。
??延遲一段時(shí)間,直到準(zhǔn)備好接收。
??從站可以通過C/Q 線上的電壓變化或在時(shí)間TWU內(nèi)對(duì)相應(yīng)驅(qū)動(dòng)元件的電流進(jìn)行評(píng)估來檢測(cè)到喚醒請(qǐng)求脈沖。
IQWU
主站喚醒電流脈沖的振幅,最小500mA。
TWU
主設(shè)備喚醒電流脈沖的持續(xù)時(shí)間,在75到85微秒之間。
TREN
接收使能延遲,最大500us。
從這個(gè)看,可以簡(jiǎn)單理解為,喚醒就是在線路上喊了一聲“喂,你好嗎?”然后開始按照速率的高低發(fā)送它要請(qǐng)求的數(shù)據(jù),如果從站不回應(yīng),主站就一直一直的發(fā)送,直到從站回復(fù)為止。
03 通信速率
IO-Link規(guī)定了3種通信速率:
??COM3(230.4K)
??COM2(38.4K)
??COM1(4.8K)
為啥是這三個(gè)速率,具體原因我也沒找到。230400的16進(jìn)制是0x38400、38400的16進(jìn)制是0x9600,估計(jì)按照規(guī)律找了3個(gè)不同的速率,正好差別6-8倍,來滿足當(dāng)時(shí)的工業(yè)通信需求。
而如今,通信訴求越來越多,速率的訴求也隨之而來,已經(jīng)有很多用戶不再滿足于當(dāng)下的速率,希望能提升IO- Link的通信速率。當(dāng)然這個(gè)不是當(dāng)下就能一蹴而就的,它涉及到硬件、軟件等規(guī)范的更新和市場(chǎng)化。
不過我們?cè)趯?shí)際開發(fā)測(cè)試中,已經(jīng)把速率提升到了400K,未來提升到1M也是有可能的。
對(duì)于不同的通信速率,報(bào)文與報(bào)文之間的時(shí)間間隔、主站和從站的時(shí)間延遲等就需要定義清晰,協(xié)議棧里對(duì)如下幾個(gè)時(shí)間做了詳細(xì)規(guī)定:
計(jì)量單位:TBIT= 1/(transmission rate)
COM1:208.33us
COM2:26.04us
COM3:4.34us
04 物理層接口
最后講一下物理層的接口,規(guī)范定義了2類接口,Class A和Class B。Class B提供了兩路電源,特別是當(dāng)下有大負(fù)載的HUB,一般都是通過Class B來進(jìn)行供電。
主站Pin腳的分配
從站Pin腳的分配
結(jié)語
好了,本篇內(nèi)容就到這里,物理層的部分就基本講完了,想要深入學(xué)習(xí)IO-Link的同學(xué),可以拿邏輯分析儀把IO-Link的報(bào)文抓來一一解讀,這樣學(xué)習(xí)起來會(huì)更快。提前做個(gè)劇透,下篇我們將開始講述數(shù)據(jù)鏈路層的故事,還請(qǐng)各位看官保持關(guān)注。

提交
【睿遠(yuǎn)研究院】IO-Link物理層概覽
IO-Link通信技術(shù)概述
睿遠(yuǎn)研究院丨IO-Link規(guī)范解讀