← 返回列表

一种主控系统软件硬件的校验方法

申请号: CN202311811186.4
申请人: 东方电气风电股份有限公司
申请日期: 2023/12/27

摘要文本

本发明公开了一种主控系统软件硬件的校验方法,属于风电机组技术领域该方法通过主控系统的软件读取硬件的识别码;将获取到的识别码转换为整套硬件系统的统一识别码,并由服务器数据库信息获取生成用于软件验证的识别文件,通过主控系统获取并结合统一识别码进行校验,通过校验来验证软件与硬件之间的匹配有效性;本发明的一种主控系统软件硬件的校验方法,在具体的原理设计上,采用主控系统生成服务器可识别的识别码,并通过服务器对识别码的处理,生成识别文件,在主控系统内部中通过对识别文件的进一步处理并与原始的识别码进行校验,实现加密的功能。

专利详细信息

项目 内容
专利名称 一种主控系统软件硬件的校验方法
专利类型 发明授权
申请号 CN202311811186.4
申请日 2023/12/27
公告号 CN117472035B
公开日 2024/3/8
IPC主分类号 G05B23/02
权利人 东方电气风电股份有限公司
发明人 彭小迪; 杨忾; 余业祥; 伍建刚; 兰杰; 杨斌; 张耀辉; 刘彤; 黄泰宇; 李玉霞; 杨鹤立; 李颖
地址 四川省德阳市旌阳区珠江东路99号

专利主权项内容

1.一种主控系统软件硬件的校验方法,其特征在于:包括以下步骤; S1,通过主控系统的软件读取硬件的识别码;S2,将获取到的识别码转换为整套硬件系统的统一识别码;在步骤S2中,还包括以下步骤:S21,通过软件读取控制器模块的序列号a1;S22,通过软件逐一读取其他硬件模块的序列号,分别为a2,a3,…,an;其中,a1,a2,a3,…,an为n1个特定长度字符串;S23,通过特定的字符串拼接方法f1将所有序列号组合成代表硬件配置的字符串A,具体为A= f1(a1,a2,a3,…,an);S24,将获取到的字符串A转换为m个整型数值数组,其中每个数组包含n2个字节整型数值,分别为B1,B2,…,Bm;S25,将获取的m个整型数值数组转换为m个整型数值,分别获取到C1,C2,…,Cm,并通过整型数值C1,C2,…,Cm组合成统一识别码D;S3,服务器数据库信息获取统一识别码后,生成用于软件验证的识别文件;步骤S3还包括以下步骤:S31,读取主控系统生成长度为m的整型数值数组的统一识别码D;S32,将统一识别码转换为长度为t的整型数值数组的识别文件码E,其中t>m;S33,将识别文件码E写入识别文件;S4,主控系统获取识别文件,并统一识别码进行校验,通过校验来验证软件与硬件之间的匹配有效性;其中,在步骤S32,转换的过程中通过算法Q实现,算法Q具体为:E=Q(D, M, N);在步骤S4,通过算法Q将识别文件码E转换为校验码F,算法Q具体为:F=Q(E, P, N);其中N、M和P为长度为t的整型数值数组;算法Q包括以下步骤:D1,读取整型数值数组G,当G的长度为m时,补充值为0的整型数值元素,使其长度为t,其中,t>m;D2,读取整型数值数组H、J,其长度均为t;D3,读取整型数值数组K,K等于E或者F,并使整型数值数组K等于设定的特定整型数值数组h;D4,再依次获取到计算后的整型数值数组H,通过H对比设定的特定整型数值数组p,对比结果相同则获取到整型数值数组K,对比结果不同则重复计算;在步骤D4中,其计算方法具体如下:L=(H&&x)%y;K=Q1(Q2(K, G), H);G=Q1(Q2(G, G), J);H=Q3(Q4(H, L), z);其中,h,x,y,z,p为特定整型数值数组;G, H, J, K, L为长度为t的整型数值数组;Q1, Q2, Q3, Q4为子算法;&&为二进制按位与;%为取余;所述子算法Q1包括以下步骤:D11,读取整型数值数组X1,Y1,其长度均为t,其中,X1=Q2(K, G)或Q2(G, G),对应的Y1=H或J;D12,令i1=t,并依次进行以下计算:b1=(X1[i1]/Y1[i1])-c1;X1=X1-Y1*b1; Z1=Z1+b1; X1=Q4(X1, Q2(Y1, Y1)); Z1=Z1+(X1⊕(Y1, c1))*c1; 其中,b1,c1为特定整型数值;X1、Y1、Z1为长度为t的整型数值数组;⊕为二进制按位异或;D13, 判定i1是否大于1,小于或等于1则获取到步骤D12中计算出的整型数值数组X1,若大于1则以i1-1再依次重复步骤D12的计算;所述子算法Q2包括以下步骤:D21,读取整型数值数组X2,Y2,其长度均为t,其中,X2= K或G,对应的Y2=G;D22,令i2=1, j2=1, d1=0,并依次进行以下计算:Z2[i2+j2-b2]=(Z2[i2+j2-b2]+X2[i2]*Y2[j2]+d1)%e1; d1=(Z2[i2+j2]+(X2[i2]*Y2[j2])/e1)%e1; Z2[i2+j2]=Z2[i2+j2]+(X2[i2]*Y2[j2])/e1-d1; b2,d1,e1为特定整型数值; X2、Y2、Z2为长度为t的整型数值数组; %为取余; D23, 判定j2是否大于等于t,若小于t则以j2+1重复步骤D22的计算;若大于等于t则执行i2的判定;D24,判定i2是否大于等于t,若小于t则以i2+1和j2=1重复步骤D22和D23;若大于等于t则获取到步骤D22中计算出的整型数值数组Z2;所述子算法Q3包括以下步骤:D31,读取整型数值数组X3,Y3,其长度均为t,其中,X3= Q4(H, L),对应的Y3=z;D32,令i3=t,并依次进行以下计算:b3=(X3[i3]/Y3[i3])-d2; X3=X3-Y3*b3; Z3=Z3+b3; X3=Q4(X3, Q2(Y3, d2)); Z3=Z3+(X3⊕(Y3, d2))*d2; b3、d2为特定整型数值; X3、Y3、Z3为长度为t的整型数值数组; D33, 判定i3是否大于1,若i3大于1,则以i-1重复步骤D32;若i3小于等于1,则获取到步骤D32中计算出的整型数值数组Z3;所述子算法Q4包括以下步骤:D41, 读取整型数值数组X4,Y4,其长度均为t,其中,X4= H,对应的Y4=L;D42, 令i4=1, d3=0,并依次进行以下计算:d3=((X4[i4]+b4-Y4[i4])-d3)>>e2; Z4[i4]=(X4[i4]+b4-Y4[i4]-d3)%g1; b4、d3、e2、g1为特定整型数值;X4、Y4、Z4为长度为t的整型数值数组;%为取余;>>为二进制右移;D43,判断i4是否大于等于t,若i4大于等于t,则获取到步骤D42中计算出的整型数值数组Z4;若i4小于t,则以i4+1重复步骤D42。