基于MCU的POWERLINK SoC帧同步降低抖动的方法技术

技术编号:10070667 阅读:183 留言:0更新日期:2014-05-23 15:12
本发明专利技术提供了一种基于MCU的POWERLINK SoC帧同步降低抖动的方法,能够实现在无ASIC和FPGA的条件下,仅通过MCU来降低Powerlink技术Soc帧抖动,充实Powerlink技术的平台多样化;该方法通过对定时器中断的内容作了详细规划,并通过一个高速计数器提供高精度时钟,从而达到降低Soc帧的抖动的目的。

【技术实现步骤摘要】
基于MCU的POWERLINKSoC帧同步降低抖动的方法
本专利技术涉及实时以太网PowerLink技术的Soc帧同步技术,一种无ASIC和FPGA的条件下,仅通过MCU来降低Soc帧抖动的方案,尤其涉及一种基于MCU的POWERLINKSoC帧同步降低抖动的方案,该方案通过MCU计数器提供高精度时钟,Soc帧发送中断提前进入等候状态,忙等待查询至准确时钟后,再发送该以太网帧,达到降低Soc帧抖动的目的,提高了纯CPU系统中PowerlinkSoc帧同步的性能。
技术介绍
PowerLink是一种在工业上普遍推广应用的以太网总线协议。该协议对标准的以太网数据链路层进行了简单的修改,禁用了CSMA/CD机制,创建了等时同步机制,由主站轮询各个从站的方式管理网络上数据的收发过程,保证严格的时间特性,实现通讯功能。与其他实时以太网协议不同的是,PowerLink协议除了可以采用基于分布式时钟(DistributeClock)的同步技术以外,还可以采用基于Soc帧的同步方法。Powerlink的Soc帧同步方法(如图1所示),是在每个周期的开始,主站节点发送Soc帧来通知各个从站节点开始同步动作。在运动控制等实时性要求很高的行业应用中,一般都要求主站严格的按照周期来发送Soc帧,即要求抖动尽可能小。因此,主站上常常需要有FPGA或者ASIC等器件,用来保证Soc帧准确的发送。但是,很多工业应用平台都对MCU有要求,而且MCU相比FPGA器件更加的经济实惠,采用通用的C语言开发,平台移植简单,可以大大的缩减企业的开发周期,降低系统难度。因此,如果采用MCU实现Powerlink技术的Soc帧同步问题,将解决纯MCU方式的Powerlink主站的同步问题,降低了对FPGA和ASIC等器件的依赖性,使得行业解决方案更多丰富多彩,达到高效开发、便捷应用的目的。通过MCU来实现低抖动的Soc帧发送,常见的办法是:设置一个高优先级的定时器,每当该定时器中断时,触发Soc帧的发送。但是,系统中往往存在着影响实时性的因素:如操作系统延迟、定时器中断响应延迟等,以至于Soc帧抖动较大。在不考虑操作系统延迟的情况下,开源PowerlinkVersion1.7.1在最高优先级定时中断里面的抖动测试结果大于一微秒。因此,还存在一定的优化空间。
技术实现思路
本专利技术的主要目的旨在解决上述问题,能够实现在无ASIC和FPGA的条件下,仅通过MCU来降低Powerlink技术Soc帧抖动,充实Powerlink技术的平台多样化。该方法通过对定时器中断的内容作了详细规划,并通过一个高速计数器提供高精度时钟,从而达到降低Soc帧的抖动的目的。Soc帧触发的一般方式是通过一个定时器的不断计数并产生中断来触发,相比于这种方式,该方法做了详细的设计程序流程图,如图2所示。程序初始化阶段,同样需要一个定时器,但是定时器设置值不再是一个周期,而是比周期稍微小一点,提前一小段时间进入中断。提前的这一小段时间的长度大于普通方式所测得的抖动最大值,确保在Soc帧发送之前进入该定时器中断。另外,还需要一个辅助时钟,靠一个高速计数器来实现,因此也初始化一个高精度计数器。首先对系统初始化完毕,启动Powerlink通信过程系统进入正常通讯阶段,当定时器发生中断时,首先调用相应处理,关掉其他中断,确保该任务不会被其他任务打断。然后,查询高速计数器,获取当前时钟。按上分析,虽然存在抖动,但是可以确保当前时钟距离下一个周期的起始时间还有一定差距,该差距最大值设定为定时器初始化时提前的那一小段时间的两倍。如果时钟到达下一个周期的时钟值,则触发Soc帧发送,否则继续处于忙等待状态,继续查询时钟,直到时钟满足要求。中断程序的最后,开启其他中断服务,运行其他任务。该方法利用了忙等待一段时间,不停地查询高精度时钟的过程,达到了减小抖动的目的。这种方法虽然占用了CPU一段时间,但是该时间不超过设置的提前时间的两倍,在可控范围内,不影响Powerlink其他进程的执行。所以该方案是基于纯MCU的Powerlink技术降低Soc帧抖动的可行方案。经过测试,Soc帧的抖动降到了1us以内,证实方案可行。为解决上述问题,本专利技术提供了一种基于MCU的降低PowerLinkSoc同步帧抖动的方法,包括:系统程序在初始化阶段,设置一个定时器,但是该定时器的设置值小于一个系统周期,提前一小段时间进入中断,其中提前的这一小段时间的长度大于抖动最大值,确保在Soc帧发送之前进入该定时器中断;同时,该系统还包括一个辅助时钟,通过一个高精度计数器来实现,因此在系统初始化阶段也初始化该高精度计数器;初始化完毕,启动Powerlink通信过程系统进入正常通讯阶段,当定时器中断到来时,记录当前计数器的值T1;初始化以太网Soc帧的数据,准备好以太网发送控制寄存器,然后忙等待,当查询高精度计数器的值到了一个设定的周期值时,使能Soc帧的发送;在Soc帧发送完之后,处理Soc帧的回调函数,然后重新初始化所述定时器,读取并记录当前高精度计数器的值T2,通过T1和T2计算忙等待消耗的时间,从而得出定时器下次设定的时间长度,同样提前一小段时间t进入中断;其中,上述T1、T2、t的满足关系:0<T2-T1<2*t;打开中断,继续执行其他任务。优选的,不需要记录所述T1和T2,而是在Soc帧发送之后,立刻重新启动定时器。优选的,为了保证定时器与计数器的时间同步,需要在初始化完成后同时启动定时器和计数器。优选的,直接使用定时器中断的方式,测试所述抖动最大值,根据这个抖动最大值,设定定时器需要提前的一小段时间t。优选的,另外一个高精度计数器选择32位计数器实现,设成循环计数方式,每次根据读到的计数值,换算成当前时间。优选的,在Powerlink开始运行后的所有周期通信阶段,包括对从站节点的初始化阶段和正常通信阶段,都做与上类似处理,以降低Soc帧的抖动。通过上述技术方案,降低了Powerlink技术Soc帧抖动,充实了Powerlink技术的平台多样化。附图说明图1是现有技术中的Powerlink技术的Soc帧同步示意图。图2是Soc帧低抖动同步方法实现过程示意图。图3是Soc帧抖时序示意图。具体实施方式为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本专利技术提供了一种基于MCU的降低PowerLinkSoc同步帧抖动的方法,系统程序在初始化阶段,设置一个定时器,但是该定时器的设置值小于一个系统周期,提前一小段时间进入中断,其中提前的这一小段时间的长度大于抖动最大值,确保在Soc帧发送之前进入该定时器中断;同时,该系统还包括一个辅助时钟,通过一个高精度计数器来实现,因此在系统初始化阶段也初始化该高精度计数器。选择ARM中的M4和A9两款高性能处理器来做实验,移植Powerlink到器件上。直接使用定时器中断的方式,测试抖动的最大值,记录下来。根据这个抖动值,设定定时器需要提前的时间。另外一个高精度计数器选择32位计数器实现,设成循环计数方式,每次根据读到的计数值,换算成当前时间。因为是循环计数,换算时需要做计满溢出的处理。为了保证定时器与计数器的时间同步,需要在本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/201410077983.html" title="基于MCU的POWERLINK SoC帧同步降低抖动的方法原文来自X技术">基于MCU的POWERLINK SoC帧同步降低抖动的方法</a>

【技术保护点】
一种基于MCU的POWERLINK SoC帧同步降低抖动的方法,包括:系统程序在初始化阶段,设置一个定时器,但是该定时器的设置值小于一个系统周期,提前一小段时间进入中断,其中提前的这一小段时间的长度大于抖动最大值,确保在Soc帧发送之前进入该定时器中断;同时,该系统还包括一个辅助时钟,通过一个高精度计数器来实现,因此在系统初始化阶段也初始化该高精度计数器;初始化完毕,启动Powerlink通信过程系统进入正常通讯阶段,当定时器中断到来时,记录当前计数器的值T1;初始化以太网Soc帧的数据,准备好以太网发送控制寄存器,然后忙等待,当查询高精度计数器的值到了一个设定的周期值时,使能Soc帧的发送;在Soc帧发送完之后,处理Soc帧的回调函数,然后重新初始化所述定时器,读取并记录当前高精度计数器的值T2,通过T1和T2计算忙等待消耗的时间,从而得出定时器下次设定的时间长度,同样提前一小段时间t进入中断;其中,上述T1、T2、t的满足关系:0<T2‑T1<2*t;打开中断,继续执行其他任务。

【技术特征摘要】
1.一种基于MCU的POWERLINKSoC帧同步降低抖动的方法,包括:系统程序在初始化阶段,设置一个定时器,但是该定时器的设置值小于一个系统周期,提前一小段时间进入中断,其中提前的这一小段时间的长度大于抖动最大值,确保在Soc帧发送之前进入该定时器中断;同时,该系统还包括一个辅助时钟,通过一个高精度计数器来实现,因此在系统初始化阶段也初始化该高精度计数器;初始化完毕,启动Powerlink通信过程系统进入正常通讯阶段,当定时器中断到来时,记录当前计数器的值T1;初始化以太网Soc帧的数据,准备好以太网发送控制寄存器,然后忙等待,当查询高精度计数器的值到了一个设定的周期值时,使能Soc帧的发送;在Soc帧发送完之后,处理So...

【专利技术属性】
技术研发人员:张少林
申请(专利权)人:武汉迈信电气技术有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1