Jak binarny jest konwertowany na sygnały elektryczne?


16

Zaczynam od elektroniki i już jestem zafascynowany. Grając z Arduino w ciągu ostatnich kilku dni jestem świadomy, że binarne jest reprezentacją różnych napięć - takich jak reprezentowanie + 5V 1i reprezentowanie GND 0.

Próbowałem odkryć, w jaki sposób na poziomie fizycznym mikrokontroler przekształca układ binarny na te napięcia. Nie mogę znaleźć opisu w dowolnym miejscu. Czy ktoś może podzielić się swoją wiedzą lub wskazać mi miejsce / dobrą książkę, która opisuje, jak to działa?


1
Nie pamiętam, który to był, ale spójrz na ten film. Dobra treść.
abdullah kahraman

2
W rzeczywistości mikrokontroler nie konwertuje danych binarnych na zmienne napięcia. Binarne to napięcie. A + 5 V jest oznaczone jako „WYSOKA” lub „1”. A 0 V jest oznaczone jako „LOW” lub „0”. Idź i spójrz na przełączniki elektroniczne, lub bardziej szczegółowo; MOSFET.
abdullah kahraman

NIE pytasz o konwersję „analogowo-cyfrową” lub „cyfrowo-analogową”, prawda?
abdullah kahraman

3
Pomóc może myśleć o tym na odwrót. „Binarny” jest rodzajem symbolicznej jednostki matematycznej, którą my, ludzie, lubimy rozumować. Obwody logiczne mogą reprezentować układ binarny o różnych napięciach. Projektujemy obwody logiczne, aby to, co robią obwody z poziomami napięcia, miało logiczny sens, gdy my ludzie interpretujemy te napięcia jako liczby binarne.
JustJeff

1
@abdullahkahraman Masz rację, nie sądzę, że mówię o DAC, jak mówisz. Dzięki za link do filmu, jest bardzo pouczający. Dzięki temu zapoznałeś mnie również z witryną MIT OCW, która wygląda na świetny zasób do nauki. Dzięki!
Matt

Odpowiedzi:


18

Chcę przekształcić część odpowiedzi KellenJB w nieco inny sposób:

Nie ma konwersji z binarnych 1 i 0 na napięcia takie jak 5 V i 0 V. Mikrokontroler lub jakikolwiek obwód fizyczny po prostu działa na napięcia.

Napięcia te są „zamieniane” na binarne 1 i 0 w naszych głowach, gdy tworzymy w naszym umyśle uproszczony model działania obwodu.


2
Tak. Tak, tak, tak i (o tak), tak.
JustJeff

1
Dodałbym, że aby mieć wartość 0, napięcie musi być zbliżone do 0 lub poniżej progu (powiedzmy <0,8 V) i być o 1 większe niż próg (powiedzmy> 2,0 V). Progi różnią się w zależności od technologii zastosowanej do budowy urządzenia i operacyjnego napięcia zasilania 5 V w jego przypadku.
kenny

1
Dziękuje wszystkim. Więc kiedy komputer jest uruchomiony, nie ma w ogóle żadnego przekazywania binarnego kodu maszynowego? Kod binarny, po załadowaniu jako oprogramowanie układowe, jest przypuszczalnie przechowywany w pamięci, która po „uzyskaniu dostępu” przez procesor odpowiada cyklem napięć odpowiadających binarnemu? (Mam nadzieję, że to ma sens)
Matt

Aby zostać „załadowanym”, kod musi już mieć jakąś fizyczną postać: napięcia na przewodzie, pozycje niektórych dźwigni (lub klawiszy na klawiaturze), cokolwiek. W pamięci bity są przechowywane jako akumulacje ładunku na kondensatorze ... który również generuje napięcie na kondensatorze.
Photon

1
Z mojego punktu widzenia kształty na ekranie lub wydrukowane na kartce papieru to tylko światła lub plamy atramentu, dopóki nasze umysły nie zinterpretują ich jako jeden lub zero. Wyobraź sobie list wydrukowany alfabetem, którego nie znasz (cyrylica lub tajski). To tylko kropla atramentu, dopóki nie przyjdzie osoba rosyjska lub tajska, aby ją zinterpretować i dowiedzieć się, jaki dźwięk reprezentuje. Ale to filozoficzne rozróżnienie prawdopodobnie odsuwa nas od tematu.
Photon

11

Tak naprawdę nie ma miejsca „konwersja”. Binarne 1 i 0 to po prostu wirtualna reprezentacja podstawowych napięć. W rzeczywistości w wielu systemach wysokie napięcie może oznaczać 0, podczas gdy niskie napięcie oznacza 1. Istnieje kilka powodów, dla których tak się dzieje, ale prawdopodobnie bardziej niż o to chodzi.

Aby zrozumieć, co dzieje się w logice, prawdopodobnie najlepiej zajrzeć do tranzystora. Tranzystor może być używany do wielu rzeczy, ale na prostym poziomie można go traktować jak przełącznik. Koncepcyjnie możesz myśleć o tym jak o włączniku światła na ścianie, ale zamiast być kontrolowanym przez fizyczne przesunięcie przełącznika, jest on kontrolowany przez zmianę prądu. Możesz traktować światło włączone jako 1, a światło wyłączone jako 0. Teraz możesz zacząć łączyć te przełączniki w różnych zestawach, aby tworzyć różne elementy logiczne (takie jak AND, OR, NOR itp.).

Wiem, że moja odpowiedź nie jest strasznie szczegółowa, ale mam nadzieję, że odpowie na twoje pytanie. Jeśli potrzebujesz więcej wyjaśnień, chętnie dodam więcej szczegółów, po prostu nie chcę cię przytłaczać.


Dzięki wszystkim za wspaniałe odpowiedzi !! Czy miałbym rację, mówiąc na uproszczeniu, że mikroprocesor pracuje z określoną prędkością zegara i w każdym cyklu wysyła zestaw instrukcji (napięcie odnoszące się do wartości binarnych?) Przez te tranzystory, które działają jak bramki logiczne. A tranzystory wytwarzają następnie odpowiednią moc wyjściową na podstawie połączonej logiki (i, lub NAND itp.)?
Matt

1
Upraszczając ... tak. Jest tu wiele warstw abstrakcji. Trudno jest wyjaśnić wszystko, co tu się dzieje, w jednej odpowiedzi, ponieważ potrzeba wielu warstw abstrakcji, aby wszystko zrozumieć. Nauczenie tego wszystkiego może z łatwością zająć kilka zajęć na poziomie uczelni. Możesz po prostu wziąć rzeczy takie, jakie są na powierzchni, lub przygotować się do dużo nauki.
Kellenjb

Dzięki @kellenjb, byłeś naprawdę pomocny. Zachęcam do nauki!
Matt

10

Krótka odpowiedź brzmi: „nie przelicza się”, napięcia binarne (lub ich reprezentacja). Podobnie jak w przypadku pisania liczby na jakimś papierze, znaki są reprezentacją liczby lub liczą na liczydło, kamienne pozycje są reprezentacją liczby.

Binarny to system liczbowy, podobnie jak dziesiętny (lub ósemkowy, szesnastkowy itp.)

Podczas gdy dziesiętny (podstawa-10) ma 10 symboli (0123456789) binarny (podstawa-2) ma tylko dwa (01)

Sekwencja 10 w dowolnej zasadzie oznacza podstawę do pierwszej potęgi, więc w systemie dziesiętnym 10 oznacza 10 ^ 1 = 10, a w systemie binarnym oznacza 2 ^ 1 = 2. Następnie 100 w systemie dziesiętnym oznacza 10 ^ 2 = 100, a binarnie oznacza 2 ^ 2 = 4. I tak dalej.

Reprezentacja dziesiętna przy użyciu elektroniki byłaby możliwa, ale skomplikowana, dlatego wybrali układ binarny, który może być reprezentowany przez proste 0 i 1 (lub włączone / wyłączone).
Były odmiany na przykład, systemy trójskładnikowe (3 stany) i oczywiście obliczenia analogowe . Przed tranzystorami istniały mechaniczne maszyny do dziurkowania kart (Google wie dużo, niektóre bardzo interesujące lektury, jeśli masz czas)
. Najwcześniejsze binarne komputery cyfrowe były wykonane z prawdziwych przełączników (przekaźników elektronicznych). Zuse Z3 (1941) to na przykład:

Zuse Z3

Następnie zastosowano przekaźniki zamiast przekaźników (mogły przełączać się szybciej bez ruchomych części mechanicznych), które przełączały zamiast przekaźników. ENIAC jest przykładem wczesnego komputera wykonane z rurek próżniowych.

Potem w latach 60. przybyły tranzystory i wkrótce po układach scalonych. Tranzystory pełnią tę samą funkcję, co przekaźniki / zawory we wcześniejszych maszynach, ale były znacznie mniejsze, szybsze i zużywały mniej energii.

Rzeczywista teoria stojąca za podstawowym sposobem działania binarnych obwodów komputerowych wcale się nie zmieniła, podobnie jak nie zmieniliśmy sposobu, w jaki manipulujemy liczbami w matematyce - algorytmy ulegają poprawie, ale podstawowe zasady pozostają takie same.

Jeśli więc wiesz, jak działa układ binarny, i masz prosty obwód, który może przechowywać 1 lub 0 jako dwa różne poziomy napięcia (np. 5 V i 0 V) ​​oraz inne proste obwody, które mogą wykonywać proste funkcje logiczne, takie jak AND i OR, to możesz połączyć je wszystkie, aby robić bardziej złożone rzeczy.
Ponieważ wszyscy te obwody binarne są po prostu najbardziej podstawowymi przełącznikami, możesz osiągnąć to samo za pomocą wszystkiego, co może przełączać się między dwoma stanami, takimi jak mechaniczny / przekaźnik / zawór / tranzystor / ?.

Aby podać przykład przechowywania liczby w systemie binarnym, powiedzmy, że mamy 8 przełączników (jakiego rodzaju nie są ważne)
1 jest reprezentowany przez 5 V, a 0 jest reprezentowany przez 0 V.
Chcemy przechowywać numer 123.

W systemie dziesiętnym jest 123 = (1 X 10 ^ 2) + (2 * 10 ^ 1) + (3 x 10 ^ 0)
W systemie dwójkowym jest 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)
Więc wszystko robimy ustawiamy przełączniki 0,1,3,4,5,6 na 5 V oraz przełączniki 7 i 2 na 0 V. To „przechowuje” liczbę 123 w postaci binarnej. Ta konfiguracja byłaby znana jako „rejestr”.

Jeśli chcesz dowiedzieć się więcej o tym, jak łączą się przełączniki, tworząc bardziej złożone obwody, zdobądź dobrą książkę na temat logiki cyfrowej lub zapytaj google.

Ta strona nie wydaje się taka zła na początek.


0

Uruchomiony program używa napięć reprezentujących jedynki i zera. Wszystko w tej części cyfrowej to napięcie albo blisko ziemi, albo blisko napięcia zasilania (5 V w twoim przykładzie). Po załadowaniu rejestru procesora z 0xFF powiedzmy, że tworzysz 8 oddzielnych sygnałów 5Volt gdzieś w układzie. Gdy następnie zapiszesz tę wartość rejestru w rejestrze sterującym, który jest powiązany z portami wyjściowymi, piny wyjściowe urządzenia rejestrują sygnały 5 V w rejestrze procesorów, a następnie powodują tworzenie innych sygnałów 5 V, które są podłączone do zewnętrznych pinów urządzenia .


0

Napięcia są tylko sposobem reprezentacji układu binarnego. Jest to dość wydajna i praktyczna konwersja, która pozwala na implementację logiki binarnej przy użyciu różnych konfiguracji tranzystorów.

Logika binarna jest zwykle implementowana elektronicznie za pomocą technologii CMOS ( http://en.wikipedia.org/wiki/CMOS ), w której dwa tranzystory MOS są ustawione w komplementarnej parze w celu utworzenia bramki CMOS. Istnieją jednak inne elektroniczne implementacje logiki binarnej, na przykład wykorzystujące TTL ( http://en.wikipedia.org/wiki/Transistor –transistor_logic) lub przekaźniki. Ale przydałoby się naprawdę wszystko, papierowe, papierowe kozy robotów: http://www.robives.com/category/product_tags/logic_goats . Elektroniczna implementacja CMOS okazuje się być wydajna i praktyczna.

Z tych prostych bram CMOS można budować bardziej skomplikowane bramki logiczne: NAND i NOR, standardowe bramy NIE, to te podstawowe. Z nich możesz zbudować wszystko, co jest logiką binarną, sumatorem, plikiem rejestru, pamięcią. Z nich możesz zbudować ALU, aż do kompletnego mikroprocesora.

Jeśli chcesz więcej informacji, możesz przeczytać książkę o logice cyfrowej, tak się składa, że ​​lubię tę:

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

Dobrym praktycznym sposobem na zrozumienie budowy procesora jest zbudowanie go samemu, przy użyciu VHDL i FPGA. Możesz dostać tanie płyty programistyczne FPGA, a oprogramowanie jest zwykle bezpłatne (dla ograniczonej licencji). Mam kilka digilent, które są dość przystępne:

http://www.digilentinc.com/


-3

Krótko mówiąc, w danym zakresie (zwykle od 5 do 12 woltów) najbardziej znaczącym bitem jest 0 w pierwszej połowie tego zakresu i 1 w drugiej. Następny najbardziej znaczący bit jest obliczany przez dalsze dzielenie tej połowy na dwie części i tak dalej, aż wszystkie bity zostaną obliczone.

Dlatego binarne polega na zwiększaniu i zmniejszaniu napięć mierzonych okresowo.

Oto uproszczony przykład. W zakresie od 1 V do 256 V przetłumaczmy (analogowy) 137 na binarny (numeryczny) za pomocą pseudokodu:

// 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()));
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.