비트 뱅킹을 사용하여 Raspberry Pi의 GPIO 핀을 통해 9600 보드 시리얼을 구동하는 것이 얼마나 실현 가능한지 궁금합니다.
분명히 리눅스는 비트 뱅킹을위한 아주 좋은 플랫폼이 아닙니다. 많은 수의 드라이버와 다른 인터럽트가있어 CPU를 장시간 (1-10ms) 차단할 수 있습니다. 그러나 최근 상황이 훨씬 나아졌으며 커널에서 일부 선점권이 정기적으로 활성화되었습니다. 또한 실시간 패치 커널을 Raspberry Pi에서 쉽게 사용할 수 있으며 연결된 하드웨어와 드라이버를 신중하게 선택할 수 있다고 생각합니다.
안정성에 대한 나의 표준은 대부분의 경우 정상적인 9600 보드 직렬 공차 내에 있어야한다는 것입니다. 현재 실제로 허용 가능한 오류 수는 확실하지 않지만 프로토콜에 재전송 및 승인이 있으므로 약간 허용됩니다.
그래서 내 질문은 :
- 유저 랜드 소프트웨어가 9600 보드 속도를 안정적으로 비트 뱅킹 할 수 있습니까?
- 실시간 패치 커널이 필요합니까?
- 일반적으로 몇 개의 오류가 예상됩니까?
또한 GPIO 비트 뱅킹을 통해 시리얼을 수행하는 예제 코드가 있습니까? Arduino SoftSerial에 대해 알고 있지만 그게 전부입니다.
질문을 제한하기 위해 : 이것은 표준 직렬 인터페이스가 아니며 Raspberry Pi의 UART가 이미 다른 직렬 링크에 사용되었습니다. 외부 하드웨어 (예 : Gertboard 또는 Arduino)를 제안하는 답변이나 UART에 의존하는 답변을 원하지 않습니다.
reliability
행동과 기대에 달려 있습니다.