LTC6803 PEC校验

PEC字节:包错误代码(PEC)字节是一个循环冗余校验(CRC校验)值。简单来说,就是给芯片发送一条指令,芯片会回馈给你另一条指令判断是否正确发送。

根据LTC6803的datasheet可知,初始PEC位为01000001(0x41)和下面一个特征多项式为一个寄存器中的所有位:

X^8+X^2+X+1

根据数据手册,假设要传送的数据位0x01(00000010)根据下列步骤计算PEC数值

step1:PEC设置为默认值01000001(0x41)

step2:对于输入寄存器的每个DIN位,设定IN0=DIN XOR PEC[7],IN1=IN0 XOR PEC[0],IN0=IN0 XOR PEC[1],

根据所传送的数据,可以得到IN0=0 XOR 0=0,IN1=0 XOR 1=1,IN2=0 XOR=0;

step3:更新8位PEC为PEC[7]=PEC[6],PEC[6]=PEC[5],PEC[5]=PEC[4],PEC[4]=PEC[3],PEC[3]=PEC[2],PEC[2]=IN2,PEC[1]=IN1,PEC[0]=IN0.

则更新后PEC的值为10000010

step4:返回步骤2,直到所有数据均被移位为止。8位结果位最终的PEC值。

计算结果如下图所示,最终计算结果为0xC7

LTC6803 PEC校验