La mejor forma de leer la señal PWM es mediante el uso del contador del temporizador en el modo de captura de entrada. Usted ejecuta su contador a alta frecuencia y lo programa para una interrupción externa. Cuando la señal en un pin cambia el valor del contador actual se almacena en el registro de captura de entrada. Todo esto se maneja en hardware, por lo que su programa es libre de hacer lo que necesite. Tienes que manejar las interrupciones para adquirir ese valor y preparar la siguiente captura al comienzo del pulso.
La forma exacta en que conectas esas señales PWM depende de la MCU. Algunos de ellos solo tienen un pin de captura de entrada, por lo que tiene que usar el IC del multiplexor y pasarlo por sus sensores. O puede buscar MCU con suficientes pines de captura de entrada para todos sus sensores.
Incluso si tiene que usar sensores de entrada única y multiplex, no necesita preocuparse por la frecuencia de PWM diferente. Simplemente ejecute el contador lo más rápido posible (aunque no demasiado rápido para ser superado) y calcule el trabajo real en el software de acuerdo con la entrada que se muestrea en este momento.
ACTUALIZACIÓN:
Si está preguntando sobre el envío de datos, entonces es una pregunta completamente diferente.
En primer lugar, debe dividir claramente el código de adquisición de datos de la transmisión de datos. Sus rutinas de muestreo (especialmente las ISR) no deben hacer ninguna transmisión, deben colocar todos datos en variables compartidas y olvidarse de ellas.
Su código de transmisión depende de las necesidades de su destinatario objetivo y del ancho de banda disponible únicamente. Por ejemplo, puede combinar todos los datos en un bloque y enviar este bloque cada vez. Los datos lentos a menudo se enviarán sin cambios, pero el código será muy simple, tanto en el transmisor como en el receptor.
Alternativamente, puede diseñar su propio protocolo y enviar cada parámetro etiquetado individualmente por ID de fuente. En este caso, puede enviar datos de cambio rápido con más frecuencia. Idealmente, la frecuencia de transmisión para cada valor corresponderá a su tasa de adquisición, pero como ha separado dos capas, su tiempo es flexible y puede finalizar la transmisión anterior antes de enviar la siguiente, incluso si hay nuevos datos disponibles en el proceso.
Al final es un simple cálculo del ancho de banda. Calcule cuántos bytes puede enviar cada segundo dada la velocidad de transmisión. Calcule cuántos bloques puede enviar y vea si le proporciona una tasa de datos suficiente según sus requisitos. De lo contrario, calcule las tasas de datos individuales y vea cuántos bytes necesita enviar por segundo (incluidas las etiquetas) y sumarlos en el volumen total de datos. Si todavía está por encima de la velocidad de transmisión, estás fuera de suerte. Si no es así, puede seguir adelante e implementar el protocolo intercalado.