CN109117410A - 一种基于通用异步串行通信接口的高精度对时方法 - Google Patents
一种基于通用异步串行通信接口的高精度对时方法 Download PDFInfo
- Publication number
- CN109117410A CN109117410A CN201810891400.4A CN201810891400A CN109117410A CN 109117410 A CN109117410 A CN 109117410A CN 201810891400 A CN201810891400 A CN 201810891400A CN 109117410 A CN109117410 A CN 109117410A
- Authority
- CN
- China
- Prior art keywords
- clock synchronization
- clock
- monitor terminal
- time
- control centre
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Abstract
本发明公开一种基于通用异步串行通信接口的高精度对时方法,包括:控制中心主控制器向监控终端控制器发送主时钟的对时时间报文后使能控制中心主控制器的脉冲边沿触发的外部中断;监控终端控制器接收到对时时间报文后解析该对时时间报文,并修正对时时间报文给出的对时时间而获得对时时间修正值,进而使能外部中断;控制中心主控制器在对时时间的秒起始时刻响应外部中断并向监控终端控制器发送同步码报文;当与控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿出现在其异步串行通信接口的接收引脚时,监控终端控制器响应外部中断将从时钟的时间设置为对时时间修正值。本发明提供对时方法的对时精度可达到微秒量级,且实现成本低廉。
Description
技术领域
本发明涉及工业监测与控制系统技术领域,更具体地,涉及一种基于通用异步串行通信接口的高精度对时方法。
背景技术
大量工业领域的监测与控制系统属于分布式监控系统,其中的监控终端的时钟需要与控制中心的时钟保持同步。然而,长期以来采用的普通通信报文对时模式的对时精度只能达到毫秒量级,而这样的对时精度在许多应用场合是不能满足要求的。譬如,需要对比分析多个测点超声波信号的时间相关性时,相应的监控系统对时精度必须达到微秒量级;又如,在配电网监测系统中,为了能够准确分析配电网中多种运行变量之间的关系,对时精度也需要达到微秒量级。
虽然在采用网络通信的监控系统可以根据IEEE1588协议要求实现微秒量级的对时精度,但是,由于实现比较复杂,目前绝大多数监控系统未实现IEEE1588协议;而采用美国靶场仪器组(Inter-Range Instrumentation Group,IRIG)制订的IRIG串行时间码标准也可以实现微秒量级的对时精度,但需要专门的硬件对时接口电路,实现同样较为复杂。因此,发明实现简单且成本低廉的监控系统高精度对时方法具有重要的应用价值。本发明正是基于上述背景而提出的。
发明内容
针对现有技术的缺陷(采用普通通信报文对时模式的对时精度只能达到毫秒量级而不能满足需求,根据IEEE1588协议或IRIG串行时间码标准可以实现微秒量级的对时精度但是实现较为复杂),本发明提供的对时方法的对时精度可达到微秒量级,且实现成本十分低廉。本发明所述一种基于通用异步串行通信接口的高精度对时方法,适用于控制中心和监控终端所在的地理位置相近的应用场合,设控制中心的时钟为主时钟并称控制中心执行对时任务的处理器为控制中心主控制器,设监控终端的时钟为从时钟并称监控终端执行对时任务的处理器为监控终端控制器。该方法包括:控制中心主控制器向监控终端控制器发送主时钟的对时时间报文后使能控制中心主控制器的脉冲边沿触发(或是上升沿触发或是下降沿触发)的外部中断;监控终端控制器接收到所述对时时间报文后解析该对时时间报文,并根据系统设计时计算得到的信号传输综合延时修正对时时间报文给出的对时时间而获得对时时间修正值,进而使能监控终端控制器的脉冲下降沿触发的外部中断;所述对时时间报文包括:对时时间的年、月、日、时、分及秒信息;控制中心主控制器在所述对时时间的秒起始时刻响应外部中断(该外部中断由控制中心主时钟发出的1PPS秒脉冲信号或1PPS的反相脉冲信号触发,1PPS信号的上升沿或1PPS的反相信号的下降沿对应于秒起始时刻)并向监控终端控制器发送同步码报文;当与控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿出现在监控终端控制器异步串行通信接口的接收引脚时,监控终端控制器响应外部中断进而将从时钟的时间设置为所述的对时时间修正值,以完成从时钟与主时钟的对时。
本发明所述的一种基于通用异步串行通信接口的高精度对时方法通过以下技术手段实现:
1、物理连接关系
设控制中心与监控终端通过异步串行通信接口连接,设控制中心的时钟为主时钟并称控制中心执行对时任务的处理器为控制中心主控制器(附图1中的1),设监控终端的时钟为从时钟并称监控终端执行对时任务的处理器为监控终端控制器(附图1中的5)。
所述的控制中心主控制器在其通用异步串行通信接口的基础上增加一个外部中断引脚且配置为脉冲信号边沿触发模式,该外部中断由控制中心主时钟发出的1PPS秒脉冲信号的上升沿或1PPS的反相脉冲信号的下降沿触发(1PPS信号的上升沿或1PPS的反相信号的下降沿对应于秒起始时刻);所述的监控终端控制器在其通用异步串行通信接口的基础上增加一个外部中断引脚,该外部中断引脚的电压信号与监控终端异步串行通信接口的数据接收引脚电压信号同步变化且外部中断引脚配置为脉冲信号下降沿中断模式。
所述对时方法适用于控制中心与监控终端所在的地理位置相近的场合,所述地理位置相近是指:控制中心安装位置与监控终端安装位置之间的距离较近以至于控制中心与监控终端之间的通信无需中继且通信的信号转换部件不采用存储转发模式。
所述的控制中心与监控终端采用异步串行通信接口连接,通信介质(附图1中的3)可选采用通信电缆、光纤和无线电波等,因而附图1中的信号转换部件2和信号转换部件4的选择自然应与所选的通信介质3对应,但信号转换部件2和信号转换部件4的工作模式必须是非存储转发模式。
所述的监控终端的外部中断引脚的电压信号与监控终端异步串行通信接口的数据接收引脚的电压信号同步变化,通过缓冲器(附图1中的6)将监控终端异步串行通信接口的数据接收引脚的电压信号引至监控终端控制器5的外部中断引脚实现,根据具体实现方案缓冲器6可有多种实现形式甚至可以是短接线。
2、对时过程
(1)所述控制中心主控制器启动对时流程,在开始对时流程时,所述控制中心主控制器读取其主时钟的当前时间,在当前时间的基础上进行加1秒计算,得到对时时间,并基于该对时时间生成对时时间报文,所述对时时间报文包括:对时时间的年、月、日、时、分及秒信息;
(2)所述控制中心主控制器在形成对时时间报文后,向监控终端控制器发送主时钟的对时时间报文,接着使能控制中心主控制器的脉冲边沿触发(或是上升沿触发或是下降沿触发)的外部中断;
(3)所述监控终端控制器接收到所述对时时间报文后解析该对时时间报文,并根据系统设计时计算得到的信号传输综合延时修正对时时间报文给出的对时时间而获得对时时间修正值,进而使能监控终端控制器的脉冲信号下降沿触发的外部中断;
(4)控制中心主控制器和监控终端控制器,在主时钟发出1PPS之前,均可以处理其它事务(因为采用外部中断模式);
(5)当控制中心主时钟发出1PPS(1PPS为主时钟自动发出,每秒发一次)时,立即触发控制中心主控制器外部中断,控制中心主控制器响应外部中断并向监控终端控制器发送(或广播)同步码报文,同步码报文发送完成后,控制中心主控制器的本次对时任务执行完毕,转而处理先前被中断的任务;
(6)当与控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿出现在监控终端控制器异步串行通信接口的接收引脚时,因为监控终端外部触发信号与此信号同时变化,因而立即触发监控终端控制器外部中断,监控终端控制器响应外部中断进而将从时钟的时间设置为所述的对时时间修正值,以完成从时钟与主时钟的对时,至此,本次对时任务执行完毕,监控终端控制器转而处理先前被中断的任务。
需要进一步阐明的是,外部中断设置一般是为了在外部中断到来时刻起暂停当前处理任务,转而处理外部中断任务,当其外部中断任务处理完后,再继续去处理先前被暂停的任务。此处,对控制中心主控制器而言,响应外部中断指的是在外部中断信号到来时控制中心主控制器暂停当前任务,转而处理外部中断任务,而这里的外部中断任务指的是向监控终端控制器发送同步码报文;相应地,对监控终端控制器而言,响应外部中断指的是外部中断信号到来时监控终端控制器暂停当前任务,转而处理外部中断任务,而这里的外部中断任务指的是在控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿到达监控终端控制器的异步串行通信接口接收引脚时将监控终端的从时钟时间设置为对时时间修正值,从而完成监控终端从时钟与控制中心主时钟的对时。
还需要说明的是,本发明提供的对时方法适用于采用主从结构通信的控制中心主控制器和监控终端控制器之间的对时。此处的主从结构指的是控制中心主控制器与监控终端控制器之间的通信方式为询问应答式,控制中心主控制器为主,而监控终端控制为从。
可选地,所述控制中心向一个监控终端发送对时时间报文和同步码报文以完成点对点对时;或所述控制中心向多个监控终端广播发送对时时间报文和同步码报文以完成一点对多点对时。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供的基于通用异步串行通信接口的对时方法,可以应用于控制中心与监控终端所处地理位置相近的采用通用异步串行通信进行数据传输的监控系统的点对点和一点对多点的高精度对时,且通信介质可以是通信电缆、光纤以及无线电波等。
本发明提供的基于通用异步串行通信接口的对时方法,其实现仅需要在控制中心主控制器以及监控终端控制器用于数据传输的通用异步串行通信接口的基础上各增加1个外部中断信号引脚,对时通信接口与数据传输通信接口共用,硬件电路极为简洁,成本低廉,对时精度却可达到微秒量级,因而具有良好应用价值。
附图说明
图1为本发明提供的物理连接关系示意图;
图2为本发明提供的控制中心主控制器对时流程图;
图3为本发明提供的监控终端控制器对时流程图;
图4为本发明提供的一个点对点对时实施例的电路原理图;
图5为本发明提供的一点对多点对时实施例的电路原理图。
具体实施方式
本发明提供的基于通用异步串行通信接口的高精度对时方法,可以应用于采用通用异步串行通信进行数据传输的监控系统的点对点和一点对多点的高精度对时,且通信介质可以是通信电缆、光纤以及无线电波等。本发明提供的对时方法的对时精度可达到微秒量级,且实现成本十分低廉。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明所述的一种基于通用异步串行通信接口的高精度对时方法,信号传输链路由控制中心主控制器1中CPU的通用异步串行通信接口数据发送引脚TX和数据接收引脚RX引脚以及主控制器的外部中断引脚、主时钟的1PPS输出引脚、主控制器侧信号转换部件2、通信介质3、监控终端侧信号转换部件4、监控终端控制器5中CPU的通用异步串行通信接口的数据发送引脚TX和数据接收引脚RX引脚、缓冲电路6以及监控终端控制器5中CPU的外部中断引脚构成(将外部中断配置为下降沿中断);所述缓冲电路6的设计使得监控终端控制器5中CPU的外部中断引脚的输入电压信号与其RX引脚的输入电压信号同步变化。
本发明所述对时方法,通过以下步骤完成一次对时过程(参见附图2和附图3):
(1)所述控制中心主控制器启动对时流程,在开始对时流程时,所述控制中心主控制器读取其主时钟的当前时间,在当前时间的基础上进行加1秒计算,得到对时时间,并基于该对时时间生成对时时间报文,所述对时时间报文包括:对时时间的年、月、日、时、分及秒信息;
(2)所述控制中心主控制器在形成对时时间报文后,向监控终端控制器发送主时钟的对时时间报文,接着使能控制中心主控制器的脉冲边沿触发(或是上升沿触发或是下降沿触发)的外部中断;
(3)所述监控终端控制器接收到所述对时时间报文后解析该对时时间报文,并根据系统设计时计算得到的信号传输综合延时修正对时时间报文给出的对时时间而获得对时时间修正值,进而使能监控终端控制器的脉冲信号下降沿触发的外部中断;
(4)控制中心主控制器和监控终端控制器,在主时钟发出1PPS之前,均可以处理其它事务(因为采用外部中断模式);
(5)当控制中心主时钟发出1PPS(1PPS为主时钟自动发出,每秒发一次)时,立即触发控制中心主控制器外部中断,控制中心主控制器响应外部中断并向监控终端控制器发送(或广播)同步码报文,同步码报文发送完成后,控制中心主控制器的本次对时任务执行完毕,转而处理先前被中断的任务;
(6)当与控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿出现在监控终端控制器异步串行通信接口的接收引脚时,因为监控终端外部触发信号与此信号同时变化,因而立即触发监控终端控制器外部中断,监控终端控制器响应外部中断进而将从时钟的时间设置为所述的对时时间修正值,以完成从时钟与主时钟的对时,至此,本次对时任务执行完毕,监控终端控制器转而处理先前被中断的任务。
本发明提供的基于通用异步串行通信接口的高精度对时方法,设由控制中心主控制器引入的信号传输延时为Δt1、信号转换部件2的信号转换延时为Δt2、信号在通信介质3中的传输延时为Δt3、信号转换部件4的信号转换延时为Δt4、监控终端控制器5中CPU对外部中断的响应时间为Δt5以及缓冲电路6的信号传输延时为Δt6,则信号传输综合延时为ΔtΣ=Δt1+Δt2+Δt3+Δt4+Δt5+Δt6。
其中,控制中心主控制器引入的延时Δt1是从主控制器CPU响应外部中断(由主时钟发出的1PPS的上升沿或1PPS反相信号的下降沿触发)即秒起始时刻开始到控制中心主控制器CPU将同步码报文通过其异步串行通信接口开始发送的时间;因为本发明涉及的监控系统的控制中心与监控终端所处于地理位置相近,信号转换部件不考虑采用存储转发模式,所以,Δt2和Δt4的数值和分散性均较小(对于非存储转发的快速信号转换部件,延时处于亚微秒量级;对于非存储转发的慢速信号转换部件延时为若干微秒);Δt3的数值与信号传输距离和通信介质3的特性有关,但对于特定的两点之间的延时是固定的,对于较小区域Δt3在微秒量级;Δt5为监控终端控制器5中的CPU对外部中断的响应时间,对于低档CPU来说Δt5为微秒量级,对于高速CPU而言Δt5为亚微秒量级,只要对时程序设计合理,Δt5也是固定的;缓冲电路6为数字逻辑电路或者限流电阻甚至是短接线,Δt6一般小于10纳秒,可以忽略。因此,本发明所述对时方法的信号传输综合延时ΔtΣ的数值和分散性均较小,可通过延时补偿措施有效降低对时误差,从而采用本发明提供的对时方法可以实现微秒量级的高精度对时。
一、点对点实施例
图4是一个点对点对时实施例的电路原理图,控制中心主控制器1的CPU和监控终端控制器5的CPU均采用AT89C51(选用AT89C51是为了使叙述对象更为明确,CPU完全可以选择其它微处理器);信号转换部件2和信号转换部件4选用MAX490,因而采用RS422进行信号传输;通信介质3选用双绞线;缓冲电路6设计仅采用一个200Ω电阻(该电阻用于防止监控终端控制器5的CPU的RX引脚和引脚发生短路)。
图4所示实施例,虚线框中表示的是控制中心主控制器配置的主时钟,该主时钟与控制中心主控制器CPU之间的信号线有:信号由主时钟发给CPU(每秒钟发1个脉冲且该脉冲信号的下降沿为每秒钟起点时刻),在主控制器CPU侧与AT89C51芯片P3.2引脚(即外部中断引脚)对接;DB为双向8位数据总线,在主控制器CPU侧与AT89C51芯片P0端口对接;AB为8位地址总线,信号由CPU输出,在主控制器CPU侧与AT89C51芯片P2端口(高8位地址线)对接;和为控制信号线,信号由CPU输出,在主控制器CPU侧分别与AT89C51芯片的P3.6引脚(即“写”控制线)和P3.7(即“读”控制线)对接。特别需要说明的是,本发明仅涉及高精度对时问题而不涉及控制中心主时钟的实现问题,所以这里对控制中心主时钟的实现不作叙述。
图4所示实施例,信号转换部件2采用TTL电平到RS422电平的转换芯片MAX490。其中,MAX490的RO与控制中心主控制器1中AT89C51的引脚P3.0(即RX引脚)对接;MAX490的DI与控制中心主控制器1中AT89C51的引脚P3.1(即TX引脚)对接。
图4所示实施例,信号转换部件4采用TTL电平到RS422电平的转换芯片MAX490。其中,MAX490的RO与监控终端控制器5中AT89C51的引脚P3.0(即数据接收引脚RX)对接;MAX490的DI与监控终端控制器5中AT89C51的引脚P3.1(即数据发送引脚TX)对接。图4所示实施例,监控终端控制器5中AT89C51的引脚P3.0(即数据接收引脚RX)的信号通过1个200Ω电阻引至监控终端控制器5中AT89C51的引脚P3.2(即外部中断引脚),该200Ω电阻即构成了本发明所述的缓冲电路6。
图4所示实施例,信号转换部件2和信号转换部件4均为MAX490芯片。其中,信号转换部件2的A、B引脚通过双绞线分别与转换部件4的Y、Z引脚相连;信号转换部件2的Y、Z引脚通过双绞线分别与转换部件4的A、B引脚相连。图4所示实施例,通信介质采用双绞线,为简洁清晰起见,图4未画出两组双绞线的示意图,特此说明。同时还应特别指出,所述两组双绞线的两端各有1个120Ω终端电阻,这4个终端电阻的作用为本技术领域人员所熟知,同样为了简洁清晰,图4未示出。
下面详细叙述图4所示实施例的对时过程和对时误差。
图4所示实施例,在对时过程中,首先控制中心主控制器读取主时钟的当前时间(计到整秒为止)并进行加1秒计算,得到“下一秒时间数据”。在图4所示实施例中,年、月、日、时、分、秒的时间数据采用6个字节的BCD码表示,并按年、月、日、时、分、秒的顺序排列。例如,当前计到整秒为止的时间为2018年05月04日10时27分16秒,采用BCD码表示(1个字节的高4为表示十进制的十位数,低4为表示十进制的个位数)所对应的十六进制数为(注:2018减去2000):18H,05H,04H,10H,27H,16H;加1秒计算得到的时间码为18H,05H,04H,10H,27H,17H。得到“下一秒时间数据”后,控制中心主控制器将包含“下一秒时间数据”的对时时间报文通过异步串行通信口发送给监控终端控制器。对于图4所示实施例,形成的对时时间报文为:7EH,E7H,7EH,XXH,YYH,18H,05H,04H,10H,27H,17H,XORH,SUMH,16H。该报文前3个字节为“报文头部”,便于接收端检测报文的开始;第4字节“XXH”为接收端(这里即监控终端控制器)的地址码,由使用者设置;第5字节“YYH”为对时时间报文类型码,由开发人员在制订通信协议时确定;第6字节至第11字节为“下一秒时间数据”;第12字节XORH为第4字节至第11字节的异或值,用于接收端校验;第13字节SUMH为第4字节至第11字节的累加和的低8位,也用于接收端校验;第14字节16H为“报文尾部”。图4所示实施例,控制中心主控制器下发对时时间报文后,立即使能外部中断(P3.2引脚设置为下降沿中断),等待外部中断时刻的到来;一旦信号下降沿出现,控制中心主控制器CPU立即响应中断,并通过异步串行通信接口下发同步码报文,在本实施例中,同步码报文仅1个字节55H。至此,对于图4所示实施例,控制中心主控制器完成了1次对时任务的所有操作步骤。
图4所示实施例,监控终端控制器的CPU配置了“软时钟”,其“软时钟”由7个8位寄存器和1个16位定时器构成。其中,7个寄存器中的前6个分别存储当前时间的年、月、日、时、分、秒的BCD值;第7个寄存器存储当前时间按秒取整后余数的微秒值以10000微秒为单位的计数值且模数为100;“软时钟”的16位定时器采用监控终端控制器的CPU的T0定时器,存储当前时间的小于10000微秒的余数部分,并实现步长为0.5微秒的“走时”,图4所示实施例,监控终端控制器CPU的晶体振荡器采用24MHz,则根据AT89C51微处理器工作原理,定时器T0为向上计算且计数时钟周期为0.5微秒,设置T0定时器中断周期为20000个计数时钟周期(即将T0定时器初值设置为十进制数45536,对应的十六进制数为高字节B1H和低字节E0H),则T0将每10000微秒中断1次,T0每中断1次“软时钟”的第7个寄存器值加1,若第7个寄存器值满100则本寄存器回0而秒寄存器加1,“软时钟”秒、分、时、日、月、年的寄存器的加1和回0为本领域技术人员的通用常识,这里不作赘述。
图4所示实施例,在对时过程中,当监控终端控制器的CPU接收到来自控制中心主控制器的对时时间报文后,首先对该对时时间报文进行校验(采用报文的校验码进行校验),若通过校验则停止T0运行并设置T0的初值(T0初值的十进制数为45536+2ΔtΣ,其中ΔtΣ为信号传输综合延时,以微秒为单位,ΔtΣ的求取方法待后叙述),进而,将年、月、日、时、分、秒的寄存器值设置为对时时间报文给定的数值,将第7个寄存器的值置为0;接着立即使能监控终端控制器CPU的外部中断(P3.2引脚设置为下降沿中断),等待外部中断时刻的到来;一旦与控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿出现在监控终端控制器异步串行通信接口的接收引脚时,监控终端控制器CPU立即响应外部中断,立即启动T0定时器。至此,对于图4所示实施例,监控终端控制器完成了1次对时任务的所有操作步骤,从而整个对时过程完整地进行了1次。
图4所示实施例,Δt1为从信号下降沿开始至由该下降沿引起控制中心主控制器CPU响应外部中断进而通过异步串行通信口发出同步码在控制中心主控制器CPU的TX引脚信号出现第1个下降沿之间的时间长度。考虑控制中心主控制器CPU采用24MHz晶体振荡器,则根据AT89C51工作原理,该CPU的机器周期为0.5微秒,因为AT89C51响应外部中断延时为3至8个机器周期(即延时1.5至4微秒),而同步码传送到发送缓冲寄存器需要2个机器周期(即1微秒),CPU清除发送标志需要1个机器周期(即0.5微秒),再考虑异步串行通信接口发送延时1个机器周期(即0.5微秒),所以,Δt1为3.5至6微秒;又根据MAX490文档资料,图4所示实施例,信号转换部件2的信号DI传输至Y、Z的延时Δt2为0.01至0.06微秒,典型值为0.03微秒;通信介质3的信号传输延时Δt3需要根据其长度和特性确定,在图4所示实施例中考虑通信距离在几十米内所以Δt3很小,故忽略不计,即Δt3=0;同样根据MAX490文档资料,图4所示实施例,信号转换部件4的信号A、B传输至RO的延时Δt4为0.02至0.2微秒,典型值为0.09微秒;图4所示实施例,监控终端控制器CPU采用24MHz晶体振荡器,则根据AT89C51工作原理,该CPU的机器周期为0.5微秒,因为AT89C51响应外部中断延时为3至8个机器周期(即延时1.5至4微秒),而CPU启动软时钟的16位定时器T0需要1个机器周期(即0.5微秒),所以,Δt5为2至4.5微秒;图4所示实施例,缓冲电路6为单个电阻,所以Δt6=0。综上所述,图4所示实施例,ΔtΣ为5.53至10.76微秒。图4所示实施例,因为ΔtΣ为5.53至10.76微秒,取ΔtΣ为8微秒,则对时误差小于±3微秒。
二、一点对多点实施例
图5是一点对多点对时实施例的电路原理图。控制中心主控制器1的CPU和1号、2号、3号监控终端控制器5的CPU均采用AT89C51(选用AT89C51是为了使叙述对象更为明确,CPU完全可以选择其它微处理器);信号转换部件2和信号转换部件4选用MAX490,因而采用RS422进行信号传输;通信介质3选用双绞线;缓冲电路6设计仅采用一个200Ω电阻(该电阻用于防止监控终端控制器5的CPU之RX引脚和引脚发生短路)。
图5所示实施例,虚线框中表示的是控制中心主控制器配置的主时钟,该主时钟与控制中心主控制器CPU之间的信号线有:信号由主时钟发给CPU,每秒钟发1个脉冲且该脉冲信号的下降沿为每秒钟起点时刻,在主控制器CPU侧与AT89C51芯片P3.2引脚(即外部中断引脚)对接;DB为双向8位数据总线,在主控制器CPU侧与AT89C51芯片P0端口对接;AB为8位地址总线,信号由CPU输出,在主控制器CPU侧与AT89C51芯片P2端口(高8位地址线)对接;和为控制信号线,信号由CPU输出,在主控制器CPU侧分别与AT89C51芯片的P3.6引脚(即“写”控制线)和P3.7(即“读”控制线)对接。特别需要说明的是,本发明仅涉及高精度对时问题而不涉及控制中心主时钟的实现问题,所以这里对控制中心主时钟的实现不作叙述。
图5所示实施例,信号转换部件2采用TTL电平到RS422电平的转换芯片MAX490。其中,MAX490的RO与控制中心主控制器1中AT89C51的引脚P3.0(即RX引脚)对接;MAX490的DI与控制中心主控制器1中AT89C51的引脚P3.1(即TX引脚)对接。
图5所示实施例,1号、2号、3号监控终端对应的信号转换部件4采用TTL电平到RS422电平的转换芯片MAX490。其中,MAX490的RO与监控终端控制器5中AT89C51的引脚P3.0(即RX引脚)对接;MAX490的DI与监控终端控制器5中AT89C51的引脚P3.1(即TX引脚)对接。图5所示实施例,1号、2号、3号监控终端对应的控制器5中AT89C51的引脚P3.0(即RX引脚)的信号均通过1个200Ω电阻引至1号、2号、3号监控终端对应的控制器5中AT89C51的引脚P3.2(即外部中断引脚),该200Ω电阻即构成了本发明所述的缓冲电路6。
图5所示实施例,信号转换部件2和1号、2号、3号监控终端对应的信号转换部件4均为MAX490芯片。其中,信号转换部件2的A、B引脚通过双绞线分别与1号、2号、3号监控终端对应的信号转换部件4的Y、Z引脚相连;信号转换部件2的Y、Z引脚通过双绞线分别与1号、2号、3号监控终端对应的信号转换部件4的A、B引脚相连。图5所示实施例,通信介质采用双绞线,为简洁清晰起见,图5未画出两组双绞线示意图,特此说明。同时还应特别指出,所述两组双绞线采用链接形式连接控制中心主控制器和1号、2号、3号监控终端对应的控制器,两组双绞线两端各有1个120Ω终端电阻,这些为本技术领域人员所熟知,同样为了简洁清晰,图5未示出。
下面详细叙述图5所示实施例的对时过程和对时误差。
图5所示实施例,在对时过程中,首先控制中心主控制器读取主时钟的当前时间(计到整秒为止)并进行加1秒计算,得到“下一秒时间数据”。在图5所示实施例中,年、月、日、时、分、秒的时间数据采用6个字节的BCD码表示,并按年、月、日、时、分、秒的顺序排列。例如,当前计到整秒为止的时间为2018年05月04日10时27分16秒,采用BCD码表示(1个字节的高4为表示十进制的十位数,低4为表示十进制的个位数)所对应的十六进制数为(注:2018减去2000):18H,05H,04H,10H,27H,16H;加1秒计算得到的时间码为18H,05H,04H,10H,27H,17H。得到“下一秒时间数据”后,控制中心主控制器将包含“下一秒时间数据”的对时时间报文通过异步串行通信口采用广播形式下发给1号、2号、3号监控终端对应的控制器。对于图5所示实施例,形成的对时时间报文为:7EH,E7H,7EH,XXH,YYH,18H,05H,04H,10H,27H,17H,XORH,SUMH,16H。该报文前3个字节为“报文头部”,便于接收端检测报文的开始;第4字节“XXH”为接收端(这里即监控终端控制器)的广播地址码,由使用者设置;第5字节“YYH”为对时时间报文类型码,由开发人员在制订通信协议时确定;第6字节至第11字节为“下一秒时间数据”;第12字节XORH为第4字节至第11字节的异或值,用于接收端校验;第13字节SUMH为第4字节至第11字节的累加和的低8位,也用于接收端校验;第14字节16H为“报文尾部”。图5所示实施例,控制中心主控制器下发对时时间报文后,立即使能外部中断(P3.2引脚设置为下降沿中断),等待外部中断时刻的到来;一旦信号下降沿出现,控制中心主控制器CPU立即响应中断,并通过异步串行通信接口下发同步码报文,在本实施例中,同步码报文仅1个字节55H。至此,对于图5所示实施例,控制中心主控制器完成了1次对时任务的所有操作步骤。
图5所示实施例,1号、2号、3号监控终端对应的控制器的CPU配置了“软时钟”,其“软时钟”由7个8位寄存器和1个16位定时器构成。其中,7个寄存器中的前6个分别存储当前时间的年、月、日、时、分、秒的BCD值;第7个寄存器存储当前时间按秒取整后余数的微秒值以10000微秒为单位的计数值且模数为100;“软时钟”的16位定时器采用1号、2号、3号监控终端对应的控制器的CPU的T0定时器,存储当前时间的小于10000微秒的余数部分,并实现步长为0.5微秒的“走时”,图5所示实施例,1号、2号、3号监控终端对应的控制器CPU的晶体振荡器采用24MHz,则根据AT89C51微处理器工作原理,定时器T0为向上计算且计数时钟周期为0.5微秒,设置T0定时器中断周期为20000个计数时钟周期(即将T0定时器初值设置为十进制数45536,对应的十六进制数为高字节B1H和低字节E0H),则T0将每10000微秒中断1次,T0每中断1次“软时钟”的第7个寄存器值加1,若第7个寄存器值满100则本寄存器回0而秒寄存器加1,“软时钟”秒、分、时、日、月、年的寄存器的加1和回0为本领域技术人员的通用常识,这里不作赘述。
图5所示实施例,在对时过程中,当1号、2号、3号监控终端对应的控制器的CPU接收到来自控制中心主控制器的对时时间报文后,首先对该报文进行校验(采用报文的校验码进行校验),若通过校验则停止T0运行并设置T0的初值(T0初值的十进制数为45536+2ΔtΣ,其中ΔtΣ为对时同步码信号传输过程的综合延时,以微秒为单位,ΔtΣ的求取方法待后叙述),进而,将年、月、日、时、分、秒的寄存器值设置为对时时间报文给定的数值,将第7个寄存器的值置为0;接着立即使能1号、2号、3号监控终端对应的控制器CPU的外部中断(P3.2引脚设置为下降沿中断),等待外部中断时刻的到来;一旦与控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿出现在监控终端控制器异步串行通信接口的接收引脚时,1号、2号、3号监控终端对应的控制器CPU立即响应中断,立即启动T0定时器。至此,对于图5所示实施例,1号、2号、3号监控终端对应的控制器完成了1次对时任务的所有操作步骤,从而整个对时过程完整地进行了1次。
图5所示实施例,Δt1为从信号下降沿开始至由该下降沿引起控制中心主控制器CPU响应外部中断进而通过异步串行通信口发出同步码在控制中心主控制器CPU的TX引脚信号出现第1个下降沿之间的时间长度。考虑控制中心主控制器CPU采用24MHz晶体振荡器,则根据AT89C51工作原理,该CPU的机器周期为0.5微秒,因为AT89C51响应外部中断延时为3至8个机器周期(即延时1.5至4微秒),而同步码传送到发送缓冲寄存器需要2个机器周期(即1微秒),CPU清除发送标志需要1个机器周期(即0.5微秒),再考虑异步串行通信接口发送延时1个机器周期(即0.5微秒),所以,Δt1为3.5至6微秒;又根据MAX490文档资料,图5所示实施例,信号转换部件2的信号DI传输至Y、Z的延时Δt2为0.01至0.06微秒,典型值为0.03微秒;通信介质3的信号传输延时Δt3需要根据其长度和特性确定,在图5所示实施例中考虑通信距离在几十米内所以Δt3很小,故忽略不计,即Δt3=0;同样根据MAX490文档资料,图5所示实施例,1号、2号、3号监控终端对应的信号转换部件4的信号A、B传输至RO的延时Δt4为0.02至0.2微秒,典型值为0.09微秒;图5所示实施例,1号、2号、3号监控终端对应的控制器CPU采用24MHz晶体振荡器,则根据AT89C51工作原理,该CPU的机器周期为0.5微秒,因为AT89C51响应外部中断延时为3至8个机器周期(即延时1.5至4微秒),而CPU启动软时钟的16位定时器T0需要1个机器周期(即0.5微秒),所以,Δt5为2至4.5微秒;图5所示实施例,1号、2号、3号监控终端对应的缓冲电路6为单个电阻,所以Δt6=0。综上所述,图5所示实施例,ΔtΣ为5.53至10.76微秒。图5所示实施例,因为ΔtΣ为5.53至10.76微秒,取ΔtΣ为8微秒,则对时误差小于±3微秒。
本领域的技术人员容易理解,以上所述仅为本发明的实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于通用异步串行通信接口的高精度对时方法,适用于控制中心和监控终端所在的地理位置相近的应用场合,其特征在于,控制中心与监控终端通过异步串行通信接口连接,设控制中心的时钟为主时钟并称控制中心执行对时任务的处理器为控制中心主控制器,设监控终端的时钟为从时钟并称监控终端执行对时任务的处理器为监控终端控制器,该方法包括:
控制中心主控制器向监控终端控制器发送主时钟的对时时间报文后使能控制中心主控制器的脉冲边沿触发(或是上升沿触发或是下降沿触发)的外部中断;监控终端控制器接收到所述对时时间报文后解析该对时时间报文,并根据系统设计时计算得到的信号传输综合延时修正对时时间报文给出的对时时间而获得对时时间修正值,进而使能监控终端控制器的脉冲下降沿触发的外部中断;
所述对时时间报文包括对时时间的年、月、日、时、分及秒信息;
控制中心主控制器在所述对时时间的秒起始时刻响应外部中断(该外部中断由控制中心主时钟发出的1PPS秒脉冲信号或1PPS的反相脉冲信号触发,1PPS信号的上升沿或1PPS的反相信号的下降沿对应于秒起始时刻)并向监控终端控制器发送同步码报文;当与控制中心主控制器发送的同步码报文对应的电压信号的第一个下降沿出现在监控终端控制器异步串行通信接口的接收引脚时,监控终端控制器响应外部中断进而将从时钟的时间设置为所述的对时时间修正值,以完成从时钟与主时钟的对时。
2.根据权利要求1所述的基于通用异步串行通信接口的高精度对时方法,其特征在于,所述控制中心主控制器发送所述对时时间报文的时间早于所述对时时间。
3.根据权利要求1或2所述的基于通用异步串行通信接口的高精度对时方法,其特征在于,所述控制中心主控制器读取其主时钟的当前时间,在当前时间的基础上进行加1秒计算,得到对时时间,并基于该对时时间生成对时时间报文。
4.根据权利要求1或2或3所述的基于通用异步串行通信接口的高精度对时方法,所述地理位置相近是指控制中心安装位置与监控终端安装位置之间的距离较近以至于控制中心与监控终端之间的通信无需中继且通信的信号转换部件不采用存储转发模式。
5.根据权利要求1或2或3所述的基于通用异步串行通信接口的高精度对时方法,其特征在于,所述的控制中心主控制器和监控终端控制器均在其通用异步串行通信接口的基础上增加一个外部中断引脚;所述监控终端控制器的外部中断引脚的电压信号与监控终端异步串行通信接口的数据接收引脚电压信号同步变化且外部中断引脚配置为脉冲信号下降沿中断。
6.根据权利要求1或2或3所述的基于通用异步串行通信接口的高精度对时方法,其特征在于,所述控制中心主控制器向一个监控终端控制器发送对时时间报文和同步码报文以完成点对点对时;或所述控制中心主控制器向多个监控终端控制器广播发送对时时间报文和同步码报文以完成一点对多点对时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810891400.4A CN109117410B (zh) | 2018-08-07 | 2018-08-07 | 一种基于通用异步串行通信接口的高精度对时方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810891400.4A CN109117410B (zh) | 2018-08-07 | 2018-08-07 | 一种基于通用异步串行通信接口的高精度对时方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117410A true CN109117410A (zh) | 2019-01-01 |
CN109117410B CN109117410B (zh) | 2020-11-24 |
Family
ID=64851830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810891400.4A Active CN109117410B (zh) | 2018-08-07 | 2018-08-07 | 一种基于通用异步串行通信接口的高精度对时方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117410B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716893A (zh) * | 2019-09-12 | 2020-01-21 | 中国科学院地质与地球物理研究所 | 一种随钻声波异步串口信号同步的方法 |
CN110865951A (zh) * | 2019-11-05 | 2020-03-06 | 中国人民解放军国防科技大学 | 一种支持单根双处理器中断通信的方法和装置 |
CN111988105A (zh) * | 2020-08-25 | 2020-11-24 | 烟台东方威思顿电气有限公司 | 一种基于rs485的高精度对时方法 |
CN114138055A (zh) * | 2021-12-08 | 2022-03-04 | 成都引众数字设备有限公司 | 一种直流b码转换为电力系统串口时间报文的方法及其装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600803A (en) * | 1993-05-14 | 1997-02-04 | Matsushita Electric Industrial Co., Ltd. | Data transfer system and method using data bus having bi-directional serial data line, clock line and bi-directional control line |
CN101610145A (zh) * | 2009-07-03 | 2009-12-23 | 中兴通讯股份有限公司 | 一种实现分布式系统的同步控制的方法和系统 |
CN105245323A (zh) * | 2015-08-27 | 2016-01-13 | 国电南瑞科技股份有限公司 | 一种基于报文同步实现的分布式授时和守时方法 |
CN105281859A (zh) * | 2014-07-01 | 2016-01-27 | 福建吉星智能科技股份有限公司 | 一种基于gps的精确授时方法 |
CN106131947A (zh) * | 2016-09-14 | 2016-11-16 | 潘进 | 一种无线网络设备间时钟同步的方法 |
-
2018
- 2018-08-07 CN CN201810891400.4A patent/CN109117410B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5600803A (en) * | 1993-05-14 | 1997-02-04 | Matsushita Electric Industrial Co., Ltd. | Data transfer system and method using data bus having bi-directional serial data line, clock line and bi-directional control line |
CN101610145A (zh) * | 2009-07-03 | 2009-12-23 | 中兴通讯股份有限公司 | 一种实现分布式系统的同步控制的方法和系统 |
CN105281859A (zh) * | 2014-07-01 | 2016-01-27 | 福建吉星智能科技股份有限公司 | 一种基于gps的精确授时方法 |
CN105245323A (zh) * | 2015-08-27 | 2016-01-13 | 国电南瑞科技股份有限公司 | 一种基于报文同步实现的分布式授时和守时方法 |
CN106131947A (zh) * | 2016-09-14 | 2016-11-16 | 潘进 | 一种无线网络设备间时钟同步的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716893A (zh) * | 2019-09-12 | 2020-01-21 | 中国科学院地质与地球物理研究所 | 一种随钻声波异步串口信号同步的方法 |
US10928530B1 (en) | 2019-09-12 | 2021-02-23 | Institute Of Geology And Geophysics, Chinese Academy Of Sciences | Method for synchronizing acoustic asynchronous serial signals while drilling |
CN110865951A (zh) * | 2019-11-05 | 2020-03-06 | 中国人民解放军国防科技大学 | 一种支持单根双处理器中断通信的方法和装置 |
CN111988105A (zh) * | 2020-08-25 | 2020-11-24 | 烟台东方威思顿电气有限公司 | 一种基于rs485的高精度对时方法 |
CN111988105B (zh) * | 2020-08-25 | 2022-11-01 | 烟台东方威思顿电气有限公司 | 一种基于rs485的高精度对时方法 |
CN114138055A (zh) * | 2021-12-08 | 2022-03-04 | 成都引众数字设备有限公司 | 一种直流b码转换为电力系统串口时间报文的方法及其装置 |
CN114138055B (zh) * | 2021-12-08 | 2024-03-15 | 成都引众数字设备有限公司 | 一种直流b码转换为电力系统串口时间报文的方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109117410B (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117410A (zh) | 一种基于通用异步串行通信接口的高精度对时方法 | |
TWI358636B (en) | System for time ordering events | |
CN103414547B (zh) | 一种主站控制多从站的方法、主站以及系统 | |
WO2018196498A1 (zh) | 一种biss协议数据解码方法及接口系统 | |
CN109857685A (zh) | 一种mpu与fpga扩展多串口的实现方法 | |
CN104115432A (zh) | 用于在时间认知设备之间传达时间信息的方法和装置 | |
CN103473196A (zh) | 一种1553b总线与星内设备总线间遥测遥控数据传输装置 | |
CN103532692A (zh) | 一种双通道双模式冗余的光纤纵差配电终端数据同步方法 | |
CN110928176B (zh) | 一种支持多种授时技术的多功能授时设备 | |
CN104991880B (zh) | 一种基于pci‑e接口的fc‑ae‑asm通讯板卡 | |
CN106569028B (zh) | 一种双芯智能电能表的电量同步处理方法及系统 | |
CN107147553A (zh) | 从站波特率及帧格式的调整方法、调整装置及调整设备 | |
WO2019003320A1 (ja) | 通信システム、マスタ装置及びスレーブ装置 | |
CN102096372A (zh) | 卫星系统时钟基于总线方式的校准方法 | |
WO2022019984A1 (en) | System and method for synchronizing nodes in a network device | |
TW201702894A (zh) | 獨立式通用非同步接收器/傳輸器brk偵測 | |
CN102638339B (zh) | 一种用于实现精确时间同步的方法和装置 | |
CN103763063B (zh) | 不改变数据传输波特率而减少数据位宽的变速箱电路及工作方法 | |
CN205050133U (zh) | 嵌入式系统中的时统系统 | |
CN105955398B (zh) | 一种基于fpga的系统对时装置及对时方法 | |
CN201893806U (zh) | Fc时钟同步发生系统 | |
CN104994034B (zh) | 一种合并单元点对点sv报文的收发方法 | |
CN201556048U (zh) | 一种多功能时间综合测量仪 | |
CN104750648B (zh) | 基于双线总线的单向通讯控制装置及方法 | |
JPH025654A (ja) | 信号同期方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |