El mejor bus eléctrico del microcontrolador para el muestreo sincronizado de alta velocidad de los esclavos

2

Tengo una aplicación que requiere que muestree una docena de sensores para cada nodo y transmita los datos a un microcontrolador maestro en intervalos regulares de cuatro segundos. El área de superficie de los sensores para cada nodo es de un metro cuadrado con seis nodos adyacentes. ¿Cuál es el mejor bus eléctrico para usar en tal caso?

No tengo experiencia con CAN. Solo he usado RS-485 en el pasado, por lo que actualmente estoy en una cerca entre estos dos. ¿Cuáles son las ventajas de CAN en una configuración de este tipo sobre RS-485 y qué tan involucrada está la parte de hardware?

Además, ¿hay algún otro bus que sea superior a RS-485 y CAN para tal propósito?

Necesito usar cableado bastante discreto en mi aplicación.

    
pregunta Dimo

2 respuestas

2

Para una frecuencia de muestreo de 0.25Hz, creo que cualquiera de los dos buses debería estar bien. CAN tiene más funciones "integradas" de priorización y arbitraje de mensajes, y más que RS-485. Así que tendrías un protocolo de nivel algo más complejo pero algo más alto con CAN. La señal eléctrica y los requisitos de la fuente de alimentación para el cableado serían prácticamente idénticos para cada caso. Usted dice que se requiere un muestreo "sincronizado", pero no define qué precisión y exactitud y la latencia de "sincronización" son necesarias.

Si tuviera que tener el muestreo "simultáneo" dentro de nanosegundos, entonces tendría algunas preocupaciones adicionales significativas relacionadas con la latencia de las comunicaciones, los retrasos en el cableado, etc. Pero sospecho que, dado que no definió el requisito y está considerando " Buses de rendimiento relativamente bajo sin mencionar ningún tipo de luz estroboscópica de activación / sincronización para el disparo de muestreo, puede que esté lo suficientemente contento con la sincronización hasta el nivel de varios microsegundos o más. Si ese es el caso, cualquiera de los dos buses probablemente sea viable para usted, dependiendo de la arquitectura de su sistema.

¿Los nodos se muestrean de forma autónoma a la frecuencia y los tiempos de muestreo predeterminados? Si es así, eso lo hace más fácil siempre y cuando los relojes de muestreo en los nodos se mantengan en sincronización suficiente. Si cada uno de los nodos espera un comando "muestra ahora" en el bus de comunicaciones, es posible que desee considerar qué sucede si la recepción del mensaje se retrasa o se pierde ocasionalmente por uno o más nodos. En tal caso, puede perderse la sincronización del muestreo o retrasarse el punto de muestreo.

¿Qué hay del orden de transmisión de los datos muestreados al controlador? Si los nodos comparten un bus serie común, uno debe enviar su resultado antes que los otros, por lo que habrá una posibilidad de conflictos de arbitraje de bus. A menos que haya buses paralelos independientes que vayan a cada nodo, las transmisiones de datos de algunos nodos se retrasarán debido a que se transmitirán más tarde que a otros nodos. ¿Cómo funcionará el arbitraje de autobuses? ¿Cada nodo será encuestado a su vez o hablará a su vez? ¿Qué hay de la retransmisión de mensajes si no se recibe el acuse de recibo debido a una contención del bus o errores de transmisión u otras circunstancias?

Si los nodos tienen relojes locales que se usan para marcar la hora de los datos de muestreo y posiblemente determinar los tiempos de muestreo, ¿cómo se mantendrá la sincronización del reloj? Entonces, verá, terminará con los mismos tipos de problemas potenciales y posibles soluciones / arquitecturas, independientemente del bus que utilice. CAN proporciona algunas funciones de protocolo de nivel superior para ayudar a estructurar algunos aspectos de la contención del bus, el arbitraje, la priorización, la retransmisión, la detección de errores, etc. Puede implementar cosas similares en RS-485 con su propio protocolo. Al final, los aspectos más importantes de la red de comunicación son las decisiones arquitectónicas y los requisitos relacionados con cosas como la tolerancia a fallas, la sincronización, la detección de errores, el manejo de errores, el diseño de redes y el amp; cableado, etc.

Una posibilidad que no mencionó es Ethernet que se ha aumentado en algunas aplicaciones integradas con PTP que ayuda a sincronizar y marcar los eventos entre los nodos distribuidos. Por lo general, los circuitos integrados y los componentes son algo más caros para implementar Ethernet en comparación con CAN o RS-485, aunque eso depende de sus opciones de implementación, la necesidad de altos niveles de aislamiento eléctrico entre el cableado y los nodos (posible con circuitos adicionales en CAN). , RS-485 o Ethernet, pero solo se espera realmente como un enfoque de implementación de línea de base en Ethernet). Ethernet le ofrece un posible medio estandarizado para proporcionar energía a los nodos, aunque la energía a menudo se ejecuta junto con CAN o RS-485 también.

    
respondido por el whatever102904
1

Mencionas comunicaciones serie y aquí hay un par de chips que funcionan bien hasta velocidades de datos de muy alta velocidad. No tiene que ingresar datos a estas altas tasas, pero sí necesita una velocidad de reloj mínima de 10MHz: -

Tiene diez entradas digitales, luego se serializan para la transmisión a través de un par trenzado equilibrado de alta velocidad, luego el receptor (deserializador) tiene diez salidas digitales que corresponden a las diez entradas que ingresó al serializador.

Los he usado para combinar las salidas de los sensores varias veces y funcionan bien para trabajos de alta y baja velocidad. Maximiza un equivalente de pin por pin, pero el transmisor necesita un reinicio de energía decente o no se inicia correctamente.

Sin ningún problema, he introducido flujos de datos en serie de 10x 20Mbpsec en las entradas y los he enviado 25 metros de par trenzado apantallado. La deserialización fue perfecta y obtienes una señal de reloj recuperada. Los XTAL en ambos extremos no necesitan estar muy ajustados. Recuerdo que probé la configuración con un generador de señales en un extremo y podríamos variar la frecuencia aproximadamente un +/- 7% antes de que se rompa el enlace. El par trenzado barato (50 ohmios) debería estar bien por unos pocos metros, pero no olvide terminar con 50R.

¿Sus sensores tienen salidas de datos en serie? Si no es así, utilice los ADC con una salida en serie. Si necesita más IO, entonces también hacen las más grandes, pero no las he usado, por lo que no puedo hablar por ellas.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas