ArduinoなどPCとシリアル通信のできるデバイスはたくさんありますが,TCP/IPのような名前のついたプロトコルは存在するのでしょうか?
「シリアル通信 プロトコル」で検索してもポート(USBやRS-232Cなど)の話ばかりでソフトウェア的な話でのプロトロルの記事を見つけることができませんでした.
どなたかご存知でしたら教えていただきたいです.
できればArduinoでシリアル通信を行う際に使用されているプロトコルの名前も教えていただきたいです.
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答5件
0
ベストアンサー
シリアルで送れるのはビット(0と1)の列ですね。
ビット列でバイトを送るための手順としては、同期式、調歩同期式、フレーム同期式など。
これらどれかの方式でバイトが通信できる状態で、文字を表すバイト列をそのまま通信しあうのは、「無手順」と言われるプロトコルです。
電線をそのまま使ったシリアル通信では、ビットがノイズで0⇔1が入れ替わり、バイトが化ける(本来の意味の「文字化け」)ことがあるので、それを防止するためのプロトコルとしては、MNPとかがあります。
ファイルを送るときだけデータの化けを防止するための、シリアル上のファイル転送プロトコルとしては、XMODEM、YMODEM、ZMODEM、Kermitなど。
Teratermというシリアル端末機能も持ったWindowsアプリでは、ファイルメニューの転送のところに、これらのファイル転送プロトコルや、パソコン通信で使われた独自プロトコルが載ってます。
USB端子同士をUSBケーブルで繋いで、その上でシリアル通信をシミュレートしているのであれば、おそらくUSBのプロトコルでエラー訂正などをしているのではないかと思うので、ビット化けや文字化けはないのかもしれません(よく知りませんが)。
投稿2019/02/20 15:50
総合スコア86307
0
シリアル通信は1対1の通信なので、IPのように相手を探すためにアドレスを解決してといった手順を必要としませんから、MACやIPレベルのプロトコルはありません。
受信側でデータが溢れる(受信しきれない)事を防ぐため、受信側から送信側に受け入れ可/受け入れ不可の信号(XON/XOFF)を送って制御するXON/XOFFフロー制御はプロトコルと呼んで良いと思います。
投稿2019/02/20 23:20
総合スコア6919
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
"arduino シリアル通信" で検索すると色々と引っ掛かりますね。
中身の正確さは分かりませんが、 "Arduinoでバイナリ送受信のシリアル通信を..." とか、
まあ、安全を見たら、テキスト(Ascii文字)で送受信が安全かと思いますが。
さて、実際のプロトコルは? と言うと既に回答が付いているように、「無手順」が一般的ですね。otnの回答にあるように、色々なプロトコルがありますが、今となってははどれだけ使われているか疑問です。
データの安全性、高速性を求めるならば、もっと高速で安全な手段(イーサネットとか)あります。arduinoではお手軽さ重視で、指摘のシリアル通信が使われているのではないかと推測します。この時、X-Modem(まだ簡易)なんか、使ったら、お手軽さが無くなってしまうでしょう。 そんな事情かと思います。
なお、"RS-232C" とありますが、これは既に古い呼称です。Wiki-pediaの RS-232 も説明が不足している気がします。 最新は、RS-232E だったか? さらには、EIS-??? になっていたような。 (正確でなくて済みません)
元々は、25pinで、送信(TxD), 受信(RxD)の他、DTR, DSR等の色々の信号線があり、それらを使って送受信します。(ここにも CDがある!) これらの制御を使って通信するのも一つのプロトコルですが、お手軽に通信する場合、これらはほとんど無視されます。
投稿2019/02/21 12:21
総合スコア6385
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。