首页 / 一种高效硬件CRC校验装置

一种高效硬件CRC校验装置失效专利 实用

技术领域

[0001] 本实用新型属于数据校验技术领域,特别是涉及一种高效硬件CRC校验装置。

相关背景技术

[0002] 在现代数字系统中,为保证数据传输的正确性,需要对通信过程进行差错控制。实现检错功能的差错控制方法很多,传统的方法有奇偶校验、校验和检测、重复码校验、恒比码校验、行列冗余码校验等,这些方法都是增加数据的冗余量,将校验码和数据一起发送到接收端。循环冗余校验CRC(Cyclic Redundancy Check)是由分组线性码的分支而来,其主要应用是二元码组。编码简单且误判率很低,在通信系统中得到了广泛的应用,并且在大量数据校验方面也得到了大量的应用。
[0003] 在现有技术中,大多数嵌入式应用中的数据CRC校验多由CPU计算完成,此应用多2
见于如串口、SPI、IC总线通信协议或FAT文件系统等应用场合,或由CPU内部外设模块自动完成,常见于can通信等场合。现有CRC软件实现方式共分为两种,一种为直接软件运算法,另一种方法为查表运算法。第一种实现方式中软件代码量较少,但由于涉及到乘除法运算,因此大多数嵌入式系统,尤其是对CPU效率要求较高的应用场合中,此种方法会占用大量CPU周期。第二种实现方式是通过预先定义好的CRC数码表进行查表运算,此种方式虽然能够节省CPU周期,但CRC数码表会占用较多的系统内存,从而导致内存开销较大。虽然硬件实现方式并不占用CPU周期及系统内存,但只有少数的高级通信总线自身带有硬件的CRC校验模块,因此无法大量灵活应用。

具体实施方式

[0013] 下面结合附图和具体实施例对本实用新型提供的高效硬件CRC校验装置进行详细说明。
[0014] 如图1所示,本实用新型提供的高效硬件CRC校验装置包括:处理器1和校验单元2;其中:处理器1为微处理器芯片,其通过数据总线3与校验单元2相连接;校验单元2为CRC校验运算单元,其通过内部的运算器件协助处理器1完成CRC校验的相关运算。
[0015] 如图2所示,所述的校验单元2由总线通信模块201、命令处理模块202和CRC计算模块203组成,其中:总线通信模块201为并行数据总线控制器,其通过外部总线204与数据总线3相连接,用于控制数据总线上的数据收发操作,从而完成校验单元2内部与外部的数据交换;命令处理模块202为运算命令译码器,分别与总线通信模块201和CRC计算模块203相连接,用于接收外部数据总线3上的运算命令,并将其转换成具体的操作指令,然后发送给CRC计算模块203;CRC计算模块203为完成CRC校验的具体运算部件,其通过校验数据总线207和校验结果总线208与总线通信模块201相连接,用于通过校验数据总线207从总线通信模块201接收校验数据,并依据命令处理模块202的操作指令进行运算,然后将运算结果通过校验结果总线208传送给总线通信模块201。
[0016] 所述的数据总线3包括时钟信号线CLK、16位地址总线AD0-AD15和16为数据总线DD0-DD15。
[0017] 所述的校验单元2由CPLD或FPGA可编程逻辑器件构成。
[0018] 本实用新型提供的高效硬件CRC校验装置的工作过程为:
[0019] 1.由处理器1通过数据总线3向校验单元2发送CRC校验标准命令(如所用标准为欧洲CRC16标准,则可跳过此项操作);
[0020] 2.校验单元2通过数据总线3读取命令设置结果,其结果应该与所设置标准相同,如不相同重复步骤1;
[0021] 3.由处理器1通过数据总线3向校验单元2发送复位CRC值命令;
[0022] 4.校验单元2通过数据总线3读取数据复位结果,如清除为零,则表示清除成功,如不为零,则重复步骤3;
[0023] 5.由处理器1通过数据总线3向校验单元2依次发送所需校验的数据,直到所有数据发送完成;
[0024] 6.校验单元2通过数据总线3读取CRC结果,如果有新的数据校验需求,从步骤3开始重复进行。
[0025] 所述的校验单元2的内部工作过程如下:
[0026] 1、总线通信模块201通过外部总线204从数据总线3上读取到CRC校验标准命令,然后将该命令传送给命令处理模块202,命令处理模块202解译出命令的具体内容,并根据命令的内容将CRC计算模块203的计算模式转换为相应标准的转换模式。
[0027] 2、总线通信模块201通过外部总线204从数据总线3上读取到读取设置状态命令,然后通过校验结果总线208读取相应的CRC值数值,并通过数据总线3向外部发送。
[0028] 3、总线通信模块201通过外部总线204从数据总线3上读取到复位CRC值命令,将该命令传送给命令处理模块202,命令处理模块202将CRC计算模块203的现有CRC值复位为0。
[0029] 4、总线通信模块201通过外部总线204从数据总线3上读取到读取复位状态命令,然后通过校验结果总线208读取相应数值,并通过外部总线204向外部发送。
[0030] 5、总线通信模块201通过外部总线204从数据总线3上读取到CRC运算命令,通过校验数据总线207向CRC计算模块203传送所需计算的数据,CRC计算模块203计算出相应的累加CRC值。
[0031] 6、总线通信模块201通过外部总线204从数据总线3上读取到读取CRC值命令,然后通过校验结果总线208读取相应数值,并通过数据总线3向外部发送。

当前第1页 第1页 第2页 第3页
相关技术
硬件校验相关技术
谷兴华发明人的其他相关专利技术