1.一种USB2.0协议五比特循环冗余校验方法,其特征在于,所述方法包括:
在发送端对令牌包中地址和端点号的进行CRC‑5计算,并将计算结果与PID、地址、端点号整合形成完整的令牌包后发出;其中,当前数据输入位din是从令牌包的第8位开始计算,直到第18位;得到CRC‑5计算结果后,将最高位MSB放到令牌包(token)的第19位,次高位放到第20位,最低位LSB放到第23位,结合PID,地址(ADDR)和端点号(ENDP),按照从低位到高位的顺序将完整的令牌包(token)进行发送;
在接收端接收发送端发送的令牌包,对令牌包的第二、第三字节进行CRC‑5计算并校验;其中,当前数据输入位din是从令牌包的第8位开始计算,直到第23位;所述接收端对令牌包的第二、第三字节的CRC‑5计算方法包括:接收令牌包的第一个字节,若PID正确,则进行后续第二和第三字节的CRC校验计算;令CRC‑5寄存器的初始值为11111,取crc5(n)[m]表示CRC‑5寄存器迭代n次后第m位的值;m取值从0到4;将接收到的第二、第三字节逐位作为数据输入位din并基于单步迭代公式进行迭代,在迭代16次之后,得到展开结果crc5(16)[m];
根据a^a^b=b消去冗余项,再将crc5(0)的初始值11111带入并根据a^1^1=a进行简化,以得到crc5(16)的值;其中,a、b为2进制变量;所述校验方法包括:判断接收到的令牌包的第二、第三字节的CRC‑5校验计算结果为01100;若否,则表示数据在传输过程中出错,报告CRC‑5校验失败。
2.根据权利要求1所述的USB2.0协议五比特循环冗余校验方法,其特征在于,所述发送端对令牌包中地址和端点号的CRC‑5计算方法包括:根据传输要求生成令牌包中PID、地址和端点号的值;
令CRC‑5寄存器的初始值为11111,取crc5(n)[m]表示CRC‑5寄存器迭代n次后第m位的值;m取值从0到4;
将地址和端点号的值逐位输入数据输入位din并基于单步迭代公式进行迭代,在迭代
11次之后,得到展开结果crc5(11)[m];
根据a^a^b=b消去冗余项,再将crc5(0)的初始值11111带入并根据a^1^1=a进行简化,以得到crc5(11)的值;其中,a、b为2进制变量;
将简化后的crc5(11)按位取反并从高位到低位颠倒次序,得到CRC‑5计算结果。
3.根据权利要求2或1所述的USB2.0协议五比特循环冗余校验方法,其特征在于,所述单步迭代公式为:crc5(n+1)[0]=din^crc(n)[4];
crc5(n+1)[1]=crc(n)[0];
crc5(n+1)[2]=din^crc(n)[4]^crc(n)[1];
crc5(n+1)[3]=crc(n)[2];
crc5(n+1)[4]=crc(n)[3]。
4.一种USB2.0协议五比特循环冗余校验装置,其特征在于,所述装置包括:
发送模块,用于对令牌包中地址和端点号的进行CRC‑5计算,并将计算结果与PID、地址、端点号整合形成完整的令牌包后发出;其中,当前数据输入位din是从令牌包的第8位开始计算,直到第18位;得到CRC‑5计算结果后,将最高位MSB放到令牌包(token)的第19位,次高位放到第20位,最低位LSB放到第23位,结合PID,地址(ADDR)和端点号(ENDP),按照从低位到高位的顺序将完整的令牌包(token)进行发送;
接收模块,用于接收发送模块发送的令牌包,对令牌包的第二、第三字节进行CRC‑5计算并校验;其中,当前数据输入位din是从令牌包的第8位开始计算,直到第23位;所述接收端对令牌包的第二、第三字节的CRC‑5计算方法包括:接收令牌包的第一个字节,若PID正确,则进行后续第二和第三字节的CRC校验计算;令CRC‑5寄存器的初始值为11111,取crc5(n)[m]表示CRC‑5寄存器迭代n次后第m位的值;m取值从0到4;将接收到的第二、第三字节逐位作为数据输入位din并基于单步迭代公式进行迭代,在迭代16次之后,得到展开结果crc5(16)[m];根据a^a^b=b消去冗余项,再将crc5(0)的初始值11111带入并根据a^1^1=a进行简化,以得到crc5(16)的值;其中,a、b为2进制变量;所述校验方法包括:判断接收到的令牌包的第二、第三字节的CRC‑5校验计算结果为01100;若否,则表示数据在传输过程中出错,报告CRC‑5校验失败。
5.一种USB2.0设备,其特征在于,所述设备包括:存储器、处理器、及通信器;所述存储器存储有计算程序,所述处理器执行所述计算程序实现如权利要求1‑3中任意一项所述的方法;所述通信器通信连接外部设备。