3
Raspberry Piは9600ボーシリアルを確実にビットバンできますか?また、サンプルコードはありますか?
Raspberry PiのGPIOピンを介してビットバンギングを使用して9600ボーシリアルを駆動することがどのように実行可能かと思います。 明らかに、長時間(1〜10ミリ秒)CPUをブロックするドライバーやその他の割り込みが多数存在するため、Linuxはビットバンギングに適したプラットフォームではありません。ただし、最近は状況が大幅に改善されており、カーネルでプリエンプションが定期的に有効になっています。また、リアルタイムパッチを適用したカーネルをRaspberry Piで簡単に使用でき、接続されたハードウェアとドライバーを慎重に選択できると思います。 信頼性に関する私の基準は、ほとんどの場合、通常の9600ボーシリアルトレランス内に収まることです。現在、実際に許容できるエラーの数は不明ですが、プロトコルには再送信と確認応答があるため、少なくとも多少の許容範囲があります。 だから、私の質問は: ユーザーランドソフトウェアは9600ボースピードを確実にビットバンできますか? これにはリアルタイムのパッチが適用されたカーネルが必要ですか? 一般に、いくつのエラーを予想する必要がありますか? また、GPIOビットバンギングを介してシリアルを実行するサンプルコードはありますか?私はArduino SoftSerialを知っていますが、それはそれについてです。 念のため、質問を制限するために:これは標準のシリアルインターフェイスではなく、Raspberry PiのUARTは別のシリアルリンクに既に使用されています。外部ハードウェア(GertboardやArduinoなど)を示唆する回答も、UARTに依存する回答も希望しません。