1. コンピュータと機器の接続 |
コンピュータと周辺装置/機器をシリアルインターフェイスを介して、情報をやり取りする場面でしばしば理解しにくいことがあります。
適切に設定され、いったん接続されると快調に動作しますが、新たな接続が動作するように時間がかかることは珍しくありません。
初めにコンピュータと周辺装置/機器間の決め事/決まり事を明確にしていきます。
|
通信モデル |
 |
標準ケーブル |
25pin ケーブル(DB-25)
 |
9pin ケーブル(DB-9)
 |
PCでの25ピン/9ピンコネクターの各ピン配置 |
25 pin |
9 pin |
ニューモニック標記 |
方向 |
内容・規格 |
1 |
- |
Shield |
- |
Shield |
2 |
3 |
Tx |
To |
Transmit Data |
3 |
2 |
Rx |
From |
Received Data |
4 |
7 |
RTS |
To |
Request to Send |
5 |
8 |
CTS |
From |
Clear to Send |
6 |
6 |
DSR |
To |
DCE(Data Set) Ready |
7 |
5 |
GND |
Both |
Signal Ground |
8 |
1 |
CD |
From |
Carrier Detect |
20 |
4 |
DTR |
To |
Data Terminal Ready |
22 |
9 |
RI |
From |
Ring Indicator |
|
通信パラメーター |
情報のやり取りは、コンピュータと機器間のケーブルつなぐだけで終わりではありません。
コンピュータと機器は、お互いを知るために、お互いがわかる言葉を使わなければなりません。
その言葉は、ボーレート、データビット、パリティ、およびストップビットから成っています。RS-232インタフェースの使用者は、コンピューター(PC)と機器双方のパラメータ設定条件を知り、このパラメータを設定せねばなりません。
これらの値をHTBasicを実行するコンピューター(PC)設定するためには、シリアル・コントロール・レジスターの 3 と 4 を使用します。
例)シリアルポート COM1 を、ISC 9 / 通信速度 9600bps / ストップ・ビット 1 / データ長
8 ビット / パリティ none をHTBasicで設定するには、次のステートメントを使用します。
CONTROL 9,3;9600,3
|
データ・フォーマット |
コンピュータと機器が正しく通信を開始しても、もしデータが機器によって別の方法でフォーマットされていた場合、またはその逆の場合、まだ間違ったデータを受け取る可能性があります。回避する最も簡単な方法は、機器に対し各データ項目の後ろにCR/LFを付けたASCIIデータで指示します。
|
2. シリアルポート |
IBM PC/ATコンパチ機/DOS/V機と呼ばれるPCでは、通常
COM1:IRQ 4 I/O address 03F8-03FF が使用されます。
デバイスマネージャーを起動し、Windows初期立ち上げ時の【ポート(COMとLPT)】を確認します。
|
|
@1つだけ設定されている場合: |
BIOSでマザーボード上のシリアルインターフェースが構成されています。 |
A設定がない場合: |
BIOSでマザーボード上のシリアルインターフェースが構成されていません。RS232CをサポートするUSB/PCI/PCIeポート等対応のインターフェースをPCに追加します。 |
B2つ以上設定されている場合: |
BIOSでマザーボード上のシリアルインターフェースが2つ構成されています。注意点は、COMポートに、RS232C以外が構成されていることがあります。
例)Intel Active Management Technology が SOL(COM3) を使用しています。このCOMはシリアル通信ポートではありません。 |
|
3.シリアルポートの増設 |
Windows PCでは、COMポートは 256ポートまで設定が可能です。
COMポートを増設には、PCIバス/PCIeバス用のシリアルポート増設カードを使うか、USB接続のUSB-シリアルポートアダプターを使用します。
右の例では、マザーボード上の COM1 と4つのUSB-シリアルポートアダプターを増設した COM3/COM4/COM5/COM6 がWindows上で使用可能となっています。 |
 <拡大> |
|
4.HTBasicでシリアルポートを使用可能にする |
HTBasicでシリアルポートを使用可能にするには、HTBasicのI/Oで使用するISC(Interface Select Code)とWindowsで使用できるようになったCOMポートを結びつけます。
Windowsで使用できるようになったCOMポート番号(1〜256)はすべて結び付け可能となります。
HTBasicでシリアルポートが使用する ISC は、以下の通り。
1番目: 9
2番目: 11
3番目以降は、7〜32 の間で、使用していない ISC を設定します(一般的には20以降を使用) |
HTBasicでの設定 |
例1) Windowsで使用できる COM1 をHTBasicで ISC 9 でI/O操作ができるように設定
OUTPUT 9;"SEND P1"
ENTER 9;R_area$
(1) HTBasicを起動し、メニューバーから Tools|Device Setup を実行
(2) [ Add ]で、HTBasicのデバイスドライバー選択に進みます
(3) ドライバー SERIAL を選択し、[ Add ]で、Device Setupに戻ります
(4) ドライバー SERIAL が追加されたことを確認し、追加したドライバー SERIAL を
選択し、[ Properties ]で、ドライバーの構成に進みます
(5) ドライバー SERIAL を構成します(通信パラメーターの設定)
【設定項目】
|
Interface Select Code (ISC) |
ISCを選択します。この例では1番目のシリアルポートですので[ 9 ]を選択 |
Comuuunication Port (ISC) |
Winndowsにインストールされている COM ポートの番号をを選択します。この例では COM1 ですので[ 1 ]を選択 |
Baud Rate |
転送スピード(bps)を
110/300/600/1200/2400/4800/9600/14400/
19200/38400/57600/115200の内から選択。
この例では 9600bps に設定されます。
注)この設定は、ユーザープログラム内から変更可能 |
Data Bits |
データ長(1文字の扱い)を
5 / 6 / 7 / 8 の内から選択。
この例では 1文字 8ビットに設定されます。
注)この設定は、ユーザープログラム内から変更可能 |
Parity |
パリティビットの扱いを
Zero / One / Even / Odd / None の内から選択。
この例では None(パリティなし)に設定されます。
注)この設定は、ユーザープログラム内から変更可能 |
Stop Bits |
ストップビットの扱いを
1 / 2[1.5] の内から選択。
この例では ストップビット 1 に設定されます。
注)この設定は、ユーザープログラム内から変更可能 |
|
【設定項目(ハンドシェイキング)】チェックボックスで設定
|
|
HPBASICでは使用できなかった XON/XOFF ハンドシェイキング機能がHTBasicに追加されました。この機能は、CONTROL 9,100;1で切り替わり、CONTROL 9,100;0によりもとに戻ります。デフォルトはオンで、XONは^Q(DC1)であり、XOFFは^S(DC3)です。
ハードウェアハンドシェイキングもサポートされ、切り替えは以下のように行います。
CONTROL 9,5;0 ! use DTR and RTS
CONTROL 9,12;0 ! read DSR, CD, and CTS
CONTROL 9,100;0 ! make sure XON/XOFF is disabled
ハードウェアハンドシェイキングを行わない場合、以下のように行います。
CONTROL 9,5;3 ! hold DTR and RTS active
CONTROL 9,12;176 ! ignore DSR, CD, and CTS
CONTROL 9,100;1 ! optionally enable XON/XOFF
デフォルトは、ハードウェアハンドシェイキングは行いません。
|
|
USE RTS |
「RTS(Request to Send:送信要求)を使用するか」を選択します。この例では使用しません。
注)この設定は、ユーザープログラム内から変更可能
CONTROL 9,5;0 ! use DTR and RTS
|
USE DTR |
「DTR(Data Terminal Ready:端末準備可)を使用するか」を選択します。この例では使用しません。
注)この設定は、ユーザープログラム内から変更可能
CONTROL 9,5;0 ! use DTR and RTS
|
USE DSR |
「DSR(Data Set Ready:データセット済)を使用するか」を選択します。この例では使用しません。
注)この設定は、ユーザープログラム内から変更可能
CONTROL 9,12;0 ! read DSR, CD, and CTS
|
USE CTS |
「CTS(Clear to Send:送信可)を使用するか」を選択します。この例では使用しません。
注)この設定は、ユーザープログラム内から変更可能
CONTROL 9,12;0 ! read DSR, CD, and CTS
|
USE XON/XOFF |
フロー制御に「XON/XOFFを使用するか」を選択します。この例では使用します。
注)この設定は、ユーザープログラム内から変更可能
CONTROL 9,100;0 ! make sure XON/XOFF is disabled
|
|
【設定項目(HTBasic起動時の動作)】チェックボックスで設定
|
Load this driver at startup |
「HTBasic起動時にシリアルドライバーを読み込むか否か」を選択します。この例では使用しませんので、起動後マニュアルでのシリアルドライバーの読み込み作業が必要です。
|
|
(6) 構成が終了しましたら、 [ OK ]で、Device Setupに戻ります
|
(7) ドライバーSERIALを選択し、[ Load ]で、ドライバーを読み込みます
|
(8) 正常にドライバーSERIALが読み込まれると、「SERIAL 10.1.0 Serial Interface Driver」と
表示されます。以降HTBasicでシリアルポートCOM1が使用可能となります。
|
5.HTBasicで複数のシリアルポートを使用可能にする |
HTBasicでシリアルポートを複数の使用可能にするには、シリアルポート毎にHTBasicのI/Oで使用するISC(Interface Select Code)とWindowsで使用できるようになったCOMポートを結びつけます。
Windowsで使用できるようになったCOMポート番号(1〜256)は ISC 7〜32 の間ですべて結び付け可能となります。各ポートの設定は4.項の手順を繰り返します。
例(各ポートの構成は同じ)
1番目: ISC 9 COM1(マザーボード上)
2番目: ISC 11 COM3(USB-シリアルアダプター)
3番目: ISC 23 COM4(USB-シリアルアダプター)
4番目: ISC 24 COM5(USB-シリアルアダプター)
5番目: ISC 25 COM6(USB-シリアルアダプター)
(1) デバイスマネージャーを起動し、Windowsで設定された COMx を、「ポート(COM と LPT)」で確認
Windowsでは、シリアルインターフェースとして、COM1/COM3/COM4/COM5/COM6が使用可能
になっています。
(2) 起動時に読み込まれているHTBasicのドライバーの表示と新たに使用できるISCの確認
メニューバーから、Tools|Device Setup を実行し、現在読み込まれているドライバーと ISC を
確認し、現在新たに使用できる ISCを調べます
現在新たに使用できる ISC は、7〜32 の間で10と26以外が使えることがわかります。
(3) 5つのシリアルポートを Tools|Device Setup で設定し、読み込みます
Status欄がすべて、「 Loaded 」となり、設定したすべてのシリアルポートが、
HTBasicのユーザープログラムから使用できるようになりました。
|