Saya bertanya-tanya bagaimana layaknya menggunakan bitbanging untuk menggerakkan 9600 baud serial melalui pin GPIO pada Raspberry Pi.
Jelas, Linux bukan platform yang sangat baik untuk bitbanging, karena ada sejumlah besar driver dan interupsi lain yang dapat memblokir CPU untuk periode waktu yang lama (1-10 ms). Namun, situasinya menjadi jauh lebih baik baru-baru ini, dan beberapa pre-emption sekarang diaktifkan secara teratur di kernel. Saya juga curiga bahwa kernel patch real-time dapat dengan mudah digunakan pada Raspberry Pi, dan perangkat keras serta driver yang terhubung dapat dipilih dengan hati-hati.
Standar saya untuk keandalan adalah bahwa ia harus tetap dalam toleransi serial normal 9600 baud sebagian besar waktu. Saat ini saya tidak yakin berapa banyak kesalahan yang dapat ditoleransi dalam praktiknya, tetapi ada transmisi ulang dan pengakuan dalam protokol, sehingga setidaknya sedikit toleran.
Jadi, pertanyaan saya adalah:
- Bisakah perangkat lunak penggunaland andal bit-bang 9600 baud speed?
- Apakah ini membutuhkan patch patch real-time?
- Berapa banyak kesalahan yang harus saya harapkan secara umum?
Juga, apakah ada contoh kode yang melakukan serial via GPIO bit banging? Saya tahu tentang Arduino SoftSerial, tapi hanya itu saja.
Untuk berjaga-jaga, untuk membatasi pertanyaan: ini bukan antarmuka serial standar dan UART Raspberry Pi sudah digunakan untuk tautan serial lain. Saya tidak berharap untuk jawaban yang menyarankan perangkat keras eksternal (seperti Gertboard atau Arduino) atau jawaban yang bergantung pada UART.
reliability
bisa tergantung pada tindakan dan harapan.