1.シリアル通信(Serial_communication)とは
(1)概要
データを送受信するための伝送路を1本、または2本使用して、データを1ビットずつ連続的に送受信する通信方式です。
少ない信号線での接続が可能であるため、線材や中継装置のコストが抑えられるなどのメリットがある。
MPUなどで使用されているシリアル通信にはUSART(UART含む)やSPI、I2C、CAN、USBなどがある。
なおUSARTとは Universal Synchronous & Asynchronous Receiver/Transmitterの略で、このページではUSARTに関係するシリアル通信の規格 RS-232C、RS-422A、RS-485 などの概要を記載する。
RS とは Recommended Standard(推奨標準)の略称で RS-232C・RS-422A・RS-485は、EIA(Electronic Industries Association:米国電子工業会)の通信規格です。
中でもRS-232Cは、1963年に策定以降通信規格の中でも用途を問わず多く普及し、パソコンにも標準で搭載され、モデムやマウスの接続によく利用されていました。
現在でもパソコンから使用する場合はUSBからUSARTやRS232Cに変換してMPUやセンサ、アクチュエータなどに接続出来るようになっている。
USBーUART変換ICではCP2012などの変換ICがよく使用されている。
少ない信号線での接続が可能であるため、線材や中継装置のコストが抑えられるなどのメリットがある。
MPUなどで使用されているシリアル通信にはUSART(UART含む)やSPI、I2C、CAN、USBなどがある。
なおUSARTとは Universal Synchronous & Asynchronous Receiver/Transmitterの略で、このページではUSARTに関係するシリアル通信の規格 RS-232C、RS-422A、RS-485 などの概要を記載する。
RS とは Recommended Standard(推奨標準)の略称で RS-232C・RS-422A・RS-485は、EIA(Electronic Industries Association:米国電子工業会)の通信規格です。
中でもRS-232Cは、1963年に策定以降通信規格の中でも用途を問わず多く普及し、パソコンにも標準で搭載され、モデムやマウスの接続によく利用されていました。
現在でもパソコンから使用する場合はUSBからUSARTやRS232Cに変換してMPUやセンサ、アクチュエータなどに接続出来るようになっている。
USBーUART変換ICではCP2012などの変換ICがよく使用されている。
(2)信号の違い(USARTとRS232C・RS422A・RS458など)
データは半角数字の 0 でアスキーコードでは 0x30 です。| 項目 | USART | RS232C | RS422,458 |
| 電圧レベル | デバイスの電源電圧に準拠 (例:3.3V、5V) | 電圧に正負を使用 (例:±3V〜±15V) | 2線をリッツ使用して反転信号 (例:2V〜15V) |
| 信号論理 | | | |
| ノイズ | 弱い | 中 | 強い |
| 通信線長 | 短い 基板内、基板間 | 中 15m | 大 1200m |
| 用途 | 通信部品間 | 近距離 1 対 1 のモデムや測定器 | ノイズが多い電力系環境 1or多 対 多 の測定器他 |
他の変換器で例えば
UART(5V)-RS232C変換ではMAX23*,ADM232などいろいろな半導体メーカーが出している。
UART(5V)-RS458変換ではMAX485などの変換ICがある。
UART側を3.3V接続が出来るようにCD4069BM(LX)などのインバータICを間に使用したモジュールも安価に出ている。
(3)接続様式比較
| 項目 | RS232C | 4線式 RS422A | 4線式 RS-485 | 2線式 RS-422A,485 |
| 接続イメージ | ![]() | ![]() RS458のみ R=100(Ω) | ![]() | |
| 規格の範囲 | ・電気的仕様 ・ピンアサイン ・コネクタ | ・電気的仕様のみ | ||
| 最大接続数 | 1ドライバ 1レシーバ | 1ドライバ 原則1レシーバ 最大10レシーバ | 32ドライバ 32レシーバ | 4線式と同じ |
| 負荷 | 負荷3(kΩ)程度 | 負荷100(Ω) | 両端に100(Ω)接続 | 4線式と同じ |
| 通信方式 | 全2重 フルデュプレックス | 半2重 ハーフデュプレックス | ||
| 配線方式 | 不平衡 シングルエンド | 平衡 ディファレンシャル | ||
| 最大ケーブル長 | 15m | 1200m | ||
| 最大伝送速度 | 20Kbps | 10Mbps (距離による) | ||
2.USART(UART)
(1)信号の電圧
MPUにより電圧が違っているので、仕様を確認すること。
a.Hi電圧が5(V)や3.3(V)など。
b.電圧変換器を用いる場合は特に Lo-Hi 電圧閾値。
(2)通信線
下表についてはCH32V203などを参考にした。その他のMPUもよく似た端子を用意していると思う。
下表の c.d.項の線が無いものはe.項の様に自作する必要がある。
a.単線半二重モード
信号名 PC・制御側説明 方向 信号名 被制御側説明
TX 送信・受信データ →
← TX 受信・送信データ
GND 共通接地線 = GND 共通接地線
b.全二重モード
信号名 PC・制御側説明 方向 信号名 被制御側説明
RX 受信データ ← TX 送信データ
TX 送信データ → RX 受信データ
GND 共通接地線 = GND 共通接地線
c.フロー制御を行う場合に使用する信号線
MPUが受信データを読み出す前に新たなデータを受信すると、内容が上書きされデータが失われてしまう。
この時相手にデータを送信しないように制御する信号を別の信号線により出す。
また上記をできるだけ防ぐためにデータレジスタをFIFO(First In First Out)構造にして受信したデータを一括で処理する場合があるが、FIFOが満タンになっても同じようにする。
この様な制御をフロー制御と言い下表の信号線を用いる。
信号名 PC・制御側説明 方向 信号名 被制御側説明
RTS 受信可能を伝える → CTS 送信して良いか判断する
CTS 送信可能か判断 ← RTS 受信可能を伝える
状態はHi=受信不可、Lo=受信可で示す。
d.同期モードを使用する場合
信号名 PC・制御側説明 方向 信号名 被制御側説明
CK 同期信号(クロック)を伝える
受信信号の読み取りタイミングを判断する →
← CK 受信信号の読み取りタイミングを判断する
同期信号(クロック)を伝える
e.その他信号線
その他必要な信号線はGPIOおよび割り込み設定を使用して作ると思います
(3)通信信号と設定

a.ボーレート
1秒間の信号変化回数。RS232Cではビットレートと等価。
代表的な値 (300, 1200, 2400, 9600, 19200, 38400, 57600, 115200 bps)
b.スタートビット
文字の送信の開始を示します。
1ビット時間 “0” レベルにする。
c.データ
CH32Vでは 8 bit または 9 bit の設定が出来る。
d.パリティチェック
レベル"1"の信号数を設定の値にパリティー領域で調整する。
奇数="1"の信号数をパリティー領域も含む合計で奇数にする。
偶数="1"の信号数をパリティー領域も含む合計で偶数にする。
なし=パリティー領域がない。
e.ストップビット
データの終端を表すビットの長さを設定する。
通常は、1 , 1.5 , 2 ビットから選択します。
3.RS232C非同期式通信
(1)信号の電圧
変換ICにより出力される±電圧差が違う。
ノイズが多いような環境の場合は信号電圧を高くするのも誤動作防止になる。
電圧だけで対応できないなら、電線数は増えるがRS422やRS458の仕様にするほうが良い。
(2)通信線
以前よく使用されていた9ピンコネクターの場合のピン別目的は下表のとおり。
PinNo 信号名 PC・制御側説明 方向 被制御側説明
1 CD キャリア検出受信 ← キャリア検出
2 RXD 受信データ ← 送信データ
3 TXD 送信データ → 受信データ
4 DTR データ端末レディ → データセットレディ
5 GND 共通接地線 = 共通接地線
6 DSR データセットレディ ← データ端末レディ
7 RTS 送信要求 → 送信可
8 CTS 送信可 ← 送信要求
9 RI 被呼表示 ← 着信呼び出し中を通知
4.RS422AとRS485など
(1)違い
おもに接続できる機器の台数と思われる。
(2)注意点
RS485と記載されていてもコネクターに規定が無いので、RS458対応の商品を購入する場合は自分でなんとか出来る範囲か確認が必要。
(3)RS458とEthernetの違い
RS485とLAN(Ethernet)で使用するケーブルなどの違い
RS485 LAN(Ethernet)
ケーブル シールド付きのツイストペア線を推奨 ツイストペアの線(カテゴリーで違うが)
コネクター 規定なし RJ45コネクタを持つ8極構造
(1)信号の電圧
MPUにより電圧が違っているので、仕様を確認すること。
a.Hi電圧が5(V)や3.3(V)など。
b.電圧変換器を用いる場合は特に Lo-Hi 電圧閾値。
a.Hi電圧が5(V)や3.3(V)など。
b.電圧変換器を用いる場合は特に Lo-Hi 電圧閾値。
(2)通信線
下表についてはCH32V203などを参考にした。その他のMPUもよく似た端子を用意していると思う。下表の c.d.項の線が無いものはe.項の様に自作する必要がある。
a.単線半二重モード
| 信号名 | PC・制御側説明 | 方向 | 信号名 | 被制御側説明 |
| TX | 送信・受信データ | → ← | TX | 受信・送信データ |
| GND | 共通接地線 | = | GND | 共通接地線 |
b.全二重モード
| 信号名 | PC・制御側説明 | 方向 | 信号名 | 被制御側説明 |
| RX | 受信データ | ← | TX | 送信データ |
| TX | 送信データ | → | RX | 受信データ |
| GND | 共通接地線 | = | GND | 共通接地線 |
c.フロー制御を行う場合に使用する信号線
MPUが受信データを読み出す前に新たなデータを受信すると、内容が上書きされデータが失われてしまう。
この時相手にデータを送信しないように制御する信号を別の信号線により出す。
また上記をできるだけ防ぐためにデータレジスタをFIFO(First In First Out)構造にして受信したデータを一括で処理する場合があるが、FIFOが満タンになっても同じようにする。
この様な制御をフロー制御と言い下表の信号線を用いる。
この時相手にデータを送信しないように制御する信号を別の信号線により出す。
また上記をできるだけ防ぐためにデータレジスタをFIFO(First In First Out)構造にして受信したデータを一括で処理する場合があるが、FIFOが満タンになっても同じようにする。
この様な制御をフロー制御と言い下表の信号線を用いる。
| 信号名 | PC・制御側説明 | 方向 | 信号名 | 被制御側説明 |
| RTS | 受信可能を伝える | → | CTS | 送信して良いか判断する |
| CTS | 送信可能か判断 | ← | RTS | 受信可能を伝える |
d.同期モードを使用する場合
| 信号名 | PC・制御側説明 | 方向 | 信号名 | 被制御側説明 |
| CK | 同期信号(クロック)を伝える 受信信号の読み取りタイミングを判断する | → ← | CK | 受信信号の読み取りタイミングを判断する 同期信号(クロック)を伝える |
e.その他信号線
その他必要な信号線はGPIOおよび割り込み設定を使用して作ると思います(3)通信信号と設定

a.ボーレート
1秒間の信号変化回数。RS232Cではビットレートと等価。
代表的な値 (300, 1200, 2400, 9600, 19200, 38400, 57600, 115200 bps)
代表的な値 (300, 1200, 2400, 9600, 19200, 38400, 57600, 115200 bps)
b.スタートビット
文字の送信の開始を示します。
1ビット時間 “0” レベルにする。
1ビット時間 “0” レベルにする。
c.データ
CH32Vでは 8 bit または 9 bit の設定が出来る。
d.パリティチェック
レベル"1"の信号数を設定の値にパリティー領域で調整する。
奇数="1"の信号数をパリティー領域も含む合計で奇数にする。
偶数="1"の信号数をパリティー領域も含む合計で偶数にする。
なし=パリティー領域がない。
奇数="1"の信号数をパリティー領域も含む合計で奇数にする。
偶数="1"の信号数をパリティー領域も含む合計で偶数にする。
なし=パリティー領域がない。
e.ストップビット
データの終端を表すビットの長さを設定する。
通常は、1 , 1.5 , 2 ビットから選択します。
通常は、1 , 1.5 , 2 ビットから選択します。
3.RS232C非同期式通信
(1)信号の電圧
変換ICにより出力される±電圧差が違う。
ノイズが多いような環境の場合は信号電圧を高くするのも誤動作防止になる。
電圧だけで対応できないなら、電線数は増えるがRS422やRS458の仕様にするほうが良い。
(2)通信線
以前よく使用されていた9ピンコネクターの場合のピン別目的は下表のとおり。
PinNo 信号名 PC・制御側説明 方向 被制御側説明
1 CD キャリア検出受信 ← キャリア検出
2 RXD 受信データ ← 送信データ
3 TXD 送信データ → 受信データ
4 DTR データ端末レディ → データセットレディ
5 GND 共通接地線 = 共通接地線
6 DSR データセットレディ ← データ端末レディ
7 RTS 送信要求 → 送信可
8 CTS 送信可 ← 送信要求
9 RI 被呼表示 ← 着信呼び出し中を通知
4.RS422AとRS485など
(1)違い
おもに接続できる機器の台数と思われる。
(2)注意点
RS485と記載されていてもコネクターに規定が無いので、RS458対応の商品を購入する場合は自分でなんとか出来る範囲か確認が必要。
(3)RS458とEthernetの違い
RS485とLAN(Ethernet)で使用するケーブルなどの違い
RS485 LAN(Ethernet)
ケーブル シールド付きのツイストペア線を推奨 ツイストペアの線(カテゴリーで違うが)
コネクター 規定なし RJ45コネクタを持つ8極構造
(1)信号の電圧
変換ICにより出力される±電圧差が違う。
ノイズが多いような環境の場合は信号電圧を高くするのも誤動作防止になる。
電圧だけで対応できないなら、電線数は増えるがRS422やRS458の仕様にするほうが良い。
ノイズが多いような環境の場合は信号電圧を高くするのも誤動作防止になる。
電圧だけで対応できないなら、電線数は増えるがRS422やRS458の仕様にするほうが良い。
(2)通信線
以前よく使用されていた9ピンコネクターの場合のピン別目的は下表のとおり。
| PinNo | 信号名 | PC・制御側説明 | 方向 | 被制御側説明 |
| 1 | CD | キャリア検出受信 | ← | キャリア検出 |
| 2 | RXD | 受信データ | ← | 送信データ |
| 3 | TXD | 送信データ | → | 受信データ |
| 4 | DTR | データ端末レディ | → | データセットレディ |
| 5 | GND | 共通接地線 | = | 共通接地線 |
| 6 | DSR | データセットレディ | ← | データ端末レディ |
| 7 | RTS | 送信要求 | → | 送信可 |
| 8 | CTS | 送信可 | ← | 送信要求 |
| 9 | RI | 被呼表示 | ← | 着信呼び出し中を通知 |
4.RS422AとRS485など
(1)違い
おもに接続できる機器の台数と思われる。
(2)注意点
RS485と記載されていてもコネクターに規定が無いので、RS458対応の商品を購入する場合は自分でなんとか出来る範囲か確認が必要。
(3)RS458とEthernetの違い
RS485とLAN(Ethernet)で使用するケーブルなどの違い
| RS485 | LAN(Ethernet) | |
| ケーブル | シールド付きのツイストペア線を推奨 | ツイストペアの線(カテゴリーで違うが) |
| コネクター | 規定なし | RJ45コネクタを持つ8極構造 |



