TODOPIC

Microcontroladores PIC => Pic32 => Mensaje iniciado por: afelio en 26 de Marzo de 2014, 07:54:27

Título: Sincronización entre CAN y UART
Publicado por: afelio en 26 de Marzo de 2014, 07:54:27
Buenos días a tod@s,

Os comento un poco la situación/idea:

Quiero realizar una comunicación de varias placas por bus CAN y en una de ellas enviar los datos recibidos por el bus vía RF con un PIC32MX534F064H
Para enviar los datos por RF utilizo la UART, con un máximo de 24kbps ya que es un XBEE PRO868.

El problema es que Bus CAN estará configurado a 125kbps, por lo que creo que habrá problemas de sincronización.

La verdad es que últimamente estoy obscecado y no se me ocurre como solucionar dicho problema.
¿Alguna idea?
Estoy mirando la opción de utilizar la UART con DMA, como lo veis??

Muchas gracias.

Un saludo.
Título: Re: Sincronización entre CAN y UART
Publicado por: MGLSOFT en 26 de Marzo de 2014, 08:07:43
En el medio de ambos protocolos, te guste o no, deberás poner software a convertir datos de uno al otro.
Título: Re: Sincronización entre CAN y UART
Publicado por: afelio en 26 de Marzo de 2014, 08:28:46
Buenos días MGLSOFT,

Muchas gracias por la pronta respuesta, pero no entiendo muy bien lo que me quieres decir, a que te refieres con convertir datos de uno al otro??
Cuando te refieres a poner software te refieres a que me toca pidar código, la verdad es que casi lo prefiero..antes que tener que hacer alguna modificación hardware.

Muchas gracias.

Un saludo.
Título: Re: Sincronización entre CAN y UART
Publicado por: MGLSOFT en 26 de Marzo de 2014, 08:36:01
En CAN puedes transmitir hasta 8 bytes por mensaje, de esa forma te tocara pasar la info (empaquetarla) para que puedas pasarla de uno al otro...
Título: Re: Sincronización entre CAN y UART
Publicado por: afelio en 26 de Marzo de 2014, 09:00:35
Buenos días MGLSOFT,

Vale ya te entiendo, si, tengo que transformar los datos para poder enviarlos. Pero, así, sin pensarlo ahora mismo mucho, no se solucionaría el problema de sincronización, no??


Un saludo.
Título: Re: Sincronización entre CAN y UART
Publicado por: afelio en 26 de Marzo de 2014, 09:09:47
Dandole vueltas, tras que me lleguen los 8 bytes separar cada byte para enviarlo por la UART. Pero sigo pensando que se perderían paquetes.

Voy almacenando los mensajes del CAN en la FIFO.
Los transformo en datos UART.

No se perdería ningún dato??

Muchas gracias.

Un saludo.
Título: Re: Sincronización entre CAN y UART
Publicado por: MGLSOFT en 26 de Marzo de 2014, 12:21:01
Tu deberías llevar un indice del fifo, que una vez actualizado por el CAN, se lea por el código conversor a UART, si es distinto del que el guarda, no fue transmitido, entonces lo convierte y lo pone en la UART para transmitir, se entiende??
Título: Re: Sincronización entre CAN y UART
Publicado por: afelio en 26 de Marzo de 2014, 16:46:57
Vale, creo que si, comparo índices, si son diferentes tengo datos a empaquetar y transmitir.
Madurare la idea.

Muchas gracias MGLSOFT.

Un saludo.
Título: Re: Sincronización entre CAN y UART
Publicado por: MGLSOFT en 26 de Marzo de 2014, 18:22:02
Con ese formato, podrias usar ambos con DMA, y hacer lo otro por poolling.
Título: Re: Sincronización entre CAN y UART
Publicado por: afelio en 27 de Marzo de 2014, 08:45:45
OK MGLSOFT, muchísimas gracias,

Las transferencias de la UART como las recepciones del CAN con DMA, y por poolling comprobamos los índices.

Muchísimas gracias.

Un saludo.