TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: controlpic en 15 de Julio de 2009, 18:53:30
-
Tras buscar en google hay muy poca informacion al respecto, sobre todo encontre todo el protocolo de comunicacion en el libro "microcontrolador pic 16f84A" en donde bienen los tiempos que hay que emplear para utilizar dicho protocolo, e incluso bienen alguras librerias de ejemplo, aunque para este protocolo estas librerias no me llegan a convencer del todo, ya que no comprueban que los impulsos tengan la duracion establecida.
Lo que pretendo es comunicar 2 o mas pic mediante una sola linea, pero aparte de que el maestro mande la informacion, tambien quiero asegurarme de que el esclavo ha recibido exactamente los datos que le he enviado. AQUI ES DONDE NECESITO VUESTRA AYUDA.
¿Como verificar que el esclavo a recibido correctamente la informacion?
Un saludo
-
Sobre detección de errores hay mucho en internet. Se me ocurre una forma rápida:
- Maestro envía el byte de tu dato (ejemplo 0xFA)
- Maestro envía el byte anterior pero más 0x55 (ejemplo 0xFA + 0x55 = 0x014f), pero solo envía el byte bajo (queda 0x4F)
- Esclavo recibe los dos bytes
- Al primer byte recibido le suma 0x55. Si el resultado coincide con el segundo byte recibido la comunicación fue exitosa
- Si hubo éxito, esclavo responde con 0x55
- Si hubo error, esclavo responde con 0xFF
El 0x55 es un 0b01010101 que si llega con error deformaría el cálculo significativamente, pero puedes elegir cualquier otro byte (0xAA su contraparte).
Hay muchas otras formas, distancias de Hamming, redundancia, pero creo que esa te sirve por ahora.
-
Muy agradecido migsantiago, tu solucion es mas que aceptable.