一种多CPU同步系统状态的方法及工控机技术方案

技术编号:38079713 阅读:15 留言:0更新日期:2023-07-06 08:47
本申请提供了一种多CPU同步系统状态的方法及工控机,其中方法包括:各个CPU之间通过串口进行通信,指定CPU在加载FPGA逻辑后发送信号给其他CPU,其他CPU返回接收成功信号。各个CPU之间通过串口进行通信实现在FPGA加载完成后的同步,协议简单、占用资源少,不需要额外的转换设备。在同步过程中,指定CPU和其他CPU两次握手,增加了数据传递的可靠性。增加了数据传递的可靠性。增加了数据传递的可靠性。

【技术实现步骤摘要】
一种多CPU同步系统状态的方法及工控机


[0001]本专利技术涉及多CPU同步技术,尤其涉及一种多CPU同步系统状态的方法及工控机。

技术介绍

[0002]随着现代各种技术的发展,新应用的不断出现,工控机也在不断的进行升级,其特点也越来越多,越来越丰富,出现了单台工控机同时搭载多个CPU的机型,来满足客户在一些特定环境下的使用。
[0003]随着计算机行业的高速发展,为满足客户的各种需求,CPU和外设的搭配也更多样化,其中CPU+FPGA的设计方案被越来越多的客户所喜爱。
[0004]FPGA(Field

Programmable Gate Array)即现场可编程门阵列,是一种可编程的逻辑器件,以并行运算为主,以硬件描述语言来实现,通常用于在硬件级别上实现特定的功能。FPGA工程师们可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里,可以按照设计者而改变。与专用电路相比,FPGA具有更高的灵活性,因此,FPGA被广泛应用于数字信号处理、高速通信和嵌入式系统等领域。
[0005]然而,专利技术人发现,当有多个CPU时,第一个CUP进入系统后会通过SPI总线加载FPGA逻辑,用时大约30s左右,而其他CPU会在第一个CPU加载FPGA逻辑时,直接进入系统各自运行开机启动的应用程序,但这时FPGA还未加载完成,FPGA就不能实现转发功能,会导致应用程序运行时FPGA不能及时转发,应用程序就报错,且不能恢复。
[0006]现有技术中,CPU通常通过CPU socket与主板连接,CPU socket是指中央处理器(CPU)插座,它是安装在主板上的一个接口。CPU socket通常包括数百个小针脚,这些针脚是CPU和主板之间的物理连接点,它们允许电信号在两个设备之间传递。不同的CPU需要不同类型的CPU socket,必须选择与主板兼容的CPU socket,同时主板也需要额外的硬件去连接这些CPU socket到RAM和一些其它的资源。这其中涉及的协议复杂,如果CPU之间需要彼此通信同步,需要占用较多内存和CPU性能资源,会造成很大的系统开销。

技术实现思路

[0007]本专利技术的目的在于提供一种多CPU同步系统状态的方法,各个CPU之间通过串口通信,实现多个CPU进入系统后执行状态的同步,并且协议简单、资源占用少。
[0008]本专利技术的另一目的在于提供一种基于上述方法的多CPU工控机。
[0009]以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
[0010]根据本专利技术的一方面,提供了一种多CPU同步系统状态的方法,包括以下步骤:
[0011]步骤1、获取系统启动参数中的boardid值,并根据不同的boardid值设置不同的GPIO和CPU名称;
[0012]步骤2、如果当前CPU是指定CPU,则配置串口参数,加载FPGA逻辑,并通过串口循环发送FPGA加载完成信号到其他CPU,同时等待接收到它们发送的接收成功信号,如果收到其他CPU发送的接收成功信号,则退出循环;
[0013]步骤3、如果当前CPU不是指定CPU,则配置串口参数,然后循环检查接收到的字符串是否包含FPGA加载完成信号,如果包含,则打印相应的提示信息,然后通过串口循环发送接收成功信号到串口,最后结束进程;如果未接收到FPGA加载完成信号超过预设等待时间,则打印相应的提示信息并结束进程。
[0014]在一实施例中,所述步骤3中的预设等待时间为50s~60s。
[0015]在一实施例中,所述步骤3中循环发送接收成功信号到串口具体为:每隔100ms发送一次接收成功信号,共发送10次。
[0016]在一实施例中,所述boardid值通过在处理器监控程序中检测CPU上2个固定GPIO口的电平值来计算得出。
[0017]根据本专利技术的第二方面,提供了一种与其他CPU同步系统状态的方法,由指定CPU执行,包括以下步骤:
[0018]a.加载FPGA;
[0019]b.通过串口与其他CPU通信,发送FPGA加载完成信号;
[0020]c.接收其他CPU发送的接收成功信号;
[0021]d.根据接收成功信号判断其他CPU是否已经接收到FPGA加载完成信号;
[0022]e.如果其他CPU已经全部接收到FPGA加载完成信号,则完成同步。
[0023]根据本专利技术的第三方面,提供了一种多CPU工控机,包括多个CPU和一个FPGA,各个CPU之间通过串口连接,其中一个CPU为指定CPU;
[0024]指定CPU通过SPI总线与FPGA通信,其他非指定CPU通过RGMII接口与FPGA通信;
[0025]各个CPU之间通过以下方法实现加载FPGA之后的系统状态同步:
[0026]步骤1、获取系统启动参数中的boardid值,并根据不同的boardid值设置不同的GPIO和CPU名称;
[0027]步骤2、如果当前CPU是指定CPU,则配置串口参数,加载FPGA逻辑,并通过串口循环发送FPGA加载完成信号到其他CPU,同时等待接收到它们发送的接收成功信号,如果收到其他CPU发送的接收成功信号,则退出循环;
[0028]步骤3、如果当前CPU不是指定CPU,则配置串口参数,然后循环检查接收到的字符串是否包含FPGA加载完成信号,如果包含,则打印相应的提示信息,然后通过串口循环发送接收成功信号到串口,最后结束进程;如果未接收到FPGA加载完成信号超过预设等待时间,则打印相应的提示信息并结束进程。
[0029]在一实施例中,所述串口为USART串口,类型为UART。
[0030]本专利技术实施例的有益效果是:各个CPU之间通过串口进行通信实现在FPGA加载完成后的同步协议简单、占用资源少,不需要额外的转换设备。在同步过程中,由指定CPU在加载FPGA逻辑后发送信号给其他CPU,其他CPU返回接收成功信号,通过两次握手增加了数据传递的可靠性。
附图说明
[0031]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0032]在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本专利技术的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
[0033]图1是本申请方法实施例的步骤示意图;
[0034]图2是本申请工本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多CPU同步系统状态的方法,其特征在于,包括以下步骤:步骤1、获取系统启动参数中的boardid值,并根据不同的boardid值设置不同的GPIO和CPU名称;步骤2、如果当前CPU是指定CPU,则配置串口参数,加载FPGA逻辑,并通过串口循环发送FPGA加载完成信号到其他CPU,同时等待接收到它们发送的接收成功信号,如果收到其他CPU发送的接收成功信号,则退出循环;步骤3、如果当前CPU不是指定CPU,则配置串口参数,然后循环检查接收到的字符串是否包含FPGA加载完成信号,如果包含,则打印相应的提示信息,然后循环发送接收成功信号到串口,最后结束进程;如果未接收到FPGA加载完成信号超过预设等待时间,则打印相应的提示信息并结束进程。2.根据权利要求1所述的多CPU同步系统状态的方法,其特征在于,所述步骤3中的预设等待时间为50s~60s。3.根据权利要求1所述的多CPU同步系统状态的方法,其特征在于,所述步骤3中循环发送接收成功信号到串口具体为:每隔100ms发送一次接收成功信号,共发送10次。4.根据权利要求1所述的多CPU同步系统状态的方法,其特征在于,所述boardid值通过在处理器监控程序中检测CPU上2个固定GPIO口的电平值来计算得出。5.一种与其他CPU同步系统状态的方法,由指定CPU执行,其特征在于,包括以下步骤:a.加载FPGA;b.通过串口...

【专利技术属性】
技术研发人员:唐嘉鑫姜巍黎小兵何建伟陈小兵辛大勇
申请(专利权)人:江苏嘉擎信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1