Мені цікаво, наскільки можливо використовувати бітбангінг для керування серійним бодом 9600 передач через штифти GPIO на Raspberry Pi.
Очевидно, що Linux не є надзвичайно хорошою платформою для бітбінгу, оскільки існує велика кількість драйверів та інших перебоїв, які можуть блокувати процесор протягом тривалого періоду часу (1-10 мс). Однак останнім часом ситуація значно покращилася, і зараз у ядрах регулярно ввімкнено деяке перевагу. Я також підозрюю, що ядро виправленого в реальному часі може бути легко використане на Raspberry Pi, і підключене обладнання та драйвери можна обережно вибирати.
Мій стандарт надійності полягає в тому, що вона повинна залишатися в межах нормальних серійних допусків 9600 бод, що більшість часу. Наразі я не впевнений, скільки помилок допустимо на практиці, але є повторні передачі та підтвердження в протоколі, тож він є дещо толерантним.
Отже, мої запитання:
- Чи може програмне забезпечення userland надійно виконувати швидкість передачі даних з частотою передачі 9600 бод?
- Чи потрібно це ядро в режимі реального часу?
- Скільки помилок я повинен очікувати загалом?
Крім того, чи є який-небудь приклад коду, що робить серійний за допомогою GPIO бітових ударів? Я знаю про Arduino SoftSerial, але це про це.
На всякий випадок, щоб обмежити питання: це не стандартний послідовний інтерфейс, і UART програми Raspberry Pi вже використовується для іншого послідовного посилання. Я не бажаю відповідей, які пропонують зовнішнє обладнання (наприклад, Gertboard або Arduino), а також відповідей, які залежать від UART.
reliability
може залежати від дії та очікувань.