« 白21W制作 | トップページ | 一番の冷え込み »

2013年1月 1日 (火)

UARTって?

仕事でも趣味でも、UARTはよく使う。

会社で上司に「UARTって何か知ってますか?」と言われた。(^^;)
「NSの8250コンパチってことですよね?IBM-PCのシリアルコントローラの。」と答えたら「そうなの?」と逆に言われた。(笑)

webで検索してみてもイマイチハッキリとしたことが書かれてないようなので、まとめておこう。

私が歴史的に「UART」という言葉で思い出すのはi8250だ。intelが8080系CPUファミリ用通信LSIとして出したやつ。

CPUの周辺LSIとしてBUSアクセスできる最初のUARTといえばintelの8250なのだ。その前(CPU登場前)にテレタイプなんかに使われたシリパラ変換基板→IC化されたものも俗称「UART」だった。
N-MOSのAY-3-1015(←型式調べました)とかC-MOSのIM6402が有名だ。私の道具箱にも6402(UART)がころがってるよ。

6402

元祖UART

intel版の8250は同期通信も可能な8251(USART)が出たあとは忘れ去られた。8080の改良バスにあわせ、8251A、とかに改良され、自作の際に「Aバージョン以降を推奨」みたいに言われたのね。あるいは同期通信は必要ないなら手持ちの8250でもピンコンパチだからOK、みたいな感じだった。ちなみにこの8251は初期の国産パソコンにも大量に使われた。(PC-88/98等) 1970年代あたり。

この時代、intelの8251(USART)、Motoloraの6850(ACIA)、ZilogのZ8040(SIO)がシリアル通信LSIの
御三家だったのだ。(1980〜)

8251a

8085/Z80時代、USARTといえばコレ!

実は、、まぎらわしいのだが、そのちょっと後でNS社もINS8250(UART)という全く別のシリアルのLSIを出してきた。
で、IBM-PCに採用されたのがこのNS社の8250(UART)なのだ。これは後にNS16450に改良・改名され、以後PC-AT互換機にはずぅ〜っと採用されている。 なので8250(UART)というと、intelの8250ではなく、NS社のほうの8250を指すのが一般的になってしまった。 でも8251(USART)は、、、intelしか出してないんだよ。(笑)

その後、高機能だったZ80SIOは、汎用版のZ8530(SCC)へとシフトした。同期/非同期/Modem制御/SDLC/HDLCにもフル対応するZ8530(SCC)は、unixワークステーションや高機能PCに採用された。(SUN、Mac、NeXTもそう) MacはこのZ8530の高機能を生かしてAppleTalkというLANのコントローラにも利用した。また、同期通信64kのISDNにフルスピードで直結できたのも当時は大きな利点だった。
85230

こちらはESCC

一方、IBM-PCに採用されたNS社の8250(UART)は安価な非同期のシリアルセットとしてデファクトスタンダードになり、単独のLSIとしてよりもブリッジチップの内部やSOCの内部に1機能として組み込まれるようになった。

と、、、まぁ、こんな歴史だ。

で、現在。

同期通信までフル対応する高機能なシリアルコントローラはSCC=Z8530系(Z85230:ESCCもある)
それ以外は安価なUART=NS16450系(NS社8250系)となったわけ。

だから今のワンチッチCPUやSOCの機能ブロックに「UART」って書いてあったら、それはおそらくNS社の8250系の流れを汲むシリアルコントローラのことであって、intelの8250(UART)やCPU登場前の元祖の6402(UART)とかのことではない。(笑) LSIのマニュアルに(like 8250)なんて書いてあるのはそういう事なのだ。

以上、UARTにも歴史あり。私の周辺LSIの歴史の中ではこんな認識なんすよ。

いとも簡単に「UARTって何?」 と質問されても、、、困っちゃうでしょ?

追記:UARTの「U」=universal(汎用)という意味を、汎用の通信LSIだ、とかRS-232/485/488など、汎用的に使える意味だ、という解説を見かけます。 起源としてのUARTの「U」universalの意味はちょっと違います。 UARTという言葉は、モータの回転と接触子を使った機械式シリパラ変換機械からTr.式の基板に変わった時に「UART基板」という言葉が産まれたのが起源だと思うのです。つまり、機械式の場合、ボーレートを変えるにはモータのギア比を変えてたわけで、110bpsの3倍のギア比で330bpsになった時代から比べれば、一枚のUART基板の設定だけで、ボーレートや通信bit数を自在に変えられる、なんとuniversalな!!  という部分から来てるわけなのですよ。

|

« 白21W制作 | トップページ | 一番の冷え込み »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: UARTって?:

« 白21W制作 | トップページ | 一番の冷え込み »