comunicación Ethernet entre 2 controladores

0

Estoy trabajando para establecer la comunicación a través de Ethernet entre 2 microcontroladores.

Es un sistema independiente. Controller1 interactuará con el usuario a través de un teclado. Controller2 será la interfaz con un par de motores (a través de controladores). Cuando el controlador 1 recibe pulsaciones del teclado, solicitará al controlador 2 que realice ciertas tareas de movimiento.

El diagrama de bloques será (circuito estándar):     Controlador (con un MAC incorporado) --- PHY --- transformador - RJ45 y el mismo repetido en la otra placa del controlador.

Lo que estoy tratando de entender (desde la perspectiva del firmware) es si realmente necesito acceder a todas las capas de abstracción (hasta http), ¿mis controladores necesitarán una i / p asignada, etc.

Suponga que estos son los únicos 2 dispositivos que interactúan. ¿Es suficiente que el código funcione solo en la capa de enlace de datos? es decir, configuro los registros MAC, cada controlador tiene su propia dirección MAC y la comunicación se realiza a través de las tramas de Ethernet sin capas de nivel superior involucradas.

Trabajar con Ethernet por primera vez, así que pido disculpas si hay errores básicos en la consulta. Todos los foros mencionan el uso de pilas TCP / IP, direcciones IP, pero no me queda claro por qué es necesario.

    
pregunta Rustin

1 respuesta

2

La respuesta básica es que puedes hacer cualquier comunicación que quieras hacer.

Cada chip que tiene un componente de Ethernet puede realizar una comunicación simple de phy a phy (es decir, la capa 1 si estamos hablando de el modelo OSI ), y a menos que su chip tenga una pila IP integrada o una capa AX.25 o algún otro tipo de capa de nivel 2/3 (es decir, abstracción de datos / red) incorporada al silicio, esto es lo que tendrás que usar.

El hardware es capaz de hacer parte del protocolo Ethernet, ya sea 10BASE-T, 100BASE-T o lo que sea, y si agrega una capa IP, su pila de software utilizará esa funcionalidad. Puedes usar esa funcionalidad directamente!

La mayoría de las personas optan por poner algún tipo de capa IP con comunicaciones TCP o UDP porque esto ayuda a ocultar algo de la complejidad y hace que el código funcione de la misma manera en su computadora que en el chip. También significa que las cosas como poner un conmutador Ethernet en medio de múltiples circuitos funcionarán, y muchas otras sutilezas que vienen con el uso de un estándar desarrollado profesionalmente que mucha gente ha pensado y probado. No tiene que hacer esto si no quiere, y le ahorrará mucha complejidad y capacidad de procesamiento si todo lo que está haciendo es enviar mensajes secuenciales simplificados de un circuito a otro, sin embargo.

Sin embargo, estoy de acuerdo con @Spoon, ya que creo que deberías elegir un protocolo diferente si estás utilizando una comunicación punto a punto simple. ¿Si hay alguna razón por la que no esté utilizando RS-485, RS-232, I²C o algún protocolo serial simple similar? Es probable que muchos de ellos sean más fáciles que usar Ethernet.

¡Buena suerte!

    
respondido por el Kit Scuzz

Lea otras preguntas en las etiquetas