Algunos métodos de comprobación de errores como la comprobación de paridad, la suma de comprobación, CRC, etc. se utilizan para las comunicaciones por cable/inalámbricas. Sin embargo, la mayoría de los circuitos integrados con interfaces como I2C, SPI, etc. no utilizan ningún método de comprobación de errores.
Busquemos "i2c i/o expander" y abramos una hoja de datos al azar. Por ejemplo, consideremos PCF8574 de TI que es un expansor de E/S de 8 bits. Si un bit correspondiente al registro de salida es volteado durante la transmisión I2C, el IC conducirá el pin correspondiente a un nivel no deseado. Por qué más de este tipo de circuitos integrados no tienen ningún mecanismo de comprobación de errores? Supongo que aunque la comunicación sea entre circuitos integrados, todas las señales tienen ruido. Aunque la probabilidad será bastante baja, el ruido puede causar un bit flip.
¿Puede ser esta la razón? Ninguno de los mecanismos de comprobación de errores garantiza una comunicación completamente libre de errores. Sólo pueden ayudarnos a reducir la probabilidad de error. Es obvio que la probabilidad de error en la comunicación a larga distancia es mayor que en la comunicación a bordo. Tal vez la probabilidad de error de bit para la comunicación a bordo está en un rango aceptable incluso sin ningún mecanismo de comprobación de errores.
¿Qué te parece?