2015年09月13日

シリアル通信 -第1回:シリアル通信とは

今回からはArduinoのシリアル通信という機能を使っていきます。
以前にも温度センサーで温度や電圧の値を取得するのに使ったように、シリアル通信によってArduinoとパソコン間でデータのやり取りを行うことができるようになります。
今回はシリアル通信について説明を行い、Arduinoでシリアル通信を使う方法は次回説明します。

なお、シリアル通信といった場合、シリアル伝送の通信全般を指す場合と特定の通信を指す場合の2つがあります。本ブログでシリアル通信といった場合は、基本的に後者の意味です。


Arduinoで計る,測る,量る [ 神崎康宏 ]

価格:3,024円
(2015/9/13 17:18時点)
感想(2件)



目次



1. 概要

シリアル通信と関係が深いものとしてRS-232というシリアル伝送の通信規格と、それを行うために必要なUARTという集積回路(≒部品)があります。雑に述べると、RS-232の一部のみ使用している通信がシリアル通信です。ただし、「一部のみ」というのがどこまでなのか曖昧ですので、単純にシリアル通信といってもRS-232の機能の内最小限だけのことを指す場合もあれば、電圧レベル以外はほぼRS-232と同じようなシリアル通信もあります。場合によってはシリアル通信をRS-232の意味で使ってることもあります。
UARTは元々集積回路を指す言葉でしたが、シリアル通信とセットで使われることが多いため、今ではUARTがシリアル通信そのものを指すことも多いです。

シリアル通信の特徴をデジタル通信のルール12で説明した言葉で表すと以下のようになります。
  • 電圧レベルは未定(※RS-232では決められている)
  • シングルエンド
  • シリアル伝送
  • 非同期式(=調歩同期式)

このような特徴を持っており、基本的には少量のデータのやりとりに向いています。そのほかの特徴として、元々のRS-232が多くの機器で使われていたため、シリアル通信を行うための部品は安価で入手しやすいです。さらに、後ほど説明しますがシリアル通信は最低3本の線があればいいため、回路の設計も簡単です。

通信速度は低速であるものの、部品の入手性や設計の容易性という利点があるため、シリアル通信は電子工作でよく使われる通信方式です。


2. 接続

基本的なシリアル通信を行うには3本の線が必要です。その3本の内訳は通信用が2本、GNDが1本です。
通信用の線を繋ぐ端子をTxDRxDといいます。TxD(Transmitted Data)は送信、RxD(Received Data)は受信のことです。
互いの部品のTxDとRxDを接続し、GNDを接続すればシリアル通信の回路は完成です。

13_シリアル通信接続_1-2.png

なお、3本の線で行えるのは最低限のシリアル通信です。シリアル通信(というよりRS-232)の機能を活用するためにはあといくつか線を接続する必要があります。


3. 波形

下図は実際にArduinoとパソコン間で基本的なシリアル通信を行ったときの波形です。上側は文字"A"(文字コード:0x41)、下側は文字"Z"(文字コード:0x5A)の波形です。

13_シリアル通信波形_1.png

13_シリアル通信波形_2.png

シリアル通信は基本的に1回の通信で1[Byte]分のデータを送り、データの前後にスタートビットストップビットを付けます。
上図の流れを説明します。2[Byte]以上のデータを送る際は下記を繰り返します。
  1. 通信をしていないとき(=待機)はHigh状態
  2. 通信開始時にスタートビット(Low)を送る
  3. データを送る(※データは下位ビットから送る
  4. データを1[Byte]分送ったら、ストップビット(High)を送る
  5. High状態(=待機)に戻る

3番目に書いてあるように、シリアル通信ではデータを下位ビットから送ります。ですので、文字"A"の文字コードは"41(16)"="0100 0001(2)"ですが、下位から送るのデータ波形ではひっくり返り左から"1000 0010(2)"になります。Zも同様に"5A(16)"="0101 1010(2)"がひっくり返り、波形は左から"0101 1010(2)"となります。

なお、これはあくまでシリアル通信の基本的な波形です。シリアル通信の設定によってはこれ以外の情報も送ったりすることができます。


今回説明したことは知らなくてもArduinoでシリアル通信を行うことはできます。ですが、知っておくと自分でシリアル通信できる電子機器を設計したりする際に便利と思ったので説明しました。
次回はArduinoとパソコンでのシリアル通信の使い方を説明します。


参考資料

  1. 作者名:ルネサスエレクトロニクス株式会社. "マイコン活用基礎:周辺機能を学ぼうー(3)シリアル通信". サイト名:ルネサスエレクトロニクス. http://japan.renesas.com/edge_ol/engineer/18/index.jsp, (参照日:2015-09-13)
  2. 作者名:不明. "RS232規格". サイト名:easy labo. http://easylabo.com/2014/08/standards/3267/, (参照日:2015-09-13)
  3. 作者名:株式会社コンテック. "シリアル通信の基礎知識 - RS-232C / RS-422 / RS-485 -". サイト名:CONTEC. https://www.contec.co.jp/product/device/serial/basic.html, (参照日:2015-09-13)
  4. 作者名:株式会社インセプト. "調歩同期". サイト名:IT用語辞典 e-Words. http://e-words.jp/w/%E8%AA%BF%E6%AD%A9%E5%90%8C%E6%9C%9F.html, (参照日:2015-09-13)



posted by ました at 17:25| Comment(0) | TrackBack(0) | 電子工作の知識 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。