マイクロコントローラーと ac# Windows アプリケーション間のシリアル通信を実装しようとしています。
コンピューターからマイクロコントローラーへの方向ですべてが正しく機能しています。しかし、他の方向に通信を実装する方法を正確に理解するのに苦労しています.
メッセージは 4 バイトで構成されています
- B0 – 送信される値のアドレス/名前
- B1 – 上位バイト
- B2 – 下位バイト
- B3 – チェックサム = バイト 0 ~ 2 の追加
完全なメッセージが確実に受信されるようにするために、バイト間に 20 ミリ秒以上ある場合、受信中の現在のメッセージをマイクロコントローラーにあきらめさせます。
タイミングを細かく制御できないことがわかっているため、ac# アプリケーション内からこの遅延を実装する方法がわかりません。
開始文字と停止文字を送信する他の ASCII プロトコルを見たことがありますが、バイナリ データを送信するときにこれを実装する方法がわかりません。この場合、値はバイト内で可能な任意の値を取ることができ、たまたま開始文字または停止文字が何であるかはわかりません。
リソースが限られているため、マイクロコントローラー側を基本的に保つ必要があり、コントローラーの主要なタスクには、ascii を 10 進数に変換する非常に正確な (サブ us 範囲) 必要があります。
マイクロプロセッサまたはコンピュータ側からこれをどのように実装する必要があるかについての推奨事項はありますか?
編集
ここで他の質問のいくつかを見てきましたが、それらはすべてはるかに大きなASCIIベースのメッセージを参照しているようです。