工控网首页
>

应用设计

>

睿远研究院丨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规范解读