基于mdio实现时钟同步的方法、智能终端及存储介质

文档序号:1534539 发布日期:2020-02-14 浏览:28次 >En<

阅读说明:本技术 基于mdio实现时钟同步的方法、智能终端及存储介质 (Method for realizing clock synchronization based on MDIO, intelligent terminal and storage medium ) 是由 李小军 吴闽华 孟庆晓 于 2019-10-22 设计创作,主要内容包括:本发明公开了基于MDIO实现时钟同步的方法、智能终端及存储介质,所述方法包括:主控板和至少一个业务板之间通过MDIO协议连接,并通过MDIO命令进行授时;所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时;所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步。本发明通过MDIO协议实现主控板和业务板的时间同步,适用范围广,操作简单,设置方便。(The invention discloses a method for realizing clock synchronization based on MDIO, an intelligent terminal and a storage medium, wherein the method comprises the following steps: the main control board is connected with at least one service board through an MDIO protocol, and time service is carried out through an MDIO command; the master control board reads and records the time of the service board by preset times, simultaneously records the current time when the time of the service board is read, and calculates the transmission delay between the master control board and the service board; and the main control board adds the last read current time and the transmission delay and then sends the sum to the service board, and the service board sets system time to complete time synchronization with the main control board. The invention realizes the time synchronization of the main control board and the service board through the MDIO protocol, and has the advantages of wide application range, simple operation and convenient setting.)

基于MDIO实现时钟同步的方法、智能终端及存储介质

技术领域

本发明涉及计算机应用技术领域,尤其涉及一种基于MDIO实现时钟同步的方法、智能终端及存储介质。

背景技术

在大部分网络产品中,要求对整网设备或者整个机框上的单板都设置成相同的时间,准确的时间才能体现时间的意义;在现有技术中,一般由NTP/SNTP协议(网络时钟同步协议)获取时间,还有1588的PTP协议(网络测量和控制系统的精密时钟同步协议标准,通过一个同步信号周期性的对网络中的所有节点的时钟进行校正同步,可以使基于以太网分布式系统达到精确同步),这些协议一般都是基于以太网/IP来实现的,如果在没有以太网的环境下,如何把自己的时间发送给其它需要设置时间的设备和获取时间是比较困难的事情。

因此,现有技术还有待于改进和发展。

发明内容

本发明的主要目的在于提供一种基于MDIO实现时钟同步的方法、智能终端及存储介质,旨在解决现有技术的上述缺陷。

为实现上述目的,本发明提供一种基于MDIO实现时钟同步的方法,所述基于MDIO实现时钟同步的方法包括如下步骤:

主控板和至少一个业务板之间通过MDIO协议连接,并通过MDIO命令进行授时;

所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时;

所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步。

可选地,所述的基于MDIO实现时钟同步的方法,其中,所述MDIO命令包括同步读命令和授时写命令。

可选地,所述的基于MDIO实现时钟同步的方法,其中,所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时,具体包括:

所述主控板开始执行所述同步读命令之前,记录当前时间T1;

所述主控板通过所述同步读命令读取所述业务板的当前时间T2,并记录;

所述主控板在读取到所述业务板的时间时,记录当前时间T3;

所述主控板再次通过所述同步读命令读取所述业务板的当前时间T4,并记录;

所述主控板在读取到所述业务板的时间时,记录当前时间T5;

计算所述主控板与所述业务板之间的传输延时Td。

可选地,所述的基于MDIO实现时钟同步的方法,其中,所述传输延时Td=[(T5-T1)-(T4-T2)]/2。

可选地,所述的基于MDIO实现时钟同步的方法,其中,所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步,具体包括:

所述主控板将最后读取的当前时间T6和所述传输延时Td相加得到系统时间Tc,并将所述系统时间Tc发送给所述业务板进行写操作授时;

所述业务板将所述系统时间Tc设置为当前时间,所述业务板完成和所述主控板的时间同步。

可选地,所述的基于MDIO实现时钟同步的方法,其中,所述系统时间Tc=T6+Td。

可选地,所述的基于MDIO实现时钟同步的方法,其中,所述传输延时为所述主控板传输命令所花的时间。

可选地,所述的基于MDIO实现时钟同步的方法,其中,所述主控板根据不同业务板的地址进行时间同步。

此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于MDIO实现时钟同步的程序,所述基于MDIO实现时钟同步的程序被所述处理器执行时实现如上所述的基于MDIO实现时钟同步的方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有基于MDIO实现时钟同步的程序,所述基于MDIO实现时钟同步的程序被处理器执行时实现如上所述的基于MDIO实现时钟同步的方法的步骤。

本发明中,主控板和至少一个业务板之间通过MDIO协议连接,并通过MDIO命令进行授时;所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时;所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步。本发明通过MDIO协议实现主控板和业务板的时间同步,适用范围广,操作简单,设置方便。

附图说明

图1是本发明基于MDIO实现时钟同步的方法的较佳实施例的流程图;

图2是本发明基于MDIO实现时钟同步的方法的较佳实施例中主控板和业务板进行交互的示意图;

图3为本发明智能终端的较佳实施例的运行环境示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明较佳实施例所述的基于MDIO实现时钟同步的方法,如图1和图2所示,所述基于MDIO实现时钟同步的方法包括以下步骤:

步骤S10、主控板和至少一个业务板之间通过MDIO(Management Data Input/Output,双线串行接口)协议连接,并通过MDIO命令进行授时;

步骤S20、所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时;

步骤S30、所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步。

具体地,在一个设备(例如某一个智能终端)里面,用来控制其它业务单板的控制单元,一般做成一个单板叫做主控板,给用户提供配置功能,管理功能等;业务板就是具体实现某种业务的单板,例如GPON,ADSL等。

其中,所述MDIO命令包括同步读命令和授时写命令。

其中,所述预设次数可以是4次、6次、8次,这样算的板间的延时平均数更加接近于实际延时,次数越多,越准确,但是设置过程花的时间也越久,因此本发明优选为4次。

进一步地,当所述预设次数为4次时,所述主控板开始执行所述同步读命令之前,记录当前时间T1;所述主控板通过所述同步读命令读取所述业务板的当前时间T2,并记录;所述主控板在读取到所述业务板的时间时,记录当前时间T3;所述主控板再次通过所述同步读命令读取所述业务板的当前时间T4,并记录;所述主控板在读取到所述业务板的时间时,记录当前时间T5;计算所述主控板与所述业务板之间的传输延时Td,Td即图2中的T(delay)。

其中,所述传输延时Td=[(T5-T1)-(T4-T2)]/2。

所述传输延时为所述主控板传输命令所花的时间,即从所述主控板到所述业务板,传输命令花的时间。

其中,所述主控板根据不同业务板的地址进行时间同步,每个业务板都有其自己的地址,业务板可以是多个,当一个主控板对一个业务板完成授时同步后,继续根据下一个业务板的地址进行授时同步。

所述主控板将最后读取的当前时间T6和所述传输延时Td相加得到系统时间Tc,Tc即图2中的T(current),并将所述系统时间Tc发送给所述业务板进行写操作授时;所述业务板将所述系统时间Tc设置为当前时间,所述业务板完成和所述主控板的时间同步。

其中,所述系统时间Tc=T6+Td。

进一步地,主控板和业务板之间的MDIO协议采用一对多的协议模型,并遵循以下2个命令格式(同步读命令和授时写命令);主控板通过以下命令向所有的业务板分别同步主控板的时间。

Figure BDA0002242483550000061

Figure BDA0002242483550000071

根据以上协议,需要注意的MDIO从设备的地址位只有5位,因此理论上最多只能扩展32个从设备,另寄存器也只有5位,只有32个寄存器,但前16个寄存器一般遵循统一的标准,已具备固定的意义,后16个寄存器可根据厂家需要进行自定义;每个寄存器均为16位。

下面以一个举例来说明通过MDIO实现多设备时钟同步的方法。

假设存在三个业务板需要同步主控板的系统时间;假设三个业务单板分别为业务板A、业务板B和业务板C,他们各自的从设备地址分别是0x01、0x02和0x03;MDIO从设备的寄存器地址0x1a(高16位)、0x1b(低16位),为系统当前时间,1970年1月1日到当前的秒数;MDIO从设备的寄存器地址0x1c(高16位)、0x1d(低16位),为设置系统当前时间,1970年1月1日到当前的秒数;系统初始时间为1970年1月1日00:00:00;主控板开始执行同步读命令的时间T1,为1970年1月1日00:00:03,距系统初始时间有3秒;主控板通过同步命令读业务板的当前时间T2,为1970年1月1日00:00:17,距系统初始时间有17秒,并记录(业务板时间因为与主控板时间不同步,所以随便假设一个时间点);主控板在读取到业务板的时间T2时,记录自己当前的时间T3,为1970年1月1日00:00:05,距系统初始时间有5秒;主控板立马再次通过同步命令读业务板的当前时间T4,为1970年1月1日00:00:19,距系统初始时间有19秒,并记录;主控板在读取到业务板的时间时,记录自己当前的时间T5,为1970年1月1日00:00:07,距系统初始时间有7秒;主控板通过时间授权写命令(授时写命令)向业务板进行授时的时间点为T6,1970年1月1日00:00:10。

授时过程如下:主控板记录当前的系统时间T1(0x00000003),然后准备同步业务板A的系统时间,向MDIO总线发出起始信号之后,继续发出10的读操作码,紧接着发出5位从设备地址0x01,再发出寄存器地址0x1a,把MDIO线置为高阻态,准备读取该线上的16位数据,存放至T2的高16位上;此时MDIO从设备在主控板将MDIO线置为高阻态之后获取MDIO的控制权,将寄存器0x1a的数据(0x0000)从高位至低位随着每个时钟周期发给主控板。

主控板向MDIO总线发出起始信号,继续发出10的读操作码,紧接着发出5位从设备地址0x01,再发出寄存器地址0x1b,把MDIO线置为高阻态,准备读取该线上的16位数据,存放至T2的低16位上;此时MDIO从设备在主控板将MDIO线置为高阻态之后获取MDIO的控制权,将寄存器0x1b的数据(0x0011)从高位至低位随着每个时钟周期发给主控板。

主控板将收到的完整T2(0x00000011)时间进行记录,并且此时将主控板自己的系统时间记录为T3(0x00000005);主控板向MDIO总线发出起始信号之后,继续发出10的读操作码,紧接着发出5位从设备地址0x01,再发出寄存器地址0x1a,把MDIO线置为高阻态,准备读取该线上的16位数据,存放至T4的高16位上;此时MDIO从设备在主控板将MDIO线置为高阻态之后获取MDIO的控制权,将寄存器0x1a的数据(0x0000)从高位至低位随着每个时钟周期发给主控板。

主控板向MDIO总线发出起始信号,继续发出10的读操作码,紧接着发出5位从设备地址0x01,再发出寄存器地址0x1b,把MDIO线置为高阻态,准备读取该线上的16位数据,存放至T4的低16位上;此时MDIO从设备在主控板将MDIO线置为高阻态之后获取MDIO的控制权,将寄存器0x1b的数据(0x0013)从高位至低位随着每个时钟周期发给主控板。

主控板将收到的完整T4(0x00000013)时间进行记录,并且此时将主控板自己的系统时间记录为T5(0x00000007)。

此时主控板根据T1、T2、T3、T4和T5这5个数据的值,可计算出主控板发送数据到业务板的延时时间为T(delay)=((T5-T1)-(T4-T2))/2=((0x00000007-0x00000003)-(0x00000013-0x00000011))/2=1。

主控板于T6时刻(0x0000000a,十进制10的十六进制为0x0a),将当前T6时刻的秒数和T(delay)相加得到T(current)=0x0000000b,然后向业务板A发送数据T(current)的授时写命令:向MDIO总线发出起始信号,继续发出01的写操作码,紧接着发出5位从设备地址0x01,再发出寄存器地址0x1c,接着的2个时钟周期发出10,再将T(current)数据的高16位(0x0000)发给业务板A。

主控板向MDIO总线发出起始信号,继续发出01的写操作码,紧接着发出5位从设备地址0x01,再发出寄存器地址0x1d,接着的2个时钟周期发出10,再将T(current)数据的低16位(0x000b)发给业务板A。

业务板A的寄存器0x1d被设置后,当前业务板A的系统时间距系统初始时间的秒数为0x0000000b,换算为具体时间为1970年1月1日00:00:11。

至此业务板A的时间已同步,主控板则将业务板地址改为0x02,继续向业务板B进行授时同步(业务板B完成授时同步后继续向业务板C进行授时同步)。

进一步地,如图3所示,基于上述基于MDIO实现时钟同步的方法,本发明还相应提供了一种智能终端,所述智能终端包括处理器10、存储器20及显示器30。图3仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有基于MDIO实现时钟同步的程序40,该基于MDIO实现时钟同步的程序40可被处理器10所执行,从而实现本申请中基于MDIO实现时钟同步的方法。

所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述基于MDIO实现时钟同步的方法等。

所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中基于MDIO实现时钟同步的程序40时实现以下步骤:

主控板和至少一个业务板之间通过MDIO协议连接,并通过MDIO命令进行授时;

所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时;

所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步。

所述MDIO命令包括同步读命令和授时写命令。

所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时,具体包括:

所述主控板开始执行所述同步读命令之前,记录当前时间T1;

所述主控板通过所述同步读命令读取所述业务板的当前时间T2,并记录;

所述主控板在读取到所述业务板的时间时,记录当前时间T3;

所述主控板再次通过所述同步读命令读取所述业务板的当前时间T4,并记录;

所述主控板在读取到所述业务板的时间时,记录当前时间T5;

计算所述主控板与所述业务板之间的传输延时Td。

所述传输延时Td=[(T5-T1)-(T4-T2)]/2。

所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步,具体包括:

所述主控板将最后读取的当前时间T6和所述传输延时Td相加得到系统时间Tc,并将所述系统时间Tc发送给所述业务板进行写操作授时;

所述业务板将所述系统时间Tc设置为当前时间,所述业务板完成和所述主控板的时间同步。

所述系统时间Tc=T6+Td。

所述传输延时为所述主控板传输命令所花的时间。

所述主控板根据不同业务板的地址进行时间同步。

本发明还提供一种存储介质,其中,所述存储介质存储有基于MDIO实现时钟同步的程序,所述基于MDIO实现时钟同步的程序被处理器执行时实现如上所述的基于MDIO实现时钟同步的方法的步骤。

综上所述,本发明提供一种基于MDIO实现时钟同步的方法、智能终端及存储介质,所述方法包括:主控板和至少一个业务板之间通过MDIO协议连接,并通过MDIO命令进行授时;所述主控板通过预设次数读取和记录所述业务板的时间,并同时记录在读取所述业务板时间时的当前时间,计算所述主控板与所述业务板之间的传输延时;所述主控板将最后读取的当前时间和所述传输延时相加后发送给所述业务板,所述业务板设置系统时间以完成和所述主控板的时间同步。本发明通过MDIO协议实现主控板和业务板的时间同步,适用范围广,操作简单,设置方便。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子装置以及电子装置的检测方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!