トップ 一覧 置換 検索 ヘルプ RSS ログイン

RS232C シリアル通信の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!プログラム
!Java
http://www.02.246.ne.jp/~torutk/javahow2/javaxcomm.html

RXTXライブラリ を使う。
バイナリ {{ref rxtx-2.1-7-bins-r2.zip}} 
ソース {{ref rxtx-2.1-7r2.zip}}
APIドキュメント {{ref rxtx_doc.zip}}
サンプル {{ref SerialTest2.zip}}

インストール方法は、解凍してテキトウな場所にコピー。
ライブラリへのパスは、
 javaのオプションの java.library.path

Windowsの場合
 環境変数の PATH
Linux の場合
 環境変数の LD_LIBRARY_PATH
でも可。

 


!Java(古いかも)
http://www.okakogi.go.jp/People/miwa/program/how2com/how2com.html
http://www.moriwaki.net/wiki/index.php?%5B%5BCommunicationsAPI%5D%5D

サンプルプログラム {{ref SerialTest.zip}}
必要なライブラリ {{ref commapi.zip}}


!VB
MSCOMM を使えばOK

!プログラムで気をつけること
・{{span class=ep2,DTR}}(Data Terminal Ready(データ端末レディ)
・{{span class=ep2,RTS,}}(Request To Send)
を送ればほとんどの場合は問題ない。

!開発環境
RS232C のポートをクロスケーブルで繋ぐ
または
VirtualPC でCOMポートの設定で名前付きパイプを使う
 例
 COM1 \\.\pipe\com
 COM2 \\.\pipe\com
とするとVirtualPC上のCOM1とCOM2がクロスされる。

!!!RS232Cプロジェクトより
http://kasai86.ld.infoseek.co.jp/old/rs232c.html

!ピンの配置
DB 25ピンのシリアルポート(PC9801シリーズ)のピンの配置
 __________________________________
 |  1   2   3   4   5   6   7   8  9  10 11 12 13  |  PC98背面
 |   14 15 16 17 18 19 20 21 22 23 24 25    |
 | _________________________________|
 
 信号     ピン    機能
 GND    1      アース
 TXD    2      送信データ
 RXD    3      受信データ
 RTS    4      モデムへの送信要求
 CTS    5      モデムからの送信可能信号
 DSR    6      モデムからの動作可能信号
 DCD    8      キャリア検出(モデムが相手方のデータ受信中)
 RXC    17    受信クロック
 DTR    20    ターミナル(パソコン)の動作可能信号
 TXC    24    送信クロック出力 

上記のピン配置はPC9801シリーズのものです。

DB9ピン (DOS/V機等)  背面からみた図
  ______________
 |1  2  3  4  5 |
 |  6    7    8    9    |
 |______________|
 
 信号  ピン
 DCD    1
 RXD  2
 TXD  3
 DTR  4
 GND  5
 DSR  6
 RTS  7
 CTS  8
 RI   9
 
RS232Cでは、{{span class=ep2,RTS}},{{span class=ep2,CTS}},{{span class=ep2,DSR}},{{span class=ep2,DTR}}が全てON(モデムもパソコンも
動作可能状態で、データ送信要求がなされた)時、TXDよりデータが送信されます。
(モデムが接続されている場合、パソコンからモデムにデータが転送され、モデムから
相手の機器にデータが送出される。)

!パソコン同士の結線
パソコン間のデータ転送では、7ピン(7つの信号)のみ使われます。
他のピンは使われません。7つの回線(信号)の機能は、TXD(送信)、RXD(受信)、
RTS(送信要求)、CTS(送信可)、DSR(データセットレディ)、GND(接地)、
DTR(データ末端レディ)です。
昔のBASICではRS232Cをオープンすると(OPEN文)、RTS(送信要求)、
DTR(データ末端レディ)がONになります。従って、下記のように結線すれば、
RTS,CTS,DSR,DTRの全てがONとなりデータの送信ができるように
なります。
 (その1)                      (その2)
 GND−−−−GND             GND−−−−GND
 TXD−−−−RXD             TXD−−−−RXD
 RXD−−−−TXD             RXD−−−−TXD
 RTS−−−−CTS             RTS−    −RTS
 CTS−−−−RTS                   |    |         自己結線
 DSR−−−−DTR             CTS−    −CTS
 DTR−−−−DSR             DSR−    −DSR
                                       |    |          自己結線
                                  DTR−    −DTR  

TXD,RXDは必ずクロスして結線します。(送信側のデータ送信と受信側のデータ受信
を結ぶ。当たり前ですが)
その1の結線では、RTSとCTS、DTRとDSRをクロスさせ、それぞれのRTS,DTR
のONが相手のCTS,DSRをONするようにします。
その2では、自分のRTSとCTS,DTRとDSRを自己結線し、自己のRTS,CTSのON
が自己のCTS,DSRをONするようにします。ただし、この場合は相手のパソコンの状況
にかかわらず、データ送信可能となるので、あいてのパソコンの準備ができていなければ、
データは無駄な垂れ流しとなってしまいます。

さて、以上はパソコン間の結線でも比較的厳密な場合で、古いパソコンのBASICの場合
もっとルーズなケースが多いようです。古いBASICでは、DTRとDSRもまったく
チェックしてないケースがほとんどです。従って、DTR,DSRを無視して、5本の信号線
だけで、送受信可となります。
更には、GND−−−GND,TXD−−−RXD,RXD−−−TXDの3本だけでO.K.
という場合も結構あります。

!通信プロトコル
パソコン同士をつなぐ場合であっても、お互いに通信条件について一致させておかないと、
データのやりとりができません。設定すべき条件として一般的には以下のものがあります。
:: ボーレート(データ転送スピード)
 データ転送のスピードです。1秒間に転送するビット数をあらわします。
 BASICでは、300、600、1200、2400、4800、9600ボー
 の中から選択することが多いと思います。
:: ビット長
 データの1文字をあらわすのに、7ビットで表すか、8ビットで表すかの選択です。
:: ストップビット
 データの区切りとして、データの最後につけるのがストップビットです。これを、1ビット
 にするか2ビットにするか選択します。
:: パリティチェック
 送られてきた1文字分のデータに誤りがないか、確認するために付加するビットです。
 偶パリ、奇パリ、パリティ無しから選択します。
:: Xパラメータ 
 データが受信能力を超えて送られてくると、受信バッファからデータがあふれて、データ
 の取りこぼしをしてしまいます。この時、送信側に一時的にデータ送信の停止を要求する
 ことができます。この機能のON(XON)、OFF(XOFF)をきめます。
 受信側で受け取ったデータをプリンターに出力するなど、時間のかかる処理をする時には
 XONにします。ただし、昔のBASICシステムでは、送信側が停止の合図を受け取っても、
 自動的には、送信停止にならないことが多いようです。BASICプログラムで停止の合図を
 うけたら、一時停止になるよう、プログラムする必要があります。
:: Sパラメータ
 データビット長で7ビットを選択すると、(JISコード)カナ文字が送信できません。  
 SパラメータをONにすると、SOコード(以下のデータをカナとして扱う)、SIコード
 (以下のデータを英数文字として扱う)の送信がなされ、カナの送信も可能になります。

これ以外にも、各機種固有の設定(キャリッジリターンの取り扱いなど)がありますが、
ここでは割愛します。

{{category2 ネットワーク}}