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