¿Cuáles son algunos excelentes tutoriales sobre comunicación CAN por ahí? ¿Cómo implemento una red CAN entre unos pocos sensores (telemetría en un automóvil solar) y una Raspberry Pi?

Antes de decidirse por CAN, ¿realmente necesita este tipo de bus?

Responde estas preguntas:
1. ¿Tiene la capacidad electrónica (y el equipo) para depurar errores a nivel de bits en el nivel físico?
2. ¿Necesita múltiples suscriptores a los datos?
3. ¿Necesita velocidades de datos altas (más de 100 kbps)?
4. ¿Tiene que lidiar con un entorno EMC ‘ruidoso’?
5. ¿Está contento de desarrollar la especificación de todo lo que sucede por encima de los niveles 1 y 2 de la pila de capas OSI?

Si las respuestas a * todas * de estas preguntas son ‘sí’, entonces CAN * puede * ser la mejor opción para usted, siempre que pueda obtener sensores basados ​​en CAN.

Si ha respondido no a dos o más de estas preguntas, utilizar un protocolo basado en USART puede ser una mejor opción para usted. Si ha respondido ‘no’ al número ‘1’ en particular, entonces puede ser mejor usar el cableado directo de sus sensores a su controlador.

También vale la pena señalar que el rPi no proporciona un transceptor CAN; tendrá que construir uno que venga en una placa separada (o crear una placa transceptora). Puede encontrar un enlace conveniente que explica sobre esto aquí: Acceda a la red interna de un vehículo utilizando una placa Raspberry Pi y CAN-Bus #piday #raspberrypi @Raspberry_Pi

En particular, CAN no especifica cómo se deben compartir los datos (recuerde, las capas 1 y 2 de OSI solo están cubiertas por la especificación del protocolo CAN); tendrá que definir cómo se convierte la señal física en una representación en el bus. Por ejemplo, teniendo en cuenta la temperatura, puede especificar que esto se transmita en el bus usando un flotante IEEE o doble (nota, esto es bastante ineficiente), o puede especificarlo usando un int sin signo de 16 bits (que deja otros 48 bits libres) en un marco para otros datos), y especifique una conversión con un desplazamiento de -40.0 y un factor de 0.01, que para fines de visualización cubrirá la mayoría de los casos (es decir, 0x0 en el bus corresponde a un valor físico de -40 ° C, y 0xFFFE corresponde a 615.34 ° C), este tipo de escala también le permitiría definir valores como 0xFFFF para representar ‘noValidData’ o ‘sensorFault’ y, por lo tanto, realizar algunos diagnósticos si / cuando las cosas salen mal.

Una red CAN no es un “controlador tradicional con funcionalidad de E / S conectada a motores y sensores”. En una red CAN, cada componente tiene su propio microcontrolador capaz de administrar ese componente y recibir / generar mensajes CAN relevantes para él.

Por ejemplo, si desea un sensor de temperatura, cree una placa con algún tipo de microcontrolador (o raspberry pi o lo que sea), algún tipo de dispositivo de medición de temperatura (como un termopar), hardware y conexiones necesarias para que el microcontrolador lea el termopar y algún tipo de controlador de protocolo de bus CAN, como un MCP 2515

http://www.microchip.com/wwwprod

El microcontrolador se comunicará con el controlador CAN a través de una interfaz simple como SPI. El controlador CAN se conecta al bus CAN a través de un transceptor como el MCP 2551. El microcontrolador, el sensor y el controlador / transceptor CAN constituyen un solo componente.

Una de las muchas ventajas de dicho sistema es que no necesita un ‘procesador central’. Imagine construir un robot que tenga sensores de inclinación derecha / izquierda y servomotores para administrar el equilibrio derecho / izquierdo. En un sistema más tradicional, un controlador central tendría un programa que monitorea la izquierda / sensor y envía comandos a los servos para compensar. En un sistema basado en CAN, el componente del sensor de inclinación izquierdo / derecho transmite periódicamente el estado de la punta izquierda / derecha a todos los componentes. Los componentes que no se preocupan por tales cosas (como los servos que controlan las mandíbulas) ignoran estos mensajes. Pero el componente de equilibrio responde a los mensajes de estado de la punta ajustando sus servos para compensar en la dirección opuesta. Por lo tanto, cada componente hace lo suyo y no hay necesidad de un componente central.

Otra ventaja es que los componentes son intercambiables. Si decide reemplazar la detección de temperatura usando termopares con alguna otra tecnología de medición de temperatura, simplemente cambia un nuevo componente que maneja el mismo mensaje y el resto del sistema no se ve afectado.

Por supuesto, en dicho sistema hay una sobrecarga considerable para cada componente, por lo que los requisitos del sistema tendrían que justificar dicho diseño.

El artículo de Wikipedia sobre el bus CAN es un buen punto de partida. El diseñador probablemente se centrará en la interfaz del chip del controlador del protocolo CAN, ya que manejará todos los detalles de CAN, como relleno de bits, arbitraje, detección de errores y cosas por el estilo.

Necesitará absolutamente algún tipo de analizador lógico, aunque uno muy simple lo hará (por ejemplo)

https://www.parallax.com/product

Éste dividirá el flujo de bits en el bus y mostrará los datos como mensajes CAN.

Con toda probabilidad, un sistema basado en CAN no sería apropiado para el proyecto que usted describe. Pero ahí está.

Esto hará que mi visión sea un poco más clara.
Entonces, si entiendo correctamente, ¿puedo prescindir de un CAN BUS?
El controlador del motor y la placa MPPT se comprarán y ya son compatibles con la comunicación CAN. Creo que lo único que queda por hacer es desarrollar placas de controlador CAN para mis Arduinos y para la Raspberry Pi.

More Interesting

¿Qué sistema operativo disponible para Raspberry Pi es el menos afectado por cortes de energía o caídas de tensión, y puede reiniciarse fácil y rápidamente a un estado de funcionamiento nuevamente?

¿Qué sensor puedo usar para detectar una presencia humana, para hacer un proyecto de automatización del hogar en Raspberry Pi?

¿Cómo debo comenzar a usar Raspberry Pi?

¿Puedo usar 1 Raspberry Pi para varios proyectos simultáneamente?

¿Qué reproductor de video es bueno para RaspBMC?

¿Existe un dispositivo IoT multipropósito que pueda controlar múltiples elementos / sensores y que pueda configurarse fácilmente mediante una interfaz Bluetooth usando un iPhone?

¿Qué cosas útiles hacen las personas con sus pequeñas computadoras de una sola placa, como Raspberry Pi, BeagleBone, Cubie board, Toradex, que no sean LED intermitentes, encender / apagar bombillas, transmitir videos y motores giratorios?

¿Se puede usar una Raspberry Pi para construir una computadora de control para un microsatélite?

¿Cómo comenzar a usar Raspberry Pi y todas las computadoras del proveedor deben estar en él? ¿Alguien puede explicarlo un poco más?

¿Trabajar en Raspberry Pi te ayuda en la industria integrada?

¿Se utiliza Raspberry Pi para la recopilación de datos del sensor o el procesamiento de datos?

¿Cómo difunde el Raspberry Pi su "dominio"? Descubrí que llamé a mi RaspberryPi "veryberry", por ejemplo, y sin modificar ninguna configuración de DNS, puedo conectarme a ssh: // veryberry y http: // veryberry ... ¿Cómo se pasa ese nombre de dominio ya que no está conectado a un servidor de nombres de dominio?

¿Cuáles son algunos buenos proyectos que se pueden hacer usando Python y / o Arduino y / o Raspberry Pi?

Quiero construir una calculadora gráfica en 3D. ¿Puedo hacer esto con una Raspberry Pi?

Compré frambuesa pi. ¿Cuáles son los softwares que tengo que instalar para trabajar inicialmente?