¿Cuál es el protocolo de bus de intercambio activo más simple?

1

Después de que pensé que el bus I2C es difícil de intercambiar en caliente a menos que use otra solución de hardware como PCA9511A (solución industrial muy costosa), planeo usar otro bus para reemplazar I2C.

El requisito del bus ideal debería ser:

  1. requiere tanto como las líneas de datos (\ $ \ le \ $ 2 es la mejor)
  2. DEBE ser capaz de intercambiar en caliente
  3. bajo costo de fabricación (lo más bajo posible)
  4. estable
  5. no hay velocidad / ancho de banda de transmisión específicos (< 2 kb deberían estar bien)
  6. no hay dispositivos de red máximos específicos (alrededor de 5 estarán bien)
  7. intercambio en caliente de protocolo puro (sé que algunos USB utilizan la combinación de pines físicos cortos y largos en el conector para controlar la prioridad de qué módulo se separa primero, pero desafortunadamente no es posible en nuestro diseño ... por lo tanto, necesitamos un protocolo puro que contiene una solución de intercambio en caliente)

Espero que exista algún protocolo que coincida con mis requisitos, pero soy bastante difícil de encontrar y no sé los problemas ocultos detrás de ellos. Sé que hay algunos módulos diseñados para que los productos como bloques puedan hacer eso, así que, por cualquier sugerencia, estoy muy agradecido. ..

Saludos cordiales

    
pregunta Yank

2 respuestas

4

Estoy bastante seguro de que puede hacer que cualquier bus sea intercambiable en caliente (no conozco ningún motivo hardware que le impida realizar un intercambio de bus en caliente). Alimentar los dispositivos digitales en el dispositivo es uno de los mayores problemas. Un dispositivo intercambiable en caliente necesita tomar el control de potencia como una consideración más importante que el bus, ya que puede causar un pico de voltaje en su sistema cuando está enchufado.

El problema es doble:
1) Debe haber una forma de detectar si el bus está conectado o no y los dispositivos digitales que se están intercambiando deben recibir alimentación antes de comenzar a hablar con él. Existen conectores que conectan la conexión a tierra primero antes de que se aplique cualquier otra alimentación a los pines. ¿Por qué? porque si conectas las líneas digitales (como VDD) primero, podrías hacer que tus transistores se encuentren en un estado divertido (metastabilidad). Especialmente si tienes dos carriles digitales diferentes. Esto también permite que las tapas de potencia se carguen.

2) También debe haber una forma de detectar si el 'bus' está enchufado, ya sea con un interruptor o conector. Algunos conectores también vienen con patillas que son tan largas como la conexión a tierra, de modo que cuando el conector está enchufado, se puede alertar a otra lógica digital de que hay un dispositivo y el software puede hablar con él. Una cosa que he hecho es poner un dispositivo extraíble en el dispositivo y, cuando se enciende, el microprocesador sondea el pin de cada dispositivo y, cuando detecta el dispositivo, el dispositivo se enciende.

Por otro lado, si lo desenchufa mientras está encendido, necesita una forma de apagar rápidamente la lógica digital y la alimentación (ir a un estado de Z alto en un búfer o microprocesador).

He hecho un bus SPI intercambiable en caliente con buffers en cada dispositivo que no se encenderían hasta que el procesador los habilitara.

Debería poder hacer esto con I2C, si desea hacerlo con un dispositivo I2C en el bus y un buffer .

  

protocolo puro de intercambio en caliente (sé que algunos USB están utilizando la combinación de pines físicos largos y cortos en el conector para controlar la prioridad de qué módulo se separa primero, pero desafortunadamente no es posible en nuestro diseño ... por lo tanto, necesitamos un protocolo puro que contiene una solución de intercambio en caliente)

Por lo tanto, una cosa que deberá preocuparle es la potencia, si realmente desea un bus de "intercambio en caliente", tendrá que controlar la alimentación.

Podría hacer un enfoque de intercambio en frío en el que el software controle la alimentación (a través de los conmutadores) en el exterior y no encienda el dispositivo hasta que esté completamente "enchufado".

Si desea un dispositivo completamente intercambiable en caliente con control de energía en el dispositivo, existe IC's that haz esto Luego es todo el software después de eso.

La mayoría de las veces es el software que realmente evita el intercambio en caliente, falla cuando no puede encontrar el dispositivo después de que se haya retirado.

    
respondido por el laptop2d
1

Recomendaría el bus de 1 cable, desarrollado por Dallas Semiconductor, que fue absorbido por Maxim.

Cumple todos tus requisitos y es muy resistente. Está diseñado para conexiones de contacto rápidas, por lo que, de manera inherente, se ocupa del intercambio en caliente.

Puede encontrar documentos y especificaciones en:

www.maximintegrated.com/en/products/digital/one-wire.html

Puede utilizar un IC maestro de bus dedicado o implementar uno en el software de un microcontrolador, lo que mejor se adapte a su situación de costo / volumen.

    
respondido por el TonyM

Lea otras preguntas en las etiquetas