Las distribuciones estándar de Raspberry Pi son compatibles con el controlador FTDI, por lo que puede usar un adaptador USB a serie basado en conjuntos de chips FTDI. De hecho, FTDI ha lanzado algunos productos comercializados específicamente para su uso con la Raspberry Pi:
enlace
enlace
También puede comprar sus dispositivos de nivel de chip para rodar su propia solución personalizada si lo prefiere. También hay información sobre los adaptadores USB a serie compatibles aquí, los dispositivos basados en Prolific PL2303 también se enumeran como compatibles:
enlace
Me di cuenta de que ya ha mencionado una solución basada en GPIO y un sistema similar basado en FTDI. Estas son realmente las únicas dos opciones, convertir USB a serie es bastante complejo y, ciertamente, el camino más práctico es un conjunto de chips dedicado.
Para obtener algunas líneas seriales adicionales a través del puerto GPIO, también puede usar una técnica llamada 'bit banging' para alternar una línea de E / S para transmitir datos y escribir algo para decodificar los datos seriales entrantes en otra línea GPIO. Sin embargo, eso normalmente requeriría el uso de un temporizador de hardware para una operación confiable, por lo que creo que necesitaría escribir sus propios controladores de kernel. Desde el código de usuario, puede usar temporizadores estándar, pero dado que Linux no es un sistema operativo en tiempo real en el verdadero sentido, dudo que funcione de manera confiable al 100%, especialmente a velocidades de transmisión más altas.