¿Por qué hay sensores que codifican sus lecturas como secuencia en serie de PWM?

5

Este es un comentario de @CuriousCat, pero creo que merece la atención de una pregunta real:

El sensor utilizado en la pregunta original genera una señal de estilo PWM en serie como esta:

  

¿Cuáleslaventajadequeunsensorcodifiquesusalidadeestamaneraenlugardelos4a20mAmásconvencionales(estoyacostumbradoaverquelossensoresdeprocesousanestotodoeltiempo)convertidosadigitalesenelextremoreceptor?

    

¿Estoesmáspreciso?

    

Alternativamente,¿porquénoiraHART/PROFIBUS,etc.?

Laspreguntasdeseguimientosetrasladaronaotrapregunta: ¿Existen estándares? ¿Para enlaces de sensores digitales?

    
pregunta Marcus Müller

2 respuestas

8
  

los más convencionales de 4 a 20 mA

Más convencional es un término muy relativo, y parece que podría provenir de un fondo de control de proceso, donde las señales del sensor a menudo se procesan y se convierten a una corriente internamente en el sensor. Permítame asegurarle que no es lo más común en el mundo.

  

¿Cuál es la ventaja [...] en lugar de [...] convertido a digital en el extremo receptor?

Bueno, tener un ADC en el microcontrolador es un lujo. El sensor en cuestión tiene una salida de 14 bits; encontrar un microcontrolador con un ADC de 14 bits aumentará el costo del material.

  

¿Esto es más preciso?

Sí. 14 bits significa \ $ 2 ^ {14} \ $ valores posibles. Digamos que la señal de voltaje tendría un rango de amplitud completo de 0 V a 5 V. En ese caso, su paso de voltaje sería \ $ 5 \ cdot2 ^ {- 14} \, \ text V \ approx0.3 \, \ text { mV} \ $. ¡Eso es muy poco! La interferencia, las variaciones de temperatura y el ruido en su ADC serán múltiples, a menos que pueda controlar muy de cerca muchas cosas, lo que hará que su sistema sea muy, muy complejo y costoso.

Entonces: siempre que necesite valores digitales al final, convierta lo analógico a lo digital tan pronto como sea técnicamente posible.

  

Alternativamente, ¿por qué no ir a HART / PROFIBUS, etc.?

Debido a que los buses como estos son realmente complicados de implementar tanto en el sensor como en el controlador, y si realmente está simplemente conectando el sensor a un microcontrolador en la misma PCB, ¿por qué hacer las cosas más complicadas y costosas?

La máquina de estado de cuatro estados que mostró que es capaz de recibir este tipo de señal puede parecer complicado alguien que no está demasiado acostumbrado al desarrollo integrado, pero imagina que tendrías que escribir un punto final de PROFIBUS completo. Buena suerte!

    
respondido por el Marcus Müller
3

La ventaja del enfoque indicado es que es puramente digital y, por lo tanto, se puede aislar fácilmente, pero no requiere ningún tipo de base de tiempo precisa en el transmisor ni en el receptor. Un UART convencional generalmente requeriría que la incertidumbre combinada de los relojes de transmisión y recepción sea inferior al 5% (dependiendo de la fluctuación de fase del muestreo, puede ser mejor que eso). Transmitir un valor de 0x00 pulsaría el cable bajo para los relojes de nueve bits; la transmisión de 0x80 lo pulsaría bajo para ocho. Un receptor necesitaría conocer la velocidad del reloj del transmisor con bastante precisión para distinguir entre esos valores de byte.

Si la cantidad de demora en los flancos ascendentes y descendentes del reloj era constante y el primer byte del transmisor siempre tenía establecido el bit bajo, el receptor podría medir la longitud del primer pulso bajo e inferir la velocidad en baudios de ese. Sin embargo, si los datos pasan por un optoaislador u otra interfaz similar, podría distorsionar la longitud del pulso lo suficiente como para causar problemas. Además, un receptor tendría que ser capaz de medir la duración de los impulsos con precisión y ajustar la velocidad en baudios al instante. Tales cosas no son imposibles, pero tampoco son fáciles.

Por el contrario, con el enfoque de transmisión PWM indicado, incluso las mediciones de ancho de pulso muy crudas permitirían una transmisión confiable. Un receptor que muestreara la entrada a una velocidad de 4.5x o más podría contar las longitudes de los pulsos bajos y determinar qué bits eran unos y ceros a partir de eso. Una UART de velocidad de transmisión automática necesitaría medir la longitud del bit de inicio dentro de un pequeño porcentaje, lo que implicaría un muestreo mucho más frecuente.

    
respondido por el supercat

Lea otras preguntas en las etiquetas