Cuprins:

Calculator binar pe 4 biți: 11 pași (cu imagini)
Calculator binar pe 4 biți: 11 pași (cu imagini)

Video: Calculator binar pe 4 biți: 11 pași (cu imagini)

Video: Calculator binar pe 4 biți: 11 pași (cu imagini)
Video: How exactly does binary code work? - José Américo N L F de Freitas 2024, Noiembrie
Anonim
Calculator binar pe 4 biți
Calculator binar pe 4 biți
Calculator binar pe 4 biți
Calculator binar pe 4 biți
Calculator binar pe 4 biți
Calculator binar pe 4 biți
Calculator binar pe 4 biți
Calculator binar pe 4 biți

Am dezvoltat un interes în modul în care computerele funcționează la un nivel fundamental. Am vrut să înțeleg utilizarea componentelor discrete și a circuitelor necesare pentru a îndeplini sarcini mai complexe. O componentă fundamentală importantă într-un procesor este unitatea logică aritmetică sau ALU care efectuează operații pe numere întregi. Pentru a îndeplini această sarcină, computerele utilizează numere binare și porți logice. Una dintre cele mai simple operații efectuate este adăugarea a două numere împreună, într-un circuit sumator. Acest videoclip de la numberphile face o treabă excelentă de a explica acest concept prin Domino Addition. Matt Parker extinde acest concept de bază și construiește un circuit de computer Domino folosind 10 000 de dominouri. Construirea unui întreg computer personal din dominos este absurdă, dar am vrut totuși să înțeleg utilizarea componentelor discrete pentru a îndeplini această sarcină de adăugare. În videoclipuri, porțile logice au fost create din dominouri, dar pot fi făcute și din componente de bază, și anume tranzistoare și rezistențe. Scopul acestui proiect a fost de a utiliza aceste componente discrete pentru a învăța și a crea propriul meu calculator de sumator de 4 biți.

Obiectivele mele pentru acest proiect au inclus: 1) Aflați cum să creați și să fabricați un PCB personalizat2) Faceți proiectarea ușor de conceptualizat adăugând numere binare 3) Demonstrați diferența de scară între componentele discrete și un circuit integrat care îndeplinește aceeași sarcină

O mare parte din inspirația și înțelegerea acestui proiect au venit de la Simon Inns.

Provizii

Am folosit Fritzing pentru a realiza scheme, a crea și a fabrica PCB-urile

Pasul 1: Teorie

Teorie
Teorie
Teorie
Teorie
Teorie
Teorie
Teorie
Teorie

Numărarea în baza 10 este simplă, deoarece există un număr întreg diferit pentru a reprezenta suma a două numere întregi. Cel mai simplu exemplu:

1 + 1 = 2

Numărarea în baza 2 sau binară utilizează doar 1 și 0. O combinație de 1 și 0 sunt folosite pentru a reprezenta diferiți numere întregi și sumele lor. Un exemplu de numărare în baza 2:

1 + 1 = 0 și duceți 1 la bitul următor

Când adăugați doi biți (A și B) împreună, sunt posibile 4 rezultate diferite cu ieșirile Sum și Carry (Cout). Iată ce se arată în tabel.

Porțile logice preiau intrări și generează o ieșire. Unele dintre cele mai elementare porți logice constau în porțile NOT, AND și OR, care sunt toate utilizate în acest proiect. Acestea sunt alcătuite din diferite combinații și cabluri de tranzistoare și rezistențe. Sunt furnizate schemele fiecărei porți.

Referindu-ne înapoi la tabel, o combinație a acestor porți poate fi utilizată pentru a produce rezultatele Sumului în tabel. Această combinație de logică este, de asemenea, cunoscută ca o poartă exclusivă OR (XOR). Intrarea trebuie să fie exact 1 pentru a rezulta la o ieșire de 1. Dacă ambele intrări sunt 1, ieșirea rezultată este 0. Rezultatele bitului de transport pot fi reprezentate printr-o poartă simplă ȘI. Astfel, folosind atât un XOR cu o poartă ȘI poate reprezenta întregul tabel. Acest lucru este cunoscut sub numele de Half Adder și schema este prezentată mai sus.

Pentru a adăuga numere binare mai mari, bitul de transport trebuie încorporat ca intrare. Acest lucru se realizează prin combinarea a 2 circuite Half Adder pentru a genera un Adder complet. Adunătorii complet pot fi apoi în cascadă împreună pentru a adăuga numere binare mai mari. În proiectul meu am cascadat 4 adăugători complete, ceea ce mi-a permis să am intrări de 4 biți. Schema pentru Adder complet este mai sus.

Simon Inns are o scriere minunată și mai aprofundată despre teorie. Există, de asemenea, câteva PDF-uri care mi s-au părut utile.

Pasul 2: Testarea circuitului

Testarea circuitului
Testarea circuitului
Testarea circuitului
Testarea circuitului

Primul pas după înțelegerea modului în care funcționează porțile logice și teoria din spatele unui Adder complet este de a construi circuitul. Am început prin a aduna toate componentele de care aveam nevoie: rezistențe de 10K și 1K, tranzistoare NPN, Breadboard, Jumperwires. Am urmat împreună cu o imprimare a completatorului complet. Procesul a fost obositor, dar am reușit să obțin un circuit de lucru pentru completatorul complet. Aș lega intrările mari sau mici și aș folosi un multimetru pentru a testa ieșirile. Acum eram gata să traduc panoul de testare și schema într-un PCB.

Pasul 3: Proiectarea PCB-ului Adder complet

Proiectarea PCB-ului Full Adder
Proiectarea PCB-ului Full Adder
Proiectarea PCB-ului Full Adder
Proiectarea PCB-ului Full Adder
Proiectarea PCB-ului Full Adder
Proiectarea PCB-ului Full Adder

Pentru a proiecta PCB am folosit exclusiv Fritzing. Aceasta a fost prima dată când am proiectat un PCB și acest program mi s-a părut cel mai ușor de utilizat și intuitiv cu cea mai mică curbă de învățare. Există alte programe grozave precum EasyEDA și Eagle disponibile pentru a ajuta la proiectarea unui PCB. Cu Fritzing, puteți începe să proiectați pe o placă virtuală sau pe o schemă, apoi să vă mutați pe PCB. Am folosit ambele metode pentru acest proiect. Când sunteți gata să fabricați PCB-ul, este la fel de simplu ca un clic pe un buton pentru a exporta fișierele și a le încărca direct la Aisler, producătorul partener pentru Fritzing.

Am început cu fila schematică pentru a începe procesul. În primul rând, am găsit și am inserat toate componentele în spațiul de lucru. Apoi, am desenat toate urmele dintre componente. M-am asigurat că adăug intrare și masă de 5V la locurile corespunzătoare.

Proiectați PCBI-ul făcut clic pe fila PCB. Când vă mutați direct dintr-o schemă veți obține o mizerie cu toate componentele conectate prin liniile ratsnest pe baza urmelor pe care le-ați făcut în schemă. Primul lucru pe care l-am făcut a fost să redimensionați PCB-ul gri la dimensiunea dorită și am adăugat găuri de montare. Am adăugat și 16 pini pentru intrări și ieșiri. Apoi, am început să aranjez componentele într-un mod logic. Am încercat să grupez componente cu conexiuni apropiate unele de altele, astfel încât să reduc la minim distanța de urmărire. Am făcut un pas suplimentar și am grupat componentele împreună după poarta logică. Unul dintre obiectivele mele a fost să pot vizualiza modul în care funcționează circuitul și să pot urmări „bitul” prin circuit. După aceea, am folosit funcția de rulare automată care trece automat și trage trasurile optimizate între componente. Am fost sceptic că acest proces a finalizat toate urmăririle corecte, așa că am trecut prin verificarea dublă și redesenarea urmăririlor acolo unde trebuia să fie. Din fericire, funcția de rulare automată a făcut o treabă destul de bună și a trebuit să repar doar câteva dintre urmăriri. Autorouterul a făcut, de asemenea, niște unghiuri ciudate cu urmele care nu sunt „cele mai bune practici”, dar am fost în regulă cu asta și tot a funcționat bine. Ultimul lucru pe care l-am făcut a fost să adaug text care să fie tipărit ca serigrafie. M-am asigurat că toate componentele sunt etichetate. De asemenea, am importat imagini personalizate de poartă logică pentru a sublinia gruparea componentelor. Ultima imagine de mai sus arată serigrafia.

Fabricare PCBI a făcut clic pe butonul Fabricare din partea de jos a ecranului. M-a direcționat direct către site-ul web Aisler, unde am putut să îmi creez un cont și să îmi încarc toate fișierele Fritzing. Am lăsat toate setările implicite și am plasat comanda.

Pasul 4: Proiectarea celorlalte PCB-uri

Proiectarea celorlalte PCB-uri
Proiectarea celorlalte PCB-uri
Proiectarea celorlalte PCB-uri
Proiectarea celorlalte PCB-uri
Proiectarea celorlalte PCB-uri
Proiectarea celorlalte PCB-uri

PCB-urile rămase de care aveam nevoie erau placa de interfață de intrare / ieșire și placa pentru IC. Am urmat un proces ca la Pasul 3 pentru aceste plăci. PDF-ul schemelor este postat mai jos. Pentru IC, am făcut toate conexiunile folosind funcția de panou virtual. Am inclus schema pentru a fi completă, dar am reușit să merg direct de la panou la fila PCB, care a fost destul de cool. De asemenea, am adăugat o diagramă de conversie de la baza 10 la baza 2 pe serigrafia de pe placa de interfață I / O înainte de a încărca și comanda în Aisler.

Pasul 5: lipirea componentelor la PCB

Componente de lipit la PCB
Componente de lipit la PCB
Componente de lipit la PCB
Componente de lipit la PCB
Componente de lipit la PCB
Componente de lipit la PCB
Componente de lipit la PCB
Componente de lipit la PCB

Au sosit toate PCB-urile și am fost foarte impresionat de calitate. Nu am avut experiență cu alte produse, dar nu aș ezita să folosesc din nou Aisler.

Următoarea sarcină a fost să lipesc toate componentele, ceea ce a fost un proces dificil, dar abilitățile mele de lipire s-au îmbunătățit foarte mult. Am început cu plăcile complete de adder și am lipit componentele începând cu tranzistoare, apoi rezistențe 1K, apoi rezistențe 10K. Am urmat o metodă similară pentru a lipi restul componentelor pe placa I / O și IC. După ce fiecare placă completă Adder a fost completă, le-am testat cu aceeași metodă ca și placa completă Adder. În mod surprinzător, toate panourile au funcționat corect fără probleme. Aceasta a însemnat că plăcile au fost direcționate corect și că au fost lipite corect. Treci la pasul următor!

Pasul 6: Finalizarea PCB-urilor pentru stivuire

Finisarea PCB-urilor pentru stivuire
Finisarea PCB-urilor pentru stivuire
Finisarea PCB-urilor pentru stivuire
Finisarea PCB-urilor pentru stivuire
Finisarea PCB-urilor pentru stivuire
Finisarea PCB-urilor pentru stivuire

Următoarea sarcină a fost lipirea tuturor pinilor antetului pe fiecare placă. De asemenea, trebuia să adaug fire jumper între pinul antet corect și intrările / ieșirile plăcilor Full Adder (A, B, Cin, V +, GND, Sum, Cout). Acest pas ar putea fi evitat dacă ați proiectat PCB-uri diferite pentru fiecare nivel al circuitului sumator, dar am vrut să minimalizez proiectarea și costurile prin crearea unui singur PCB complet Adder. Ca urmare, conexiunile la aceste intrări / ieșiri necesită fire jumper. Schema furnizată este modul în care am realizat această sarcină și care pini au fost folosiți pentru fiecare nivel al plăcilor Adder complet. Imaginile arată cum am lipit firele jumperului pentru fiecare placă. Am început prin lipirea firelor gratuite la pinii corecți de pe antet. Am lipit apoi antetul la PCB. După ce am lipit pinii antetului cu fire jumper, am lipit capetele libere ale firelor jumper pe cablurile corecte de pe PCB. Imaginea de mai sus arată o apropiere a știfturilor antetului cu firele jumper lipite la ele.

Pasul 7: Alimentarea circuitelor

Alimentarea circuitelor
Alimentarea circuitelor
Alimentarea circuitelor
Alimentarea circuitelor
Alimentarea circuitelor
Alimentarea circuitelor

Am planificat să folosesc o sursă de alimentare de 12V DC baril pentru acest proiect, așa că am proiectat placa de interfață I / O pentru a avea o mufă / conector DC baril pentru intrarea de alimentare. Deoarece foloseam aceeași placă I / O și doream să folosesc o singură sursă de alimentare de care aveam nevoie pentru a regla tensiunea la 5V, deoarece aceasta este intrarea maximă pentru IC-ul SN7483A. Pentru a realiza acest lucru, am avut nevoie de un regulator de 5V și de un comutator care să poată comuta între 12V și 5V. Schema de mai sus arată cum am conectat circuitul de alimentare împreună.

Pasul 8: Imprimarea 3D a bazei

Imprimarea 3D a bazei
Imprimarea 3D a bazei
Imprimarea 3D a bazei
Imprimarea 3D a bazei
Imprimarea 3D a bazei
Imprimarea 3D a bazei

Acum că toate cablurile și lipirea sunt complete, a trebuit să-mi dau seama cum va fi ținut totul împreună. Am optat pentru CADing și imprimarea 3D, un design care să găzduiască și să afișeze toate părțile acestui proiect.

Considerații de proiectare Aveam nevoie de locuri pentru montarea PCB-urilor cu șuruburi și separatoare. Adunatoarele stivuite sunt cele mai atrăgătoare din punct de vedere vizual și am vrut să le am pe cele afișate atunci când nu sunt utilizate, așa că am vrut un loc unde să stochez PCB-ul IC. Aveam nevoie să acomodez circuitul de alimentare cu decupaje pentru întrerupător și mufă / conector DC. În cele din urmă, am vrut un fel de vitrină a carcasei pentru a preveni colectarea prafului în PCB-urile deschise, așa că am nevoie de un loc unde să poată sta carcasa.

Modelare 3D Am folosit Fusion360 pentru a proiecta baza. Am început cu dimensiunile PCB-ului și distanțarea găurilor de montare. După aceea, am folosit o serie de schițe și extrudări pentru a seta înălțimea și dimensiunea bazei cu punctele de montare PCB. Apoi am făcut decupaje pentru carcasă și circuitul de alimentare. Apoi, am făcut o zonă pentru a stoca PCB-ul IC atunci când nu am folosit-o. În cele din urmă, am adăugat câteva detalii de ultimă oră și le-am trimis la Cura, software-ul meu de feliere.

Tipărire Am ales filament PLA negru. Imprimarea a durat puțin peste 6 ore și a ieșit grozav. În mod surprinzător, toate dimensiunile erau corecte și totul părea că s-ar potrivi corect. Imaginea de mai sus arată imprimarea după ce am adăugat separatoarele în găurile de montare. Au fost o potrivire perfectă!

Pasul 9: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare
Asamblare
Asamblare

Introduceți distanțele. Am așezat toate separatoarele în orificiile de montare ale bazei.

Poziționați circuitul de alimentare în bază. Cablasem totul și am tras toate componentele prin orificiul comutatorului. Apoi, am introdus mufa / adaptorul de alimentare în spatele bazei. Am împins regulatorul de 5V în slotul său și, în cele din urmă, comutatorul a putut fi montat în poziție.

Montați placa I / O. Am plasat PCB-ul IC în spațiul său de stocare și am plasat PCB-ul de interfață I / O deasupra. Am înșurubat PCB folosind 4x șuruburi M3 și un driver hexagonal. În cele din urmă, am conectat mufa cilindrică DC la PCB.

Stivați PCB-urile Adder. Am stivuit primul Adder în loc. Am înșurubat partea din spate a PCB-ului în găurile de montare din spate cu 2 standoffs. Am repetat acest proces până când ultimul Adder a fost la locul său și l-am asigurat cu încă 2 șuruburi M3.

Faceți incinta. Am folosit acril de 1/4 pentru incintă. Am măsurat înălțimea finală a proiectului și, cu dimensiunile CAD, am decupat 5 bucăți pentru laturi și partea de sus pentru a face o cutie simplă cu fundul deschis. Am folosit epoxid pentru lipire. în cele din urmă am șlefuit un mic decupaj pe jumătate de cerc pe partea dreaptă pentru a găzdui comutatorul.

Gata de calculat

Pasul 10: Calcul și comparație

Image
Image
Calcul și comparație
Calcul și comparație
Calcul și comparație
Calcul și comparație

Conectați noul calculator și începeți să adăugați! Diagrama de la baza 10 la baza 2 poate fi utilizată pentru a converti rapid între binare și întregi. Prefer să setez intrările apoi să apăs „egal” prin răsucirea comutatorului de alimentare și observarea ieșirii binare de la LED-uri.

Compararea componentelor discrete cu un circuit integrat. Acum, puteți descărca completele Addere și puteți conecta IC-ul SN7483A la placa I / O. (Nu uitați să rotiți comutatorul în direcția opusă pentru a alimenta IC-ul cu 5V în loc de 12V). Puteți efectua aceleași calcule și veți obține aceleași rezultate. Este destul de impresionant să crezi că atât componenta discretă Adder, cât și IC funcționează în același mod doar pe o scară de dimensiuni foarte diferită. Imaginile prezintă aceleași intrări și ieșiri pentru circuite.

Pasul 11: Concluzie

Sper că ți-a plăcut acest proiect și ai învățat la fel de mult ca mine. Este destul de satisfăcător să înveți ceva nou și să-l transformi într-un proiect unic care necesită, de asemenea, învățarea unei noi abilități, cum ar fi proiectarea / fabricarea PCB-urilor. Toate schemele sunt enumerate mai jos. Pentru oricine este interesat, îmi pot lega și fișierele PCB Gerber, astfel încât să vă puteți crea propriul calculator binar pe 4 biți. Fericire fericită!

Recomandat: