[Java] RS232Cを使って通信する方法 準備編
2022/1/21
初めてRS232Cを扱う人向けに知識を共有するのが目的
2021年吉日、突然RS232Cというケーブルをつかってとあるモジュールを制御するプログラムを書くことになったのが背景。
しかし、今からRS232Cを使う人は少なく、情報も古くなっているのが現状。
そこで、若造むけに広く浅く現状最新の情報を共有しようというのがこの記事の目的なんです。
結論
Javaであればライブラリがあるので、苦労しないよ。
RS232Cといっても、通信方式はシリアル通信なので、様々な通信に応用できるよ。
通信ケーブルとライブラリを準備する必要あり。
RS232Cについて
RS232Cの使用用途は幅広く、主に周辺機器の通信用に使われていたシリアルケーブルです。
今ではその役割をUSBやイーサネットに譲っていますが、ノイズ耐性があり信頼性があるのが特徴です。
使用用途
当時はモデムやコンピュータ間の通信に使われていたらしい。
なので、今日ではRS232CtoUSB、イーサネットなど様々なコンバーターが売られている。
実は、今回開発する機器に生えているRS232Cについても、やはりUSB変換されている。(今じゃパソコンにポートがないからね)
通信方式
USBに変換できることから想像できる通り、シリアル通信で接続されている模様。
シリアル通信とは、データを1つずつ送受信するイメージ。
少なくともパラレル通信ではない点は安心してほしい。
参考サイトWikipedia "RS-232"
必要になるもの
Javaでシリアル通信を実装するには以下のものが必要になりました。
- 通信ケーブル
- ライブラリ(RXTX)
各項目について詳しく書いていきます。
通信路
もちろん、RS232Cを使用します。
しかし、現代普及しているパソコンにはRS232Cを接続するポートはありません。
なのでRS232C-USBケーブルを使用して、USBポートから通信することにしました。
ライブラリに関して
シリアル通信をするには、RXTXを使うのが無難。当時はJava Communications APIっていうライブラリがあったらしいけど、今は更新されていないみたい。
Windowsの人は下記ページから”RXTXcomm.jar”と”rxtxSerial.dll”、"rxtxParallel.dll"を入手後、Readmeにしたがってファイルを配置してください(投げやり)。x64の人は2つ目のリンクから入手した.dllに置き換えてください。
RXTXcomm.jar & *.dll(x86):
RXTX MainPage より
*.dll(x64):
Fizzed RXTX for Javaより
Macの人は、Windowsで紹介したサイトから”RXTXcomm.jar”を、下記ページから"librxtxSerial.jnilib"を入手後、/ライブラリ/Java/Extention/.に入手した2つを配置してください。
librxtxSerial.jnilib for Mac OSX:
iHarder.net Java Utilitiesより
これで、RXTXがimportできるようになっているはずです。
実装について
早速実装していきたいわけですが、長くなってしまったので次のページにて説明しようと思います。