Esquemas analógicos a digitales: ¿utilizando diferentes implementaciones?

0

Todos sabemos que el ADC estándar (al menos tradicional) con salida es la representación binaria en la base 2. Sin embargo, hay una variedad de otros esquemas de codificación que son mucho mejores y menos propensos a errores.

Por ejemplo, el código Gray está diseñado de tal manera que cada número sucesivo difiere del anterior en un solo bit. Un esquema de codificación de este tipo significa que si la señal que se va a codificar pasó de 7 a 8, la representación solo diferirá en un solo bit en contraste con el binario tradicional donde 7 -> 8 tiene un cambio de 4 bits.

En binario tradicional:

 7       8
0111 -> 1000

En código gris:

 7       8
0100 -> 1100

¿Cómo implementarías tal esquema de codificación? ¿Los microcontroladores tienen la capacidad de usar diferentes técnicas o están vinculados al método tradicional a menos que se compren unidades especializadas?

    
pregunta sherrellbc

2 respuestas

3

Bueno, la razón más obvia por la que los ADC generan un código binario directo es porque generan el código directamente desde el convertidor y todos los ADC populares generan códigos binarios directamente.

Los ADC de aproximación sucesiva son los más populares. Funciona comparando la tensión de entrada almacenada con una tensión producida por un DAC interno (o escalera R2R). Comienza comparando el voltaje de entrada a la mitad del rango completo: si es más alto que ese voltaje, genera un código '1', si es más bajo - '0'. Después de eso, divide la mitad correspondiente del rango de voltaje nuevamente en dos y hace otra comparación. Continúa este ciclo por la cantidad de bits deseados. Obviamente, esto produce naturalmente un pequeño código de salida binario endian, y siempre requiere tantos ciclos como bits.

Los convertidores Sigma-delta son el otro gran tipo de ADC popular. Funcionan realizando una conversión de voltaje a frecuencia y, posteriormente, contando el número de pulsos en un intervalo de tiempo determinado. Naturalmente, cuantos menos pulsos pueda contar y cuanto más corto sea el tiempo (en un sistema temporizado), peor será la resolución. Por lo tanto, este tipo de convertidor también proporciona, naturalmente, valores gruesos primero y se vuelve más preciso a medida que avanza el tiempo, de nuevo un excelente ejemplo de salida binaria little endian.

Para entregar algo como el código Gray u otros códigos ventajosos (por ejemplo, TMDS para SNR máxima), tendría que esperar hasta que se realice una conversión completa, luego realizar una operación para transformar el código, y solo entonces el ADC suelte el código de salida. Esto significa que hay una penalización de tiempo (latencia) significativa para usar otro código.

El otro elefante en la habitación es, por supuesto, el hecho de que, con muy pocas excepciones, todas las arquitecturas que utilizamos para procesar números utilizan directamente binarios directamente. Para hacer cualquier cosa con dichos valores, necesitaría volver a convertirlos.

Por supuesto, todavía hay un punto muy válido para las líneas de transmisión de baja SNR o, en general, para el transporte de datos de largo recorrido para utilizar códigos optimizados. Sin embargo, los ADC casi nunca se usan solos, siempre tienen algún tipo de procesamiento cerca del ADC. Además, literalmente no hay ADC con controladores de línea integrados. Por lo tanto, para este tipo de aplicaciones, un convertidor de código casi siempre está integrado en un controlador de línea o en un chip de interfaz física (PHY), no en el ADC. Dos grandes ejemplos de este tipo de conversión que se está produciendo son los controladores de panel para LCD (todos los cuales usan LVDS para abarcar un cable relativamente largo de 10-50 cm a gigabits por segundo) y PHY USB / Ethernet.

    
respondido por el user36129
1

Estrictamente hablando, el código gris todavía es una representación binaria, es que hay un simbólico que asigna 1: 1 de un espacio a otro. Esto se puede hacer por muchas razones, el gris ha minimizado las transiciones.

La clave que te falta es que el análogo se llame así porque es un análogo del mundo real. 30 PSI se asigna a 3.0 Volts. 0 PSI se asigna a 0.0 V de forma continua (por ejemplo), por lo que la representación externa de su símbolo necesita un mapa. Internamente, puede ser cualquier cosa. BUt BCD (decimal codificado en binario) es una representación más fácil para nuestros pequeños cerebros humanos.

También puede sorprenderte que hay ADC / DAC que SI usan códigos de gris internamente. Esto es para asegurar que no haya ningún patrón de conteo impuesto sobre la forma de onda de salida. el contador se ejecuta en código gris y el decodificador se asigna de gris a un espacio continuo. También ahorra energía / energía.

    
respondido por el placeholder

Lea otras preguntas en las etiquetas