Tengo un proyecto simple en el dispositivo host que debe manejar 2 pines con un alto nivel lógico (voltaje de 3.3V, 5V o 12V, no importa) y esperar a que otros 2 pines pasen a un nivel alto por el dispositivo periférico.
¿Puedo implementar dicho dispositivo host con una PC estándar y qué hardware (incorporado o extra) debo usar?
Respuestas:
No está claro qué desea que haga la PC y qué se supone que debe hacer el dispositivo ("dispositivo host" no tiene sentido), pero parece que desea E / S digital básica de una PC.
Las PC no están realmente diseñadas para E / S digital directa a dispositivos externos. Pero puede comprar módulos de E / S digitales que se conectan a la PC a través de USB, que luego le permiten leer y escribir señales digitales individuales. Puede hacerlo usted mismo más fácilmente haciendo que un microcontrolador se comunique con la PC a través de un puerto COM.
Sin embargo, si esto es realmente un simple problema de control, ¿por qué necesita una PC? Haga que un pequeño microcontrolador haga toda la tarea por sí mismo. Para eso son exactamente los micronctrollers. Son pequeñas computadoras con líneas digitales y otras líneas de E / S que están destinadas a conectarse directamente a hardware externo.
fuente
Si aún puede encontrar uno, vale la pena mencionar que un verdadero puerto paralelo está tan cerca de un GPIO como lo encontrará en una PC lista para usar. Las implementaciones clásicas carecen de cierta flexibilidad, ya que muchos de los pines tienen una dirección fija, y algunos están invertidos, pero la gente ha estado trabajando en eso durante años.
La mayor limitación es que tales puertos se están extinguiendo. Los reemplazos más abstractos, como los convertidores paralelos USB, generalmente se pueden usar solo para controlar las impresoras reales y carecen de registros que pueda leer / escribir directamente para configurar o monitorear el estado del pin. Se rumorea que hay algunos que tienen esta capacidad, pero pueden ser difíciles de encontrar y requieren atención detallada a los conductores.
En ese punto, tiende a ser más práctico usar un dispositivo de E / S conectado por USB. A menudo, este es un microcontrolador que ejecuta un firmware simple, ya sea del fabricante o personalizado.
Una ventaja importante de una implementación personalizada es la posibilidad de descargar las partes críticas de nivel más bajo, más repetitivas y / o cronometradas de la manipulación de E / S en el procesador en el dispositivo, en lugar de intentar hacerlo desde la PC donde la latencia de La paquetización USB, el recorrido de múltiples buses y los sistemas operativos multitarea tienden a hacer que las operaciones bit a bit sean extremadamente lentas.
Si aún no ha descubierto exactamente qué forma tomará su solución, una posibilidad es tomar algo como un Arduino que está empaquetado tanto en el sentido del hardware como de la cadena de herramientas para facilitar su uso, y podría funcionar como una solución independiente o como ayudante de E / S para realizar tareas de bajo nivel bajo comando desde una PC conectada.
fuente
Recomiendo usar un FTDI FT232RL con un controlador especial que permite modo bitbang . Este método funcionará en prácticamente todas las PC y permite un acceso de latencia decente a un GPIO simple.
Hay muchas placas de arranque de chips FTDI, pero yo personalmente uso esta .
fuente