- ベストアンサー
正論理と負論理について
信号の与え方(受け取り方)として、正論理と負論理があると思いますが、 これらに関してメリット、デメリットという観点でみるとどのようなものがあるのでしょうか。 別の観点からのみかたとか正論理、負論理を決定する理由とかがあるのでしょうか。 例えば、 マイコンのピンとかを見ているとリセット端子とかは負論理になっています。しかし、アドレスやデーター端子は正論理になっています。 どういう理由で使い分けが行われているのでしょうか。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
tanceです。 正論理、負論理は些細なことで決まることが多いと思います。 習慣 以前の仕様 配線の数 使うICの入出力仕様 集合抵抗でのプルアップやプルダウン 信号源の仕様と断線時のフェールセイフ 外部機器との電源の入り切り関係 などなど、 たとえば、入力を正論理にすると、スイッチをONにしたら電源につなが なくてはなりません。外部に電源を出さなくてはならなくなります。 その電源は回路の電源そのものでは少々不安です。もし外部でショート されたら装置全体がダウンしてしまいますから、ショート保護をつけて スイッチにあげなくてはなりません。・・・面倒ですね。 負論理でも不具合がある場合もあります。スイッチではなくICの出力を 別な機器に与える場合、負論理だと、信号源側の機器の電源が切れた だけで信号が来たことになってしまうことがあります。(電源が切れた 機器は絶対に"H"を出力することができないから) 正論理で、受け側の機器の電源が切れるとどうなるでしょうか。電源の 切れた機器に外部から信号線を通して電源を与えることになってしまい ます。これは受け側の機器にとっては自分の電源(0V)を超える過大 入力となり、故障の原因にもなります。 では、受け側の機器の電源をつかって入力信号をもらえばよいので しょうか。残念ながらそうとも言えません。受け側の機器の電源を 信号源側の機器に与えなければ信号源側の機器は信号を出せないので 電源の受け渡しが必要になります。すると、今度は信号源機器の 電源だけを切ったとき、受け側が信号源機器の電源まで供給する ことになってしまいます。 このあたりは、うまい問題の避け方があるのですが、論理を変える だけで問題が避けられるなら一番簡単です。 以上で、だいたい質問に答えていると思います。
その他の回答 (5)
- tance
- ベストアンサー率57% (402/704)
tanceです。 正論理、負論理の利害得失について書かれたものは見たことがないですね。 特別な理由がある場合には解説されることはありますが、一般的には なかなか一概には言えないモノなのだと思います。 汎用論理ICの入出力論理でもわざわざ別の型番として逆論理のバージョン を用意したりしています。
お礼
たびたびの回答、ありがとうございました。
- takepon256
- ベストアンサー率41% (391/936)
制御線が負論理なのはANo3さんのおっしゃる歴史的な背景が大きいでしょうね。 今ではCMOS回路が一般的ですが、一昔前はTTLが主流でした。 TTLは LOW⇒HIGH よりも HIGH⇒LOW への変化の方が急峻に変化します。 したがって負論理のほうが回路の速度が上げられるというメリットがありました。 TTLの閾値はLOWに近い側にありますので、誤動作を防ぐ意味もあったようです。 http://www.m-system.co.jp/mstoday/plan/mame/2000-2001/0110/ また、負論理だとワイヤードORという手法も使えたりします。
お礼
>制御線が負論理なのはANo3さんのおっしゃる歴史的な背景が大きいでしょうね。 なるほど。 ------ ホームページ、とても参考になりました。 ------ ありがとうございました。
- tance
- ベストアンサー率57% (402/704)
正論理か負論理かの選択には別の見方もあります。負論理は"L"を アクティブとしますが、"L"は大抵の場合電気的にはGNDであり、他の システムや外部機器との共通電位になっていることが圧倒的に多いです。 つまり、外部機器との共通点であるGNDをアクティブと定義することで メリットが出ることがあります。 無電圧接点という単なる押しボタンスイッチのようなものは信号と GND間をスイッチでショートするようにすると間違いなく信号が伝わります。 これを正論理にすると、スイッチで電源電圧を与える必要が出てきます。 すると、スイッチのところまで電源線と信号線を引っ張る必要があり、 共通GNDを引っ張るより神経を使います。(ショートすると大変etc.) 細かい気配りですが、共通GNDに対して配線する方が間違いもなく、電源 の投入順序なども気にする必要がなくなります。 さらに歴史的な面もあります。昔は論理ICはバイポーラのTTLが主流 でした。その当時は高速のICを作るためにNPNのトランジスタしか使え ませんでした。NPNのトランジスタはONすると出力がGNDになります。 つまりONをアクティブと考えると負論理となります。この当時の習慣が 今も受け継がれている部分もあると思います。
補足
>他のシステムや外部機器との共通電位になっていることが圧倒的に多いです。 >つまり、外部機器との共通点であるGNDをアクティブと定義することで メリットが出ることがあります。 なるほど。 逆に、電源電圧側をアクティブにすると外部機器との整合が取りにくくなるということでしょうか。その理由は何でしょうか(ノイズとか?)。 ------ >正論理にすると、スイッチで電源電圧を与える必要が出てきます。 >すると、スイッチのところまで電源線と信号線を引っ張る必要があり、 >共通GNDを引っ張るより神経を使います。(ショートすると大変etc.) 正論理にすると「回路の引き回しが面倒になる」というデメリットがあるという理解でいいでしょうか。 ----- >細かい気配りですが、共通GNDに対して配線する方が間違いもなく、電源 >の投入順序なども気にする必要がなくなります。 正論理にした場合に「電源の投入順序」を気にしなければならない理由にはどのようなものがあるのでしょうか。 ----- >さらに歴史的な面もあります。 なるほど。 ----- いくつか追加質問をさせていただきました。 よろしくお願いいたします。
- walkingdic
- ベストアンサー率47% (4589/9644)
>別の観点からのみかたとか正論理、負論理を決定する理由とかがあるのでしょうか。 理由がある場合もあれば習慣的にそうなっているだけの場合もあるでしょう。 >リセット端子とかは負論理になっています。 これは基本は負論理ですね。正論理というのは無いかあっても特殊でしょう。 これは理由があって、そのほうが都合がよいからです。 たとえば、電源投入してからしばらくはリセットを効かせたいとすると(電源投入直後の不安定な時期にマイコンが動いて暴走しないようにするため)、負論理であれば、抵抗とコンデンサで簡単にそういう遅延が出来ます。 たとえば、正論理であってほしいもので考えると、何かを動作させるような信号線の場合には、正論理の方が安全であるなどの場合があります。 電圧0Vで動作するとすれば、コントロール回路異常や配線の断線などでも動作してしまうからよくありませんよね。
お礼
>理由がある場合もあれば習慣的にそうなっているだけの場合もあるでしょう。 「習慣」も理由のひとつなのですね。 ------- >これは理由があって、そのほうが都合がよいからです。 >たとえば、電源投入してからしばらくはリセットを効かせたいとすると(電源投入直後の不安定な時期にマイコンが動いて暴走しないようにするため)、負論理であれば、抵抗とコンデンサで簡単にそういう遅延が出来ます。 なるほど。 ------- >たとえば、正論理であってほしいもので考えると、何かを動作させるような信号線の場合には、正論理の方が安全であるなどの場合があります。 電圧0Vで動作するとすれば、コントロール回路異常や配線の断線などでも動作してしまうからよくありませんよね。 フェイルセーフ動作ということですね。 ------- ありがとうございました。
- oyaoya65
- ベストアンサー率48% (846/1728)
> これらに関してメリット、デメリットという観点でみるとどのようなものがあるのでしょうか。 扱う人の問題ですから、この質問はナンセンスです。 > 別の観点からのみかたとか正論理、負論理を決定する理由とかがあるのでしょうか。 論理1,0をH(高い方の電圧レベル),L(低い方の電圧レベル)に対応させるとき、何も入力しないとき、回路動作が無害、何か機能を働かせる為の信号をある意図をもって作って入力したいとき、その能動的にその信号を与えるように信号の論理(正論理・負論理)を決めるのが普通です。 アドレスは1000番地を2進数に直して2進アドレスをアドレス線(ピン)に入力する、データーについても30というデータを2進数に変換しそのまま2進データをデータ線(ピン)に入力する、それが正論理の入力になります。つまり、2進の1をH,2進の0をLの電圧に対応させます。番地のアドレスは2進アドレス値をそのまま正論理で与えます。データについてもそのまま正論理で与えます。 リセット端子は普段プルアップ抵抗で高い電圧(H=1)に保持しておきます。この状態でリセットは無効になっています。リセットしたい時に初めてプルアップされたリセット端子を低い電圧(L=0)にしてやります。ルセットを働かせる(有効にする)のに0を入力しますので、負論理という事です。 >どういう理由で使い分けが行われているのでしょうか。 その信号が意味を持つ、あるいは機能する論理が H=1であれば正論理、L=0であれば負論理 という事です。 この信号端子を働かせるには論理L=0を入力すれば良いとき、負論理の入力端子という事になります。 この端子に論理H=1を入力すれば機能する、本来の信号の意味になるとき、正論理入力端子という事になります。 出力端子についても、その信号を別の回路の入力信号の論理にあわせて、使いやすいように正論理、負論理の出力が選択されます。 論理0で意味を持つ信号(論理0で機能する信号)を負論理信号、 論理1で意味を持つ信号(論理1で機能する信号)を正論理信号、 と考えればいいですね。実回路では論理回路を使わないとき、 その端子の論理を不確定にしない為、高い電圧にプルアップ しますが、その場合、ちゃんと回路が正常に動作するように 制御信号ピンの論理が決められており、負論理の制御信号が多い ですね。
補足
説明、ありがとうございます。 >扱う人の問題ですから、この質問はナンセンスです。 これは、扱う人によって「自由に決めていい」という理解でいいでしょうか。 --------- >何も入力しないとき、回路動作が無害、何か機能を働かせる為の信号をある意図をもって作って入力したいとき、その能動的にその信号を与えるように信号の論理(正論理・負論理)を決めるのが普通です。 なるほど。 いわゆる、「フェイルセーフという観点」という理解でいいでしょうか。 --------- >番地のアドレスは2進アドレス値をそのまま正論理で与えます。データについてもそのまま正論理で与えます。 >リセット端子は普段プルアップ抵抗で高い電圧(H=1)に保持しておきます。この状態でリセットは無効になっています。リセットしたい時に初めてプルアップされたリセット端子を低い電圧(L=0)にしてやります。ルセットを働かせる(有効にする)のに0を入力しますので、負論理という事です。 マイコンにとってみれば、アドレスも、リセットも入力だと思いますが、どうして正論理と負論理の使い分けをしているのでしょうか。 --------- >実回路では論理回路を使わないとき、 >その端子の論理を不確定にしない為、高い電圧にプルアップ >しますが、その場合、ちゃんと回路が正常に動作するように >制御信号ピンの論理が決められており、負論理の制御信号が多いですね。 一つ前の質問とかぶる気もしますが、「その端子の論理を不確定にしない為」ということであれば、アドレスもリセットもすべて負論理にすればいいような気がします。なにがちがうのでしょうか。 --------- たくさんの追加質問で申し訳ございません。
お礼
丁寧な説明、ありがとうございました。 色々とわかりました。 もし、回答いただいた内容とかが掲載されている、書籍とかホームページとかをご存知でしたら紹介いただきたいです。