質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

5回答

3595閲覧

シリアル通信における通信プロトコルに名前はあるのか

退会済みユーザー

退会済みユーザー

総合スコア0

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2019/02/20 14:46

ArduinoなどPCとシリアル通信のできるデバイスはたくさんありますが,TCP/IPのような名前のついたプロトコルは存在するのでしょうか?
「シリアル通信 プロトコル」で検索してもポート(USBやRS-232Cなど)の話ばかりでソフトウェア的な話でのプロトロルの記事を見つけることができませんでした.

どなたかご存知でしたら教えていただきたいです.
できればArduinoでシリアル通信を行う際に使用されているプロトコルの名前も教えていただきたいです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

シリアルで送れるのはビット(0と1)の列ですね。
ビット列でバイトを送るための手順としては、同期式、調歩同期式、フレーム同期式など。

これらどれかの方式でバイトが通信できる状態で、文字を表すバイト列をそのまま通信しあうのは、「無手順」と言われるプロトコルです。

電線をそのまま使ったシリアル通信では、ビットがノイズで0⇔1が入れ替わり、バイトが化ける(本来の意味の「文字化け」)ことがあるので、それを防止するためのプロトコルとしては、MNPとかがあります。
ファイルを送るときだけデータの化けを防止するための、シリアル上のファイル転送プロトコルとしては、XMODEM、YMODEM、ZMODEM、Kermitなど。
Teratermというシリアル端末機能も持ったWindowsアプリでは、ファイルメニューの転送のところに、これらのファイル転送プロトコルや、パソコン通信で使われた独自プロトコルが載ってます。

USB端子同士をUSBケーブルで繋いで、その上でシリアル通信をシミュレートしているのであれば、おそらくUSBのプロトコルでエラー訂正などをしているのではないかと思うので、ビット化けや文字化けはないのかもしれません(よく知りませんが)。

投稿2019/02/20 15:50

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

シリアル通信は1対1の通信なので、IPのように相手を探すためにアドレスを解決してといった手順を必要としませんから、MACやIPレベルのプロトコルはありません。

受信側でデータが溢れる(受信しきれない)事を防ぐため、受信側から送信側に受け入れ可/受け入れ不可の信号(XON/XOFF)を送って制御するXON/XOFFフロー制御はプロトコルと呼んで良いと思います。

投稿2019/02/20 23:20

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2019/02/21 15:37

EIA232-Eだったかと>規格名
thkana

2019/03/02 00:55

ふと思い出して調べたらEIA232-Fにまで改版されてたみたいだけど(なんかUSS-1701シリーズみたいだ...)、Wikipediaを見る限り規格だけが暴走状態? みたいな。
guest

0

ほとんどの場合1:1接続で、通信相手との同意だけして複雑なプロトコルなんて組まないで使うことがほとんど、というところじゃないでしょうか。もちろん、その気になればIPとかも載せられると思いますけれど...(何しろ「伝書鳩」によるIP通信なんて話もあったり。RFC1149参照)

こないだ、"modbus"の実装しましたけどね。一応外側のインターフェースはRS485でしたが。
単独メーカーだけかも知れませんが、センサーとの通信のSCIPとか言うのも最近聞きました。リンク

投稿2019/02/21 15:45

thkana

総合スコア7629

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ありません。
それぞれ自分勝手にフォーマットを決めて実装してますね

投稿2019/02/20 14:52

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問