Tôi tự hỏi làm thế nào khả thi khi sử dụng bitbanging để lái một chuỗi 9600 baud thông qua các chân GPIO trên Raspberry Pi.
Rõ ràng, Linux không phải là một nền tảng tốt cho bitbanging, vì có một số lượng lớn trình điều khiển và các ngắt khác có thể chặn CPU trong thời gian dài (1-10ms). Tuy nhiên, gần đây tình hình đã trở nên tốt hơn rất nhiều và một số chế độ tiền chế hiện được kích hoạt thường xuyên trong các hạt nhân. Tôi cũng nghi ngờ một hạt nhân được vá thời gian thực có thể dễ dàng được sử dụng trên Raspberry Pi, và phần cứng và trình điều khiển được kết nối có thể được chọn cẩn thận.
Tiêu chuẩn của tôi về độ tin cậy là nó phải ở trong dung sai nối tiếp 9600 baud bình thường trong hầu hết thời gian. Tôi hiện không chắc chắn có bao nhiêu lỗi có thể chấp nhận được trong thực tế, nhưng có sự truyền lại và xác nhận trong giao thức, vì vậy nó ít nhất là khoan dung.
Vì vậy, câu hỏi của tôi là:
- Phần mềm userland có thể tin cậy tốc độ bit-bang 9600 baud không?
- Điều này có cần một kernel vá thời gian thực?
- Có bao nhiêu lỗi tôi nên nói chung?
Ngoài ra, có mã ví dụ nào thực hiện nối tiếp qua đập GPIO không? Tôi biết về Arduino SoftSerial, nhưng đó là về nó.
Chỉ trong trường hợp, để giới hạn câu hỏi: đây không phải là giao diện nối tiếp tiêu chuẩn và UART của Raspberry Pi đã được sử dụng cho một liên kết nối tiếp khác. Tôi không muốn câu trả lời đề xuất phần cứng bên ngoài (như Gertboard hoặc Arduino) cũng như câu trả lời phụ thuộc vào UART.
reliability
có thể phụ thuộc vào hành động và kỳ vọng.