爪車

blog移転してきました

旧blogからの移転です。

記事等はほぼそのまま移設しました。

ただいま作業中です。

RS-485の接続

RS-485通信の接続のメモです。

・RS-485とは
一対の信号ラインに上に最大32台の装置を芋づる式に接続できるマルチドロップによる通信方式です。
信号の伝送には差動信号を用いているので、ノイズに強く、高速で、遠距離の通信ができます。
半二重通信となるので一台の装置が同時に送信、受信ができません。送受信を切り替える必要があります。
一対の信号ラインに多数の装置が接続されている場合の送受信は
送受信が同時にできないので、送信が1、受信が多、という接続になります。
どの装置が送信するかといった送受信の手続きを決める必要があります。

接続形態  マルチドロップ
通信モード 半2重
伝送方式  差動信号
ライン当たりのドライバ数 32
ライン当たりのレシーバ数 32
最大距離 1.2km (100kbps以内)
最大速度 10 Mbps (15.24m以内)

詳しくはhttp://www.ibsjapan.com/RS485.htm

秋月電子通商で購入したリニアテクノロジーのRS-485インタフェース・トランシーバ LTC485CN8を使ってRS-485通信してみました。

DSCN0655.jpg

DE端子とRE端子はドライバとレシーバの制御端子です。
DE,REともにHレベル -> ドライバとして機能
DE,REともにLレベル -> レシーバとして機能

RO端子は受信データの出力、
DI端子は送信データの入力です。
マイコンと接続する場合は、RO,DIとマイコンは直接接続してください。
間違ってRS-232信号などとは接続しないでください。

トランシーバーどうしはA,B端子で接続します。AはAと、BはBと接続します。
A,B端子のほかにGNDも接続します。
よってトランシーバーどうしは3本の線で接続することになります。

下の図のRtは終端抵抗です。通常は120Ωを使用します。

DSCN0653.jpg

以上の写真は付属の資料からです。

・マイコンとの接続
マイコンとは直接接続します。
送受信の際はマイコンでDE,RE端子を制御してトランシーバーの送受信の切り替えをします。

・PCとの接続
通常のPCのシリアルポートにはRS-232しか接続できません。RS-232とRS-485は直接接続できないので、RS-485の信号をTTLにしてからRS-232信号にしてPCと接続します。
PCのシリアルポート -(RS232)- RS232トランシーバ -(TTL)- RS-485トランシーバ -(RS485)---
となります。

RS-485通信では、送受信の切り替えのための制御をする必要があり、送受信の手続きのは自分で決める必要があります。
送受信を固定してしまい送受信の切り替えがないような接続なら簡単に接続できます。

SH7125の通信速度

SH7125のシリアル通信速度について考えて見ます。

PCとの通信が高速でできれば、短い制御周期でもPCからサーボをリアルタイムで動作させるといったことができるようになります。

現在PCとの通信にはRS-232経由で9600bpsで行っています。
bpsとはデータ転送速度の単位で、一秒間に何ビット通信できるのかを表しています。
1bpsは1秒間に1ビット転送できます。9600bpsだと1秒間に9600ビットです。
これがどのくらい高速化できるか調べてみました。

RS-232の最高通信速度は115.2kbpsですので、PC側で設定できる
14400bps
19200bps
38400bps
57600bps
115200bps
の場合で検討してみます。

SH7125のハードウェアマニュアルの12.シリアルインターフェース(SCI)の12.3.10ビットレートレジスタ(SCBRR)項より
ボーレートジェネレータのSCBRRの設定値を求めます。
AKI-7125だと周辺モジュール用動作周波数Pφは25MHzとなります。
Pφ=25MHzの場合は表に載っていないので自分で計算します。
ボーレートジェネレータのSCBRRの設定値Nを求め、ビットレート誤差を求めます。
調歩同期式モードなので
14400bps, N=53, 誤差=0.47
19200bps, N=40, 誤差=-0.76
38400bps, N=20, 誤差=-3.12
57600bps, N=13, 誤差=4.33
115200bps, N=6, 誤差=-3.12
となりました。
通信エラーが発生するので、ビットレート誤差は、マイコン側ではなるべく1%以内になるように設定します。
38400bps以上では誤差が1%を超えているので設定しないほうがいいみたいです。
実用できるのは19200bpsまでみたいなので、あまり速くなりませんでした。
PCからサーボをリアルタイムで動作させるのは難しそうです。

bpsの変更はSH7125側ではSCIの設定でSCBRRの値をを変更します。
SCI1使用、19200bpsのとき
SCI1.SCBRR = 40
となります。

PC側ではデバイスマネージャのCOMのポートの設定で通信速度の設定をします。

通信するソフトでも通信速度の設定をします。
Htermではビットレートの上限が19200bpsまでとなっていました。
TeraTermだとそれ以上の速度でも設定ができます。

Top

HOME

tsumehashi

Author:tsumehashi
FC2ブログへようこそ!

05 | 2009/06 | 07
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -