İkili elektrik sinyallerine nasıl dönüştürülür?


16

Ben sadece elektronikle başlıyorum ve zaten büyülendim. Geçtiğimiz birkaç gün içinde bir Arduino ile oynadığım zaman ikilinin farklı voltajların bir temsili olduğunun farkındayım - + 5V temsil 1ve GND temsil gibi 0.

Mikrodenetleyicinin ikiliyi bu gerilimlere nasıl dönüştürdüğünü keşfetmeye çalışıyorum. Her yerde bir açıklama bulamıyorum. Herkes bilgisini paylaşabilir veya beni bunun nasıl çalıştığını açıklayan bir yere / iyi bir kitaba yönlendirebilir mi?


1
Hangisi olduğunu hatırlamıyorum, ancak bu videoya bir göz atın . İyi içerik.
abdullah kahraman

2
Aslında, mikro kontrolör ikiliyi değişen voltajlara dönüştürmez. İkili voltajdır. A + 5V, "YÜKSEK" veya "1" olarak gösterilir. Ve 0V, "DÜŞÜK" veya "0" olarak belirtilir. Git ve elektronik anahtarlara veya daha fazlasına göz at; MOSFET.
abdullah kahraman

"Analogdan dijitale" veya "dijitalden analoga" dönüşümünü sormuyorsunuz değil mi?
abdullah kahraman

3
Bunun tersini düşünmek yardımcı olabilir. 'İkili' insanların akıl yürütmeyi sevdiği bir tür sembolik matematiksel varlıktır. Mantık devreleri, farklı voltajlarla ikili verileri temsil edebilir. Mantık devreleri tasarlıyoruz, böylece insanlar bu gerilimleri ikili sayılar olarak yorumlarsak, devrelerin voltaj seviyeleri ile yaptıkları tutarlı mantıklı bir anlam kazanır.
JustJeff

1
@abdullahkahraman Doğru, dediğin gibi DAC hakkında konuştuğumu sanmıyorum. Video bağlantısı için teşekkürler, çok bilgilendirici. Ve bu sayede, beni MIT OCW sitesine de tanıttınız, bu da öğrenme için harika bir kaynak olacak gibi görünüyor. Teşekkürler!
Matt

Yanıtlar:


18

KellenJB'nin cevabının bir kısmını biraz farklı bir şekilde yeniden ifade etmek istiyorum:

İkili 1 ve 0'lardan 5 V ve 0 V gibi voltajlara dönüşüm yoktur. Mikrodenetleyici veya herhangi bir fiziksel devre sadece voltajlar üzerinde çalışır.

Devrenin nasıl çalıştığına dair aklımızda basitleştirilmiş bir model oluşturduğumuzda, bu gerilimler kafamızdaki ikili 1'lere ve 0'lara dönüştürülür.


2
Evet. Evet, evet, evet ve (oh evet), evet.
JustJeff

1
Ve 0 olması için, voltajın sadece 0'a yakın veya bir eşiğin altında (diyelim <0.8v) olması ve bir eşikten (diyelim> 2.0v) 1 daha büyük olması gerektiğini ekliyorum. Eşikler, cihazı oluşturmak için kullanılan teknolojiye ve durumunda 5v çalışma besleme voltajına göre değişir.
Kenny

1
Hepinize teşekkürler. Yani bir kez bilgisayar çalışırken, ikili makine kodunun etrafında gerçek bir geçiş yok mu? İkili kod, bellenim olarak yüklendiğinde, muhtemelen işlemcinin 'eriştiği', ikiliye karşılık gelen bir voltaj döngüsü ile yanıt veren bellekte saklanır? (Umarım bu mantıklıdır)
Matt

"Yüklenebilmek" için, kod zaten fiziksel bir formda olmalıdır: bir kablodaki voltajlar, bazı kolların konumları (veya klavyedeki tuşlar), her neyse. Bellekte, bitler bir kapasitör üzerinde şarj birikimi olarak depolanır ... bu da kapasitör üzerinde bir voltaj üretir.
Foton

1
Benim bakış açım, bir ekrandaki ya da bir kağıda basılan şekiller, aklımız onları bir ya da sıfır olarak yorumlayana kadar sadece ışık ya da mürekkep lekesidir. Bilmediğiniz bir alfabede (örneğin Kiril veya Tay dili) basılmış bir mektup düşünün. Bir Rus ya da Taylandlı kişi onu yorumlamak ve hangi sesi temsil ettiğini bilmek için gelene kadar sadece bir mürekkep bloğu. Fakat bu felsefi ayrım muhtemelen bizi konudan uzaklaştırıyor.
Photon

11

Gerçekte gerçekleşen bir "dönüşüm" yoktur. İkili 1'ler ve 0'lar, temeldeki gerilimlerin sanal bir temsilidir. Aslında, birçok sistemde düşük voltaj 1 anlamına gelirken yüksek voltaj 0 anlamına gelebilir. Bunun yapılmasının bazı nedenleri vardır, ancak muhtemelen daha sonra buna dalmaya özen gösterirsiniz.

Mantıkta neler olduğunu anlamak için, transistöre bakmak muhtemelen en iyisidir. Bir transistör birçok şey için kullanılabilir, ancak basit bir seviyede bir anahtar olarak kabul edebilirsiniz. Kavramsal olarak bunu duvardaki ışık anahtarınız gibi düşünebilirsiniz, ancak anahtarı fiziksel olarak hareket ettirerek kontrol etmek yerine akımdaki değişiklik tarafından kontrol edilir. Işığı açık olarak 1 ve ışığı kapalı olarak 0 olarak değerlendirebilirsiniz. Artık farklı mantık öğeleri (AND, OR, NOR, vb.) Oluşturmak için bu anahtarları çeşitli kümelerde birleştirmeye başlayabilirsiniz.

Cevabımın çok ayrıntılı olmadığını biliyorum, ama umarım sorunuza cevap verecektir. Daha fazla açıklamaya ihtiyacınız varsa, daha fazla ayrıntı eklemek isteyeceğim, sadece sizi bunaltmak istemiyorum.


Tüm harika cevaplar için teşekkürler !! O zaman, basit bir seviyede, mikroişlemci belirli bir saat hızında çalışır ve her döngüde, bu transistörler aracılığıyla mantık kapıları olarak hareket eden bir talimat seti (ikili değerlerle ilgili voltaj?) Gönderir. Transistörler daha sonra kombine mantığa (ve, veya NAND vb.) Dayalı olarak ilgili bir çıktı üretir mi?
Matt

1
Basitçe ... evet. Burada birçok soyutlama katmanı var. Burada olan her şeyi tek bir cevapta açıklamak zordur, çünkü her şeyi anlayabilmeniz için çok sayıda soyutlama katmanı gerektirir. Her şeyi öğretmek için birkaç üniversite düzeyinde ders alabilir. Bir şeyleri yüzeyde oldukları gibi alabilir ya da çok fazla öğrenmeye hazırlayabilirsiniz.
Kellenjb

Teşekkürler @kellenjb, gerçekten yardımcı oldun. Daha fazlasını öğrenmeye teşvik edilirim!
Matt

10

Kısa cevap değil mi "dönüştürme", voltaj olduğunu şunlardır ikili (veya onun bir temsili). Tıpkı bir kağıda bir sayı yazarsanız, işaretler sayının bir temsilidir ya da bir abakusa güvenir, taş konumları bir sayının temsilidir.

İkili, ondalık (veya sekizli, onaltılık, vb.) Gibi bir sayı sistemidir

Ondalık (taban-10) 10 sembol (0123456789) ikili (taban-2) yalnızca iki (01)

Herhangi bir bazdaki dizi 10, birinci güce sahip taban anlamına gelir, bu nedenle ondalık 10'da 10 ^ 1 = 10 anlamına gelir ve ikili durumda 2 ^ 1 = 2 anlamına gelir. Daha sonra, ondalık olarak 100, 10 ^ 2 = 100 anlamına gelir ve İkili olarak 2 ^ 2 = 4 anlamına gelir.

Onlar basit 0 ve 1 (veya on / off) ile temsil edilebilen ikili seçti elektronik, mümkün ama karmaşık olacağını kullanarak ondalık temsil etmek
sistemleri varyasyonlar üçlü gibi (3 devletler), bu konuda vardı ve tabii ait bilgisayar analog . Transistörlerden önce, mekanik delikli kart makineleri vardı (google çok şey biliyor, zamanınız varsa çok ilginç okumalar)
En erken ikili dijital bilgisayarlar gerçek anahtarlarla (elektronik röleler) yapıldı. Zuse'un Z3 (1941) bir örnek aşağıda verilmektedir:

Zuse Z3

Bundan sonra röleler yerine (hareketli mekanik parça olmadan daha hızlı geçiş yapabilirler) röleler yerine anahtarlama yapan tüpler kullanıldı. ENIAC vakum tüpleri ile yapılan erken bilgisayarın bir örnektir.

Sonra 60'larda transistörler geldi ve IC'lerden hemen sonra. Transistörler, daha önceki makinelerde rölelerin / vanaların işlevini yerine getirir, ancak çok daha küçük, daha hızlı ve daha az güç tüketir.

İkili bilgisayar devrelerinin çalışma şeklinin ardındaki gerçek teori, tıpkı matematikteki sayıları manipüle etme şeklimizi değiştirmediğimiz gibi, algoritmalar gelişir, ancak temel kurallar aynı kalır.

Dolayısıyla, ikili sistemin nasıl çalıştığını biliyorsanız ve 1 veya 0'ı iki farklı voltaj seviyesi (örn. 5V ve 0v) olarak depolayabilen basit bir devreniz ve AND ve OR gibi basit mantıksal fonksiyonları gerçekleştirebilen diğer basit devreler varsa, daha karmaşık şeyler yapmak için hepsini birleştirebilirsiniz.
Yana bütün bu ikili devreler gibi en temel at anahtarları, sen mekanik / röle / vana / transistör / ?. gibi iki devlet arasında değişebilmektedir şeyle aynı şeyi elde edebilirsiniz

Bir sayıyı ikili dosyada saklamak için bir örnek vermek gerekirse, 8 anahtarımız olduğunu (hangi tipin önemli olmadığını) söyleyelim
A 1, 5V ile ve 0, 0V ile temsil edilir.
123 sayısını saklamak istiyoruz.

Ondalık olarak 123 = (1 X 10 ^ 2) + (2 * 10 ^ 1) + (3 x 10 ^ 0)
İkilide 01111011 = (0 x 2 ^ 7) + (1 x 2 ^ 6) + (1 x 2 ^ 5) + (1 x 2 ^ 4) + (1 x 2 ^ 3) + (0 x 2 ^ 2) + (1 x 2 ^ 1) + (1 x 2 ^ 0)
Hepsi 0,1,3,4,5,6 ila 5V anahtarları ve 7 ve 2 ila 0V anahtarları ayarladık. Bu 123 sayısını ikili olarak "saklar". Bu kurulum "kayıt" olarak bilinir.

Daha karmaşık devreler oluşturmak için anahtarların nasıl birleştirildiği hakkında daha fazla bilgi edinmek istiyorsanız, kendinize dijital mantık hakkında iyi bir kitap alın veya google'a sorun.

Bu site başlamak için çok kötü görünmüyor.


0

Çalıştırdığınız program, bir ve sıfırları temsil eden voltajlar kullanıyor. Bu dijital parça hakkındaki her şey, toprağa yakın veya besleme voltajına yakın voltajlardır (örneğin, 5V). 0xFF ile bir işlemci kaydı yüklediğinizde, çipin herhangi bir yerinde 8 ayrı 5Volt sinyal oluşturduğunuzu varsayalım. Daha sonra bu kayıt değerini çıkış bağlantı noktaları ile ilgili bir kontrol kaydında sakladığınızda, işlemcideki 5V sinyallerinin aygıttaki çıkış pimleri daha sonra aygıtın harici pimlerine bağlı diğer 5V sinyallerinin oluşturulmasına neden olur. .


0

Gerilimler sadece ikiliyi temsil etmenin bir yoludur. İkili mantığın farklı transistör konfigürasyonları kullanılarak uygulanmasına izin veren oldukça verimli ve pratik bir dönüşümdür.

İkili mantığın genellikle elektronik olarak uygulanması, CMOS geçidi oluşturmak için tamamlayıcı bir çiftte iki MOS transistörünün kurulduğu CMOS ( http://en.wikipedia.org/wiki/CMOS ) teknolojisini kullanmaktır . Bununla birlikte, TTL ( http://en.wikipedia.org/wiki/Transistor –transistor_logic) veya röleler kullanılarak ikili mantığın başka elektronik uygulamaları da vardır. Ama gerçekten kağıt, kağıt robot keçileri gibi her şeyi kullanabilirsiniz: http://www.robives.com/category/product_tags/logic_goats . Elektronik CMOS uygulaması etkili ve pratik bir uygulama.

Bu basit CMOS kapılarından daha karmaşık mantık kapıları oluşturabilirsiniz: NAND ve NOR, standart kapı DEĞİL, temel olanlardır. Bunlardan ikili mantık, toplayıcı, kayıt dosyası, bellek olan her şeyi oluşturabilirsiniz. Bunlardan tam bir mikroişlemciye kadar bir ALU oluşturabilirsiniz.

Daha fazla bilgi istiyorsanız, dijital mantık hakkında bir kitap okuyabilirsiniz, buna sahibim ve beğendim:

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

Bir CPU'nun nasıl inşa edildiğini anlamanın güzel bir pratik yolu, VHDL ve FPGA kullanarak sadece kendiniz oluşturmaktır. Ucuz FPGA geliştirme panoları alabilirsiniz ve yazılım genellikle ücretsizdir (kısıtlı bir lisans için). Ben oldukça uygun olan digilent tarafından birkaç var:

http://www.digilentinc.com/


-3

Basitçe söylemek gerekirse, belirli bir aralıkta (genellikle 5 ila 12 volt) en önemli bit, bu aralığın ilk yarısında 0 ve diğerinde 1'dir. Bir sonraki en önemli bit, tüm bitler hesaplanana kadar bu yarının ikiye bölünmesiyle hesaplanır.

Bu nedenle, ikili, periyodik olarak ölçülen voltajların artması ve azalmasıyla ilgilidir.

İşte basitleştirilmiş bir örnek. 1V ile 256V arasında, yalancı kodu kullanarak 137'yi (analog) ikili (sayısal) çevirelim:

// 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()));
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.