■USB to RS-485 コンバータ REX-USB70 |
◆一般仕様◆
名称 | USB to RS-485 コンバータ | ||||||
型番 | REX-USB70 | ||||||
バスインタフェース | Universal Serial Bus 2.0 Specification Revision 2.0 |
||||||
シリアルコントローラ | FT232RQ | ||||||
接続コネクタ | USB(SeriesB コネクタ) 7ピン ネジ式端子台(より線:AWG24~14、単線:AWG26~12) |
||||||
入出力レベル | RS-485レベル EIA/TIA-485-A準拠 全二重 / 半二重 |
||||||
通信速度 | 300 / 600 / 1200 / 2400 / 4800 / 9600 / 19200 / 38400 / 57600 / 115200 / 230400 / 460800 / 921600 bps | ||||||
通信パラメータ |
|
||||||
トランシーバ インターフェイスESD |
±15kV (HBM) | ||||||
RS-485トランシーバ |
2500Vrms | ||||||
伝送距離 | 1200m以内 |
||||||
外形寸法・重量 | 約50mm(W)×75mm(D)×30mm(T) 、約68g(USBケーブル含まず) | ||||||
動作環境 | 温度:0~55℃ 湿度:20~80%(ただし結露しないこと) | ||||||
添付品 |
|
||||||
ダウンロードソフトウェア | RS-485通信サンプルプログラム(VC++2010,VB2010,VC++6.0,VB6.0)、 |
||||||
対応機種 | USB ポートを装備したWindowsPC Raspberry Pi |
||||||
対応OS | Windows 11、Windows 10、Windows 8.1、Windows 8、Windows 7、Windows Vista、Windows XP ※32ビット/64ビット両対応 |
- 本製品は国内仕様となっており、海外についての保守およびサポートはおこなっておりません。
- 記載されている名称・商品名は各社の商標または登録商標です。
- 予告なく外観または仕様の一部を変更することがあります。
- 表示価格に消費税は含まれておりません。
- "REX"は株式会社リコーが商標権を所有していますが、弊社は使用許諾契約により商標の使用を認められています。
ピンアサイン
【7ピンネジ式端子台】 |
||||||||||||||||||||||||
【ピンアサイン】
受注案件の窓口までお問い合わせください。 ※REX-PCI70D/REX-PE70D/REX-5057V と本製品は、信号極性が逆となります。 |
【Raspberry Pi 対応情報】
このページでは、REX-USB70をRaspberry Pi で使用するための情報を提供しています。
-
概要
-
REX-USB70をRaspberry Piで使用するためには、FTDI社製USBシリアル コントローラ用のドライバ「ftdi_sio」を利用します。
このドライバは、Rasbian OSのインストール時に標準でインストールされます。
ここで説明する簡単な設定だけで REX-USB70から使用することが可能になります。
-
設定手順
-
REX-USB70の装着と確認
REX-USB70をUSBポートに装着します。
そして、REX-USB70のVendorID=0584とProductID=b080を指定して [lsusb]コマンドを実行します。
~ $ lsusb -d 0584:b080
Bus 001 Device 009: ID 0584:B080 RATOC System, Inc.
REX-USB70が正しく検出されている場合、上記の表示となります。
また、[dmesg]を実行して以下の検出ログが確認できます。
~ $ dmesgls
...
New USB device found, idVendor=0584, idProduct=b080
New USB device strings: Mfr=1, Product=2, SerialNumber=0
Product: USB RS-485
Manufacture: RATOC Systems,Inc.
ドライバ「ftdi_sio」のロード
[modprobe]でドライバ「ftdi_sio」をロードします。
~ $ sudo modprobe ftdi_sio
[dmesg]を実行して以下のログを確認します。
~ $ dmesgls
...
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered FTDI USB Serial Device
REX-USB70のVendor ID / Product IDの設定
REX-USB70のVendor ID / Product IDは、FTDI社のものとは違います。
このため、REX-USB70が検出された場合に、ドライバ「ftdi_sio」が使用される設定が必要です。
「ftdi_sio」がインストールされているディレクトリ
[/sys/bus/usb-serial/drivers/ftdi_sio]の[new_id]というファイルに
REX-USB70のVendor ID / Product IDを以下の手順で追加します。
~ $ sudo chmod 666 /sys/bus/usb-serial/drivers/ftdi_sio/new_id
~ $ sudo echo 0584 b080 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
~ $ sudo chmod 644 /sys/bus/usb-serial/drivers/ftdi_sio/new_id
[dmesg]を実行すると、ログの最後に /dev/ttyUSB0 に割りあたっていることが確認できます。
~ $ dmesg
...
ftdi_sio: 1-1.5: 1.0: FTDI USB Serial Device converter detected
usb 1-1.5: Detected FT232RL
usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0
以上で、REX-USB70が/dev/ttyUSB0 として使用できるようになりました。
ただし、システムを終了と同時にこの設定は消えるため、毎回設定の作業が必要になります。
そこでOS起動時に自動で設定されるよう、OS起動時に参照・実行されるファイル /etc/modules と /etc/rc.local に今回の設定情報を追加します。
/etc/modules には、ドライバ「ftdi_sio」を追加します。
/etc/rc.local には、REX-USB70のVendor ID / Product IDの登録用に
"echo 0584 b080 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id"
を追加します。
REX-USB70の検出とドライバ登録・デバイス割当ての確認
システムをリブートし、[dmesg]コマンドを実行してOS起動時のログを確認します。
REX-USB70が検出されて ttyデバイスに割り当てられていることを確認します。
~ $ dmesg
.....
usb 1-1.5: New USB device found, idVendor=0584, idProduct=b080
.....
ftdi_sio 1-1.5:1.0: FTDI USB Serial Device converter detected
usb 1-1.5: Detected FT232RL
usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0
REX-USB70のVendorIDとProductIDが検出され、
ttyUSB0に割り当てられていることが確認できます。
-
通信の確認
-
ここでは、Raspberry Pi と Windows PC にそれぞれ、REX-USB70を接続し相互にデータを送る簡単な通信確認を行います。
REX-USB70同士を接続するケーブルは、送信データと受信データの信号線をクロス接続で配線します。
具体的には、[TXD+]と相手側[RXD+], [TXD-]と[RXD-], [RXD+]と[TXD+], [RXD-]と[TXD-] を接続します。
ケーブルの接続ができたら、Raspberry Pi側とWindows PC側でそれぞれターミナルソフトを起動しデータ通信を行います
Raspberry Pi側では、シリアル通信用のプログラムは例として cutecom を使います。
cutecomm がインストールされていない場合は、 cutecom を以下のコマンドでインストールします。
~ $ apt-get install cutecom
cutecom を起動します。
最初に通信パラメタを変更します。
Device: 欄の [/dev/ttyS0] をREX-USB70のデバイス名 [/dev/ttyUSB0] に変更します。
[Baud rate][Data bits][Stop bits][Parity]を設定します。
最後に、[Open Device]をクリックします。
以上で準備はできたので、実際にデータを送信・受信して確認します。
送信テストは、CutecomのInput欄にテスト用の送信文字列を入力し、リターンキーを押します。
そして、送信文字列と同じ内容が Windows PC側で表示されることを確認します。
受信テストは、Windows PC側から送信したデータが Cutecomの画面上側の欄に表示されることを確認します。
-
Pythonでの使用
-
ここでは、PythonスクリプトでREX-USB70を使用する方法を説明します。
PythonでUSBシリアルを使用する場合、pyserialモジュールが利用できます。
データの送信
以下のスクリプトは、現在の日時を取得し文字列に変換して送信します。
1秒おきの送信を10回繰り返して終了します。
import sys
import serial
import time
import datetime
def main():
ser=serial.Serial('/dev/ttyUSB0',9600,timeout=10)
title="Serial port send test : "+ser.portstr
testmsg="a quick brown fox jumps over the lazy dog."
print(title)
i=0
while i < 10;
d= datetime.datetime.today()
str1=d.strftime("%Y-%n-%d %H:%M:%S: ")+testmsg+'\n'
outdata=str1.encode('utf-8')
ser.write(outdata)
print(outdata)
i=i+1
time.sleep(1)
ser.close()
print("End of send test")
if __name__ = '__main__'
main()
・モジュールのインポート
最初の [import serial] で pyserialモジュールをインポートします。
・通信ポートのオープン
serial.Serial('/dev/ttyUSB0', ...) でREX-USB70のデバイス名を使ってポートをオープンします。
・データの送信
シリアルデータの送信は、write() 関数で行いますが、送信データはバイト型データで送る必要があります。
一方、変数 str1 は文字型変数なので str1.encode('utf-8') を使って
文字型データからバイト型データに変換を行った後に ser.write(outdata) でデータを送信しています。
データの受信
以下のスクリプトは、データを改行コード(LF)まで受信したら、現在の日時を先頭に付けて画面に表示します。
10回受信したら終了します。
import sys
import serial
import time
import datetime
def main():
ser=serial.Serial('/dev/ttyUSB0',9600,timeout=10)
title="Serial port read test : "+ser.portstr
print(title)
i=0
while i < 10;
d= datetime.datetime.today()
str1=d.strftime("%Y-%n-%d %H:%M:%S")+'\n'
indata=ser.readline()
str2=indata.decode('utf-8')
print(str1 +str2)
i=i+1
ser.close()
print("End of read test")
if __name__ = '__main__'
main()
・データの受信
シリアルデータの受信は、readline()関数で行います。
受信データは、バイト型データで取得されるため、文字列として扱うために
str2.indata.decode('utf-8') を使ってバイト型データから文字型データに変換してから画面に表示します。
(ここで紹介されている内容は、2016年11月18日時点での情報に基づいています。)
タイトル | ダウンロード | 説明 |
---|---|---|
REX-USB70 ダウンロード | e2e_download.pdf | 各種ダウンロードソフトウェアや製品情報は運営元の ラトックシステム株式会社のWebページ にてダウンロードいただけます。 |
【USBから絶縁型RS-485インターフェースを増設】
●絶縁型トランシーバ【LinearTechnology社製LTM2881】搭載
●静電気放電(ESD)保護機能を搭載。±15KV(HBM)まで保護
●最大DTE速度921.6Kbpsサポート(Windows)
●Windowsからは通常のCOMポートとして認識
●サンプルプログラム添付(Windows)
●Raspberry Piでは /dev/ttyUSBx デバイスとして認識
●ターミネータ抵抗をDIP-SWでON/OFF可能
●半二重使用時、トランスミッターの自動制御モードをサポート
(2015年3月出荷分からの新機能)
●コンパクト設計●デバイス駆動用電源を出力させる特注仕様も対応可能
USBバスパワーで動作し、ACアダプタなどの外部電源は不要です。
RS-485コネクタは、実験用に適した7ピンネジ式端子台を採用。
より線(AWG24~14)、単線(AWG26~12)が使用可能です。
2500Vrmsの絶縁耐圧を備えています。
ラッチアップを起こしません。
※高速でのデータ転送を行う場合、ケーブル長や通信速度により、
正確な通信ができない場合があります
COMポート用に作成されたアプリケーションが使用可能です。
本製品に割り当てられたCOMポート番号の変更や各種設定は、デバイスマネージャ上よりおこないます。
※直接I/Oポートアドレスにアクセスしているアプリケーションは、ご使用になれません。
PythonのPySerialモジュールで簡単に制御できます。
詳しくは[ラズパイ対応情報]をご覧ください。
(2015年3月出荷分からの新機能)
※従来製品でシステム構築済みの場合は、追加導入時RTSモードで引き続き使用できます。
底面にゴム足をつけることで、軽い筐体ながら安定性を確保しました。
※ただし、ロットでのご発注のみの対応とさせていただきます