Controlador / transceptor de temporización automática

1

Estoy buscando una forma de transmitir una señal de reloj y datos a través de una sola línea,  quizás utilizando una señal de auto-reloj como la codificación de Manchester.

El diseño en el que estoy trabajando tiene varias unidades encadenadas, con datos ingresados a la primera unidad de la cadena y pasados a los dispositivos posteriores. Para facilitar la conexión, estoy usando conectores USB, así que tengo cuatro líneas (VCC, GND, D +, D-) para las comunicaciones. Por lo general, solo uso uno para el reloj y el otro para los datos, pero me preocupa la corrupción de los datos y las conversaciones cruzadas sobre las distancias involucradas (aproximadamente 1 pie). Como tal, estoy planeando combinar tanto la señal como el reloj en una línea, luego usar LVDS para mejorar la resistencia al ruido, después de todo, ¡el USB es diferencial en primer lugar!

Esto probablemente sería trivial con un microcontrolador, pero estoy tratando de evitarlo por razones tanto de complejidad como de costo. ¿Existe tal cosa como un IC de transceptor que se traduce entre un reloj discreto y pines de datos y una señal combinada de auto-reloj? ¿Qué tipo de palabras clave debo buscar?

    
pregunta Polynomial

4 respuestas

1

Los protocolos en serie de temporización automática existen en miles de variaciones en todas partes, desde la grabación magnética a la comunicación Ethernet primitiva, desde la telefonía a la industrial y la comunicación SCADA. Estos protocolos y sus diseños han existido durante más de 40 años en mi uso, así como en otros.

Hay muchas implementaciones en función de la velocidad de bits y la BER esperada, SNR.

Los codificadores más simples usan intervalos de transición 1T, 2T donde 2T = es la velocidad en baudios de 1 / f y se han definido como códigos de bi-fase o Manchester para Mark, Space e Invert definen el conmutador en las transiciones de bit central o Bi- Φ {M, S, I}. Las unidades de disco duro antiguas y los disquetes actuales conservaban el ancho de banda utilizando MFM que utilizaba 2T, 3T. Esto se expandió a los códigos de longitud de ejecución limitada (RLL) utilizados en Ethernet y muchos otros comunicadores serie. enlaces que estiran el intervalo entre transiciones de reloj.

Una vez que elija un protocolo de bits, para sincronización de reloj y datos, debe elegir una sincronización de cuadros, sincronización de bytes y orientación de bits y protocolo de mensajes, de los cuales hay miles, ¿por qué reinventar la rueda?

LacodificaciónutilizaelRelojylosDatosenunapuertaXORparaMarcar(1)oEspacio(0)(delosprimerostérminosdeltelégrafo)parausarunrelojnormaloinvertido.Dependiendodelalongituddelcuadroydelnúmerode0,1otransiciones,unoeligeelmejorenfoque.

LadescodificaciónsimpleutilizaunarecuperaciónderelojconunbordedeimpulsocreadodesdecadabordeconunretardodepuertaXORde<5%Tyluegounatomade3/4Tparamuestrearelvalordelosdatos.LossofisticadosdiscriminadoresdeRxintegrarántodalaenergíadebitsenunintervalode1T.

Elfiltradoesesencialparaevitarelretrasodelgrupoenlabandadeseñalquecausaeldesplazamientodebitsylainterferenciaentresímbolos.Rxcríticousaelfiltrodecosenoelevado,mientrasqueRxnocríticousaLPF5xfaprox.LaseñalizacióndiferencialesmejorparalainmunidadalruidoCMcuandolaseñalesbajaencomparaciónconEMI.

HaymuchasimplementacionesdisponiblesdeformagratuitaenHDL,AVRylógicaprogramable,asícomodiscretas"tecnologías antiguas" de un solo disparo y puertas XOR. Los filtros pueden ser analógicos, pero algunos utilizan un filtrado digital más sofisticado para minimizar el ISI y maximizar la SNR para obtener la tasa de error de bits (BER) más alta, que, como sabemos por la Ley de Shannon's, está directamente relacionada con la SNR.

Se han escrito volúmenes sobre este tema hace décadas, para que lo busquen, lo encontrarán.

Los controladores remotos a baja f usan un estiramiento de pulso o una modulación de retardo o duración para 1's & 0, que compromete la relación SNR / BER pero puede funcionar en un entorno de bajo ruido.

No olvide incluir la detección de errores, (Parity, Hamming Code o CRC, o ECC) y la detección de pérdida de sincronización del reloj. Luego necesita la detección de sincronización de cuadros, la lógica de detección de errores del reloj de sincronización de bytes, etc.

Aunque no es barato ni está bien surtido, utiliza un reloj de 16x o 32x hasta 1Mbps

> ¿Esto es para decodificar las señales CANBUS ISO 11898?

Si es así, mire el chip receptor SCAN921226H de $ 10 con 8 bits de salida en paralelo y señales de sincronización.

    
0

Quieres un 'serializador' y un 'deserializador'. Tenga en cuenta que para LVDS, probablemente no saldrá en serie de bits. Lo más probable es que sea una interfaz paralela de 8 o 16 bits. Tenga en cuenta que puede tener problemas para encontrar uno lo suficientemente lento para su aplicación.

El primer resultado de Google para 'lvds serializer' es ds92lv16. Esa parte tiene un serializador y un deserializador en un paquete con dos interfaces paralelas de 16 bits. Tenga en cuenta que la velocidad de reloj mínima es de 25 MHz, correspondiente a 400 Mbps.

    
respondido por el alex.forencich
0

Evaluar la modulación de la duración del pulso. Con un flanco ascendente para lanzar cada bit , active un disparo para que se agote el tiempo de espera al 50% y registre los datos en FF. Haga que la duración de los bits sea del 33% o del 63%, trivialmente.

O 25% y 75%, para una mayor inmunidad al ruido.

Evite duraciones cercanas al 100%, porque los buses (sus 2 cables) necesitan tiempo para restablecerse a cero.

    
respondido por el analogsystemsrf
0

Parece que la tarea se encuentra en un área bien conocida de automatización industrial. Me temo que el desafío no es solo cómo hacer que los datos se marquen automáticamente, sino que también pueden surgir muchos otros problemas, arbitraje, descodificación de direcciones, etc. Por lo tanto, debería dividir el protocolo en paquetes y mensajes, etc. Una de las soluciones El problema de la comunicación entre objetos distribuidos y sensores se denomina "CAN bus" .

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas