アクティブローが存在するのはなぜですか?


14

私のキャリアでは、アクティブローの信号に頻繁に遭遇しました(リセットが最も一般的です)。私はすべての制御信号がアクティブに低いインターフェースを見てきました。

私にとって、これは非常に直感的でわかりにくいものです。なぜ積極的に低く使用する必要があるのですか?それは単に歴史的なものですか、それともそれを説明する実際のゲート数/電力の懸念がありますか?




ある意味でリセットbeging-アクティブローの回路よりも文書で行うことが多くあることに注意してください:それはアクティブ・ハイであったであろうRUN入力または似たような...と呼ばれていた場合
はWouterバンOoijen

回答:


10

歴史的なデジタル設計では、アクティブLOW信号を使用することで設計内のゲート数を削減できるため、回路のコストを削減できる場合は常に使用されます。すべてのロジックは基本的に反転(NAND)ゲートから構築されているため、ディスクリートロジックよりもICデザインでさらに一般的だったと想像できますが、私はその分野では経験がありません。

このレベルの最適化は、今日ではめったに必要とされないか、少なくとも合成ツールによって自動的に実行されるため、設計者には透過的です。お気づきのように、アクティブLOW信号が依然として非常に一般的に見られるのはごくわずかです。

リセットや割り込みなどの機能のアクティブLow信号の利点の1つは、オープンコレクター出力を使用するだけで、アクティブLow信号の「ワイヤードOR」ロジックを簡単に作成できることです。

つまり、リセットまたは割り込みを引き起こすことができる必要があるいくつかの異なる回路がある場合、それぞれは〜RESETまたは〜INTワイヤに接続されたオープンコレクタ出力を持つことができます。その後、それらのいずれかがラインをローに引き下げ、信号を結合するための追加のロジックを必要とせずに適切な応答を引き起こすことができます。


3

TTLなどのロジックファミリでは、オープン端子はHighとして解釈されます。これは、ロジック0入力を検出するために電流シンクロジックに依存しているためです。

ピンをアクティブLOWに設計する、意図的な論理状態が適用される場合にのみ機能します。あいまいな浮動入力条件を回避します。

さらに、この質問では、リセットの特別なケースが回答されています。


1
これは誤解を招きます。はい、TTL入力はフロート・ハイでしたが、ノイズの存在下で信頼できるレベルまではフローしませんでした。TTL入力をフローティングのままにすることは常に悪い習慣でした。また、これはずっと前のことです。最近では、ロジックはどちらの方向にも浮動せず、駆動する必要があります。今日のほとんどのロジックであるCMOSは、入力インピーダンスが非常に高く、対称です。
オリンラスロップ

1
合意@OlinLathrop
D34dman

2

アクティブローの主な利点は安全性です。

C&Iの世界では、信号が失われると壊滅的な状況で広く使用されます。1つの例は、ボイラーの水位が低いこと、別の例は非常停止、別の例は燃料圧力が低いことです。これらのイベントのいずれかが発生した場合、マシンを停止する必要があります。

システムがアクティブHighを使用し、機器が破損したか、信号ケーブルが損傷した場合、コントローラーは問題があることを知ることができません。システムがアクティブローを使用し、機器が破損したか、信号ケーブルが損傷した場合、システムは機器がアクティブ化された場合と同じ方法で応答します。


1
さて

1

アクティブLOW信号は、一部のロジックファミリ、特に古いTTLでノイズに対する耐性が高くなっています。

高TTL信号は、少なくとも2.8Vの出力で、2.0Vの入力まで低くする必要があります。これにより、電圧降下とノイズのマージンが0.8Vになります。さらに、マージンを増やすために、5V電源にプルアップ抵抗を追加できます。

低TTL信号は、0.4Vを超えないようにする必要があり、最大0.8Vを入力できます。これにより、電圧降下とノイズに対するマージンは0.4Vになります。

いずれかのレベルを使用して、いずれかの論理状態を表すことができます。ただし、信号が最も時間を費やす状態に対して最もノイズ耐性の高いレベルを選択することは理にかなっています。

多くの信号は、ほとんどすべての時間を非アクティブにします。したがって、ノイズが発生しやすい低レベルを使用して、頻繁に発生しないアクティブ状態を表し、よりノイズ耐性の高い高レベルを使用して、頻繁に発生する非アクティブ状態を表すことをお勧めします。


1
TTL信号のLow状態は、通常、電流をシンクしてゼロにする必要があるため、より多くの電力を消費します。通常、フロートはTTLの1のように見えるという事実によって示されるように、それをハイ状態に駆動するのにほとんど電力は必要ありません。また、TTLは通常、ソースよりも多くの電流をシンクするため、1よりも0に行く方がはるかに高速です。したがって、より一般的な(非アクティブ)状態を1に割り当て、あまり一般的でない(アサートされた)状態を0に割り当てると、電力消費を削減し、それをアサートするときに伝播が速くなる傾向があります。
ニコールハミルトン

1
これは、アクティブローが「存在する」ことのもう1つの理由です。しかし、それは私の答えを支持するものでも矛盾するものでもないようですので、なぜあなたはそれを独立した答えとしてではなく、私の答えへのコメントとして投稿したのでしょうか。
ケンジャクソン

0

論理信号には2つの状態があります。どちらをオンまたはオフにするか、またはオンまたはオフの通信に使用するかは完全にあなた次第です。高いことをオンにしたり、真実にしたりすることは、低いほど正しいことはありません。

それがあなたにとって直感的でないという事実は、システムを設計する際には無関係です。高は真を示すべきだと思うかもしれませんが、それは他の誰かにとって完全に逆の場合があります。優れた技術者は、宗教的な意味にこだわるのではなく、意味のあることをしようとします。時々それは重要ではありません、そして、あなたはあなたの好みが何でも選ぶようになります。時々それは重要です。

たとえば、通信する必要がある回路は、通常グラウンドと呼ばれる1つの共通ネットを共有するのが便利であり、ほとんどのロジック回路は、正の電源を必要とするように進化しました(それについて考えてみてください、逆も同様です) 、ロジック信号は通常、グランドまたは正電源レベルのいずれかになります。通常開いている押しボタンからデジタル入力を駆動する必要があるとしましょう。特に、そのプッシュボタンが物理的に回路に正しく取り付けられていない場合、プッシュボタンの片側をグランドに接続すると便利です。つまり、ボタンが押されると反対側が地面に駆動されます。これは本質的に負のロジックを作成します。つまり、ローは押されたことを示し、ハイ(パッシブプルアップあり)は解放されたことを意味します。このラインがマイクロコントローラーに接続された場合、宗教上の理由だけでインバーターを追加するのは愚かなことです。マイクロのファームウェアは、押されていることを表すどちらの極性にも対応できるため、迷信を飽和させる以外に、インバーターはスペース、電力、およびコストの無駄になります。


4
私はこれが質問に本当に答えるとは思わない、それはなぜその特定の極性がそれほど一般的だったのか?ゲートレベルの理由はありますか?
Rocketmagnet

リセットの場合、電源グリッチの検出でそのようなことはわずかに役立つこともありますか?
ポールA.クレイトン

@Rocket:それは尋ねられたものではありません。アクティブローは必ずしも一般的ではないと思いますし、OPもそれを決して主張しませんでした。彼は、誰もがなぜ知りたかった今までに(彼の言葉)アクティブ・ローを使用します。私のポイントは重要ではないということであり、アクティブ・ローが有利である少なくとも1つの例を挙げようとしました。私はあなたが質問を誤解した人のようです。
オリンラスロップ

@Paul:リセットに関する特定の問題は、リセット状態を電源オフレベルにすることです。そうすることで、システムの起動中にリセットラインを初期の0Vレベルに固定できます。
オリンラスロップ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.