プログラム
Java
http://www.02.246.ne.jp/~torutk/javahow2/javaxcomm.html
RXTXライブラリ を使う。
バイナリ rxtx-2.1-7-bins-r2.zip(447)
ソース rxtx-2.1-7r2.zip(584)
APIドキュメント rxtx_doc.zip(512)
サンプル SerialTest2.zip(503)
インストール方法は、解凍してテキトウな場所にコピー。
ライブラリへのパスは、
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
サンプルプログラム SerialTest.zip(521)
必要なライブラリ commapi.zip(498)
VB
MSCOMM を使えばOK
プログラムで気をつけること
・DTR(Data Terminal Ready(データ端末レディ)
・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では、RTS,CTS,DSR,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コード (以下のデータを英数文字として扱う)の送信がなされ、カナの送信も可能になります。
これ以外にも、各機種固有の設定(キャリッジリターンの取り扱いなど)がありますが、
ここでは割愛します。
[通知用URL]
Tweet
最終更新時間:2011年11月15日 22時23分21秒