Autor Tema: Bus de comunicacion de una linea - verificacion del dato enviado  (Leído 1937 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado controlpic

  • PIC10
  • *
  • Mensajes: 24
    • servicio de grabacion de microcontroladores
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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Bus de comunicacion de una linea - verificacion del dato enviado
« Respuesta #1 en: 15 de Julio de 2009, 19:05:10 »
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.
« Última modificación: 15 de Julio de 2009, 19:08:17 por migsantiago »

Desconectado controlpic

  • PIC10
  • *
  • Mensajes: 24
    • servicio de grabacion de microcontroladores
Re: Bus de comunicacion de una linea - verificacion del dato enviado
« Respuesta #2 en: 15 de Julio de 2009, 19:37:10 »
Muy agradecido migsantiago, tu solucion es mas que aceptable.