I need to implement CRC-12 for a specific operator console, to light up button lamps... believe it or not. I have no idea why they require this (the manufacturer is German...) since CAN is a very robust network, and button lamps are hardly critical but here I am trying to figure it out.
I'm not really sure how to start. My limited understanding of CRC is that the polynomial is divided into the data string via binary long division. I think it is the same as XOR, but I am lost on how to implement in Guide. E.g., the polynomial is 0x80F (per console documentation), but in binary it would be the same as 0x180F (for some reason the leading "1" is left out). So the polynomial is 13 bits long.
In Guide, can I XOR the hex values, which would be 16-bit values, and get the same result? Even if this works, how would I append the next binary digit to continue the long process of dividing a 13-bit value into a data set that contains 88 bits?