CN118963934A - 数据同步系统及方法 - Google Patents
数据同步系统及方法 Download PDFInfo
- Publication number
- CN118963934A CN118963934A CN202410937417.4A CN202410937417A CN118963934A CN 118963934 A CN118963934 A CN 118963934A CN 202410937417 A CN202410937417 A CN 202410937417A CN 118963934 A CN118963934 A CN 118963934A
- Authority
- CN
- China
- Prior art keywords
- sub
- preset operation
- processing module
- module
- instruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 236
- 230000008569 process Effects 0.000 claims abstract description 38
- 230000001360 synchronised effect Effects 0.000 claims description 46
- 230000003993 interaction Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 13
- 238000013480 data collection Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 6
- 238000005265 energy consumption Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种数据同步系统及方法,涉及数据通信技术领域,公开了数据同步系统,包括:控制模块向子处理模块发送预设操作指令后向子处理模块发送同步脉冲,子处理模块响应同步脉冲,向端模块发送预设操作指令,端模块接收子处理模块发送的预设操作指令,并执行预设操作指令,得到预设操作结果,并向子处理模块发送预设操作结果,子处理模块接收端模块发送的预设操作结果,并将预设操作结果缓存在内部存储中,控制模块向子处理模块发送结果获取指令,基于结果获取指令获取预设操作结果。本申请实现了低成本地进行数据同步,降低了数据同步过程中对硬件性能及成本上的要求。
Description
技术领域
本申请涉及数据通信技术领域,尤其涉及一种数据同步系统及方法。
背景技术
在电力自动化进程中,对各种端设备的数据采集要求也越来越高,而随着现场用能设备种类的增多与现场使用的复杂性,往往需要在同个时间断面下,实现多个设备数据的同步采集的要求。而常规的采集方式,通讯端口从主控芯片上引出,需要抄读的端设备直接挂载到相应的端口上。再通过主控CPU以多线程或多进程的方式,让每个线程或进程独立控制相应的端口,控制多路端口实现各路设备的采集。
在这种情况下,数据的采集时间完全取决于CPU的多任务能力。采集指令的发出时间取决于系统的多线程调度过程,是不可控的。尤其是在系统负荷较重的情况下,由于线程阻塞问题,更不可能做到指令的同步操作。
另外,当通讯端口比较多时,所需要建立的不同进程也会随之增加,对主控CPU的硬件资源、性能、散热等要求也会随之升高,从而带来硬件上成本的上升。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供一种数据同步系统及方法,旨在解决如何低成本地进行数据同步的技术问题。
为实现上述目的,本申请提出一种数据同步系统,所述数据同步系统包括:控制模块、至少一个子处理模块以及端模块,控制模块与至少一个子处理模块连接,子处理模块与对应的端模块连接;
所述控制模块,用于向所述子处理模块发送预设操作指令,其中,所述预设操作指令可以为一条也可以为多条;
所述子处理模块,用于接收所述控制模块发送的所述预设操作指令;
所述控制模块,还用于向所述子处理模块发送同步脉冲;
所述子处理模块,还用于响应所述同步脉冲,向所述端模块发送所述预设操作指令;
所述端模块,用于接收所述子处理模块发送的所述预设操作指令,并执行所述预设操作指令,得到预设操作结果,并向所述子处理模块发送所述预设操作结果;
所述子处理模块,还用于接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中;
所述控制模块,还用于向所述子处理模块发送结果获取指令,基于所述结果获取指令获取所述预设操作结果。
在一实施例中,所述子处理模块,还用于在所接受到所述预设操作指令为一条时,为单条所述预设操作指令分配对应的线程或进程;
所述子处理模块,还用于在所接受到所述预设操作指令为多条时,基于多条所述预设操作指令建立预设指令队列,为所述预设指令队列分配对应的线程或进程。
在一实施例中,所述控制模块与所述子处理模块之间建立有两个交互通道,分别为指令收发通道和信号同步通道;
所述指令收发通道,用于所述控制模块向所述子处理模块广播发送预设操作指令;
所述信号同步通道,用于所述控制模块向所述子处理模块发送同步脉冲。
在一实施例中,所述控制模块,还用于对所有所述子处理模块接收的所述预设操作指令的操作状态进行遍历;
所述控制模块,还用于在检测到所有所述子处理模块接收的所述预设操作指令的操作状态为就绪时,向所有所述子处理模块发送所述同步脉冲,以使所述预设操作指令的操作状态转变为中断。
在一实施例中,所述子处理模块,还用于接收所述端模块发送的所述预设操作结果,并记录接收所述预设操作结果的时标,将携带有时标的所述预设操作结果缓存在内部存储中。
此外,为实现上述目的,本申请还提出一种数据同步方法,所述数据同步方法应用于数据同步系统,所述数据同步系统包括:控制模块、与控制模块连接的至少一个子处理模块以及与子处理模块对应的端模块;所述数据同步方法包括:
所述控制模块向所述子处理模块发送预设操作指令,其中,所述预设操作指令可以为一条也可以为多条;
所述子处理模块接收所述控制模块发送的所述预设操作指令;
所述控制模块向所述子处理模块发送同步脉冲;
所述子处理模块响应所述同步脉冲,向所述端模块发送所述预设操作指令;
所述端模块接收所述子处理模块发送的所述预设操作指令,并执行所述预设操作指令,得到预设操作结果,并向所述子处理模块发送所述预设操作结果;
所述子处理模块接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中;
所述控制模块向所述子处理模块发送结果获取指令,基于所述结果获取指令获取所述预设操作结果。
在一实施例中,所述子处理模块接收所述控制模块发送的所述预设操作指令之后,还包括:
所述子处理模块在所接受到所述预设操作指令为一条时,为单条所述预设操作指令分配对应的线程或进程;
所述子处理模块在所接受到所述预设操作指令为多条时,基于多条所述预设操作指令建立预设指令队列,为所述预设指令队列分配对应的线程或进程。
在一实施例中,所述控制模块与所述子处理模块之间建立有两个交互通道,分别为指令收发通道和信号同步通道;
所述控制模块向所述子处理模块发送预设操作指令,包括:所述控制模块通过所述指令收发通道向所述子处理模块广播发送预设操作指令;
所述控制模块向所述子处理模块发送同步脉冲,包括:所述控制模块通过所述信号同步通道向所述子处理模块发送同步脉冲。
在一实施例中,所述控制模块向所述子处理模块发送同步脉冲的步骤,还包括:
所述控制模块对所有所述子处理模块接收的所述预设操作指令的操作状态进行遍历;
所述控制模块在检测到所有所述子处理模块接收的所述预设操作指令的操作状态为就绪时,向所有所述子处理模块发送所述同步脉冲,以使所述预设操作指令的操作状态转变为中断。
在一实施例中,所述子处理模块接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中,包括:
所述子处理模块接收所述端模块发送的所述预设操作结果,并记录接收所述预设操作结果的时标,将携带有时标的所述预设操作结果缓存在内部存储中。
本申请提出的一个或多个技术方案,至少具有以下技术效果:
通过控制模块向子处理模块发送一条或多条预设操作指令,子处理模块接收控制模块发送的预设操作指令,控制模块向子处理模块发送同步脉冲,子处理模块响应同步脉冲,向端模块发送预设操作指令实现了指令收发同步;通过端模块接收子处理模块发送的预设操作指令,并执行预设操作指令,得到预设操作结果,并向子处理模块发送预设操作结果,子处理模块接收端模块发送的预设操作结果,并将预设操作结果缓存在内部存储中,控制模块向子处理模块发送结果获取指令,基于结果获取指令获取预设操作结果,实现了指令操作结果读写同步。通过在控制模块与一个或多个端模块中增加对应连接的子处理模块,降低了控制模块的负载,使终端设备的控制单元更专注于业务处理以提升整体性能,进而实现低成本地进行数据同步,降低了数据同步过程中对硬件性能及成本上的要求。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请数据同步系统第一实施例的结构框图;
图2为本申请数据同步系统一实施例的数据传输流程图;
图3为本申请数据同步系统第二实施例的结构框图;
图4为本申请数据同步系统一实施例的硬件架构图;
图5为本申请数据同步方法第一实施例的流程示意图;
图6为本申请数据同步方法第二实施例的流程示意图。
本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请的技术方案,并不用于限定本申请。
为了更好的理解本申请的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
参照图1,图1为本申请数据同步系统第一实施例的结构框图。
如图1所示,所述数据同步系统包括:控制模块10、至少一个子处理模块20以及端模块30,控制模块10与至少一个子处理模块20连接,子处理模块20与对应的端模块30连接;
在本实施例中,所述控制模块10,用于向所述子处理模块20发送预设操作指令,其中,所述预设操作指令可以为一条也可以为多条;
需要说明的是,本实施例用于数据同步环节,数据同步包括指令收发同步和指令操作结果读写同步。在指令收发同步阶段,端模块30接收子处理模块20转发的来自控制模块10的一条或多条预设操作指令;在指令操作结果读写同步阶段,控制模块10向子处理模块20获取端模块执行预设操作指令的结果。所述预设操作指令为需要同步的操作指令,具体可以为数据采集指令。
应当理解的是,所述控制模块10负责生成、管理和分发指令。具体地,所述控制模块10包括终端设备的主控CPU,在电力自动化系统中负责整个系统的控制、数据采集及通信,当用户对多个现场用能设备的数据进行同步采集时,需要先通过交互界面向主控CPU发送数据同步采集请求,主控CPU将基于数据同步采集请求生成数据采集指令,即预设操作指令,并将数据采集指令发送到与各个设备对应连接的子处理模块20。
在本实施例中,所述子处理模块20,用于接收所述控制模块10发送的所述预设操作指令;
需要说明的是,所述子处理模块20可以为单片机,其处理性能低于主控CPU,但具有架构简单,功耗低的优点。
在一种可行的实施方式中,所述子处理模块20,还用于在所接受到所述预设操作指令为一条时,为单条所述预设操作指令分配对应的线程或进程;
所述子处理模块20,还用于在所接受到所述预设操作指令为多条时,基于多条所述预设操作指令建立预设指令队列,为所述预设指令队列分配对应的线程或进程。
需要说明的是,在对一个或多个设备的数据进行同步采集时,具体包括两种应用场景:单次触发和循环触发。其中,单条预设操作指令对应单次触发场景,多条预设操作对应循环触发场景。当用户需要对现场用能设备进行实时数据采集时,可以使用单次触发方式以保证快速响应操作指令,如需要立即获取某个特定时间点的实时能耗数据或设备状态信息的场景;当用户需要对现场用能设备进行周期性的数据采集时,可以使用循环触发方式通过队列存储多条操作指令以保证按照时序控制操作指令的长期执行,如需要每天、每周或每月定时采集能耗数据或设备状态信息以进行统计分析的场景。
应当理解的是,在对现场用能设备的数据进行同步采集的过程中,当设备的种类过多且主控CPU的处理任务较为复杂时,若通过主控CPU以多线程或多进程的方式,让每个线程或进程独立控制相应的端口以控制多路端口实现各路设备的采集,很容易因为主控CPU的性能不足导致进程或线程发生阻塞,从而使得数据同步采集失败。而在主控CPU与每个端设备之间增加一个低成本的单片机,每个单片机独立地调度单个进程或线程,可以降低主控CPU的负载。
在本实施例中,所述控制模块10,还用于向所述子处理模块20发送同步脉冲;
需要说明的是,控制模块10向子处理模块20发送预设操作指令后, 还需要通过硬件通道向子处理模块20发送同步脉冲以触发子处理模块20对预设操作指令的转发操作。
具体地,所述控制模块10,还用于对所有所述子处理模块20接收的所述预设操作指令的操作状态进行遍历;所述控制模块10,还用于在检测到所有所述子处理模块20接收的所述预设操作指令的操作状态为就绪时,向所有所述子处理模块10发送所述同步脉冲,以使所述预设操作指令的操作状态转变为中断。
应当理解的是,控制模块10向子处理模块20发送预设操作指令后,需要对所有子处理模块20接收的预设操作指令的操作状态进行遍历,遍历方法可以是轮询,即定期访问每个子处理模块20,查询预设操作指令在子处理模块20的操作状态。只有在检测到所有预设操作指令的操作状态为就绪时,控制模块10才会向所有子处理模块10发送同步脉冲。当子处理模块10接收到同步脉冲后,将会触发中断。
在本实施例中,所述子处理模块20,还用于响应所述同步脉冲,向所述端模块30发送所述预设操作指令;
需要说明的是,在进行初始化时,需要设定好各个子处理模块20连接的端模块30的地址及类型,以确保子处理模块20可以正确识别对应连接的端模块30并进行通信,所述端模块30可以为不同种类的端设备,用于采集不同种类的数据,具体可以为温度传感器、湿度传感器和压力传感器等。当需要对端设备进行增加或更换时,可以通过已定义好的地址和类型简化配置过程。当单片机接收到主控CPU发送的同步脉冲后,将向对应连接的端设备发送需要同步的操作指令,以实现对指令的同步操作。
在本实施例中,所述端模块30,用于接收所述子处理模块20发送的所述预设操作指令,并执行所述预设操作指令,得到预设操作结果,并向所述子处理模块20发送所述预设操作结果;
应当理解的是,端模块30在接收到子处理模块20发送的预设操作指令,并执行所述预设操作指令后,将得到预设操作结果。具体地,若执行的预设操作指令为数据采集指令,得到数据采集结果后,端模块30将向子处理模块发送数据采集结果。
在本实施例中,所述子处理模块20,还用于接收所述端模块30发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中;
具体地,所述子处理模块20,还用于接收所述端模块30发送的所述预设操作结果,并记录接收所述预设操作结果的时标,将携带有时标的所述预设操作结果缓存在内部存储中。
需要说明的是,子处理模块20接收到端模块30发送的预设操作结果时,在存储预设操作结果时,将对应存储接收该预设操作结果的时标。当预设操作指令为多条时,对应执行后的预设操作结果也为多条,此时将在子处理模块20内部建立FIFO(First In FirstOut,先进先出)数据队列,将多次操作对应的结果进行缓存。如图3所示,端设备接收到单片机发送的操作指令队列并按照顺序执行后将向单片机传回操作指令队列对应的执行结果,单片机记录接收每条操作结果的时标并基于操作结果和对应的时标建立数据队列,将数据队列存储在内部存储中。主控CPU可以通过时标记录的数据被接收的准确时间信息进行系统性能分析、故障排查和相应的调试,以更好地掌握和分析系统运行情况。
在本实施例中,所述控制模块10,还用于向所述子处理模块20发送结果获取指令,基于所述结果获取指令获取所述预设操作结果。
应当理解的是,子处理模块20接收到控制模块10发送的同步脉冲后,预设操作指令对应的进程或线程的操作状态将由就绪转变为中断,当接收到端模块30发送的预设操作结果后,原进程或线程的操作状态将恢复为就绪,当控制模块10检测到各个子处理模块20的进程或线程的操作状态为就绪时,将向子处理模块20发送结果获取指令,基于结果获取指令获取预设操作结果。
本实施例通过控制模块10向子处理模块20发送一条或多条预设操作指令,子处理模块20接收控制模块10发送的预设操作指令,控制模块10向子处理模块20发送同步脉冲,子处理模块20响应同步脉冲,向端模块30发送预设操作指令实现了指令收发同步;通过端模块30接收子处理模块20发送的预设操作指令,并执行预设操作指令,得到预设操作结果,并向子处理模块20发送预设操作结果,子处理模块20接收端模块30发送的预设操作结果,并将预设操作结果缓存在内部存储中,控制模块10向子处理模块20发送结果获取指令,基于结果获取指令获取预设操作结果,实现了指令操作结果读写同步。通过在控制模块10与一个或多个端模块30中增加对应连接的子处理模块20,降低了控制模块10的负载,使终端设备的控制单元更专注于业务处理以提升整体性能,进而实现低成本地进行数据同步,降低了数据同步过程中对硬件性能及成本上的要求。
基于本申请数据同步系统第一实施例,提出本申请数据同步系统的第二实施例,在本申请数据同步系统第二种实施例中,与上述数据同步系统实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,请参照图3,图3为本申请数据同步系统第二实施例的结构框图。
在本实施例中,所述控制模块10与所述子处理模块20之间建立有两个交互通道,分别为指令收发通道40和信号同步通道50;
需要说明的是,指令收发通道40为可以进行多主控制的通信端口,控制模块10可以通过主控芯片上引出的通信端口与一个或多个子处理模块20进行连接,通信端口具体可以为串行通信端口如RS-485和CAN等。信号同步通道50用于发送同步信号,与指令收发通道40协同工作,以保证指令收发同步和数据读写同步。
在本实施例中,所述指令收发通道40,用于所述控制模块10向所述子处理模块20广播发送预设操作指令;
应当理解的是,当接收到来自用户的操作请求后,控制模块10会基于用户的操作请求生成预设操作指令,并将这些操作指令广播给各个子处理模块20,以使子处理模块20能同时收到预设操作指令。当预设操作指令被执行后,控制模块10也将通过指令收发通道40取回执行的结果。
在本实施例中,所述信号同步通道50,用于所述控制模块10向所述子处理模块20发送同步脉冲。
应当理解的是,控制模块10发出预设操作指令,子处理模块20接收到预设操作指令后将进入就绪,控制模块10需要向子处理模块20发送同步脉冲触发中断,以使子处理模块20向对应连接的端模块30发送预设操作指令。
在具体实施中,硬件架构图可以如图4所示,控制模块10对应主控CPU,子处理模块20对应单片机,端模块30对应端设备,指令收发通道40以CAN信号(CAN-H和CAN-L)形式传输预设操作指令和预设操作结果,信号同步通道50以SYNC信号形式传输同步脉冲。当需要采集数据时,需要在初始化时设定好各个单片机所接的端设备地址与类型,主控CPU将通过CAN总线以广播方式将数据采集指令(即预设操作指令)发到各个单片机,所有单片机数据采集指令就绪后,主控CPU通过SYNC通道发出同步脉冲,同步脉冲将触发单片机中断,以使单片机将数据采集指令发送到端设备。单片机将接收到的端设备返回的数据采集结果缓存在内部存储中,将操作状态由中断修改为就绪。主控CPU检查各单片机操作状态就绪后,将所有数据采集结果通过CAN总线取回,从而完成一次数据同步操作。在这个过程中端设备的慢速读写被单片机接管,释放了主控CPU的资源,从而提升整体性能。
本实施例在控制模块10和子处理模块20之间建立有两个交互通道,即指令收发通道40和信号同步通道50,控制模块10通过指令收发通道40向子处理模块20广播发送预设操作指令,通过信号同步通道50向子处理模块20发送同步脉冲,以实现对端模块指令30的同步收发与指令操作结果的同步读写,降低了控制单元10与端模块30的耦合度,减少了硬件之间的直接依赖关系,有利于系统的后续维护与设备的扩展。
进一步地,参照图5,图5为本申请数据同步方法第一实施例的流程示意图,所述数据同步方法应用于数据同步系统,所述数据同步系统包括:控制模块、与控制模块连接的至少一个子处理模块以及与子处理模块对应的端模块;
所述数据同步方法包括步骤S10~S70:
步骤S10,所述控制模块向所述子处理模块发送预设操作指令,其中,所述预设操作指令可以为一条也可以为多条;
需要说明的是,本实施例用于数据同步环节,数据同步包括指令收发同步和指令操作结果读写同步。在指令收发同步阶段,端模块接收子处理模块转发的来自控制模块的一条或多条预设操作指令;在指令操作结果读写同步阶段,控制模块向子处理模块获取端模块执行预设操作指令的结果。所述预设操作指令为需要同步的操作指令,具体可以为数据采集指令。
应当理解的是,所述控制模块负责生成、管理和分发指令。具体地,所述控制模块包括终端设备的主控CPU,在电力自动化系统中负责整个系统的控制、数据采集及通信,当用户对多个现场用能设备的数据进行同步采集时,需要先通过交互界面向主控CPU发送数据同步采集请求,主控CPU将基于数据同步采集请求生成数据采集指令,即预设操作指令,并将数据采集指令发送到与各个设备对应连接的子处理模块。
步骤S20,所述子处理模块接收所述控制模块发送的所述预设操作指令;
需要说明的是,所述子处理模块可以为单片机,其处理性能低于主控CPU,但具有架构简单,功耗低的优点。
在一种可行的实施方式中,所述子处理模块接收所述控制模块发送的所述预设操作指令之后,还包括步骤A1~A2:
步骤A1,所述子处理模块在所接受到所述预设操作指令为一条时,为单条所述预设操作指令分配对应的线程或进程;
步骤A2,所述子处理模块在所接受到所述预设操作指令为多条时,基于多条所述预设操作指令建立预设指令队列,为所述预设指令队列分配对应的线程或进程。
需要说明的是,在对一个或多个设备的数据进行同步采集时,具体包括两种应用场景:单次触发和循环触发。其中,单条预设操作指令对应单次触发场景,多条预设操作对应循环触发场景。当用户需要对现场用能设备进行实时数据采集时,可以使用单次触发方式以保证快速响应操作指令,如需要立即获取某个特定时间点的实时能耗数据或设备状态信息的场景;当用户需要对现场用能设备进行周期性的数据采集时,可以使用循环触发方式通过队列存储多条操作指令以保证按照时序控制操作指令的长期执行,如需要每天、每周或每月定时采集能耗数据或设备状态信息以进行统计分析的场景。
应当理解的是,在对现场用能设备的数据进行同步采集的过程中,当设备的种类过多且主控CPU的处理任务较为复杂时,若通过主控CPU以多线程或多进程的方式,让每个线程或进程独立控制相应的端口以控制多路端口实现各路设备的采集,很容易因为主控CPU的性能不足导致进程或线程发生阻塞,从而使得数据同步采集失败。而在主控CPU与每个端设备之间增加一个低成本的单片机,每个单片机独立地调度单个进程或线程,可以降低主控CPU的负载。
步骤S30,所述控制模块向所述子处理模块发送同步脉冲;
需要说明的是,控制模块向子处理模块发送预设操作指令后, 还需要通过硬件通道向子处理模块发送同步脉冲以触发子处理模块对预设操作指令的转发操作。
具体地,所述控制模块向所述子处理模块发送同步脉冲的步骤,还包括:所述控制模块对所有所述子处理模块接收的所述预设操作指令的操作状态进行遍历;所述控制模块在检测到所有所述子处理模块接收的所述预设操作指令的操作状态为就绪时,向所有所述子处理模块发送所述同步脉冲,以使所述预设操作指令的操作状态转变为中断。
应当理解的是,控制模块向子处理模块发送预设操作指令后,需要对所有子处理模块接收的预设操作指令的操作状态进行遍历,遍历方法可以是轮询,即定期访问每个子处理模块,查询预设操作指令在子处理模块的操作状态。只有在检测到所有预设操作指令的操作状态为就绪时,控制模块才会向所有子处理模块发送同步脉冲。当子处理模块接收到同步脉冲后,将会触发中断。
步骤S40,所述子处理模块响应所述同步脉冲,向所述端模块发送所述预设操作指令;
需要说明的是,在进行初始化时,需要设定好各个子处理模块连接的端模块的地址及类型,以确保子处理模块可以正确识别对应连接的端模块并进行通信,所述端模块可以为不同种类的端设备,用于采集不同种类的数据,具体可以为温度传感器、湿度传感器和压力传感器等。当需要对端设备进行增加或更换时,可以通过已定义好的地址和类型简化配置过程。当单片机接收到主控CPU发送的同步脉冲后,将向对应连接的端设备发送需要同步的操作指令,以实现对指令的同步操作。
步骤S50,所述端模块接收所述子处理模块发送的所述预设操作指令,并执行所述预设操作指令,得到预设操作结果,并向所述子处理模块发送所述预设操作结果;
应当理解的是,端模块在接收到子处理模块发送的预设操作指令,并执行所述预设操作指令后,将得到预设操作结果。具体地,若执行的预设操作指令为数据采集指令,得到数据采集结果后,端模块将向子处理模块发送数据采集结果。
步骤S60,所述子处理模块接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中;
具体地,所述子处理模块接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中,包括:所述子处理模块接收所述端模块发送的所述预设操作结果,并记录接收所述预设操作结果的时标,将携带有时标的所述预设操作结果缓存在内部存储中。
需要说明的是,子处理模块接收到端模块发送的预设操作结果时,在存储预设操作结果时,将对应存储接收该预设操作结果的时标。当预设操作指令为多条时,对应执行后的预设操作结果也为多条,此时将在子处理模块内部建立FIFO(First In First Out,先进先出)数据队列,将多次操作对应的结果进行缓存。如图3所示,端设备接收到单片机发送的操作指令队列并按照顺序执行后将向单片机传回操作指令队列对应的执行结果,单片机记录接收每条操作结果的时标并基于操作结果和对应的时标建立数据队列,将数据队列存储在内部存储中。主控CPU可以通过时标记录的数据被接收的准确时间信息进行系统性能分析、故障排查和相应的调试,以更好地掌握和分析系统运行情况。
步骤S70,所述控制模块向所述子处理模块发送结果获取指令,基于所述结果获取指令获取所述预设操作结果。
应当理解的是,子处理模块接收到控制模块发送的同步脉冲后,预设操作指令对应的进程或线程的操作状态将由就绪转变为中断,当接收到端模块发送的预设操作结果后,原进程或线程的操作状态将恢复为就绪,当控制模块检测到各个子处理模块的进程或线程的操作状态为就绪时,将向子处理模块发送结果获取指令,基于结果获取指令获取预设操作结果。
本实施例通过控制模块向子处理模块发送一条或多条预设操作指令,子处理模块接收控制模块发送的预设操作指令,控制模块向子处理模块发送同步脉冲,子处理模块响应同步脉冲,向端模块发送预设操作指令实现了指令收发同步;通过端模块接收子处理模块发送的预设操作指令,并执行预设操作指令,得到预设操作结果,并向子处理模块发送预设操作结果,子处理模块接收端模块发送的预设操作结果,并将预设操作结果缓存在内部存储中,控制模块向子处理模块发送结果获取指令,基于结果获取指令获取预设操作结果,实现了指令操作结果读写同步。通过在控制模块与一个或多个端模块中增加对应连接的子处理模块,降低了控制模块的负载,使终端设备的控制单元更专注于业务处理以提升整体性能,进而实现低成本地进行数据同步,降低了数据同步过程中对硬件性能及成本上的要求。
基于本申请数据同步方法第一实施例,提出本申请数据同步方法的第二实施例,在本申请数据同步方法第二种实施例中,与上述数据同步方法实施例一相同或相似的内容,可以参考上文介绍,后续不再赘述。在此基础上,请参照图6,图6为本申请数据同步方法第二实施例的流程示意图。
在本实施例中,所述控制模块与所述子处理模块之间建立有两个交互通道,分别为指令收发通道和信号同步通道;步骤S10还包括步骤S11,步骤S30还包括步骤S31:
步骤S11,所述控制模块通过所述指令收发通道向所述子处理模块广播发送预设操作指令;
需要说明的是,指令收发通道为可以进行多主控制的通信端口,控制模块可以通过主控芯片上引出的通信端口与一个或多个子处理模块进行连接,通信端口具体可以为串行通信端口如RS-485和CAN等。信号同步通道用于发送同步信号,与指令收发通道协同工作,以保证指令收发同步和数据读写同步。
应当理解的是,当接收到来自用户的操作请求后,控制模块会基于用户的操作请求生成预设操作指令,并将这些操作指令广播给各个子处理模块,以使子处理模块能同时收到预设操作指令。当预设操作指令被执行后,控制模块也将通过指令收发通道取回执行的结果。
步骤S31,所述控制模块通过所述信号同步通道向所述子处理模块发送同步脉冲。
应当理解的是,控制模块发出预设操作指令,子处理模块接收到预设操作指令后将进入就绪,控制模块需要向子处理模块发送同步脉冲触发中断,以使子处理模块向对应连接的端模块发送预设操作指令。
在具体实施中,硬件架构图可以如图4所示,控制模块对应主控CPU,子处理模块对应单片机,端模块对应端设备,指令收发通道以CAN信号(CAN-H和CAN-L)形式传输预设操作指令和预设操作结果,信号同步通道以SYNC信号形式传输同步脉冲。当需要采集数据时,需要在初始化时设定好各个单片机所接的端设备地址与类型,主控CPU将通过CAN总线以广播方式将数据采集指令(即预设操作指令)发到各个单片机,所有单片机数据采集指令就绪后,主控CPU通过SYNC通道发出同步脉冲,同步脉冲将触发单片机中断,以使单片机将数据采集指令发送到端设备。单片机将接收到的端设备返回的数据采集结果缓存在内部存储中,将操作状态由中断修改为就绪。主控CPU检查各单片机操作状态就绪后,将所有数据采集结果通过CAN总线取回,从而完成一次数据同步操作。在这个过程中端设备的慢速读写被单片机接管,释放了主控CPU的资源,从而提升整体性能。
本实施例在控制模块和子处理模块之间建立有两个交互通道,即指令收发通道和信号同步通道,控制模块通过指令收发通道向子处理模块广播发送预设操作指令,通过信号同步通道向子处理模块发送同步脉冲,以实现对端模块指令的同步收发与指令操作结果的同步读写,降低了控制单元与端模块的耦合度,减少了硬件之间的直接依赖关系,有利于系统的后续维护与设备的扩展。
需要说明的是,上述示例仅用于理解本申请,并不构成对本申请数据同步方法的限定,基于此技术构思进行更多形式的简单变换,均在本申请的保护范围内。
以上所述仅为本申请的部分实施例,并非因此限制本申请的专利范围,凡是在本申请的技术构思下,利用本申请说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本申请的专利保护范围内。
Claims (10)
1.一种数据同步系统,其特征在于,所述数据同步系统包括:控制模块、至少一个子处理模块以及端模块,控制模块与至少一个子处理模块连接,子处理模块与对应的端模块连接;
所述控制模块,用于向所述子处理模块发送预设操作指令,其中,所述预设操作指令可以为一条也可以为多条;
所述子处理模块,用于接收所述控制模块发送的所述预设操作指令;
所述控制模块,还用于向所述子处理模块发送同步脉冲;
所述子处理模块,还用于响应所述同步脉冲,向所述端模块发送所述预设操作指令;
所述端模块,用于接收所述子处理模块发送的所述预设操作指令,并执行所述预设操作指令,得到预设操作结果,并向所述子处理模块发送所述预设操作结果;
所述子处理模块,还用于接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中;
所述控制模块,还用于向所述子处理模块发送结果获取指令,基于所述结果获取指令获取所述预设操作结果。
2.如权利要求1所述的系统,其特征在于,所述子处理模块,还用于在所接受到所述预设操作指令为一条时,为单条所述预设操作指令分配对应的线程或进程;
所述子处理模块,还用于在所接受到所述预设操作指令 为多条时,基于多条所述预设操作指令建立预设指令队列,为所述预设指令队列分配对应的线程或进程。
3.如权利要求1所述的系统,其特征在于,所述控制模块与所述子处理模块之间建立有两个交互通道,分别为指令收发通道和信号同步通道;
所述指令收发通道,用于所述控制模块向所述子处理模块广播发送预设操作指令;
所述信号同步通道,用于所述控制模块向所述子处理模块发送同步脉冲。
4.如权利要求1所述的系统,其特征在于,所述控制模块,还用于对所有所述子处理模块接收的所述预设操作指令的操作状态进行遍历;
所述控制模块,还用于在检测到所有所述子处理模块接收的所述预设操作指令的操作状态为就绪时,向所有所述子处理模块发送所述同步脉冲,以使所述预设操作指令的操作状态转变为中断。
5.如权利要求1所述的系统,其特征在于,所述子处理模块,还用于接收所述端模块发送的所述预设操作结果,并记录接收所述预设操作结果的时标,将携带有时标的所述预设操作结果缓存在内部存储中。
6.一种数据同步方法,其特征在于,所述数据同步方法应用于数据同步系统,所述数据同步系统包括:控制模块、与控制模块连接的至少一个子处理模块以及与子处理模块对应的端模块;所述数据同步方法包括:
所述控制模块向所述子处理模块发送预设操作指令,其中,所述预设操作指令可以为一条也可以为多条;
所述子处理模块接收所述控制模块发送的所述预设操作指令;
所述控制模块向所述子处理模块发送同步脉冲;
所述子处理模块响应所述同步脉冲,向所述端模块发送所述预设操作指令;
所述端模块接收所述子处理模块发送的所述预设操作指令,并执行所述预设操作指令,得到预设操作结果,并向所述子处理模块发送所述预设操作结果;
所述子处理模块接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中;
所述控制模块向所述子处理模块发送结果获取指令,基于所述结果获取指令获取所述预设操作结果。
7.如权利要求6所述的方法,其特征在于,所述子处理模块接收所述控制模块发送的所述预设操作指令之后,还包括:
所述子处理模块在所接受到所述预设操作指令为一条时,为单条所述预设操作指令分配对应的线程或进程;
所述子处理模块在所接受到所述预设操作指令为多条时,基于多条所述预设操作指令建立预设指令队列,为所述预设指令队列分配对应的线程或进程。
8.如权利要求6所述的方法,其特征在于,所述控制模块与所述子处理模块之间建立有两个交互通道,分别为指令收发通道和信号同步通道;
所述控制模块向所述子处理模块发送预设操作指令,包括:所述控制模块通过所述指令收发通道向所述子处理模块广播发送预设操作指令;
所述控制模块向所述子处理模块发送同步脉冲,包括:所述控制模块通过所述信号同步通道向所述子处理模块发送同步脉冲。
9.如权利要求6所述的方法,其特征在于,所述控制模块向所述子处理模块发送同步脉冲的步骤,还包括:
所述控制模块对所有所述子处理模块接收的所述预设操作指令的操作状态进行遍历;
所述控制模块在检测到所有所述子处理模块接收的所述预设操作指令的操作状态为就绪时,向所有所述子处理模块发送所述同步脉冲,以使所述预设操作指令的操作状态转变为中断。
10.如权利要求6所述的方法,其特征在于,所述子处理模块接收所述端模块发送的所述预设操作结果,并将所述预设操作结果缓存在内部存储中,包括:
所述子处理模块接收所述端模块发送的所述预设操作结果,并记录接收所述预设操作结果的时标,将携带有时标的所述预设操作结果缓存在内部存储中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410937417.4A CN118963934A (zh) | 2024-07-12 | 2024-07-12 | 数据同步系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410937417.4A CN118963934A (zh) | 2024-07-12 | 2024-07-12 | 数据同步系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118963934A true CN118963934A (zh) | 2024-11-15 |
Family
ID=93398835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410937417.4A Pending CN118963934A (zh) | 2024-07-12 | 2024-07-12 | 数据同步系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118963934A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111279637A (zh) * | 2018-11-27 | 2020-06-12 | 深圳市大疆创新科技有限公司 | 一种信息同步方法、无人机、负载设备、系统及存储介质 |
CN114422287A (zh) * | 2021-12-09 | 2022-04-29 | 福建星云电子股份有限公司 | 一种微秒级充放电同步控制方法及系统 |
CN114460355A (zh) * | 2021-12-23 | 2022-05-10 | 国网江苏省电力有限公司电力科学研究院 | 一种基于低功耗无线接入节点的避雷器感知终端 |
CN116208282A (zh) * | 2023-02-24 | 2023-06-02 | 成都中安频谱科技有限公司 | 一种阵列接收机多路ddc同步采集输出系统及实现方法 |
US20230222018A1 (en) * | 2020-08-28 | 2023-07-13 | Huawei Technologies Co., Ltd. | Data Transmission Method and System |
-
2024
- 2024-07-12 CN CN202410937417.4A patent/CN118963934A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111279637A (zh) * | 2018-11-27 | 2020-06-12 | 深圳市大疆创新科技有限公司 | 一种信息同步方法、无人机、负载设备、系统及存储介质 |
US20230222018A1 (en) * | 2020-08-28 | 2023-07-13 | Huawei Technologies Co., Ltd. | Data Transmission Method and System |
CN114422287A (zh) * | 2021-12-09 | 2022-04-29 | 福建星云电子股份有限公司 | 一种微秒级充放电同步控制方法及系统 |
CN114460355A (zh) * | 2021-12-23 | 2022-05-10 | 国网江苏省电力有限公司电力科学研究院 | 一种基于低功耗无线接入节点的避雷器感知终端 |
CN116208282A (zh) * | 2023-02-24 | 2023-06-02 | 成都中安频谱科技有限公司 | 一种阵列接收机多路ddc同步采集输出系统及实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277672A (zh) | 一种基于非阻塞输入输出模型的能源物联网数据采集方法和软件网关 | |
CN109951559A (zh) | 定时任务配置方法、服务器、系统和计算机可读存储介质 | |
US20070050774A1 (en) | Time-aware systems | |
CN111431757B (zh) | 虚拟网络的流量采集方法及装置 | |
CN111970195B (zh) | 数据传输方法和流式数据传输系统 | |
CN111580995A (zh) | 基于mqtt异步通信场景下的分布式云平台与物联网智能终端的同步通信方法与系统 | |
CN102438010B (zh) | 用于流送数据剖析的方法和装置 | |
CN111488271B (zh) | 消息中间件的调优方法、系统、电子设备及存储介质 | |
CN103034581B (zh) | 一种嵌入式系统跟踪调试方法及装置 | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
CN112000659B (zh) | 一种适用于配电台区智能终端设备的基础应用系统 | |
CN118963934A (zh) | 数据同步系统及方法 | |
CN111581136A (zh) | 一种dma控制器及其实现方法 | |
CN113328927B (zh) | 一种具有计算、存储和网络交换功能的工业物联网网关 | |
CN108337285B (zh) | 一种通信系统及通信方法 | |
CN109462504A (zh) | 一种通用Agent管控的系统 | |
US20040199902A1 (en) | Method and apparatus for performing bus tracing with scalable bandwidth in a data processing system having a distributed memory | |
CN110362347B (zh) | 一种实时优先级多通道处理器及控制方法 | |
EP4525404A1 (en) | Streaming media data processing method and system | |
CN116340111A (zh) | 一种Linux套接字监听事件监控方法及装置 | |
CN114513381B (zh) | 基于af_xdp的实时以太网现场总线数据包处理方法 | |
CN105991585A (zh) | 一种无线通信实现方法及系统 | |
CN109558254A (zh) | 异步回调方法、系统、装置及计算机可读存储介质 | |
CN108011751B (zh) | 一种机载FlexRay通信接口装置与方法 | |
CN113722064B (zh) | 一种基于信息牌模式的视频编解码多通道响应系统 |
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 |