掌桥专利:专业的专利平台
掌桥专利
首页

一种CPLD接收数据的方法、系统、存储介质及设备

文献发布时间:2023-06-19 12:05:39


一种CPLD接收数据的方法、系统、存储介质及设备

技术领域

本发明涉及CPLD技术领域,尤其涉及一种CPLD接收数据的方法、系统、存储介质及设备。

背景技术

现今的服务器系统中,普遍会使用到CPLD,例如主板、风扇板、背板等其中都包含有CPLD,且每一块板子的CPLD都有各自的功能。服务器系统中的每个CPLD通常都会与BMC连接以进行数据交互,现有技术中,为了对数据进行保护通常会使用数据校验,通过CPLD对BMC发送的数据进行校验,当校验结果错误时,便将该数据舍弃。

但上述方法仍然存在不安全因素,如果有外部入侵者想要对该数据进行修改或破坏,可能通过多次尝试来进行破解。因此服务器系统的CPLD仍然存在接收数据不安全的问题。

发明内容

有鉴于此,本发明的目的在于提出一种CPLD接收数据的方法、系统、存储介质及设备,用以解决现有技术中CPLD接收数据不安全的问题。

基于上述目的,本发明提供了一种CPLD接收数据的方法,包括以下步骤:

响应于服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;

响应于CPLD接收到数据,判断接收到的数据是否正确;

响应于接收到的数据有误,清除接收到的数据且将接收错误记录的数值更新为加一,并判断更新后的接收错误记录的数值是否达到预设阈值;

响应于达到预设阈值,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据。

在一些实施例中,方法还包括:响应于接收到的数据正确,CPLD继续接收数据传输介质传输的数据,并将接收错误记录的数值归零。

在一些实施例中,判断接收到的数据是否正确的步骤包括:通过CPLD对接收到的数据中的认证位进行认证以确定其是否正确。

在一些实施例中,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据的步骤包括:通过CPLD关闭其与数据传输介质的连接口以拒绝接收数据传输介质传输的数据。

在一些实施例中,通过数据传输介质向服务器系统的CPLD传输数据的步骤包括:由BMC通过数据传输介质向服务器系统的CPLD传输数据。

在一些实施例中,方法还包括:响应于未达到预设阈值,返回通过数据传输介质向服务器系统的CPLD传输数据的步骤。

在一些实施例中,数据传输介质为I2C总线。

本发明的另一方面,还提供了一种CPLD接收数据的系统,包括:

数据传输模块,配置用于响应于服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;

数据判断模块,配置用于响应于CPLD接收到数据,判断接收到的数据是否正确;

接收错误记录判断模块,配置用于响应于接收到的数据有误,清除接收到的数据且将接收错误记录的数值更新为加一,并判断更新后的接收错误记录的数值是否达到预设阈值;以及

拒绝接收数据模块,配置用于响应于达到预设阈值,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据。

本发明的又一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任意一项方法。

本发明的再一方面,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任意一项方法。

本发明至少具有以下有益技术效果:

本发明通过在CPLD中设置接收错误记录,可以对连续接收到错误数据的次数进行记录;通过判断连续接收到错误数据的次数是否达到预设阈值,当达到预设阈值后阻断CPLD与数据传输介质的连接,可以使CPLD防范外部的不正当数据入侵,从而有效保证CPLD接收数据的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为根据本发明实施例提供的CPLD接收数据的方法的示意图;

图2为根据本发明实施例提供的数据传输介质中传输的一组数据的封装示意图;

图3为根据本发明实施例提供的CPLD接收数据的系统的示意图;

图4为根据本发明实施例提供的实现CPLD接收数据的方法的计算机可读存储介质的示意图;

图5为本发明提供的执行CPLD接收数据的方法的计算机设备的一个实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。

基于上述目的,本发明实施例的第一个方面,提出了一种CPLD接收数据的方法的实施例。图1示出的是本发明提供的CPLD接收数据的方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:

步骤S10、响应于服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;

步骤S20、响应于CPLD接收到数据,判断接收到的数据是否正确;

步骤S30、响应于接收到的数据有误,清除接收到的数据且将接收错误记录的数值更新为加一,并判断更新后的接收错误记录的数值是否达到预设阈值;

步骤S40、响应于达到预设阈值,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据。

CPLD(Complex Programming Logic Device,复杂可编程逻辑器件),通过采用CMOS EPROM、EEPROM(带电可擦可编程只读存储器)、快闪存储器和SRAM(静态随机存储器)等编程技术,从而构成了高密度、高速度和低功耗的可编程逻辑器。它是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,并通过下载电缆将代码传送到目标芯片中以实现设计的数字系统。

本发明实施例通过在CPLD中设置接收错误记录,可以对连续接收到错误数据的次数进行记录;通过判断连续接收到错误数据的次数是否达到预设阈值,当达到预设阈值后阻断CPLD与数据传输介质的连接,可以使CPLD防范外部的不正当数据入侵,从而有效保证CPLD接收数据的安全性。因为当CPLD接连数次都收到错误数据时,有可能是外部在用不正当数据进行尝试破解,因而为了避免此种危险情况的发生,可以结合实际中对数据的安全程度的考虑而对阈值进行合理设置。阈值设计越小,CPLD对连续接收错误数据的次数的容忍度越低,使得万一有外部对CPLD尝试破解时,尝试次数达到阈值后,便无法再向CPLD中输入数据,使得CPLD避免了外部不良数据的入侵,从而提高了CPLD接收数据的安全性。

在一些实施例中,方法还包括:响应于接收到的数据正确,CPLD继续接收数据传输介质传输的数据,并将接收错误记录的数值归零。具体地,当服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;当CPLD接收到数据后,判断接收到的数据是否正确;若接收到的数据正确,CPLD继续接收该数据传输介质传输的数据,并将接收错误记录的次数值归零。当CPLD本次接收到的数据正确时,可能上一次接收到的错误数据是由于数据传输介质出现了短暂的异常或者数据发送端出现了短暂的异常,本次接收到正确的数据表明此时一切正常,接下来CPLD可以继续接收该数据传输介质传输的数据了。

在一些实施例中,判断接收到的数据是否正确的步骤包括:通过CPLD对接收到的数据中的认证位进行认证以确定其是否正确。图2示出了数据传输介质中传输的一组数据的封装示意图。如图2所示,数据传输介质中传输的一组数据包括四个部分,分别是:CPLD位址、指令位址、数据位以及认证位。其中,CPLD位址用来与数据发送端的地址标识对应,用于辨识数据发送端,数据发送端可以是BMC,也可以是其他可以与CPLD进行通信的芯片或电子器件。指令位址对应于该组数据要做的动作指令。数据位有8位,从Bit0到Bit7,用于存放指令对应的具体内容,也是该组数据的主要内容。为了达到基本的数据保护,在要传达的该组数据的后面加上一组认证的数据,认证位中用于存放认证数据,通过认证数据可以对数据位中的数据进行认证,从而确认传过来的数据是否为可被信任的数据。而该认证的数据方法有很多种,在此认证的数据以传达的数据取反为认证的数据,也就是将通过数据传输介质要传达到CPLD的数据取反来当作一组认证的数据。例如,若通过数据传输介质要传给CPLD的数据为8个位的1,则其后的认证数据就必须传8个0给CPLD,只要CPLD侦测到传过来的认证数据不为数据位中数据的反向(也就是8个0),则CPLD将会舍弃数据传输介质传送的8个1的数据。

在一些实施例中,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据的步骤包括:通过CPLD关闭其与数据传输介质的连接口以拒绝接收数据传输介质传输的数据。本实施例中,通过CPLD关闭其与数据传输介质的连接口以拒绝接收数据传输介质传输的数据是最为简便的方法,但并不限于此,也可以通过其他方式来阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据。

在一些实施例中,通过数据传输介质向服务器系统的CPLD传输数据的步骤包括:由BMC通过数据传输介质向服务器系统的CPLD传输数据。BMC(Baseboard ManagementController)表示基板管理控制器,其通过监控系统的电源、温度等来保证系统处于正常运行的状态,在服务器系统中主要起管理和维护的作用,它是一个独立的系统,不依赖于系统上的其它硬件(比如CPU、内存等),也不依赖于BIOS、OS(操作系统)等,但是BMC可以与BIOS和OS交互,可以起到更好的平台管理作用,由于BMC本身是一个带外处理器的小系统,所以也可以单独处理某些工作。本实施例中,也可以由其他可与CPLD通信的芯片或者电子器件等来通过数据传输介质向服务器系统的CPLD传输数据。

在一些实施例中,方法还包括:响应于未达到预设阈值,返回通过数据传输介质向服务器系统的CPLD传输数据的步骤。具体地,当服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;当CPLD接收到数据后,判断接收到的数据是否正确;若接收到的数据有误,清除接收到的数据且将接收错误记录的数值更新为加一,并判断更新后的接收错误记录的数值是否达到预设阈值;若更新后的接收错误记录的数值未达到预设阈值,则返回通过数据传输介质向服务器系统的CPLD传输数据的步骤。

在一些实施例中,数据传输介质为I2C总线。I2C(Inter-Integrated Circuit)表示集成电路总线,它是一种双向二进制同步串行总线,在硬件上,I2C总线只需要一根数据线和一根时钟线两根线,不需要特殊的接口电路。本实施例中,数据传输介质也可以是其他总线,只要是与CPLD正常通信的数据传输介质皆可。若再考虑到数据发送端,则需要选择既可以与CPLD通信也可以与数据发送端通信的数据传输介质。当数据发送端是BMC时,I2C总线是较佳的CPLD和BMC之间的数据传递的介质。

本发明实施例的第二个方面,还提供了一种CPLD接收数据的系统。图2示出的是本发明提供的CPLD接收数据的系统的实施例的示意图。一种CPLD接收数据的系统包括:数据传输模块10,配置用于响应于服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;数据判断模块20,配置用于响应于CPLD接收到数据,判断接收到的数据是否正确;接收错误记录判断模块30,配置用于响应于接收到的数据有误,清除接收到的数据且将接收错误记录的数值更新为加一,并判断更新后的接收错误记录的数值是否达到预设阈值;以及拒绝接收数据模块40,配置用于响应于达到预设阈值,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据。

本发明实施例通过在CPLD中设置接收错误记录,可以对连续接收到错误数据的次数进行记录;通过判断连续接收到错误数据的次数是否达到预设阈值,当达到预设阈值后阻断CPLD与数据传输介质的连接,可以使CPLD防范外部的不正当数据入侵,从而有效保证CPLD接收数据的安全性。CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,并通过下载电缆将代码传送到目标芯片中以实现设计的数字系统。当CPLD接连数次都收到错误数据时,有可能是外部在用不正当数据进行尝试破解,因而为了避免此种危险情况的发生,可以结合实际中对数据的安全程度的考虑而对阈值进行合理设置。阈值设计越小,CPLD对连续接收错误数据的次数的容忍度越低,使得万一有外部对CPLD尝试破解时,尝试次数达到阈值后,便无法再向CPLD中输入数据,使得CPLD避免了外部不良数据的入侵,从而提高了CPLD接收数据的安全性。

在一些实施例中,系统还包括接收错误记录归零模块,配置用于响应于接收到的数据正确,CPLD继续接收数据传输介质传输的数据,并将接收错误记录的数值归零。具体地,当服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;当CPLD接收到数据后,判断接收到的数据是否正确;若接收到的数据正确,CPLD继续接收该数据传输介质传输的数据,并将接收错误记录的次数值归零。当CPLD本次接收到的数据正确时,可能上一次接收到的错误数据是由于数据传输介质出现了短暂的异常或者数据发送端出现了短暂的异常,本次接收到正确的数据表明此时一切正常,接下来CPLD可以继续接收该数据传输介质传输的数据了。

在一些实施例中,数据判断模块20进一步配置用于通过CPLD对接收到的数据中的认证位进行认证以确定其是否正确。数据传输介质中传输的一组数据包括四个部分,分别是:CPLD位址、指令位址、数据位以及认证位。其中,CPLD位址用来与数据发送端的地址标识对应,用于辨识数据发送端,数据发送端可以是BMC,也可以是其他可以与CPLD进行通信的芯片或电子器件。指令位址对应于该组数据要做的动作指令。数据位有8位,从Bit0到Bit7,用于存放指令对应的具体内容,也是该组数据的主要内容。为了达到基本的数据保护,在要传达的该组数据的后面加上一组认证的数据,认证位中用于存放认证数据,通过认证数据可以对数据位中的数据进行认证,从而确认传过来的数据是否为可被信任的数据。而该认证的数据方法有很多种,在此认证的数据以传达的数据取反为认证的数据,也就是将通过数据传输介质要传达到CPLD的数据取反来当作一组认证的数据。例如,若通过数据传输介质要传给CPLD的数据为8个位的1,则其后的认证数据就必须传8个0给CPLD,只要CPLD侦测到传过来的认证数据不为数据位中数据的反向(也就是8个0),则CPLD将会舍弃数据传输介质传送的8个1的数据。

在一些实施例中,拒绝接收数据模块40进一步配置用于通过CPLD关闭其与数据传输介质的连接口以拒绝接收数据传输介质传输的数据。通过CPLD关闭其与数据传输介质的连接口以拒绝接收数据传输介质传输的数据是最为简便的方法,但并不限于此,也可以通过其他方式来阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据。

在一些实施例中,数据传输模块10进一步配置用于由BMC通过数据传输介质向服务器系统的CPLD传输数据。BMC通过监控系统的电源、温度等来保证系统处于正常运行的状态,在服务器系统中主要起管理和维护的作用,它是一个独立的系统,不依赖于系统上的其它硬件(比如CPU、内存等),也不依赖于BIOS、OS(操作系统)等,但是BMC可以与BIOS和OS交互,可以起到更好的平台管理作用,由于BMC本身是一个带外处理器的小系统,所以也可以单独处理某些工作。本实施例中,也可以由其他可与CPLD通信的芯片或者电子器件等来通过数据传输介质向服务器系统的CPLD传输数据。

在一些实施例中,系统还包括返回模块,配置用于响应于未达到预设阈值,返回数据传输模块10。具体地,当服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;当CPLD接收到数据后,判断接收到的数据是否正确;若接收到的数据有误,清除接收到的数据且将接收错误记录的数值更新为加一,并判断更新后的接收错误记录的数值是否达到预设阈值;若更新后的接收错误记录的数值未达到预设阈值,则返回通过数据传输介质向服务器系统的CPLD传输数据的步骤。

在一些实施例中,数据传输介质为I2C总线。本实施例中,数据传输介质也可以是其他总线,只要是与CPLD正常通信的数据传输介质皆可。若再考虑到数据发送端,则需要选择既可以与CPLD通信也可以与数据发送端通信的数据传输介质。当数据发送端是BMC时,I2C总线是较佳的CPLD和BMC之间的数据传递的介质。

本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图4示出了根据本发明实施例提供的实现CPLD接收数据的方法的计算机可读存储介质的示意图。如图4所示,计算机可读存储介质3存储有计算机程序指令31,该计算机程序指令31被执行时实现如下步骤:S1、响应于服务器系统启动,通过数据传输介质向服务器系统的CPLD传输数据;S2、响应于CPLD接收到数据,判断接收到的数据是否正确;S3、响应于接收到的数据有误,清除接收到的数据且将接收错误记录的数值更新为加一,并判断更新后的接收错误记录的数值是否达到预设阈值;S4、响应于达到预设阈值,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据。

在一些实施例中,步骤还包括:响应于接收到的数据正确,CPLD继续接收数据传输介质传输的数据,并将接收错误记录的数值归零。

在一些实施例中,判断接收到的数据是否正确的步骤包括:通过CPLD对接收到的数据中的认证位进行认证以确定其是否正确。

在一些实施例中,阻断CPLD与数据传输介质的连接以使其拒绝接收数据传输介质传输的数据的步骤包括:通过CPLD关闭其与数据传输介质的连接口以拒绝接收数据传输介质传输的数据。

在一些实施例中,通过数据传输介质向服务器系统的CPLD传输数据的步骤包括:由BMC通过数据传输介质向服务器系统的CPLD传输数据。

在一些实施例中,步骤还包括:响应于未达到预设阈值,返回通过数据传输介质向服务器系统的CPLD传输数据的步骤。

在一些实施例中,数据传输介质为I2C总线。

应当理解,在相互不冲突的情况下,以上针对根据本发明的CPLD接收数据的方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的CPLD接收数据的系统和存储介质。

本发明实施例的第四个方面,还提供了一种计算机设备,包括存储器402和处理器401,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的方法。

如图5所示,为本发明提供的执行CPLD接收数据的方法的计算机设备的一个实施例的硬件结构示意图。以如图5所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图5中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与CPLD接收数据的系统的用户设置以及功能控制有关的键信号输入,例如键盘、鼠标等。输出装置404可包括各种类型的显示器、扬声器等。

存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的CPLD接收数据的方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储CPLD接收数据的方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的CPLD接收数据的方法。

最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

相关技术
  • 一种CPLD接收数据的方法、系统、存储介质及设备
  • 基于数据接收方的数据传送方法、系统、设备及存储介质
技术分类

06120113162042