バイナリは電気信号にどのように変換されますか?


16

私は電子工学を始めたばかりで、すでに魅了されています。そのような+ 5Vが表すように-私は、バイナリが異なる電圧の表現であることを承知しているこれらの過去数日のArduinoで演奏た1とGNDを表します0

私は、物理レベルで、マイクロコントローラーがバイナリをこれらの電圧に変換する方法を発見しようとしていました。私はどこでも説明を見つけることができないようです。誰もが知識を共有したり、これがどのように機能するかを説明する場所/良い本を教えてくれますか?


1
私はそれがどれだったか覚えていませんが、このビデオを見てください。良いコンテンツ。
アブドラカーラマン

2
実際、マイクロコントローラーはバイナリーを可変電圧に変換しません。バイナリは電圧です。+ 5Vは「高」または「1」として示されます。また、0Vは「LOW」または「0」として示されます。行って、電子スイッチ、またはより詳細に見てください。MOSFET。
アブドラカーラマン

「アナログからデジタルへ」または「デジタルからアナログへ」の変換については聞いていませんよね?
アブドラkahraman

3
逆に考えると役立つかもしれません。「バイナリ」は、人間が推論したい象徴的な数学的エンティティの一種です。論理回路は、異なる電圧のバイナリを表すことができます。私たちが論理回路を設計するのは、人間がそれらの電圧を2進数として解釈するときに、回路が電圧レベルで何をするかが一貫した論理的意味を持つようにするためです。
ジャストジェフ

1
@abdullahkahramanあなたは正しい、あなたが言うように、私はDACについて話しているとは思わない。ビデオへのリンクをありがとう、それは非常に有益です。また、その手段として、あなたはMIT OCWサイトも紹介してくれました。これは、学習のための素晴らしいリソースになると思われます。ありがとう!
マット

回答:


18

私はケレンJBの答えの一部を少し異なる方法で言い換えたいと思います:

バイナリの1と0から5 Vや0 Vなどの電圧への変換はありません。マイクロコントローラーまたは物理回路は、電圧で動作します。

これらの電圧は、我々は回路が動作しているかについての私たちの心の中に簡略化されたモデルを形成する際に私たちの頭に1と0のバイナリに「変換」されています。


2
はい。はい、はい、はい、そして(ああそう)はい。
ジャストジェフ

1
そして、0になると、電圧は0に近いか、しきい値を下回る(たとえば、0.8v未満)必要があり、しきい値を1上回る(たとえば、> 2.0v)必要があります。しきい値は、デバイスを構築するために使用されるテクノロジーと、彼の場合の動作電源電圧5vによって異なります。
ケニー

1
皆さんありがとう。それでは、コンピュータが実行されると、バイナリマシンコードの実際の受け渡しはまったくありませんか?バイナリコード、ファームウェアはおそらく、メモリに格納されるようにアップロードする際にバイナリその対応する電圧のA-Aサイクルでプロセッサの応答によって「アクセス」?(これが理にかなっていることを願っています)
マット

「アップロード」されるためには、コードはすでに何らかの物理的形式である必要があります。ワイヤ上の電圧、いくつかのレバー(またはキーボード上のキー)の位置などです。メモリでは、ビットはコンデンサの電荷の蓄積として保存されます...コンデンサの電圧も生成します。
光子

1
私の観点では、画面上の図形や紙に印刷された図形は、単なる光またはインクの塊であり、私たちの心がそれらを1または0を意味すると解釈するまでです。あなたが知らないアルファベットで印刷された文字を想像してください(たとえば、キリル文字またはタイ語)。ロシア人またはタイ人がそれを解釈し、それが何の音を表しているのかを知るまで、それは単なるインクの塊です。しかし、この哲学的な違いは、おそらく私たちを話題から遠ざけているでしょう。
光子

11

実際に行われる「変換」はありません。バイナリの1と0は、基礎となる電圧の単なる仮想表現です。実際、多くのシステムでは、高電圧は0を意味し、低電圧は1を意味する場合があります。これにはいくつかの理由がありますが、おそらくこれより早い段階で詳しく説明します。

ロジックで何が起こっているかを理解するには、おそらくトランジスタを調べるのが最善です。トランジスタはさまざまな用途に使用できますが、単純なレベルではスイッチとして扱うことができます。概念的には、壁のライトスイッチのように考えることができますが、スイッチを物理的に動かすことで制御する代わりに、電流の変化で制御します。点灯しているライトを1、消灯しているライトを0として扱うことができます。これらのスイッチをさまざまなセットで組み合わせて、さまざまな論理要素(AND、OR、NORなど)を作成します。

私の答えは恐ろしく詳細ではありませんが、あなたの質問に答えてくれることを願っています。さらに説明が必要な場合は、詳細を追加しますが、圧倒したくありません。


素晴らしい返信をありがとう!単純なレベルで、マイクロプロセッサが特定のクロック速度で実行され、各サイクルで論理ゲートとして機能するこれらのトランジスタを介して命令セット(バイナリ値に関連する電圧)を送信すると考えるのは正しいでしょうか?そして、トランジスタは結合されたロジック(および、またはNANDなど)に基づいて関連する出力を生成しますか?
マット

1
単純に...はい。ここには多くの抽象化レイヤーがあります。ここで起こっているすべてを単一の答えで説明するのは困難です。すべてを理解するには、多くの抽象化層が必要になるからです。簡単にすべてを教えるには、大学レベルのクラスがいくつか必要です。表面にあるものをそのまま使用するか、多くの学習に備えることができます。
ケレンブ

@kellenjbに感謝します。本当に役に立ちました。もっと学ぶことをお勧めします!
マット

10

短い答えは、「変換」せず、電圧バイナリ(またはその表現)であるということです。いくつかの紙に数字を書くのと同じように、マークは数字を表し、そろばんを数えると、石の位置は数字を表します。

2進数は、10進数(または8進数、16進数など)と同様の数値システムです。

10進数(10進数)には10個のシンボル(0123456789)があり、2進数(base-2)には2個(01)しかありません

任意の基数のシーケンス10は、1乗の基数を意味するため、10進数では10 ^ 1 = 10を意味し、2進数では2 ^ 1 = 2を意味します。その後、10進数で100は10 ^ 2 = 100を意味し、バイナリでは2 ^ 2 = 4を意味します。

それらは単純0と1(またはオン/オフ)で表すことができるバイナリを選択したので、電子機器を使用して小数を表すためには、可能であるが、複雑になる
三元(3つのステート)システムと当然のように、この上のバリエーションがあったアナログ計算は。トランジスタの前に、機械的なパンチカードマシン(もし時間があれば、Googleがたくさん、いくつかの非常に興味深い読書を知っている)があった
最古のバイナリデジタルコンピュータは、実際のスイッチ(電子リレー)で行われました。ツーゼZ3(1941)の例です。

Zuse Z3

この後、リレーの代わりに真空管が使用され(機械部品が動かないため、より高速に切り替え可能)、リレーの代わりに切り替えが実行されました。ENIACは、真空管で作られた初期のコンピュータの一例です。

その後、60年代にトランジスタが到着し、すぐにICが登場しました。トランジスタは、リレー/バルブが以前のマシンに持っていたのと同じ機能を実行しますが、はるかに小さく、より速く、より少ない電力を消費しました。

数学で数値を操作する方法を変更していないように、バイナリコンピューター回路の基本的な方法の背後にある実際の理論はまったく変更されていません。アルゴリズムは改善されますが、基本的なルールは同じです。

したがって、バイナリの動作方法がわかっていて、1または0を2つの異なる電圧レベル(5Vと0vなど)として保存できる単純な回路と、ANDやORなどの単純な論理機能を実行できる他の単純な回路がある場合、それらをすべて組み合わせて、より複雑な作業を行うことができます。
以来、すべてのこれらのバイナリの回路は、単に最も基本的にスイッチされている、あなたは機械的/リレー/バルブ/トランジスタ/のような2つの状態の間で交互にすることができます何でも同じことを達成することができます?。

数値をバイナリで保存する例を挙げると、8つのスイッチがあるとしましょう(それらのタイプは重要ではありません)
。1は5Vで表され、0は0Vで表されます。
番号123を保存します。

10進数では123 =(1 X 10 ^ 2)+(2 * 10 ^ 1)+(3 x 10 ^ 0)
2進数では01111011 =(0 x 2 ^ 7)+(1 x 2 ^ 6) +(1×2 ^ 5)+(^ 4 1×2)+(^ 3 1×2)+(2 ^ 0×2)+(^ 1×2)+(^ 0 1 X 2)
したがって、すべてスイッチ0、1、3、4、5、6を5Vに、スイッチ7と2を0Vに設定します。これは、数値123をバイナリで「格納」します。このセットアップは「レジスタ」と呼ばれます。

スイッチがどのように組み合わされてより複雑な回路を形成するかについて詳しく知りたい場合は、デジタルロジックに関する優れた本を入手するか、Googleに問い合わせてください。

このサイトは最初からそれほど悪くないようです。


0

実行中のプログラムは、1と0を表す電圧を使用しています。そのデジタル部品についてのすべては、グランドに近い電圧または電源電圧に近い電圧です(例では5V)。プロセッサレジスタに0xFFをロードすると、チップ内のどこかに8つの5Volt信号を作成するとします。次に、そのレジスタ値を出力ポートに関連する制御レジスタに保存すると、デバイスの出力ピンによってプロセッサの5V信号が登録され、デバイスの外部ピンに接続されている他の5V信号が作成されます。


0

電圧は、単にバイナリを表す方法です。これは非常に効率的で実用的な変換であり、さまざまなトランジスタ構成を使用してバイナリロジックを実装できます。

通常、バイナリロジックを電子的に実装する方法は、CMOS(http://en.wikipedia.org/wiki/CMOS)テクノロジを使用することです。このテクノロジでは、2つのMOSトランジスタが相補ペアでセットアップされ、CMOSゲートを形成します。ただし、TTL(http://en.wikipedia.org/wiki/Transistor –transistor_logic)やリレーなどを使用したバイナリロジックの他の電子実装もあります。しかし、あなたは本当に何でも、紙、ペーパーロボットヤギを使用できます:http : //www.robives.com/category/product_tags/logic_goats。電子CMOSの実装は、たまたま効率的で実用的なものです。

これらの単純なCMOSゲートから、より複雑な論理ゲートを構築できます。NANDとNORは標準ゲートではなく、基本的なゲートです。これらのうち、バイナリロジック、加算器、レジスタファイル、メモリであるすべてのものを構築できます。これらから、完全なマイクロプロセッサまでALUを構築できます。

詳細情報が必要な場合は、デジタルロジックに関する本を読むことができます。

http://www.amazon.com/Digital-Systems-Principles-Applications-11th/dp/0135103827/ref=sr_1_1?s=books&ie=UTF8&qid=1326877355&sr=1-1

CPUの構築方法を理解するための実用的な方法は、VHDLとFPGAを使用して自分でCPUを構築することです。安価なFPGA開発ボードを入手でき、ソフトウェアは通常無料です(ライセンスが制限されています)。私は非常に手頃な価格の賢明な人をいくつか持っています:

http://www.digilentinc.com/


-3

簡単に言えば、特定の範囲(通常5〜12ボルト)で、最上位ビットはその範囲の前半が0で、もう一方が1です。次の最上位ビットは、すべてのビットが計算されるまで、その半分をさらに2等に分割することにより計算されます。

したがって、バイナリとは、ほぼ定期的に測定される電圧の増減です。

簡単な例を示します。1Vから256Vの範囲で、擬似コードを使用して137をバイナリ(数値)に変換します(アナログ)。

// used this way: analogToNumeric(137, 256);
function convert(var number, var length) {
    if (number > length) { return(ERROR); }
    function convert(var half, var binary) {
        if (half < 2) { return(binary); }
        elseif (number < half) {
            return(convert((half / 2), append(binary, 0)));
        } else {
            return(convert((half / 2), append(binary, 1)));
        }
    } return(convert((length / 2), list()));
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.