Comunicación de microcontroladores a través de un cable de timbre

Encontré algunos cables viejos en mi casa que quiero darles un nuevo uso. En el cable hay cuatro alambres de campana y corre en la pared a lo largo de toda la altura de la casa. Para mí (totalmente no experto) el cable podría ser similar a los cables CAT3.

Tuve la idea de que podría usar dos de estos cables para proporcionar 3.3V y usar los otros dos para interconectarlos. De punta a punta el cable tiene unos 30 metros.

¿Hay algún tipo de tecnología de comunicación fácil de obtener e implementar que pueda usar?

Solo tengo conocimientos teóricos y en su mayoría solo conozco Ethernet. En teoría, Ethernet de 10 y 100 MBit utiliza CSMA/CD y tiene un modo de operación semidúplex que solo requiere un circuito, es decir, 2 cables, para funcionar.

En una configuración "sofisticada" habría un concentrador central y cada dispositivo estaría conectado directamente a ese concentrador. Como el concentrador no tiene inteligencia alguna, es posible olvidarse del concentrador y simplemente usar un cable para conectar todos los pines 1 y usar el otro cable para conectar todos los pines 2, creando efectivamente un bus. Supongo que tendré que soldar algunas resistencias en los extremos, pero definitivamente este es el menor problema de toda la idea. Con toda la inteligencia en los puntos finales, parece posible una Ethernet que funcione.

Hay 10Base2 y 10Base5. Miraría algo como 10BaseBell. Por supuesto, fuera de todos los estándares y no funcionaría tan bien como 10Base2. ¿Pero puede funcionar? ¿Alguien ha probado y documentado cosas como esta con microcontroladores recientes que tienen una interfaz Ethernet 10/100 ?

¿O hay algo más listo para usar sobre estos cables pobres? Este sería solo un proyecto divertido de tiempo libre, por lo que no hay requisitos reales, ¡pero una conexión TCP que funcione entre algunos microcontroladores sería increíble!

Ni siquiera sé si este es el sitio correcto para tal idea, pero pensé que las personas con conocimientos sobre ingeniería eléctrica podrían saber esas cosas...

¿Qué tan rápido quieres que vaya este enlace? Además, ¿es adecuada una configuración maestro/esclavo, y desea poner energía a través del cable, o solo datos, con nodos alimentados de forma independiente?
@ThreePhaseEel: Por ahora me conformaría con "trabajar". Si puedo obtener 1 MBit/seg cuando solo hay dos nodos activos, esto ya superaría mis expectativas. Sin embargo, sería muy bueno tener unos 40-50 kBytes/seg sostenidos con 4-8 dispositivos activos. La energía pasaría por los otros 2 cables pero dentro del mismo cable. Si Maestro/Esclavo está bien, depende de cómo se determinen los roles y cómo/si pueden cambiar.
Además, ¿está casado con la pila TCP/IP aquí, o es viable algún protocolo completamente diferente?
@ThreePhaseEel: Realmente me gustaría TCP/IP, pero supongo que puedo prescindir de él. Supongo que para mí depende principalmente de la disponibilidad del código y la huella de memoria de las alternativas.
RS-485 es lo que realmente desea.
@Majenko: consideré RS-485, pero sospecho que CAN es la mejor opción para su aplicación
Para reiterar la X para su problema Y, diferencial, serie multipunto definitivamente obtendrá su información, como RS-485. Probablemente tampoco quiera distribuir 3,3 V, sino al menos 12 V con reguladores reductores en todos los lugares donde conecte un dispositivo.
@ThreePhaseEel O CAN: ambos son buenos para esta aplicación. Mientras haya señalización diferencial y no se necesite conexión a tierra, no importa qué protocolo exacto se elija...
Las interfaces de 2 hilos, 10Base5 y 10Base2, necesitan transceptores específicos (PHY) que están obsoletos. El esquema físico es bastante diferente del 10/100Base-T. Por ejemplo, 10Base5/2 no están balanceados y usan el nivel de señal en el cable intermedio para la detección de colisiones.
@rioraxe Sin embargo, 10BaseT todavía hace el CSMA/CD y todo... al menos debería... y ese es el PHY que esperaría en los microcontroladores de hoy.
10Base-T detecta la colisión cuando está enviando en un par al detectar la recepción en otro par.

Respuestas (1)

La Ethernet moderna, como usted sospecha correctamente, está diseñada para redes estructuradas, no para colgar dispositivos aleatorios de tramos de cable aleatorios: la familia XBaseT de capas físicas son punto a punto, con toda la detección de colisiones realizada en un hub central IC (o no, si tiene una red conmutada, que es la norma en estos días). Sin embargo , dado que no intenta ir tan rápido, otras capas físicas diseñadas para aplicaciones multipunto son mucho más prácticas para su aplicación.

Dos en particular se destacan del resto: la red de área del controlador (CAN) y RS-485. Usan transmisión de datos diferencial (algo así como la Ethernet moderna), pero son multipunto (a diferencia de la Ethernet de par trenzado) y pueden admitir velocidades de datos modestas (100 kBits/s a 1 MBit/s o más) a través de cables largos (30 m no es problema para ninguno de los dos). uno).

Sin embargo, RS-485 es solo una capa física (especificación del transceptor) que permite que los usuarios proporcionen su propia capa de enlace de datos (como un UART especial con algunas funciones adicionales), mientras que CAN también proporciona la capa de enlace de datos, una Se puede encontrar una amplia variedad de microcontroladores con soporte CAN incorporado (todo, desde piezas de ATmega como el AT90CAN32 relacionado con el ATmega328 de Arduino hasta ARM robustos de 32 bits que usan núcleos Cortex-M4 o M7, así como sistemas automotrices en chip con CAN integrado También hay disponibles circuitos integrados de controladores CAN independientes (el MCP2515 está diseñado para una interfaz de microcontrolador simple).

Además, IP sobre CAN es posible y está documentado, y las tarjetas CAN están disponibles para PC (incluida la compatibilidad con Linux, aunque parece que si desea hacer IP sobre CAN en Linux, tendrá que hacer un poco de plomería del kernel).

Por último, pero no menos importante, CAN generalmente se realiza con 3 cables: dos líneas de datos diferenciales y una conexión a tierra común para todos los nodos. El aislamiento se logra en cada nodo usando optoacopladores o aisladores digitales entre el transceptor CAN y el controlador CAN. Puede usar el cuarto cable para ejecutar, digamos, 12 o 24 V de energía si lo desea, aunque no usaría más de un amperio.

Busqué en Google rápidamente y con el objetivo de TCP/IP en mente, el enfoque CAN parece mucho más fácil de implementar. No he investigado los requisitos de energía para CAN, pero 1 AMP a 24 V parece más de lo que necesitaré.