CN103812635A - 基于MCU的POWERLINK SoC帧同步降低抖动的方法 - Google Patents
基于MCU的POWERLINK SoC帧同步降低抖动的方法 Download PDFInfo
- Publication number
- CN103812635A CN103812635A CN201410077983.9A CN201410077983A CN103812635A CN 103812635 A CN103812635 A CN 103812635A CN 201410077983 A CN201410077983 A CN 201410077983A CN 103812635 A CN103812635 A CN 103812635A
- Authority
- CN
- China
- Prior art keywords
- timer
- time
- soc
- powerlink
- counter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种基于MCU的POWERLINK SoC帧同步降低抖动的方法,能够实现在无ASIC和FPGA的条件下,仅通过MCU来降低Powerlink技术Soc帧抖动,充实Powerlink技术的平台多样化;该方法通过对定时器中断的内容作了详细规划,并通过一个高速计数器提供高精度时钟,从而达到降低Soc帧的抖动的目的。
Description
技术领域
本发明涉及实时以太网PowerLink技术的Soc帧同步技术,一种无ASIC和FPGA的条件下,仅通过MCU来降低Soc帧抖动的方案,尤其涉及一种基于MCU的POWERLINK SoC帧同步降低抖动的方案,该方案通过MCU计数器提供高精度时钟,Soc帧发送中断提前进入等候状态,忙等待查询至准确时钟后,再发送该以太网帧,达到降低Soc帧抖动的目的,提高了纯CPU系统中Powerlink Soc帧同步的性能。
背景技术
PowerLink是一种在工业上普遍推广应用的以太网总线协议。该协议对标准的以太网数据链路层进行了简单的修改,禁用了CSMA/CD机制,创建了等时同步机制,由主站轮询各个从站的方式管理网络上数据的收发过程,保证严格的时间特性,实现通讯功能。与其他实时以太网协议不同的是,PowerLink协议除了可以采用基于分布式时钟(Distribute Clock)的同步技术以外,还可以采用基于Soc帧的同步方法。
Powerlink的Soc帧同步方法(如图1所示),是在每个周期的开始,主站节点发送Soc帧来通知各个从站节点开始同步动作。在运动控制等实时性要求很高的行业应用中,一般都要求主站严格的按照周期来发送Soc帧,即要求抖动尽可能小。因此,主站上常常需要有FPGA或者ASIC等器件,用来保证Soc帧准确的发送。但是,很多工业应用平台都对MCU有要求,而且MCU相比FPGA器件更加的经济实惠,采用通用的C语言开发,平台移植简单,可以大大的缩减企业的开发周期,降低系统难度。因此,如果采用MCU实现Powerlink技术的Soc帧同步问题,将解决纯MCU方式的Powerlink主站的同步问题,降低了对FPGA和ASIC等器件的依赖性,使得行业解决方案更多丰富多彩,达到高效开发、便捷应用的目的。
通过MCU来实现低抖动的Soc帧发送,常见的办法是:设置一个高优先级的定时器,每当该定时器中断时,触发Soc帧的发送。但是,系统中往往存在着影响实时性的因素:如操作系统延迟、定时器中断响应延迟等,以至于Soc帧抖动较大。在不考虑操作系统延迟的情况下,开源Powerlink Version1.7.1在最高优先级定时中断里面的抖动测试结果大于一微秒。因此,还存在一定的优化空间。
发明内容
本发明的主要目的旨在解决上述问题,能够实现在无ASIC和FPGA的条件下,仅通过MCU来降低Powerlink技术Soc帧抖动,充实Powerlink技术的平台多样化。该方法通过对定时器中断的内容作了详细规划,并通过一个高速计数器提供高精度时钟,从而达到降低Soc帧的抖动的目的。
Soc帧触发的一般方式是通过一个定时器的不断计数并产生中断来触发,相比于这种方式,该方法做了详细的设计程序流程图,如图2所示。程序初始化阶段,同样需要一个定时器,但是定时器设置值不再是一个周期,而是比周期稍微小一点,提前一小段时间进入中断。提前的这一小段时间的长度大于普通方式所测得的抖动最大值,确保在Soc帧发送之前进入该定时器中断。另外,还需要一个辅助时钟,靠一个高速计数器来实现,因此也初始化一个高精度计数器。
首先对系统初始化完毕,启动Powerlink通信过程系统进入正常通讯阶段,当定时器发生中断时,首先调用相应处理,关掉其他中断,确保该任务不会被其他任务打断。然后,查询高速计数器,获取当前时钟。按上分析,虽然存在抖动,但是可以确保当前时钟距离下一个周期的起始时间还有一定差距,该差距最大值设定为定时器初始化时提前的那一小段时间的两倍。如果时钟到达下一个周期的时钟值,则触发Soc帧发送,否则继续处于忙等待状态,继续查询时钟,直到时钟满足要求。中断程序的最后,开启其他中断服务,运行其他任务。
该方法利用了忙等待一段时间,不停地查询高精度时钟的过程,达到了减小抖动的目的。这种方法虽然占用了CPU一段时间,但是该时间不超过设置的提前时间的两倍,在可控范围内,不影响Powerlink其他进程的执行。所以该方案是基于纯MCU的Powerlink技术降低Soc帧抖动的可行方案。经过测试,Soc帧的抖动降到了1us以内,证实方案可行。
为解决上述问题,本发明提供了一种基于MCU的降低PowerLink Soc同步帧抖动的方法,包括:
系统程序在初始化阶段,设置一个定时器,但是该定时器的设置值小于一个系统周期,提前一小段时间进入中断,其中提前的这一小段时间的长度大于抖动最大值,确保在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的降低PowerLink Soc同步帧抖动的方法,系统程序在初始化阶段,设置一个定时器,但是该定时器的设置值小于一个系统周期,提前一小段时间进入中断,其中提前的这一小段时间的长度大于抖动最大值,确保在Soc帧发送之前进入该定时器中断;同时,该系统还包括一个辅助时钟,通过一个高精度计数器来实现,因此在系统初始化阶段也初始化该高精度计数器。
选择ARM中的M4和A9两款高性能处理器来做实验,移植Powerlink到器件上。直接使用定时器中断的方式,测试抖动的最大值,记录下来。根据这个抖动值,设定定时器需要提前的时间。另外一个高精度计数器选择32位计数器实现,设成循环计数方式,每次根据读到的计数值,换算成当前时间。因为是循环计数,换算时需要做计满溢出的处理。为了保证定时器与计数器的时间同步,需要在初始化完后,同时启动定时器和计数器。
如图2所示,程序初始化阶段,定时器设置值不再是一个周期,而是比周期稍微小一点,提前一小段时间进入中断。提前的这一小段时间的长度大于普通方式所测得的抖动最大值,确保在Soc帧发送之前进入该定时器中断。另外,还需要一个辅助时钟,靠一个高速计数器来实现,因此也初始化一个高精度计数器。
初始化完毕,启动Powerlink通信过程系统进入正常通讯阶段,当定时器发生中断时,首先调用相应函数,关掉其他中断,确保该任务不会被其他任务打断。然后,查询高速计数器,获取当前时钟。按上分析,虽然存在抖动,但是可以确保当前时钟还是距离下一个周期的时钟值有一定差距,该差距最大值为定时器初始化时提前的那一小段时间的两倍。如果时钟到达下一个周期的时钟值,则触发Soc帧发送,否则在此忙等待,继续查询时钟,直到时钟满足要求。中断程序的最后,开启其他中断服务,运行其他任务。
该方法利用了忙等待一段时间,不停地查询高精度时钟的过程,达到了减小抖动的目的。这种方法虽然占用了CPU一段时间,但是该时间不超过设置的提前时间的两倍,在可控范围内,不影响Powerlink其他进程的执行。所以该方案是基于纯MCU的Powerlink技术降低Soc帧抖动的可行方案。经过测试,Soc帧的抖动降到了1us以内,证实方案可行。
也可以采用另外一种方法,不需要记录T1和T2,在Soc帧发送之后,立刻重新启动定时器。因为Soc帧发送时,可以确定当前时间为一个周期的末尾,也是下一个周期的开始。
最后,打开中断,继续执行其他任务。
优选的,为了保证定时器与计数器的时间同步,需要在初始化完成后同时启动定时器和计数器。
优选的,直接使用定时器中断的方式,测试所述抖动最大值,根据这个抖动最大值,设定定时器需要提前的一小段时间t。
优选的,另外一个高精度计数器选择32位计数器实现,设成循环计数方式,每次根据读到的计数值,换算成当前时间。
优选的,在Powerlink开始运行后的所有周期通信阶段,包括对从站节点的初始化阶段和正常通信阶段,都做与上类似处理,以降低Soc帧的抖动。)
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种基于MCU的POWERLINK SoC帧同步降低抖动的方法,包括:
系统程序在初始化阶段,设置一个定时器,但是该定时器的设置值小于一个系统周期,提前一小段时间进入中断,其中提前的这一小段时间的长度大于抖动最大值,确保在Soc帧发送之前进入该定时器中断;同时,该系统还包括一个辅助时钟,通过一个高精度计数器来实现,因此在系统初始化阶段也初始化该高精度计数器;
初始化完毕,启动Powerlink通信过程系统进入正常通讯阶段,当定时器中断到来时,记录当前计数器的值T1;
初始化以太网Soc帧的数据,准备好以太网发送控制寄存器,然后忙等待,当查询高精度计数器的值到了一个设定的周期值时,使能Soc帧的发送;
在Soc帧发送完之后,处理Soc帧的回调函数,然后重新初始化所述定时器,读取并记录当前高精度计数器的值T2,通过T1和T2计算忙等待消耗的时间,从而得出定时器下次设定的时间长度,同样提前一小段时间t进入中断;其中,上述T1、T2、t的满足关系:0<T2-T1<2*t;
打开中断,继续执行其他任务。
2.如权利要求1所述的方法,其特征在于:不需要记录所述T1和T2,而是在Soc帧发送之后,立刻重新启动定时器。
3.如权利要求1或2所述的方法,其特征在于:为了保证定时器与计数器的时间同步,需要在初始化完成后同时启动定时器和计数器。
4.如权利要求1或2所述的方法,其特征在于:直接使用定时器中断的方式,测试所述抖动最大值,根据这个抖动最大值,设定定时器需要提前的一小段时间t。
5.如权利要求1或2所述的方法,其特征在于:所述高精度计数器选择32位计数器实现,设成循环计数方式,每次根据读到的计数值,换算成当前时间。
6.如权利要求1或2所述的方法,其特征在于:在Powerlink开始运行后的所有周期通信阶段,包括对从站节点的初始化阶段和正常通信阶段,都做与上类似处理,以降低Soc帧的抖动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410077983.9A CN103812635B (zh) | 2014-03-05 | 2014-03-05 | 基于MCU的POWERLINK SoC帧同步降低抖动的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410077983.9A CN103812635B (zh) | 2014-03-05 | 2014-03-05 | 基于MCU的POWERLINK SoC帧同步降低抖动的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103812635A true CN103812635A (zh) | 2014-05-21 |
CN103812635B CN103812635B (zh) | 2017-01-11 |
Family
ID=50708885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410077983.9A Active CN103812635B (zh) | 2014-03-05 | 2014-03-05 | 基于MCU的POWERLINK SoC帧同步降低抖动的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103812635B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109428835A (zh) * | 2017-08-25 | 2019-03-05 | 武汉米风通信技术有限公司 | 一种降低北斗地基增强报文播发延迟和抖动的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0327083A3 (de) * | 1988-02-05 | 1991-07-17 | Licentia Patent-Verwaltungs-GmbH | Vorrichtung zum Betrieb von absoluten Echtzeituhren in einem eine Zentraluhr und Teilnehmer enthaltenden Prozesssteuersystem |
CN102739491A (zh) * | 2012-07-13 | 2012-10-17 | 上海三一精机有限公司 | 一种以太网通信主站实现方法 |
CN103607270A (zh) * | 2013-11-28 | 2014-02-26 | 上海新时达电气股份有限公司 | 提高Powerlink以太网同步性能的方法 |
-
2014
- 2014-03-05 CN CN201410077983.9A patent/CN103812635B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0327083A3 (de) * | 1988-02-05 | 1991-07-17 | Licentia Patent-Verwaltungs-GmbH | Vorrichtung zum Betrieb von absoluten Echtzeituhren in einem eine Zentraluhr und Teilnehmer enthaltenden Prozesssteuersystem |
CN102739491A (zh) * | 2012-07-13 | 2012-10-17 | 上海三一精机有限公司 | 一种以太网通信主站实现方法 |
CN103607270A (zh) * | 2013-11-28 | 2014-02-26 | 上海新时达电气股份有限公司 | 提高Powerlink以太网同步性能的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109428835A (zh) * | 2017-08-25 | 2019-03-05 | 武汉米风通信技术有限公司 | 一种降低北斗地基增强报文播发延迟和抖动的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103812635B (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7394986B2 (ja) | データパケットを送信する方法、及びこの方法を実施する装置 | |
KR102013617B1 (ko) | 시간 동기화 방법 및 그 장치 | |
US8190941B2 (en) | Field control system | |
CN107276711B (zh) | EtherCAT主站装置 | |
JP6523497B1 (ja) | マスタ制御装置およびこれを用いた同期通信システム | |
US20170329632A1 (en) | Device scheduling method, task manager and storage medium | |
US20140089717A1 (en) | Ad-hoc synchronization of industrial control networks | |
CN107402534A (zh) | 调节方法、EtherCAT主站及计算机可读存储介质 | |
CN105308570A (zh) | 用于对分布式实时系统中的周期性任务传送时间正确的数据的方法和装置 | |
CN112838904A (zh) | Tsn网络延迟抖动测量装置及方法 | |
CN109450763A (zh) | 一种总线扩展方法、网关和总线扩展系统 | |
CN109753368B (zh) | 一种实时数据发送方法及系统 | |
CN118295778A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
JP2006349364A (ja) | 時刻補正方法 | |
CN103532786A (zh) | 一种服务器同步检测器及同步检测方法和系统 | |
JP4961589B2 (ja) | ネットワークシステムおよびスレーブ同期方法 | |
US9677920B2 (en) | Automation device and method for reducing jitter | |
CN103812635A (zh) | 基于MCU的POWERLINK SoC帧同步降低抖动的方法 | |
CN106533598B (zh) | 事件之间的发生时间差的估计电路和方法、计算机可读存储介质 | |
CN111638749A (zh) | 一种仿真系统同步方法、仿真设备及系统 | |
CN105577310A (zh) | 一种时间触发网络中任务分区与通信调度的同步方法 | |
KR101552119B1 (ko) | EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템 | |
US9027035B2 (en) | Non real-time metrology data management | |
CN214480655U (zh) | 一种兼容可定义确定性通信以太网的嵌入式设备 | |
US20140173264A1 (en) | Priority activation of metrology driver in boot sequence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |