Make it inspiring
 

RS232

概要

90年代のパソコンなどに標準搭載されたシリアル通信/物理インターフェース。シリアル通信のプロトコルとしては、上位規格にRS422やRS485などがあるが、RS232は伝送速度も遅く、ケーブル長も短い(15m以下)というデメリットがありながらも。90年代はパソコンを中心に広く普及しました。

接続端子は主にD-sub9pinのケーブルが利用され、80年〜90年代はパソコンとモデムなどの接続に利用されたほか、CDプレイヤーのようなメディアプレイヤー(DVDなど)の製品の多くはシリアル制御が可能で、こうした機器をコンピューター(パソコン)から制御する際の非常に一般的な通信インターフェースとして利用されました。

現在では、RS232のポートを持つコンピューターもなくなり、制御用の通信インターフェースとしては、イーサネット接続やUSB接続に置き換えられましたが、PLCコントローラーなど産業用の制御装置などでは、シンプルで確実な制御方法として活用されるケースもいまだ数多くあります。

 

 

Dsub9pinケーブル

 

物理接続

 

物理ポートとしてRS232Cポートをもつ機器の場合は、D-sub9ピン、D-sub25ピンのケーブルで制御対象機器と1対1で接続します。そのため制御対象機器が増えると、RS232Cポートが複数必要になります。ケーブルには、ストレートケーブルとクロスケーブルがあり、制御対象機器のマニュアルなどを参照してどちらが必要かを確認する必要があります。

Dsub 9pin ピンアサイン  (Wikipedia  https://ja.wikipedia.org/wiki/RS-232 )

 

 

イーサネットを利用してRS232C制御を行う方法

現代のPCにはRS232のポートはなく、制御対象機器もその多くがイーサネット接続によるUDP制御などをサポートするようになっていますが、それでもRS232による制御を行う必要がある場合など、PCの場合はUSB to RS232の変換等を利用することができるほか、イーサネットで接続可能なシリアルサーバーの製品が利用できます。MOXAやアドバンテックなどのメーカーには、イーサネット接続でRS232出力可能なシリアルサーバーのゲートウェイ製品があります。

通信設定

RS232Cは、シリアルプロトコルの典型的な通信設定だけで簡単に接続されます。設定項目は4つ程度であり、ほとんどは通信速度を送り側と受け手側で合わせるだけで、難しい設定もなく、通信が確立します。

ボーレート(通信速度)

9600bpsや19200bpsが一般的、そのほか38400bpsなどがあります。通信がうまくいかない場合は、この速度が送信側と受信側で合ってないケースがほとんどで、この数値だけ気にしていれば、正しいケーブル(クロスorストレート)でつないだ機器はすぐに通信ができます。

ストップビット

データの終端を示すビットの長さを指定する、多くの場合1bitが指定される

データレングス

データ長のサイズを指定する、7 or 8 bit の指定、多くの場合は8bit

パリティー

偶数、奇数、なしの設定

 

コマンドの記述

RS232で利用されるコマンドはアスキーコードが利用されます。アスキーコードは、コンピューターに文字を入力するために定義された情報通信のための文字コードのことで、制御コードと文字コードの2種類があります。10進数で0~31の最初の文字が制御コードとして予約されており、RS232の制御コマンドでは、これら制御コードをアスキーコードまたは16進数で記述します。

非常に一般的なコマンドの記述方法が制御コードのSTXで始まり、文字コードによるメーカーが定義したコマンドが記述され、最後にETXのコードで終わるといった形式になります。

 

アスキー制御コードの一例

10進数 16進数 制御コード
0 0x00 Nul Nul文字
1 0x01 SOH ヘッダー開始
2 0x02 STX テキスト開始
3 0x03 ETX テキスト終了
4 0x04 EOT 転送終了
5 0x05 ENQ 照会
6 0x06 ACK 受信確認
7 0x07 BEL 警告
8 0x08 BS
9 0x09 HT
10 0x0A LF ラインフィード(改行)
11 0x0B VT 垂直タブ
12 0x0C FF 改頁
13 0x0D CR キャリッジリターン(復帰)
14 0x0E SO

 

アスキーキャラクターコードの一例

10進数 16進数 文字
32 0x20 SPC 空白文字
33 0x21  !
34 0x22
35 0x23 #
36 0x24 $
37 0x25 %
38 0x26 &
48 0x30 0
49 0x31 1
50 0x32 2
51 0x33 3
52 0x34 4
53 0x35 5
54 0x36 6

 

コマンド記述例

具体的なコマンドの記述例としてTASCAMのCDプレイヤーの例をご紹介します。この機材ではアスキーの制御コードの1つラインフィードを記載し、マシンIDを挟んで、コマンドが入り、最後にCR(キャリッジリターン)で終了するとマニュアルで説明されています。

Medialon社のコントローラーでコマンドを定義した例が右になります。この製品では!に続く数値をHEXと認識するルールになっており、LFを0A,マシンIDがゼロとしてHEXの30を入力しPLAYコマンドの12を入れて、最後にCRをHEXで記述しています。