一种基于prom逻辑的数据比对方法
【技术领域】
[0001]本发明涉及一种数据比对方法,可兼容不同大小数据集比对,具有比对速度快,电路规模小,通用性强,保密性好的特点。方法所使用的器件都具有很强的空间环境适应能力,尤其适合空间环境应用,也适用于具有类似数据比对需求的其他领域。
【背景技术】
[0002]现有的硬件数据比对电路设计存在两种设计方法,一种使用FPGA或DSP等大规模可编程逻辑电路实现,另一种为使用分立硬件比较器器件实现。
[0003]在空间环境应用中,现有的两种方法均存在不足。第一种方法,受空间辐照环境,如单粒子事件的影响,可靠性不高;第二种方法不足之处包括:I)需为每一组数据设计一个对应的硬件比较器,设计复杂,规模庞大。硬件规模与数据集合大小成正比,空间应用成本高;2)通用性、移植性差。电路一旦完成设计,不容易更改,仅能适应一个数据集合的比对,不具备移植性;3)可通过电路反推数据集,保密性差。
[0004]随着空间应用中对可靠性、电路规模和产品化等要求不断提高,现有的硬件比对电路设计已然无法满足目前空间环境的应用要求。
【发明内容】
[0005]本发明解决的技术问题是:克服现有两种比对方式的不足,提供了一种基于PROM逻辑的高效数据比对方法,核心器件PROM的存储空间具有可扩展性和通用性,通过更换PROM可容易实现待比较数据集切换,通用性和移植性好,空间应用可靠性高。
[0006]本发明的技术解决方案是:一种基于PROM逻辑的数据比对方法,包括如下步骤:
[0007](I)将待比较数据的条数P转换成二进制,二进制表示所需的位数记为M,用M位二进制数为每条待比较数据分配一个唯一的标识ID;
[0008](2)在每条待比较数据的前端增加M位相同的巴克码,用于起始位置识别;
[0009](3)将增加了巴克码的每条待比较数据按固定长度M进行分段,不满一段的通过后端补O按一段计算,得到每条待比较数据所包含的总段数并转换成二进制,二进制表示所需的位数记为N,如果待比较数据具有不同的数据长度,则总段数以P条待比较数据中的最长数据长度计算;用N位二进制数表示段序号,段序号从I开始并按I递增;
[0010](4)选取地址位数大于等于(M+N)且存储数据位宽大于等于(M+2)的PROM作为比较器件;
[0011 ] (5)将PROM的地址划分为高位地址和低位地址,低位地址为I?M位,高位地址为(M+ 1)位至(M+N)位;通过高位地址将PROM的地址空间划分为2N个区间,其中区间O用于存储巴克码信息,区间I用于存储待比较数据的第I段数据信息,区间2用于存储待比较数据的第2段数据信息,依此类推;
[0012](6)在区间O上进行数据存储,区间O上地址高N位全部为二进制表示的0,区间O只在一个地址上存储数据,该地址的低位为巴克码码位;在该地址下存储数据的高2位为10,低M位填充全O数据;区间O中的除巴克码对应地址以外的其余所有地址下存储数据全部填充(M+2)位全O数据;存储数据高2位为10表示当前数据正确且标识ID不需一致性比对,可以进行下一段数据比较;存储数据高2位为00表示当前数据错误,不再需要比对标识ID;
[0013](7)在区间I上进行数据存储,区间I上地址高N位全部为二进制表示的I,区间I在P个地址上存储数据,各存储地址的低位为各条待比较数据的第I段数据;每个地址下存储数据的高2位均为01,低M位为对应的标识ID;区间I中除P个数据存储地址外,其余地址下存储数据全部写入(M+2)位全O数据;PROM数据的高2位为01表示当前数据正确,但需要比较标识ID;
[0014](8)按照步骤(7)的方法,对从区间2开始的后续区间的各地址写入数据;如果由于待比较数据存在某段数据完全一致导致不同的标识ID信息需写入同一地址的情况,则将该地址下存储数据的高2位置为10,低M位为其中一个需写入该地址数据的标识ID;所有待比较数据的最后一段对应的地址内,存储数据的高2位为11,低M位为标识ID;
[0015](9)PR0M上电或复位,将PROM地址位全部置0,同时设定标识ID缓存器并清空;
[0016](10)从外部接收串行数据并进行长度为M的移位寄存,形成的M位并行数据作为PROM器件地址位的低位,对于第I组M位数据,对于开始的巴克码码型数据,直接根据低位地址在PROM上寻址到唯一地址并读出其中的高2位数据10,形成反馈信息将PROM地址位的高位加I,同时地址位的低位变为第2组M位数据,PROM的低位地址和高位地址拼接成组合地址,用此组合地址对PROM进行寻址操作,读出对应地址上的PROM存储数据,如果寻址读出的数据高2位为00,则复位并转至步骤(9);如寻果址读出的数据高2位为01,则ID缓存器记录当前标识ID,并与已经缓存的标识ID比较,一致则判定正确并形成反馈信息将PROM地址位的高位加I,不一致则判定为错误,则复位并转至步骤(9);当ID缓存器第一次记录标识ID时,直接缓存并判定为正确;
[0017](11)重复步骤(9)?(10),直至比较完成所有串行数据。
[0018]本发明与现有技术相比的优点在于:
[0019](I)本发明方法所使用的器件均具有很强的空间辐照适应能力,相比FPGA等大规模集成电路具有更高的可靠性,尤其适用于可靠性需求较高的空间应用场合;
[0020](2)本发明方法所涉及的硬件电路规模小,与使用FPGA等大规模集成电路的比对电路规模相当,远小于使用硬件比较器搭建的比对电路,电路体积功耗小,空间应用成本低;
[0021](3)现有的硬件比较器搭建的比对电路更改或扩充都将导致硬件电路的重新设计,通用性,移植性差;本发明方法的核心器件为PR0M,通用性、移植性强,通过PROM更改可简单实现指令集的更改或扩充;
[0022](4)本发明由于使用了RPOM实现比对,PROM中所存储的内容与待比较数据不相关,无法直接反推,保密性极强。
【附图说明】
[0023]图1为本发明方法的流程图;
[0024]图2为本发明方法的原理框图。
【具体实施方式】
[0025]本发明方法适用于具有如下特征的数据集比对:数据集含单条或多条数据,每条数据具有有限长度,比对采用单线程串行比较方式,无法同时识别多条数据。
[0026]如图1所示,为本发明方法的流程框图,图2为本发明的原理框图,本发明的主要步骤如下:
[0027]将待比较数据的条数P转换成二进制,二进制表示所需的位数记为M,用M位二进制数为每条待比较数据分配一个唯一的标识ID;
[0028](2)在每条待比较数据的前端增加M位相同的巴克码,用于起始位置识别;
[0029](3)将增加了巴克码的每条待比较数据按固定长度M进行分段,不满一段的通过后端补O按一段计算,得到每条待比较数据所包含的总段数并转换成二进制,二进制表示所需的位数记为N,如果待比较数据具有不同的数据长度,则总段数以P条待比较数据中的最长数据长度计算;用N位二进制数表示段序号,段序号从I开始并按I递增;
[0030](4)选取地址位数大于等于(M+N)且存储数据位宽大于等于(M+2)的PROM作为比较器件。将待比较数据按照步骤(5)至步骤⑶方法生成PROM文件,写入PR0M;
[0031](5)PR0M的地址划分为高位地址和低位地址,低位地址为O?M位,高位地址为(M+I)位至(M+N)位。用高位地址将PROM的地址空间划分为2N个区间,区间O存储巴克码信息,区间I存储每条待比较数据第I段信息,区间2存储每条待比较数据第2段信息,依此类推;
[0032](6)在区间O上进行数据存储,区间O上地址高位全部为N位二进制表示的0,区间O只在一个地址上存储数据,该地址的低位为巴克码码位;在该地址下存储数据的高2位为1,低M位填充全O数据;区间O中的除巴克码对应地址以外的其余所有地址下存储数据全部填充(M+2)位全O数据;存储数据高2位为10表示当前数据正确且标识ID不需一致性比对,可以进行下一段数据比较;存储数据高2位为00表示当前数据错误,不再需要比对标识ID;
[0033](7)在区间I上进行数据存储,区间I上地址高位全部为N位二进制表示的I,区间I在P个地址上存储数据,各存储地址的低位为各条待比较数据的第I段数据;每个地址下存储数据的高2位均为OI,低M位为对应的标识ID。区间I中除P个数据存储地址外,其余地址下存储数据全部写入(M+2)位全O数据;PROM数据的高2位为01表示当前数据正确,但需要比较标识ID;
[0034](