20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

参考メモ/電子工作のシリアル通信(マイコン,パソコン,RS-232C)の雑多なメモ

Last updated at Posted at 2016-04-04

2014年前半に、PCとシリアル通信を行うちょっとしたアプリを組むことがありました。
LinuxやWindowsなどから直接シリアル通信を行わせようとして、PCに搭載されてるシリアル通信系のチップセットについて調べたり、
そもそもシリアル通信とRS232Cってどう違うんだっけ、となったり、
PCから直接シリアル通信を行わせるの諸事情で結局あきらめて、最近のArduinoやRaspberry Piからはどうだ?と調べたり、
したメモです。

ざっくり話すと、RTS/CTS線のハンドシェイクが必要な骨董品レベルのシリアル通信をモダンPCでやろうとして、最初PC(Linux/Windows)系でやろうとしたけど無理っぽいのでArduinoなどマイコン系でやろうとしていろいろググった軌跡です。

もう細かい流れ覚えてないのですが、誰かの役に立つかもなので、順番バラバラですいませんが参考URLまとめておきます。

UART/USART/8250/82511/16550など仕様、チップセット関連

「同期式通信」「非同期式通信」の違いが分かりづらかったのですが、@jj1bdx さんからのコメントで、「非同期式通信(UART使用)の場合、同期を行うのはスタートビットのタイミングを元に、あとは速度を仮定してサンプルしていって、最後がストップビットであることを確認する」という説明が分かりやすかったです、ありがとうございます。

  • UART/USART両対応 : 8251シリーズ
  • UARTのみだが、PC/AT互換機で今もその発展形が幅広く使われている : 8250 / 16550, 16650 シリーズ

Intel USART 8251 関連

マイコン時代の、同期式通信を扱うコントローラ。

UART 8250 / 16550 / 16650A 系関連

こちらの非同期式通信コントローラが、PC系で使われるいわゆる「シリアル通信」の系譜。

Intel以外のコントローラ

Intel以外にも、マイコンのZ80用などシリアル通信用コントローラがあるのを @jj1bdx さんに教えてもらいましたので、メモ。

RS232Cのピン配置, RTS/CTS or DTR/DSR フロー制御(ハンドシェイク) 日本語資料

RS232はシリアル通信の規格で、プロトコルと接続ポートの形状や信号線などハード・ソフト両方を定めている。
信号線が数種類用意されているため、それらを使ったハンドシェイク方式についても何種類かある。
ベースとなっているのはUARTなので、マシンの性能とは独立して、利用目的ごとに通信スピードを設定してデジタル信号を送受信できる。

以下は通信・計測機器などを製造・販売している会社からの説明資料なので、Wikipediaよりは信頼性が高いかも。また、図表があるのでわかりやすい。

Linux/Windowsからのシリアル通信プログラミング資料

シリアル通信ユーティリティ, Kermitの参考URL

Ubuntu で USB - RS232C変換ケーブルを使う

"/dev/ttyUSB" を使う:

工業機器向けのフルスペック変換ユニット:

シリアル通信の電圧と変換(レベルコンバータ)

シリアル通信では0(「スペース」と呼ぶ)/1(「マーク」と呼ぶ)の信号をやり取りするが、実際の物理的な電圧が機器によって異なる場合は、レベルコンバータを挟む必要がある。

RS232Cの復習 : RS232Cの電圧レベル : 0が +3V - +15V, 1が -3V - -15V

  • 電子回路の豆知識
    • http://www.nahitech.com/nahitafu/mame/mame5/rs232c.html
    • ※当初は見出し直後の「0(「スペース」と呼ぶ)/1(「マーク」と呼ぶ)」のところを「HIGH/LOW」と表記していましたが、電圧の値と混同して紛らわしいので、より信号の意味を正確に表現できる「スペース」「マーク」という表記に修正しています。この表現は上記URLで使われてて、電子工作でのシリアル通信全体の解説としても非常に分かりやすかったです。
  • RS-232Cの簡易接続
  • 電子工作の知恵袋 > 通信規格 > RS232C その1 基本

マイコン系の信号レベル 0 - 5V を変換してくれるボードが売ってる:

Linuxのkernelデバイスドライバ開発という観点での "Serial", "TTY" Device Driver系の話題

Arduino でのシリアルポート通信の参考URL

Raspberry Piでのシリアルポート通信の参考URL

秋月電子のAtmega系マイコンボードでArduino互換機を作る参考URL

20
19
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?