¿Métodos existentes para transferencias de datos bidireccionales usando no más de 4 cables?

3

Quiero poder intercambiar datos entre dos unidades (en mi caso, dos procesadores AVR), y no puedo usar más de 4 cables.

Entonces, ¿cuáles son los métodos existentes para hacer esto? Sé que hay USB, pero eso parece un poco excesivo ya que no necesito, por ejemplo, admitir varias conexiones a través del mismo cable.

Los requisitos no están completamente establecidos, pero al menos puedo dar algunas aproximaciones. Los procesadores AVR que intento utilizar son ATTiny2313 y ATTiny13, que funcionarán a 16 MHz (el ATTiny2313 también ejecutará V-USB). El rendimiento de los datos es extremadamente bajo ya que usaré esto para implementar un teclado personalizado, por lo que probablemente será algo así como unos pocos cientos de bits / s. La longitud de los cables será de hasta uno o dos metros, tal vez tres.

    
pregunta gablin

3 respuestas

9

Sin entrar en demasiados detalles (porque se ha dicho mucho sobre ellos y cuánta información hay disponible sobre ellos), los dos buses principales que puede usar son I2C (I-squared-C) y SPI . También puede utilizar UART . La mayoría de los microcontroladores vienen con módulos integrados para esto que hacen el trabajo por usted.

    
respondido por el BB ON
3

Los métodos comunes son SPI e I2C, a menudo admitidos por hardware en el microcontrolador. I2C requiere dos cables de señal, y SPI necesita cuatro, incluida la selección de chip.

SPI es muy simple y con frecuencia puede ejecutarse muy rápido. I2C puede alojar más de dos dispositivos en el bus, solo requiere dos cables, pero es relativamente complejo y puede ser mucho más lento que SPI.

Ambos son más adecuados para distancias cortas, como en el mismo tablero. Para distancias más largas, puede considerar RS-485 (usando soporte UART en chip) y bus CAN (algunos chips tienen soporte de hardware).

Editar: Si usa el UART, debe asegurarse de que haya una coincidencia suficiente entre las frecuencias de reloj en los dos extremos para que no se produzcan errores. Eso puede impedir el uso de osciladores de reloj RC internos, especialmente si tiene que ser confiable en un amplio rango de temperaturas.

    
respondido por el Spehro Pefhany
1

Ethernet tradicional se ejecuta en un solo cable (pozo, uno más tierra / blindaje). Y el subconjunto de Ethernet de Chaosnet (que no intenta evitar la colisión de paquetes y cuenta con el hecho de que la colisión se reintentará después de un retraso aleatorio) es solo un 20% más lento que la implementación completa.

Con cuatro cables y solo dos dispositivos conectados, debería ser fácil; eso es un par dedicado en cada dirección. UART u otro protocolo serie básico con secuencias de inicio / parada apropiadas para sincronizar la transmisión debería funcionar correctamente.

    
respondido por el keshlam

Lea otras preguntas en las etiquetas