IEEE1588在分散运动控制系统中的应用

发布者:EnchantedMagic最新更新时间:2009-12-16 来源: 中国工控网关键字:IEEE1588  分散运动控制系统  时钟 手机看文章 扫描二维码
随时随地手机看文章

引言
  本文说明IEEE1588在一个分散运动控制系统中的应用,目前的解决方案依靠分散运动部件对时间同步的专门实现。随着IEEE1588的出现,可以开发一种在标准网络(如以太网)上使用商用技术的运动控制解决方案。本文要说明在一个网络范例内IEEE1588和运动的基本操作。

  分散运动控制要求系统节点之间紧密地同步,通常这要求在系统内时钟间的波动是微秒数量级。更高性能的应用驱动将这个性能提高到几分一微秒范围。当前的解决方案是使用适当的网络和接口部件达到使分散系统内节点间的紧密同步。定制的接口卡控制整个系统时钟的分配和同步以及控制数据的定时传送。

  IEEE1588精确时间协议提供分布网络上的标准化的同步机制,通过使用IEEE1588协议就可在标准网络上用标准化的解决方案取代专用解决方案。就可用现成的部件代替专用的网络接口部件。

  现使用IEEE1588协议和以太网实现一个简单的分布运动控制系统,用以演示这个原理。

范例说明

  范例运动系统由三个控制器组成,每个控制器通过一个SERCOS适配器连接一个驱动器。SERCOS是连接数字驱动器的工业标准。所有的运动节点都用以太网卡连接到标准的以太网。

  调节器内的“运动计划器”管理每个驱动器的位置信息,以控制点动、移动、和联动操作。每个驱动器作为一个运动轴,其中一个轴是主轴,其它两个为从动轴。每个从动轴都与主轴以1:1的比率联动。连接到主轴的控制器以一定时间间隔向连接到从动轴的控制器发送位置基准。

  在系统内所有节点的时钟是同步的,它使用IEEE1588协议达到以太网的时钟同步。在底板上的时钟同步是用先与IEEE1588的专用协议实现的。

系统时钟同步

  网络时钟同步是在以太网适配卡上实现的,这个适配卡包含一个FPGA硬件辅助电路,用于对进入和输出的IEEE1588协议报文打上时间印记。这个FPGA包含一个64位,每片25纳秒的高分辨率的可调谐时钟。

  1588协议运行在一个50MHz PowerPC CPU上,1588代码和按1588协议的规定的FPGA交互作用使从站的时间与子网上与此相关的主站时钟同步。调谐算法在每个1588同步刷新周期调节这个FPGA可调谐时钟的频率。

  这个适配器也包含一个连接底版的接口芯片,底版芯片的时钟与1588时钟同步。在这个适配器上的底版接口作为主时钟,在底版上的其它时钟都与这个适配器上的主时钟同步。底版时钟与1588时钟的同步使用一个简单的算法。这个适配器表示一个1588边界时钟节点而底版时钟划为“外部”时钟。

运动的同步

  基本的运动控制要求在一个节点的运动任务的运行要与其它所有节点同步。节点之间的所有事务都建立在同步刷新周期基础上。对控制器与传动和控制器与控制器之间的两种事务是相同的。

  控制器对驱动的事务:在周期的开始控制器发送插值位置刷新每个驱动器,驱动器使用这个位置刷新值控制电机的闭环位置和速度,每台驱动器向控制器返回它的实际位置,控制器计算一个新位置并周期重复,这个操作持续一个位置刷新周期。


  控制器对控制器的事务:在周期的开始,主轴控制器向每个从动轴发送位置基准,每个从动轴的控制器用这个位置基准计划本轴的运动。

  为了同步整个系统的运动,运动任务和位置的刷新要与1588时钟同步,FPGA内的一个小电路提供对CPU的周期中断来触发这个位置刷新周期。这个电路将一个装入目标寄存器的时间与当前的1588时钟时间比较,在当前时间与目标时间符合时产生一个中断。在这个中断子程序内,CPU还会装入一个新的目标时间,它等于当前目标时间加上周期时间,然后重复这个过程。周期时间和相位是在节点配置过程中设置的。

1588的实现

  1588协议是一个运行在适配器上的C/C++工具,大多数1588协议的实现包括同步,诊断,延时请求,延时响应和报文管理。1588引导协议用于在启动时加快时间从站的时钟同步。实现8个同步报文的引导。

  这里未提供“最佳主站”算法,本系统使用“推荐”主站选择方法决定子网络的主时钟。在启动时从站时钟无限期地收听主时钟。从时钟永远不会成为主时钟。也不会任命一个以上“推荐”主站。
  为主时钟完整性的监视提供某些支持,如果一个从时钟发现失去主时钟,它将停止它的底版时钟,这将引起SERCOS适配器关闭SERCOS环路,并且所有运动停止。
输出同步

  在范例应用中需要根据主轴的位置精确地接通或断开一个输出。用这个输出触发一个选通灯,照亮所有三个轴的相位。为了达到精确的输出闸门,使用一个特别的输出组件,它的时钟与系统中的其余时钟同步,由控制器内的运动计划器向这个组件发送一个输出值,这个值带着时间标记指示释放输出或停止输出的时间。输出组件使用先前说明过的任务同步电路管理输出的“定时”以达到精确的输出时间。

GPS作为最高主时钟

  本运动系统范例的启动时间缺省为时间为0的UTC时间。对运动系统通常不需要绝对时间,但对一些明显的事件如故障条件,时间标记可能很有用处。所以这里集成了一个全球定位系统(GPS)接口,用于提供精确的UTC时间源。并用作系统的最高主时钟。这个接口集成在以太网适配器模块上,适配器上的算法从GPS接收器接收“秒脉冲”和UTC刷新,并调节它的本地时钟维持与GPS的同步。

结论

  提供的1588在以太网分布运动系统的应用例子是可靠和精确的应用。硬件辅助电路提供的主时钟和从时钟之间的起伏精度不大于200纳秒。当使用GPS作为主时间基准时,在从时钟的累计波动为500纳秒。如果耒自GPS接收器的秒脉冲信号的边沿不清晰,还会产生附加的波动。

关键字:IEEE1588  分散运动控制系统  时钟 引用地址:IEEE1588在分散运动控制系统中的应用

上一篇:PROFIBUS-DP/MODBUS的网关结构设计
下一篇:基于PROFIBUS-DP现场总线的恒温控制系统

推荐阅读最新更新时间:2024-03-30 21:30

TQ2440 学习笔记—— 22、系统时钟和定时器
系统时钟和定时器 启动MPLL 需要设置的寄存器: LOCKTIME (LOCK TIME COUNT)、MPLLCON(Main PLL Control)、CLKDIVN(clock divider control) 若Fout = 200MHz则, Fout = 2 *m * Fin / (p * 2 ^ s) = 2 * (92 + 8) * 12MHz / (3 * 2 ^ 2) = 200MHz m = 100, MDIV = 92 p = 3, PDIV = 2 s = 2, SDIV = 2 #define S3C2440_MPLL_200MHZ ((0x5c 12) | (0
[单片机]
TQ2440 学习笔记—— 22、系统<font color='red'>时钟</font>和定时器
STM32(6) STM32时钟系统精讲(正点原子)
讲解内容: 时钟系统框图 时钟配置相关函数 参考资料 《STM32F4开发指南库函数版本》4.3小节STM32F4时钟系统 《STM32F4中文参考手册》第六章 复位和时钟系统 先看开发指南4.3小节的时钟树 时钟框图在中文参考手册的6.2小节,STM32的时钟系统还是很复杂的,为什么ARM的时钟系统要做的这么复杂,采用 多时钟源, 时钟频率越高功耗 越高。 F4与F1类似也有5个时钟来源 1 LSIRC 低速 的内部时钟 2 LSEOSC 低速的外部时钟 3 HSIRC 高速的内部时钟 4 PLLCLK 锁相环时钟输出 5 HSEOSC 也是一个很重要的时钟源,也是我们最常用的
[单片机]
STM32(6) STM32<font color='red'>时钟</font>系统精讲(正点原子)
s3c2440时钟频率设置
时钟源选择 在nRESET的上升沿锁存OM 引脚,两个引脚在原理图中都接地,所以都为低电平。所以MPLL的时钟源来源于晶振;UPLL的时钟源也来源于晶振。 2. 配置流程 t1时刻:上电后,晶振起振,FCLK直接由晶振产生; t2时刻:nRESET拉高,OM 被所存,晶振作为MPLL与UPLL的输入,但是由于MPLL与UPLL还未配置,所以FCLK还是工作于晶振时钟; t3时刻:软件设置PLL CONTROL REGISTER (MPLLCON & UPLLCON)寄存器,配置MDIV、PDIV、SDIV的值,决定MPLL与UPLL的输出频率;紧接着设置CLOCK DIVIDER CONTROL (CLKDIVN)寄存器,
[单片机]
stm32学习之时钟和IO口配置
一.时钟的配置 如果仅仅点亮小灯的话,仅需配置系统时钟和IO口的时钟 1.利用SystemInit()函数配置系统时钟,默认是72MHZ 2.利用APB2外设时钟给GPIO口提供IO口时钟,我的板子上是利用的PD6引脚点亮灯的,故对应的函数为RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); void RCC_Configuration(void) { SystemInit(); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); } 二.GPIO口的配置 配置IO口主要利用两部分结构:1.结构体GPI
[单片机]
DS1307实时时钟万年历
单片机源程序如下: /**************************************************** 电路图说明: 将单片机P2.7和P1.0分别与RTC(实时时钟)的时钟信号SCL端 和数据信号SDA端相连, RTC的sout引脚与单片机P3.2相连,RTC的 地址是11010000.独立键盘k0~K3接P1.1~P1.3 程序功能: 使用时钟芯片ds1307制作一个实时时钟 ******************************************************/ #include reg52.h #include intrins.h #define u
[单片机]
DS1307实时<font color='red'>时钟</font>万年历
stm8s配置外部时钟详解及配置步骤
  配置STM8外部时钟(寄存器)步骤:   1.设置外部时钟寄存器CLK_ECKR是对其写0xB4   2.设置外部时钟分频,CLK_CKDIVR低三位是外部时钟分频系数设置   3.使能外部时钟向CLK_ECKR写0x01   void CLK_Init(void)   {   CLK_CMSR =0xB4; //使能外置高速晶体振荡器   CLK_CKDIVR =0x03; //设置外部时钟分频   CLK_ECKR = 0X01; //使能外部时钟寄存器   }   使能外部时钟后的寄存器   
[单片机]
stm8s配置外部<font color='red'>时钟</font>详解及配置步骤
东芝推出新款时钟扩展外设接口驱动器/接收器IC,有助于减少汽车电子系统中的线束量
东芝推出新款时钟扩展外设接口驱动器/接收器IC,有助于减少汽车电子系统中的线束量 中国上海,2023年3月17日——东芝电子元件及存储装置株式会社(“东芝”)今日宣布,推出一款接口驱动器/接收器IC---“TB9032FNG”, 该产品是一款用于时钟扩展外设接口(CXPI) 车载通信协议标准中定义的物理层接口的车载驱动器/接收器IC。该产品的样品申请将于本月开始。 汽车的电气化趋势推动着车载系统中电子元件数量的攀升,这不仅增加了器件的复杂性,而且随着制造商在设计中采用更多的线束,车辆自重也有所增加。这一问题的解决方案在于变革当前系统,即人机接口(HMI) 以一对一的方式连接开关和传感器,通过多路传输车内通信的方式减
[汽车电子]
东芝推出新款<font color='red'>时钟</font>扩展外设接口驱动器/接收器IC,有助于减少汽车电子系统中的线束量
一文详解STM32的嘀嗒时钟(SysTick)
简要说明 1概述 嘀嗒时钟(SysTick)是一个简单的系统时钟节拍计数器,它属于Cortex-M4内核嵌套向量中断控制器(NVIC)里的一个功能单元。他是一个24位的倒计时定时器(在NVIC中),当systick计数值到0的时候,SysTick重装载寄存器就会自动重新装载初值。只要SysTick控制和状态寄存器(CTRL)中的使能位没有ENABLE清除掉,那么就会永远的执行下去。 SysTick定时器被捆绑在NVIC中,可产生SysTick异常(异常号:15),属于Cortex-M4内核里的一个功能单元。 SysTick常作为系统节拍定时器用于操作系统(如mCOS-Ⅱ、FreeRTOS等)的系统节拍定时,从而推动任务和时间的
[单片机]
一文详解STM32的嘀嗒<font color='red'>时钟</font>(SysTick)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved