作者:Alessandro Leonardi,客户经理
Giorgio Paganini,米兰理工大学学生
Fulvio Bagarelli,技术主管
ADI公司
摘要
【资料图】
工业4.0为远距离实现边缘智能带来了曙光,而10BASE-T1L以太网的数据线供电(PoDL)功能、高数据传输速率以及与以太网协议兼容也为未来发展铺平了道路。本文介绍如何在自动化和工业场景中集成新的10BASE-T1L以太网物理层标准,将控制器和用户界面与端点(例如多个传感器和执行器)连接起来,所有器件均使用标准以太网接口进行双向通信。
简介
10BASE-T1L是针对工业连接的物理层标准。它使用标准双绞线电缆,数据速率高达10 Mbps,电力传输距离长达1000米。低延迟和PoDL功能有助于实现对传感器或执行器等器件的远程控制。本文介绍如何实现一个能够同步控制两个或更多步进电机的远程主机系统,借此展示远距离实时通信的能力。
系统概述
图1是系统级应用的示意图。在主机端,由ADIN1100和ADIN1200以太网PHY负责管理标准链路和10BASE-T1L链路之间的转换,而在远程端,控制器通过ADIN1110以太网MAC-PHY与链路接口,只需要一个SPI外设来交换数据和命令。准确的同步运动控制利用ADI Trinamic™ TMC5160步进电机控制器和驱动器来实现,这些器件可生成六点斜坡用于定位,而无需在控制器上进行任何计算。选择这些元器件还能降低对微控制器所用外设、计算能力和代码大小的要求,从而支持使用更广泛的商用产品。此外,在不超过预定功耗限制的情况下,整个远程子系统可以直接由数据线供电;因此,只有媒介转换器板需要提供本地电源。
image001.png
图1.系统概览。
系统硬件
该系统由四个不同的板组成:
EVAL-ADIN1100板具有ADIN1200 10BASE-T/100BASE-T PHY,与ADIN1100 10BASE-T1L PHY搭配使用,可以将消息从一种物理标准转换为另一种物理标准。它可以针对不同的工作模式进行配置。本项目使用标准模式15(媒介转换器)。EVAL-ADIN1100板还集成了微控制器,用于执行媒介转换所需的基本配置和读取诊断信息。但是,它不能与发送和接收的消息交互;该板对通信完全透明。
EVAL-ADIN1110是远程器件控制器的核心。ADIN1110 10BASE-T1L MAC-PHY通过10BASE-T1L链路接收数据,并通过SPI接口将数据传输到板载Cortex®-M4微控制器进行处理。该板还提供与Arduino Uno兼容的接头,可利用这些接头安装扩展板以添加更多功能。
TMC5160扩展板是一款基于Arduino扩展板外形尺寸定制的开发板。单个扩展板最多支持两个TMC5160 SilentStepStick板,多个扩展板可以堆叠在一起以增加可控电机的最大数量。所有驱动器共享相同的SPI时钟和数据信号,但片选线保持独立。这种配置支持两种通信模式:如果片选线各自置为有效,则微控制器可以与单个控制器通信——例如配置运动参数。相反,如果同时将多条片选线置为有效,则所有选定的驱动器同时接收相同的命令。后一种模式主要用于运动同步。该板还为StepStick提供了一些额外的输入电容,以降低电机启动时的电流峰值,并使正常工作期间的电流曲线更加平滑。它允许使用PoDL为最多配有两个NEMA17电机的整个系统供电(默认设置下,24 V时的最大传输功率为12 W)。该板还支持使用螺丝端子来简化与步进电机的连接,使控制器的相位输出更容易访问。
两个EVAL-ADIN11X0EBZ板用于向系统添加PoDL功能,其中一个板用于媒介转换器,另一个用于EVAL-ADIN1110EBZ。该板是一个插件模块,可以安装在评估板的MDI原型接头上,并且可以配置为通过数据线提供和接收电力。
image002.png
图2.装配好的EVAL-ADIN1110、EVAL-ADIN11X0EBZ和TMC5160扩展板。
软件
软件代码可供下载:利用10Base-T1L以太网进行远程运动控制 - 代码。
为了保持代码的轻量化并有效减少通信开销,没有在数据链路层之上实现标准通信协议。所有消息都是通过预定义固定格式的以太网帧的有效载荷字段进行交换。数据被组织成46字节的数据段,一个数据段由2字节的固定报头和44字节的数据字段组成。报头包括:一个8位器件类型字段,用于确定如何处理接收的数据;以及一个8位器件ID字段,如果存在多个相同类型的器件,可以通过ID来选择单个物理器件。
image003.png
图3.通信协议格式。
主机接口采用Python编写,以确保与Windows和Linux主机兼容。以太网通信通过Scapy模块进行管理,该模块允许在堆栈的每一层(包括以太网数据链路)创建、发送、接收和操作数据包。协议中定义的每种器件都有一个相应的类,其中包括用于存储要交换的数据的属性,以及一组可用于修改这些属性而不必直接编辑变量的方法。例如,若要在运动控制器的速度模式下更改运动方向,可以使用已定义的方法“setDirectionCW()”和“setDirectionCCW()”,而不必手动为方向标志赋值0或1。每个类还包括一个“packSegment()”方法,该方法根据所考虑的设备器件的预定义格式,以字节数组的形式打包并返回与受控器件对应的数据段。
固件利用ChibiOS环境以C语言编写,其中包括实时操作系统(RTOS)、硬件抽象层(HAL)、外设驱动程序等工具,使代码可以在相似的微控制器之间轻松移植。项目基于三个自定义模块:
ADIN1110.c是驱动程序,用于支持通过SPI接口与ADIN1110交换数据和命令。它包括用于从器件寄存器读取和写入数据的低级通信函数,以及用于发送和接收以太网帧的高级函数。它还包括用于在10BASE-T1L收发器之间建立通信的函数。通知是否出现新帧的引脚在中断时读取,以尽量减少延迟。
TMC5160.c实现了控制TMC5160运动控制器所需的全部函数,配置为以全功能运动控制器模式运行。它实现了恒速和位置控制两种模式,允许使用六点斜坡进行平滑准确的定位。与多个运动控制器的通信通过单条SPI总线和多条独立的片选线实现。它还提供了一组函数和类型定义来简化运动同步。
Devices.c是从T1L链路接收的数据与连接到控制器的物理器件之间的接口。它包括与主机接口中定义的结构体类似的结构体,并且具有在每次接收到带有效数据的新帧时更新结构体的函数。此模块还用于确定每次更新结构体时执行哪些操作,例如,哪个物理运动控制器与在特定器件地址接收到的命令相关。
image004.png
图4.固件流程图。
系统亮点和验证
该项目旨在演示如何在自动化和工业场景中集成新的10BASE-T1L以太网物理层标准,将控制器和用户界面与端点(例如多个传感器和执行器)连接起来。此应用针对多个步进电机的远程实时控制,广泛用于工业中的低功耗自动化任务,但也可用于轻型机器人和数控机床,例如台式3D打印机、台式铣床和其他类型的笛卡尔绘图仪。此外,它还能扩展用于其他类型的执行器和远程控制器件。与具有类似用途的现有接口相比,其主要优点包括:
布线简单,只需要一根双绞线。由于支持通过数据线供电,低功耗器件(如传感器)可以直接借助此连接供电,从而进一步减少所需的布线和连接器数量,并降低整体系统的复杂性、成本和重量。
使用PoDL标准的电力传输方式,通过数据线上叠加的直流电压为连接到网络的设备供电。这种耦合只需要使用无源元件就可以实现,接收端的电压经过滤波后,可以直接给器件或DC-DC转换器供电,不需要整流。只要适当确定用于此类耦合的元件大小,就可以实现一个高效率系统。本项目中使用评估板上安装的标准元件,整体效率约为93%(采用24 V电源,总负载电流为200 mA)。然而,这一结果还有很大的改进余地,事实上,大部分损耗是电源路径上无源元件的电阻压降造成的。
用途广泛,既可用于最后一公里连接,也可用于端点连接。ADI 10BASE-T1L器件针对长达1.7公里的距离进行了测试。它们还支持菊花链连接,这对系统复杂性的影响很小。例如,使用ADIN2111双端口低复杂度交换芯片可以设计集成菊花链功能的器件,使链路也适用于端点网络。
易于与已集成以太网控制器的现有设备连接,包括个人电脑和笔记本电脑。数据帧遵循以太网数据链路标准,所有与以太网兼容的协议都可以在其之上实现,因此只需要一个媒介转换器作为桥接器与标准以太网链路连接。例如,本项目中使用的评估板EVAL-ADIN1100可用作透明媒介转换器的参考设计,它仅需要两个以太网PHY和一个可选微控制器用于配置和调试。
高达10 Mbps的高数据速率,全双工。此特性与菊花链拓扑(在其上可以实现基于工业以太网的协议)相结合,使其可用于需要确定性传输延迟的实时应用。
根据应用的安全性和稳健性要求,收发器和媒介之间的隔离可以通过容性耦合或磁耦合实现。
我们对该系统进行了多次测量以评估其性能。所有用于与ADIN1110收发器和TMC5160控制器通信的外设,都配置为使用标准硬件配置可达到的最大可能速度。考虑到微控制器具有80 MHz系统时钟,对于运动控制器和ADIN1110收发器,SPI外设的数据速率分别设置为2.5 MHz和20 MHz。对于TMC5160,通过调整微控制器时钟配置并向IC提供外部时钟信号,SPI频率可进一步提高至8 MHz,而对于ADIN1110,数据手册规定的上限值为25 MHz。
对延迟进行评估,请求数据和收到应答帧之间的总时间大约为4 ms(500个样本的平均值,使用Wireshark协议分析仪计算数据请求和相应应答的时间戳之间的差值测得)。我们还进行了其他评估,以确定系统的哪些部分是导致此延迟的原因。结果表明,主要原因是RTOS的延时函数,其预留的最小延迟为1 ms,用于设置TMC5160的读写操作间隔,而所需的延迟约为几十纳秒。这可以通过定义基于定时器的其他延迟函数来改进,使延迟间隔可以更短。
导致延迟的第二个原因是用于接收帧的Scapy函数,调用此函数后至少需要3 ms的设置时间。在实际应用中,直接使用操作系统的网络适配器驱动程序来开发接口,而不借助Scapy等第三方工具也能有所改进。然而,这样做也有一些缺点,包括会失去与不同操作系统的兼容性并增加代码复杂度。
image005.png
图5.电源路径的简化方案。
通过切换GPIO并使用示波器测量高电平周期,可测得微控制器上实现回调的准确执行时间。实测执行时间包括读取和解析接收到的帧以及向运动控制器发送命令的函数执行时间。
表1.实测执行时间
电流(A) | 输入功率(W) | 输出功率(W) | 效率
X 关闭 |