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

USARTとRS232Cの関係についてどなたかご教示お願い致します。

マイコンマニュアルを見ていると、USARTという言葉が出てきますが
RS232Cは出てきません。しかし、ネットで調べていると同じものとして扱っているように思える表現があったりします。
違いはあるのでしょうが、それをネットの情報から読み取ることはできませんでした。

この二つの違い、または関係を教えて頂ければ幸いです。
宜しくお願い致します。

A 回答 (3件)

No.2 です。



実は、先ほどの回答には厳密性を欠くところ
もあるのですが……。

まず、RS232C は、物理的な規格だけではなく、
信号の形なども規定しています。
一般的に、USART といえば、同じ信号の形で
通信するものを指しますので、ものすごくお
おざっぱに言えば

USART : マイコンなどで使われるシリアル通信
RS232C: それに加えて、物理的な規定もしたもの

ということで、RS232C には、信号の形も規定さ
れています。そして、それは、多くの場合、
RS232C で規定されるのと同じです。

ですから、ソフト的な面を扱う場合には、ほぼ
区別ないことになります。

通信をするためには

・ひとかたまりを何ビットにするか
 (7ビットとか、8ビットとか)

・ひとかたまりのデータをひとかたまり
 だと認識するにはどうするか
 (スタートビットだとか、ストップ
  ビットだとか)
  
・どのくらいのスピードでデータを送るか
 (ボーレートの話)

という決め事が必要です。
ここまでが、USART

これに加えて、実際に通信するためには

・ビットの 0 や 1 をどう区別するか?
 (マイコンだと, 0 = 0V が主流 1 は、
  そのマイコンの Vcc にとるのが普通
  RS232C は、1 が -12V, 0 が +12V
  (本当は、もっと範囲が広い)
 )

という電圧を決める必要があります。
ここまでが、その電圧により、

TTL レベル(最近は聞かない) CMOS レベ
ル,RS232C レベル という言い方をします。

この電圧レベルまでを一致させれば、まあ
通信はできます。

ですから、つながる相手が決まっていれば、
マイコンの持つ電圧レベル(たとえば、
CMOSレベル)で直結できます。(回路保護
をどうするかという話はあるけど)

これに対して、パソコンなどのように、
「何が接続されるかわからない」場合には、
RS232C という「世界共通の」電圧規格に
あわせておけばいいわけです。

※技術的には、0, 1 の電圧差が大きい方
 が、低速だが信号線を長くのばせるの
 で、外部に機器をつなぐことを想定し
 た、RS232Cは、±12v(本当は、もう
 少し許容範囲は広い)を使うわけですが。

特に、RS232C レベルに直接対応したマイ
コンはまずありません。なので、マイコン
同士の通信は、マイコンが持っている USART
を直接接続する方が有利です。

これに対して、外部に、計測器などをつな
げる場合には、その計測器が、RS232C レベ
ルであることが多いので、RS232C レベルに
信号(の電圧)を変換する必要があります。

RS232C ならケーブルをつなぐだけというの
は、あちこちにある、RS232C準拠の機器と通
信をするために必要なので、閉じたシステム
で、接続する機器が決まっているという場合
には、必ずしもRS232C にそう必要はありませ
ん。
    • good
    • 0
この回答へのお礼

詳細な解説を頂きましてありがとうございます。
読み終えた後、かなり分かった気になったのですが、
おそらく根本的な部分で知識が足りていないせいもあり、
まだまだ理解は出来ていないと感じております。

教えて頂いたことと、ネットなどで調べたことを整理
してみたく一度締めさせていただきます。
ご教示ありがとうございました。
また、ぜひご助力頂ければと思います。

お礼日時:2009/04/16 18:14

通信プロトコルには、「階層」という概念が


あります。この中で、USART としての決め事
は、信号をどんな形で送受信するかというこ
とになります。

一方、RS232C は、具体的に通信を行うため
の、電圧やコネクタの形、ピンの配置まで含
めた規格になります。

つまり、USART で通信といっても、通信の
電圧レベルは、(普通は)マイコンの電源
電圧が基準になります。

ですから、互いに電圧が異なる2つのマイ
コンを、「USART で通信規格もあわせてい
るから」だけでは接続できるとは限りませ
ん。

一方で、「RS232C レベル」まで規定すれば、
(この表現は、多くは、信号電圧までは
RS232C 合致を意味する)ケーブルさえなん
とかつなげば通信できるわけです。

(厳密な)RS232C として規定されていれば、
コネクタ形状もピン配置も決定されている
ので、コネクタを指すだけで通信できます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

N0.1とNo.2お二方のご説明を受けて、今自分の中での認識は、

USARTは、シリアル通信コントローラ。
通信命令というか作業を行う。しかし、コネクタなどの物理的な規格が
ないため、外部と通信するときは、RS232Cという規格の通り道を利用する。
RS232Cは、物理的な出入り口としての規格。
データ通信上の外部との出入り口。コネクタや電圧など物理的な規格がある。
しかし、自ら通信作業を行っているわけではない。あくまで通り道。

混乱している部分もあり、まだよく分かっていないのですが、
USARTで通信するとき必ずRS232Cを使う必要はあるのでしょうか?
ネットでは多くのページが、USARTとRS232Cを同義的に扱っているよう
に見えます。
No2.の方のご説明の中に、「RS232Cレベル(電圧レベルを?)まで
規定すれば、あとはケーブルをつなぐだけ」とありますが、この
シンプルさのためUSARTで通信しようと思ったときには、RS232Cで接続
しようということにつながるのでしょうか?

お礼日時:2009/04/15 10:39

上手く説明出来るか自信は無いが・・・



 【USART】
  一般的には、汎用の同期式と非同期式のシリアル送受信用の機能を持っているシリアルコントローラ(チップ)を指す。
  PICの中に機能が含まれている場合もあるみたい。
  PC-AT互換機では16550というチップが使われている。

 【RS-232C】
  シリアル通信用のインターフェース規格の一つ。
  (コネクタの形状や、各ピンの用途及び信号レベルを定義している)

 【参考】
  http://ja.wikipedia.org/wiki/RS-232
  http://www.picfun.com/pic19.html
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
ぜひ参考にさせて頂きます。

お礼日時:2009/04/15 09:57

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