アプリ版:「スタンプのみでお礼する」機能のリリースについて

電気初心者です。調べたところ、RS-232Cでは電圧レベルの範囲+3V~+15Vと-15~-3Vをそれぞれ論理値0と論理値1と定義しています。
直流なのになぜ電圧が負の値なのか混乱していますが、これは、ある電圧レベル、例えば3Vを基準にすると、6Vは+3V、0Vは-3Vと表現できますが、そういう意味なんでしょうか。
今、パソコンのシリアルポートのTXDピンとGNDピンにマルチメーターを当てて電圧を測ると、+6Vと出ました。これはRS-232Cの定義によるところの+3Vということなんでしょうか。
一方、UARTを使えるマイコン(Arduino UNO)で同様にTXDピンとGNDピンの電位差を測ると、+5Vと表示されました。これが例えば2.5Vくらいになると論理値は1になるのでしょうか。

A 回答 (2件)

RS-232Cは正負の電圧を使います。

このため送信出力のICには+12~15Vと-12~15Vの電源を供給します。もっとも現代のICは内部に昇圧回路を持っている物が多いので+5Vだけで動作するものが多いですが。
受信側のICは-15V~+15Vの電圧が入っても異常を生じないようになっています。閾値は+3V程度にしてあるようです。
古くから使われている代表的なICとして送信用にMC1488、受信用にMC1489というものがあります。5V一発電源で働く物としてMAX232というのがありました。

マイコンチップのUART出力はTTLレベル(約0V~5V)です。これを送信出力のICを通してRS-232C信号として外部に出します。
一般に送受信のICはレベル変換を兼ねたインバーターになっています。そのためマイコンのUARTの入出力は負論理ということになっていて、Logic0はLowレベルであり、232C信号になると+12~+15Vになります。
RS-232Cはアイドリング(信号を送っていない状態)では負電圧です。ということはUARTの入出力はHighレベルです。これは伝送線の異常(断線)を検出するための使われます。すなわち正電圧が1フレーム(スタートビットからストップビットまでの長さ)以上続くと異常とします。

> これが例えば2.5Vくらいになると論理値は1になるのでしょうか。
Arduinoの入出力レベルがどうなっているのか調べていませんが、TTLレベルにしてあればLowが0~0.5V程度、Highが2~5V程度でしょう。5VのC-MOSレベルに作ってあるのならLowが0~2V、Highが3~5V程度です。
    • good
    • 1

電圧が負というのは、電流が逆に流れているという事です。


RS--232Cは、0Vを基準値として、電圧+3〜15Vを閾値で正、電圧-3〜-15Vを閾値で負として、正=1、負=0として扱います。
UARTは電圧+5Vて動いているので、TXD-GND間が+5Vなら論理値1を示し、0Vなら論理値0を示します。
これを、正負の電圧でやり取りするのが、RS-232Cです。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています