Periféricos de computadora para detectar inmediatamente (5 ms) el cambio del estado de la entrada digital en los programas de C #

1

La aplicación C # en la que estoy trabajando debe poder poder llamar a una función dentro de los 5 milisegundos del cambio de estado de la señal de entrada digital (0V = apagado, 5V = activado).

En lugar de usar software para sondear repetidamente el estado de esa entrada, me gustaría que algún hardware simplemente llame a una función de software cuando el hardware detecte un cambio de estado (por ejemplo, cómo funcionan las interrupciones de hardware).

¿Alguien sabe cómo hacer esto (qué puertos usar) en una torre de PC estándar? ¿O alguien sabe de algún periférico de hardware que permita esta funcionalidad?

Las latencias ocasionales están bien. Necesito < 5ms promedio.

Básicamente necesito tomar tantas muestras como sea posible de la forma de onda digital de entrada. (Preferiblemente en el programa C #, en lugar de en un microcontrolador periférico, aunque estoy abierto a sugerencias).

Por ejemplo, descubrí que Labjack U3 puede sondear su entrada digital en menos de un milisegundo. Esta es una respuesta válida a la pregunta, pero me interesan más respuestas, especialmente las que no usan el sondeo o el sondeo más rápido que 1 ms.

La alta impedancia de entrada sería buena (entradas digitales).

    
pregunta OrangeSherbet

3 respuestas

2

¿Necesita realizar una acción específica en tiempo real o simplemente grabar el evento?

Si es el primero, nunca logrará esto utilizando hardware de productos básicos e interfaces de nivel de consumidor. Necesitará un procesador de señal de laboratorio (será una tarjeta que puede acceder directamente a las interrupciones de hardware) y un sistema operativo en tiempo real como VxWorks. Un sistema operativo centrado en el usuario no interrumpirá la escritura de un disco solo porque el bus USB quiere un poco de atención.

Si es lo último, consígase un grabador de señal y post-procese la salida del búfer a su conveniencia.

    
respondido por el paul
2

Si su señal no tiene demasiado DC (pausas largas sin datos), use la tarjeta de sonido.

    
respondido por el ilkhd
0

Terminé usando Timer Input Capture Interrupt Service Routine de Arduino Uno para configurar los datos a través de USB en un objeto C # SerialPort inmediatamente después de la captura de entrada. SerialPort dispara un serialdatareceivedeventhandler inmediatamente después de detectar un Carácter de Fin de Archivo (0x1A), y se inicia un nuevo hilo para procesar los datos de entrada (como asignarle una marca de tiempo).

A todos los neighsayers, ¿Qué diablos? Obviamente te equivocaste al no poder hacerlo.

    
respondido por el OrangeSherbet

Lea otras preguntas en las etiquetas