ここから本文です

RS232Cケーブルについて教えて下さい。

hid********さん

2008/12/1516:40:12

RS232Cケーブルについて教えて下さい。

RS232Cの勉強を始めたのですが途方に暮れています。


Dサブ9ピン

9ピンシリアルポートピンNo/ 信号名 /入出力/ 内容
・・・・・・・・・・・・・・・・1・・・ DCD・・・・ IN・・・ ・キャリア検出
・・・・・・・・・・・・・・・・2・・・ RxD・・・・ IN・・・・ 受信データ
・・・・・・・・・・・・・・・・3・・・ TxD・・・・ OUT・・・・ 送信データ
・・・・・・・・・・・・・・・・4・・・ DTR・・・・ OUT・・・・ データ端末レディ
・・・・・・・・・・・・・・・・5・・・ GND・・・・ -・・・・・ グランド
・・・・・・・・・・・・・・・・6・・・ DSR・・・・ IN ・・・・データセットレディ
・・・・・・・・・・・・・・・・7・・・ RTS ・・・・OUT・・・・ 送信リクエスト
・・・・・・・・・・・・・・・・8・・・ CTS・・・・IN・・・・・送信可
・・・・・・・・・・・・・・・・9・・・ RI ・・・・・・IN ・・・・被呼表示

見にくいですがすみません。内容のところなんですけど、もっとわかりやすく言うと結局どういうことですか?クロスケーブルもよくわかりません。RS232Cの勉強はどういう感じでやっていくと理解しやすいですか?教えて下さい。宜しくお願い致します。

閲覧数:
7,665
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

atoz_146さん

2008/12/1517:05:10

こんばんは。

普段何気なく使っているRS-232C... って、今はUSBやイーサネットがメインですよね。RS-232Cはパソコンなどのデータ端末装置と、モデムなどを接続するための、比較的低速のシリアル通信に使います。9ピンは省略形で、25ピンが元の形です。

RXD/TXDは、シリアルデータを相互に送り合うための信号です。自分の送信シリアル信号をTXD経由で相手のRXDにつなぎます。逆に、相手のTXDをこちらのRXDにつなぎます。またPCのような端末同士をRS-232Cでつないで通信を行う場合、同一ピン配置同士で、同じ名前の信号が衝突してしまうため、クロスケーブル(ヌルモデム)を介してつなぐことになります。

シリアル通信では、送信側がデータを送ってきて、受信側の処理が追いつかなくて受信バッファが満杯になったら、しばらく待て、という信号を送信側に返して待ってもらいます。それらの制御のための信号線がRTS(Request to send)、CTS(Clear to send)、DTR(Data Terminal Ready)、DSR(Data Set Ready)などの信号で、これらを使ってバッファがオーバーフローしないようにハードウェアで制御を行います。

最近のRS-232Cではソフトウェア制御で、XON/XOFF信号をTXD/RXD経由で送り合って上記と同様の機能を実現しているので、RXD、TXD、GNDの3本だけで通信できるものもあります。その場合でも、例えば相手のRTSをこちらのDSRにつなぐとか、その逆につなぐとかの決まりを守らないとシリアル通信が始まらないことがあるので注意が必要です。

詳細は以下に載っています。

http://www.fukufukudenshi.com/LineMonitor/RS-232C.html
http://ja.wikipedia.org/wiki/RS-232

質問した人からのコメント

2008/12/22 12:37:58

降参 なぜ今さらRS232Cをやっているかというと、わたしの会社は古い基盤の保守・点検をやっており社内で扱う基盤は比較的古いものが多いからです。販売のほうもやっておりますが不景気で事務員も営業も暇で暇で・・時間が空いたときに電気の勉強をしているわけです。わたしにはちょっと難しいけど、頑張ります。お三方ありがとうございました。

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

elg********さん

編集あり2008/12/1713:37:14

①TXD、RXDしか使わない 相互のTXD-RXDをつなぐ GとGも
CTSはGに落とす

②更にRTSとCTSをつなぐ、RTSを制御する事で相手が送るのを停める。

の2種類の使用法だけです。

TxdやRXDを相互につなぐのでクロスケーブルと言われます。

他の信号を使った事は有りません。

ちなみにCTSがHだとTxdは出ていきません。

cda59104さん

編集あり2008/12/1621:01:24

atoz__146さんがサイト付きで詳細に説明されていますから、もいいかとも、思ったのですが。。。
主として、実際的見地からアドバイスしよう。
はんだごて、握りながら、うまくゆかない、いった、の想い出がしきり。

RS232Cですか。慣れるまではちょっと難しいかも。
送信データから、直列の信号が出てゆきます。
受信データは、外からのデータを受け取る端子です。

あとは、DCD DTR DSR RTS CTS はデータの送受信を円滑に進めるための信号です。
ひとことでいえば。。。
DCD Data Carrier Detected モデム復調器でキャリヤを検知すると端末に送る
DTR Data Termina Ready 端末が送受信OKのときON 端末がモデムに問いかける
DSR Data Set Ready 送受信可能であることを、モデムが答える
RTS Request to Send 送ってちょうだいな。端末からモデムに送信を要求
CTS Clear to Send 送信してもいいよ。送信許可

端末(マイコン) → モデム → → → モデム → 端末(マイコン)
→ → → は伝送路を信号が送られるのを示します。

たとえば、2つのマイコンを対向させてRS232C通信を行うときは、これらの5信号は、DTR が DSR に直結される。
CD なんて無視。RTSを CTSに接続としてもいいです。
生のシリアル信号でなく、モデムで変調かけるときに、モデムの状況が 端末(マイコン)で判らないと困るでしょうが。
だから、これらの5信号があるので、当面、前世紀の遺物と考えておきましょうね。
今は、モデムって、ピンと来ないでしょう。ムリないよう。30~40年前は、電話回線を通して送るのに、ピー・ポー・ピー・ポーと変調して大変だったんだからさ。デジタル信号"1"を980Hz、"0"を1,180Hzにして、送信、受信したんだからよ!

次に肝心のシリアル信号です。
RS232Cでは、
信号 極性 制御信号 マーク/スペース
0,,,,,, + ,,,,,,,ON,,,,,,,, スペース
1,,,,,, - ,,,,,,OFF,,,,,,,, マーク
と決められています。

つまり、マイコンのピン端子では、0V 5V でも、これを電圧変換(かつインバート)して、0Vが、+10V ,,,,,,,,, 5Vが -10V と、グランドレベルを中心にして、プラスマイナスにスイングさせる信号にして、伝送するのが普通です。そして、この目的に、Maximという専用ICがよく使用されます。Maximはメーカ名、これで検索してみてください。

次にシリアル信号を時間軸で見ましょう。無信号の状態は、クルマと同じく、エンジンだけかかって停止の状態です。アイドリングステートといい、マークレベル(-10V) です。最初にスタートビットがあります。これは常に「0;+10V」 その次からビット0,ビット1,ビット2,ビット3,ビット4,ビット5,ビット6,ビット7と並びます。8ビット通信だと、ビット7まで、7ビット通信だと、ビット6までです。もしパリティがつく場合は、そのあとにパリティビットがきてアイドル状態(マーク)に戻って、これが、1バイトを形成します。最後にストップビットがきて、1バイトの終わり。です。ビットの並びは、LSB First (Lady Firstじゃないよ、だけどこれ覚え易い!)

マイコン内部では、ダブルバファー構造になっていて、送信(受信)データレジスタにシリアルのシフトレジスタが直結されたようになっています。詳細は省きますが、マイコン内部で、ハードとソフト(フラグチェック)が絶妙に、機能するしかけになっています。

いまや、USB2.0 IEEE1394と高速となりましたが、RS232Cは、38400bit per sec 位の中速までで盛んに使われてきた方式です。現在のパソコンでもハイパーターミナルという形で、実現できるので、波形等をオシロなどで観測してみてください。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる