CN101577599B - 一种嵌入式双机同步方法 - Google Patents

一种嵌入式双机同步方法 Download PDF

Info

Publication number
CN101577599B
CN101577599B CN 200810027948 CN200810027948A CN101577599B CN 101577599 B CN101577599 B CN 101577599B CN 200810027948 CN200810027948 CN 200810027948 CN 200810027948 A CN200810027948 A CN 200810027948A CN 101577599 B CN101577599 B CN 101577599B
Authority
CN
China
Prior art keywords
slave
data
key information
frame
main frame
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.)
Active
Application number
CN 200810027948
Other languages
English (en)
Other versions
CN101577599A (zh
Inventor
刘怀广
胡胜发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Ankai Microelectronics Co.,Ltd.
Original Assignee
Anyka Guangzhou Microelectronics Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anyka Guangzhou Microelectronics Technology Co Ltd filed Critical Anyka Guangzhou Microelectronics Technology Co Ltd
Priority to CN 200810027948 priority Critical patent/CN101577599B/zh
Publication of CN101577599A publication Critical patent/CN101577599A/zh
Application granted granted Critical
Publication of CN101577599B publication Critical patent/CN101577599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种嵌入式双机同步方法,主机系统根据定时器所控制的时间分片来决定应用程序何时获得系统运行时间,根据当前的运行状态以及按键信息,整理成帧数据,并发送到从机;从机应用始终处于一种循环等待的状态,等到来自主机的同步信号后,才开始执行真正的处理。本发明优点在于:无需修改应用,即可实现双机同步;同时可以为没有网络同步功能的应用增加双向同步或单向同步的功能;网络无关性,不需要固定具体传输协议。而系统层则可以选择任何适合的数据传输方式;数据传输量小,可以大大的降低对网络带宽的要求;可移植性和可复用性强,使用本发明可以对现有的任何系统在简单修改下,实现双机同步的功能。

Description

一种嵌入式双机同步方法
技术领域
本发明涉及一种嵌入式双机同步方法。
背景技术
网络的出现,极大的改变了人们的生活方式,从工作、学习到休闲娱乐,处处都可以见到网络的身影。从早期的低速有线网络,到现今的高速无线网络,网络应用的普及度越来越高,人们对网络应用的依赖程度同样也变得越来越高。我们经常使用的办公用的NetMeeting,网络管理用的Symantec pcAnywhere,休闲娱乐用的WinKawaks等等都是很好的代表。
这些优秀的应用软件均是基于C/S(客户端/服务器)架构和TCP/IP(传输控制协议/互联网协议)实现的。在这种模式下,应用程序虽然可以利用系统提供的各种网络接口,但是监听、建立连接、传输数据、数据同步和数据纠错等的工作都必须由应用软件自身来处理。这就使得基于这种模式开发的应用程序存在以下几点不足:
1)各种应用实现的网络功能不具备通用性。因为各种应用程序按照自己的需求来实现各自私有的网络协议,所以各种应用程序之间是无法利用其它应用的现有成果的,只能自己再开发一套。
2)开发周期长。由于第一点所述的不足,直接导致了大量的重复工作。每开发一个新的应用,开发人员均需要实现一套可行的网络传输方案,增加了开发周期和开发成本。
3)跨平台性差。因为没有统一的系统平台,以及各个平台之间的差异,开发人员往往需要做部分的移植工作,才能使应用程序在相应的平台上正常运行。
4)数据传输量较大。以Symantec pcAnywhere为例,其传输的数据是打包后的屏幕数据,而非用户的操作命令。类似的应用将无法在带宽和处理能力都很有限的嵌入式设备上正常运行。
5)对TCP/IP网络依赖度高。上面所述的各种网络应用都依赖于TCP/IP网络,而嵌入式设备往往没有固定的网络连接,当两个设备需要进行连接的时候,也许一条USB线就足够了,所以底层协议无关性对嵌入式设备来说更有意义。
发明内容
本发明的目的是提供一种无需修改应用程序,且不受具体网络传输方式影响的嵌入式双机同步方法,该方法具有通用性,可以方便地扩展到其他应用平台。
本发明的目的可以采用以下方案实现,一种嵌入式双机同步方法,
对于主机,系统根据定时器所控制的时间分片来决定应用程序何时获得系统运行时间;当应用程序获得运行权的时候,会从按键信息队列中获取相应的按键信息,根据当前的运行状态以及按键信息,整理成帧数据,并保存在主机队列缓冲区中,准备发送;同时将已经获得的按键信息传递给应用程序,并执行;
对于从机,应用始终处于一种循环等待的状态,等到来自主机的同步信号后,才开始执行真正的处理;当从机获得同步信号后,将在从机队列缓冲区中获取按键信息,将其传递给从机的应用程序,并执行;然后继续等待下一个同步信号;从机接收帧数据的部分为中断触发式,当有网络数据到达时,该函数将被触发;如果接收到的数据正确,则将其处理后保存在从机队列缓冲区中。
本发明当双向同步时,主机端的接收部分由中断触发,当有网络数据到达的时候,会自动调用相关的函数来接收按键信息,并将其保存在按键信息队列中,供以后调用;
本发明当单向同步时,主机端不需要设置接受远程的中断处理。
本发明中从机的按键信息发送部分由一个定时器控制,定时的将从机的按键信息发送给主机。
为了保证双机同步数据的准确性,本发明同步过程的传输的数据中,每帧数据都会有一个唯一的帧编号,从机通过检查连续接收到的两个帧编号是否连续来判断;若两个连续收到的帧编号不是连续的,即判断出现掉包,并要求主机重发相应数据包。
本发明从机除了检查是否出现掉包外,还会检查数据包中是否包含错误数据,若包含了错误数据,则要求主机重发相应数据包。
本发明若主机的发送队列中存在从机所请求的数据,则直接发送相应的数据包给从机,而无需中断当前的程序处理,而当从机请求的数据在主机上已经不存在的时候,则需要暂停主机程序的运行,并将现有的状态传送给从机,进行重新同步。
本发明如果从机正常接收,并且校验正确,则不会返回任何信息,亦即没有确认帧,这样做主要是为了节约带宽。
本发明相对现有技术的优点在于:
1)由于所有的修改均在系统层实现,所以无需修改应用,即可实现双机同步,大大减少了应用程序的开发周期和应用程序复杂度。同时可以为没有网络同步功能的应用增加双向同步或单向同步的功能;
2)网络无关性,由于同步机制实现在系统层,所以对于应用程序来讲,并不需要过多的关心该使用什么样的传输协议,也无需关心具体的同步,就好像使用本地应用一样。而系统层则可以选择任何适合的数据传输方式,如:TCP/IP、串口、并口、USB、红外等;
3)数据传输量小,因为传输的仅仅是同步信息,并不需要传输类似全屏图片一样的数据,所以可以大大的降低对网络带宽的要求。即便是在苛刻的网络条件下,也能有较好的执行效果。
4)可移植性和可复用性强,使用本发明可以对现有的任何系统在简单修改下,实现双机同步的功能。
附图说明
图1是本发明的单机系统应用模型;
图2是本发明的同步双机系统应用模型;
图3是本发明的单机系统应用流程图;
图4是本发明的双机系统应用流程图;
图5是本发明的双机双向同步流程图;
图6是本发明的FCSIM的应用实例流程图;
图7是本发明的双机单向同步流程图;
图8是本发明的DEMO的应用实例流程图;
具体实施方式
如图1、2所示,应用系统为整个系统环境,用于实现各个程序之间的调度,以及时间分片。应用程序本身相对独立,每个应用程序从输入设备中获得数据,处理后输出数据,比如刷新到LCD或写入文件等。
为了实现双机同步,需要修改系统中对于每个应用程序的时间分片,以使其能够在双机间保持同步。此外,还要将两台设备之间输入的信息互相传递,所以也需要修改输入设备部分的代码。由于系统平台提供给每个应用程序的输入接口和输出接口是一致的,所以对底层代码的修改,对应用程序来说,是完全透明的。
要实现双机同步,只需要修改应用系统层对于应用程序的时间控制,同时对原来的输入函数进行封装,即可实现。
如图3、4所示,单机系统与双机系统的主要区别就在于时间分片的控制(同步信息的控制),和对底层部分键盘输入的简单修改。
单机系统调用时,其系统的C代码框架大致如下:
while(TRUE)
{
   //System Pre-Process
   system_preproc();
   //User program
   user_program();
   //System Post-Process
   system_postproc();
}
while循环不停地执行,进行系统的前处理和后处理,在此中间调用用户程序。
假设应用程序调用的输入接口函数名为getInput,则一个双机同步系统的C代码框架大致如下:
while(TRUE)
{
   //System Pre-Process
   system_preproc();
   //Sync
   system_sync();
   if(bSync)
   {
      //User program
      user_program();
    }
    //System Post-Process
    system_postproc();
}
输入函数的C代码大致如下:
getInputEx()
{
   //Get local input
   getInput();
   //Get remote input
   getRemoteInput();
}
上面第一段代码与单机系统的区别在于多了一个同步处理的过程,bSync是一个标志位,表示是否已经同步。当其值为真的时候,则表示双机已经同步成功,则执行相应的时间分片,实现双机同步。第二段代码则描述了对于按键响应的改变,新的getInputEx将可以获得从远程网络发送过来的按键信息和本地得到的按键信息,再根据主机和从机的区别,映射不同的按键。只需要在系统层将所有的getInput替换为getInputEx,即可实现无缝替换。
但要真正实现双机同步,仅仅依靠以上的修改点还是不够的,还需要在真正执行双机应用程序之前,建立好网络连接。至于网络连接,则可以利用任何现有网络来实现,比如TCP/IP、串口、并口等等。
至于网络传输协议,各个设备可以根据自身的情况来选择,没有强制性要求,但是联机的两个设备必须支持同一种协议,并且在传输速率上保持一致。在系统层上实现一个硬件抽象层,则可以更好的兼顾可移植性。
具体的步骤包括:
1)在主机上创建监听服务,等待其他设备接入;
2)从机通过设备可支持的网络,如TCP/IP、串口、并口连接到主机;
3)双机连接后,由系统控制开始同步执行相同的程序;
4)执行同步数据的工作;
5)处理程序本身的应用逻辑;
6)输出处理结果;
7)检查是否结束程序;
8)若步骤7中返回的结果为否,则返回步骤4;
9)若步骤7中返回的结果为是,则退出程序,系统接管;
10)断开相应的网络连接。
其中上述步骤4的同步过程包括:
1)发送并接收远程主机或客户端的数据;
2)检测数据是否正确;
3)若步骤2中返回的值为否,则返回步骤1;
4)若步骤2中返回的值为是,继续处理同步流程;
5)检查是否获得正确的同步信息;
6)若步骤5中返回的值为否,则返回步骤1;
7)若步骤5中返回的值为是,则程序处理本身的逻辑应用,完成同步。
实施例1:
FCSIM的同步应用,如图5、6所示,对于主机,系统根据定时器所控制的时间分片来决定FCSIM何时获得系统运行时间。当FCSIM获得运行权的时候,会从按键信息队列中获取相应的按键信息。根据当前的运行状态以及按键信息,整理成帧数据,并保存在主机队列缓冲区中,准备发送。同时将已经获得的按键信息传递给FCSIM应用程序,并执行。主机端的接收部分主要由中断触发,当有网络数据到达的时候,会自动调用相关的函数来接收按键信息,并将其保存在按键信息队列中,供以后调用。
对于从机,应用始终处于一种循环等待的状态,等到来自主机的同步信号后,才开始执行真正的处理。当从机获得同步信号后,将在从机队列缓冲区中获取按键信息,将其传递给从机的FCSIM应用,并执行。然后继续等待下一个同步信号。从机接收帧数据的部分与主机类似,也是中断触发式的,当有网络数据到达时,该函数将被触发。如果接收到的数据正确,则将其处理后保存在从机队列缓冲区中,如果数据错误则通知主机进行数据重传。从机的按键信息发送部分由一个定时器控制,定时的将从机的按键信息发送给主机。
为了保证双机同步数据的准确性,同步过程的传输的数据中,每帧数据都会有一个唯一的帧编号,从机通过检查连续接收到的两个帧编号是否连续来判断;若两个连续收到的帧编号不是连续的,即判断出现掉包,并要求主机重发相应数据包。从机除了检查是否出现掉包外,还会检查数据包中是否包含错误数据,若包含了错误数据,则要求主机重发相应数据包。
若主机的发送队列中存在从机所请求的数据,则直接发送相应的数据包给从机,而无需中断当前的程序处理,而当从机请求的数据在主机上已经不存在的时候,则需要暂停主机程序的运行,并将现有的状态传送给从机,进行重新同步。
如果从机正常接收,并且校验正确,则不会返回任何信息,亦即没有确认帧,这样做主要是为了节约带宽。
实施例2:
DEMO应用,如图7,8所示。对于主机,系统根据定时器所控制的时间分片来决定DEMO何时获得系统运行时间。当DEMO获得运行权的时候,会从按键信息队列中获取相应的按键信息。根据当前的运行状态以及按键信息,整理成帧数据,并保存在主机队列缓冲区中,准备发送。同时将已经获得的按键信息传递给DEMO应用程序,并执行。因为是单向同步,所以主机端不需要设置接受远程的中断处理。
对于从机,应用始终处于一种循环等待的状态,等到来自主机的同步信号后,才开始执行真正的处理。当从机获得同步信号后,将在从机队列缓冲区中获取按键信息,将其传递给从机的DEMO应用,并执行。然后继续等待下一个同步信号。从机接收帧数据的部分为中断触发式,当有网络数据到达时,该函数将被触发。如果接收到的数据正确,则将其处理后保存在从机队列缓冲区中,如果数据错误则通知主机进行数据重传。
上述两种实例的应用方向:
1)双向同步:主要应用在交互性较强的情况。比如聊天室应用,手机游戏对战等情况;
2)单向同步:主要用于演示性质的情况。比如远程协助,远程教学,远程演示等。

Claims (7)

1.一种嵌入式双机同步方法,其特征在于:
对于主机,系统根据定时器所控制的时间分片来决定应用程序何时获得系统运行时间;当应用程序获得运行权的时候,会从按键信息队列中获取相应的按键信息,根据当前的运行状态以及按键信息,整理成帧数据,并保存在主机队列缓冲区中,准备发送;同时将已经获得的按键信息传递给应用程序,并执行;
对于从机,应用始终处于一种循环等待的状态,等到来自主机的同步信号后,才开始执行真正的处理;当从机获得同步信号后,将在从机队列缓冲区中获取按键信息,将其传递给从机的应用程序,并执行;然后继续等待下一个同步信号;从机接收帧数据的部分为中断触发式,当有网络数据到达时,相关函数将被触发;如果接收到的数据正确,则将其处理后保存在从机队列缓冲区中。
2.根据权利要求1所述的嵌入式双机同步方法,其特征在于:当双向同步时,主机端的接收部分设置中断触发,当有网络数据到达的时候,会自动调用相关的函数来接收按键信息,并将其保存在按键信息队列中,供以后调用。
3.根据权利要求1所述的嵌入式双机同步方法,其特征在于:从机的按键信息发送部分由一个定时器控制,定时的将从机的按键信息发送给主机。
4.根据权利要求1或2所述的嵌入式双机同步方法,其特征在于:所述从机接收的帧数据中,每帧数据都会有一个唯一的帧编号,从机通过检查连续接收到的两个帧编号是否连续来判断;若两个连续收到的帧编号不是连续的,即判断出现掉包,并要求主机重发相应数据包。
5.根据权利要求4所述的嵌入式双机同步方法,其特征在于:从机除了检查是否出现掉包外,还会检查数据包中是否包含错误数据,若包含了错误数据,则要求主机重发相应数据包。
6.根据权利要求1所述的嵌入式双机同步方法,其特征在于:若主机的发送队列中存在从机所请求的数据,则直接发送相应的数据包给从机,而无需中断当前的程序处理,而当从机请求的数据在主机上已经不存在的时候,则需要暂停主机程序的运行,并将现有的状态传送给从机,进行重新同步。
7.根据权利要求1所述的嵌入式双机同步方法,其特征在于:如果从机正常接收,并且校验正确,则不会返回任何信息,亦即没有确认帧。
CN 200810027948 2008-05-07 2008-05-07 一种嵌入式双机同步方法 Active CN101577599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810027948 CN101577599B (zh) 2008-05-07 2008-05-07 一种嵌入式双机同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810027948 CN101577599B (zh) 2008-05-07 2008-05-07 一种嵌入式双机同步方法

Publications (2)

Publication Number Publication Date
CN101577599A CN101577599A (zh) 2009-11-11
CN101577599B true CN101577599B (zh) 2012-05-30

Family

ID=41272399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810027948 Active CN101577599B (zh) 2008-05-07 2008-05-07 一种嵌入式双机同步方法

Country Status (1)

Country Link
CN (1) CN101577599B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102857383A (zh) * 2011-06-28 2013-01-02 鸿富锦精密工业(深圳)有限公司 同步测试控制方法及系统
CN105634460B (zh) * 2014-11-07 2020-03-06 宁波舜宇光电信息有限公司 一种对输入脉冲的主动学习与同步的方法及其系统
CN106358051B (zh) * 2015-07-14 2019-06-11 安富科技股份有限公司 应用于多媒体同步播放中数据校正的方法
CN111813859A (zh) * 2020-07-14 2020-10-23 积成电子股份有限公司 一种基于时间片段的变电站历史事项主辅双机同步方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506868A (zh) * 2002-12-10 2004-06-23 联想(北京)有限公司 利用计算机网络远程控制异地计算机的方法
CN101166278A (zh) * 2006-10-20 2008-04-23 黑龙江大学 网络交互环境下视频、音频、控制同步的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506868A (zh) * 2002-12-10 2004-06-23 联想(北京)有限公司 利用计算机网络远程控制异地计算机的方法
CN101166278A (zh) * 2006-10-20 2008-04-23 黑龙江大学 网络交互环境下视频、音频、控制同步的方法

Also Published As

Publication number Publication date
CN101577599A (zh) 2009-11-11

Similar Documents

Publication Publication Date Title
CN103336724B (zh) 用于Flash应用程序的具有分布式对象的集成硬件平台的系统和方法
CN104023050B (zh) 一种设备云环境下设备协同多屏互动系统及其方法
CN103116520A (zh) 基于tcp/ udp的远程过程调用rpc的方法
CN105850097A (zh) 用于无线扩展坞的无线带宽的高效使用的远程渲染
CN106445705A (zh) 基于RabbitMQ和Socket.io的平台级联方法和系统
CN102622262B (zh) 基于modelica建模语言的分布式实时交互仿真系统
JPH10240602A (ja) ダウンロード方法およびコンピュータ
CN204759403U (zh) 一种基于数据透传实现设备内部模块升级的系统
CN101577599B (zh) 一种嵌入式双机同步方法
CN107071551A (zh) 应用于智能电视系统中的多屏互动屏幕响应方法
CN103150201A (zh) 电子装置、以及用户与服务器启动的会话控制方法
CN102016826A (zh) 多用户网络浏览环境提供系统及其控制方法
CN103312814A (zh) 云管理平台和虚拟机终端用户间vnc隐通道的建立方法
CN101385015B (zh) 外壳会话
Newman et al. User interfaces when and where they are needed: an infrastructure for recombinant computing
CN102902620A (zh) 基于gdb的异构计算调试环境的实现系统
CN101155174B (zh) 基于共用协议的远程用户界面服务实现方法
KR20230079348A (ko) 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체
CN104331372B (zh) 一种对应用程序进行远程问题定位的方法及装置
CN110083466A (zh) 一种小程序的数据传输方法和装置
CN102760114A (zh) 多处理器系统的通信仿真方法、引擎及系统
KR100827925B1 (ko) 유비쿼터스 환경에서 애플리케이션의 분산 및 이동성을위한 애플리케이션 프레임워크 시스템
CN102710760B (zh) 一种嵌入式网络终端同步配置方法及设备
CN110290206B (zh) 一种用于网吧环境的分布式计算系统及方法
CN109698974B (zh) 一种显示进度的方法、装置、电子设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 510663 no.301-303, 401-402, area C1, No.182, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 510663 no.301-303, 401-402, area C1, No.182, Science City, Guangzhou hi tech Industrial Development Zone, Guangzhou City, Guangdong Province

Patentee before: ANYKA (GUANGZHOU) MICROELECTRONICS TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 510555 No. 107 Bowen Road, Huangpu District, Guangzhou, Guangdong

Patentee after: Guangzhou Ankai Microelectronics Co.,Ltd.

Address before: 301-303, 401-402, zone C1, No. 182, science Avenue, Science City, Guangzhou high tech Industrial Development Zone

Patentee before: Guangzhou Ankai Microelectronics Co.,Ltd.