Mașinuță comandată [621721]

Facultatea de Automatică și Calculatoare, Universitatea „Politehnica” București
Mașinuță comandată
prin telecomandă
Proiect – Proiectare Logică
Student: [anonimizat]: 313CA

Cuprins
1. T ema proiectului
2. Descrierea modului de implementare
3. Explicarea funcționalității automatului
4. Organigrama aparatului
5. Spațiul stărilor
6. T abelul tranzițiilor
7. Diagramele de stare următoare și ecuațiile rezultate
8. Diagramele Karnaugh și ecuațiile rezultate pentru intrările CBB-urilor
9. Diagramele Karnaugh și ecuațiile rezultate pentru ieșiri
10. Implementarea circuitului

1. T ema proiectului
Tema proiectului o reprezintă construirea unei unități de comandă a unei mașinuțe
de jucărie comandată prin intermediul unei telecomenzi. Acest mod în care a fost gândit
ansamblul permite implementarea sa cu succes pe 4 biți, cele 4 variabile de stare fiind Q 3,
Q2, Q1 și Q0.

2. Descrierea modului de implementare
Circuitul a fost implementat astfel:
– pentru intrarea J din CBB JK s-a folosit un MUX 4:1, iar pentru intrarea K un MUX 2:1
– bistabilul la alegere este de tip JK și a fost implementat cu porți
– intrările din CBB RS s-au implementat cu porți
– pentru intrarea CBB-ului de tip D s-a folosit un MUX 8:1
Schema bloc
Variabilele folosite și modurile cum va reacționa mașinuța în funcție de acestea sunt
urmăroarele:
– SENS (sensul deplasării)
– SENS = 0 => Mașinuța va merge înapoi
– SENS = 1 => Mașinuța va merge înainte
– OPȚ_ÎNAINTE (opțiunea la deplasarea înainte)
– OPȚ_ÎNAINTE = 0 => Mașinuța, mergând înainte, își va schimba direcția
– OPȚ_ÎNAINTE = 1 => Mașinuța, mergând înainte, nu îsi va schimba direcția
– OPȚ_ÎNAPOI (opțiunea la deplasarea înapoi)
– OPȚ_ÎNAPOI = 0 => Mașinuța, mergând înapoi, își va schimba direcția
– OPȚ_ÎNAPOI = 1 => Mașinuța, mergând înapoi, nu îsi va schimba direcția
– ACC_ÎNAINTE (opțiunea de a accelera la deplasarea înainte)
– ACC_ÎNAINTE = 0 => Mașinuța, mergând înainte, îsi va menține viteza
– ACC_ÎNAINTE = 1 => Mașinuța, mergând înainte, își va mări viteza
– ACC_ÎNAPOI (opțiunea de a accelera la deplasarea înapoi)
– ACC_ÎNAPOI = 0 => Mașinuța, mergând înapoi, îsi va menține viteza
– ACC_ÎNAPOI = 1 => Mașinuța, mergând înapoi, își va mări viteza
– SD_ÎNAINTE (alegerea schimbării direcției la deplasarea înainte)
– SD_ÎNAINTE = 0 => Mașinuța, mergând înainte, își va schimba direcția spre
stânga
– SD_ÎNAINTE = 1 => Mașinuța, mergând înainte, își va schimba direcția spre
dreapta
– SD_ÎNAPOI (alegerea schimbării direcției la deplasarea înapoi)

– SD_ÎNAPOI = 0 => Mașinuța, mergând înapoi, își va schimba direcția spre
stânga
– SD_ÎNAPOI = 1 => Mașinuța, mergând înapoi, își va schimba direcția spre
dreapta
– FRN_ÎNAINTE (opțiunea de a frâna la deplasarea înainte)
– FRN_ÎNAINTE = 0 => Mașinuța, mergând înainte, își va menține viteza
– FRN_ÎNAINTE = 1 => Mașinuța, mergând înainte, își va micșora viteza
– FRN_ÎNAPOI (opțiunea de a frâna la deplasarea înapoi)
– FRN_ÎNAPOI = 0 => Mașinuța, mergând înapoi, își va menține viteza
– FRN_ÎNAPOI = 1 => Mașinuța, mergând înapoi, își va micșora viteza
– STOP_ÎNAINTE (opțiunea de a opri mașinuța la deplasarea înainte)
– STOP_ÎNAINTE = 0 => Mașinuța își va continua deplasarea
– STOP_ÎNAINTE = 1 => Mașinuța se va opri
– STOP_ÎNAPOI (opțiunea de a opri mașinuța la deplasarea înapoi)
– STOP_ÎNAPOI = 0 => Mașinuța își va continua deplasarea
– STOP_ÎNAPOI= 1 => Mașinuța se va opri
Ieșirile circuitului reprezintă semnalele care se transmit mașinuței. Ieșirile circuitului
și semnalele transmise sunt următoarele:
– SGN_ÎNAINTE – Semnal trimis mașinuței pentru a se deplasa înainte
– SGN_ÎNAPOI – Semnal trimis mașinuței pentru a se deplasa înapoi
– SGN_CONSTANT – Semnal trimis mașinuței pentru a-și menține viteza
– SGN_ACC_ÎNAINTE – Semnal trimis mașinuței pentru a-și mări viteza în timpul
deplasării înainte
– SGN_ACC_ÎNAPOI – Semnal trimis mașinuței pentru a-și mări viteza în timpul
deplasării înapoi
– SGN_STÂNGA – Semnal trimis mașinuței pentru a-și îndrepta roțile spre stânga
– SGN_DREAPTA – Semnal trimis mașinuței pentru a-și îndrepta roțile spre dreapta
– SGN_FRÂNĂ – Semnal trimis mașinuței pentru a-și micșora viteza
– SGN_STOP – Semnal trimis mașinuței pentru a se opri

3. Explicarea funcționalității automatului
Din starea START, mașinuța, în funcție de alegerea utilizatorului, va merge înainte sau
înapoi, la semnalul primit în urma alegerii valorii variabilei SENS. Pentru ambele situații, se
alege în continuare dacă mașinuța își va schimba sau nu direcția de mers. Acest lucru este
generat de variabilele OPȚ_ÎNAINTE și OPȚ_ÎNAPOI.
Dacă a fost aleasă opțiunea ca mașinuța să-și mențină direcția, prin intermediul
variabilelor ACC_ÎNAINTE și ACC_ÎNAPOI utilizatorul alege dacă mașinuța va accelera sau
își va menține viteza.
Dacă utilizatorul a ales ca mașinuța să-și schimbe direcția, acesta va decide în ce
parte să se îndrepte roțile, folosindu-se de variabilele SD_ÎNAINTE și SD_ÎNAPOI.
În cazul în care utilizatorul a ales ca mașinuța să-și mențină viteza, va avea
posibilitatea de a alege ca mașinuța să frâneze sau nu, lucru decis de variabilele
FRN_ÎNAINTE și FRN_ÎNAPOI, iar dacă s-a ales frânarea, mașinuța se va opri sau nu în
urma valorii date variabilelor STOP_ÎNAINTE, respectiv STOP_ÎNAPOI.
Dacă s-a ales ca mașinuța să se oprească, ea va trece în starea STOP, se va opri, apoi
va trece în starea START.

4. Organigrama aparatului

5. Spațiul stărilor
Q3Q2
Q1Q0 00 01 11 10
00START STÂNGA
ÎNAPOIDREAPTA
ÎNAINTEÎNAINTE
01 STOPSCH DIR
ÎNAPOIDREAPTA
ÎNAPOIMENȚINE
ÎNAINTE
11MICȘOREAZĂ
ÎNAPOIÎNAPOIMICȘOREAZĂ
ÎNAINTECONST
ÎNAINTE
10CONST
ÎNAPOIMENȚINE
ÎNAPOISCH DIR
ÎNAINTESTÂNGA
ÎNAINTE
Analizând organigrama și spațiul stărilor se observă că există anumite hazarde,
acestea fiind între stările:
– START – ÎNAPOI
– ÎNAINTE – SCH_DIR_ÎNAINTE
– CONST_ÎNAINTE – ÎNAINTE
– MICȘOREAZĂ_ÎNAINTE – ÎNAINTE
– MICȘOREAZĂ_ÎNAINTE – STOP
– STÂNGA_ÎNAPOI – ÎNAPOI
– DREAPTA_ÎNAPOI – ÎNAPOI
– CONST_ÎNAPOI – ÎNAPOI
Pentru simplificarea următoarelor tabele și diagrame, dar și a implementării finale a
circuitului, variabilele de selecție și ieșirile vor avea următoarele notații:
– SENS -> V 0 – SGN_ÎNAINTE -> E 0
– OPȚ_ÎNAINTE -> V 1 – SGN_ÎNAPOI -> E 1
– OPȚ_ÎNAPOI -> V 2 – SGN_CONSTANT -> E 2
– ACC_ÎNAINTE -> V 3 – SGN_ACC_ÎNAINTE -> E 3
– ACC_ÎNAPOI -> V 4 – SGN_ACC_ÎNAPOI -> E 4
– SD_ÎNAINTE -> V 5 – SGN_STÂNGA -> E 5
– SD_ÎNAPOI -> V 6 – SGN_DREAPTA -> E 6
– FRN_ÎNAINTE -> V 7 – SGN_FRÂNĂ -> E 7
– FRN_ÎNAPOI -> V 8 – SGN_STOP -> E 8
– STOP_ÎNAINTE -> V 9
– STOP_ÎNAPOI -> V 10

6. T abelul tranzițiilor

7. Diagramele de stare următoare și ecuațiile rezultate
Q3Q2
Q1Q0 00 01 11 10
00 V0 0 1 1
01 0 V6 0 1
11 0 0 V9 1
10 0 0 1 1
Q3Q2
Q1Q0 00 01 11 10
00 V0 1 0 V1
01 0 1 1 0
11 V10 1 0 V7
10 V8 V4 V5 0
Q3Q2
Q1Q0 00 01 11 10
00 V0 1 0 V1
01 0 0 1 V3
11 V10 V2 0 V7
10 1 1 V5 0Q3t+1 = Q3Q0 + Q3Q2 +
+ V0Q2Q1Q0 + V9Q3Q1 +
+ V6Q3Q2Q1Q0
Q2t+1 = Q2Q1Q0 + Q3Q2Q1 +
+ Q3Q2Q0 + V0Q3Q1Q0 +
+ V4Q3Q2 + V10Q3Q1Q0 +
V1Q3Q2Q1Q0 + V5Q3Q2Q1Q0+
V7Q3Q2Q1Q0 + V8Q3Q2Q1Q0
Q1t+1 = Q3Q2Q0 + Q3Q1Q0 +
+ Q3Q2Q1Q0 + V0Q3Q0 +
+ V2Q3Q2Q1 + V3Q3Q1Q0 +
+ V5Q2Q1Q0 + V10Q3Q2Q1 +
+ V1Q3Q2Q1Q0+ V7Q3Q2Q1Q0

Q3Q2
Q1Q0 00 01 11 10
00 V0 1 0 V1
01 0 V6 1 V3
11 1 V2 V9 V7
10 1 V4 0 0Q0t+1 = Q3Q2Q1+ Q3Q2Q1Q0
+ Q3Q2Q1Q0 + V0Q3Q1Q0 +
+ V2Q3Q1Q0 + V3Q3Q1Q0 +
+ V4Q3Q1Q0 + V6Q2Q1Q0 +
+ V7Q2Q1Q0 + V9Q3Q2Q0 +
+ V1Q3Q2Q1Q0

8. Diagramele Karnaugh și ecuațiile rezultate pentru intrările CBB-urilor
Q3Q2
Q1Q0 00 01 11 10
00 V0 0 – –
01 0 V6 – –
11 0 0 – –
10 0 0 – –
Q3Q2
Q1Q0 00 01 11 10
00 – – 0 0
01 – – 1 0
11 – – V9 0
10 – – 0 0J3t = V0Q2Q1Q0 +
+ V6Q2Q1Q0
MUX
4:1
Q1 Q0Q2V0
Q2V6
0
000
01
10
11J3
MUX
2:1
Q00
Q2Q1 + Q2V90
1K3K3t = Q2Q1Q0 + V9Q2Q0

Q3Q2
Q1Q0 00 01 11 10
00 V0 – – V1
01 0 – – 0
11 V10 – – V7
10 V8 – – 0
Q3Q2
Q1Q0 00 01 11 10
00 – 0 1 –
01 – 0 0 –
11 – 0 1 –
10 – V4 V5 –
Q3Q2
Q1Q0 00 01 11 10
00 V0 0 – V1
01 – – 0 V3
11 V10 V2 1 V7
10 0 0 V5 1J2t = V0Q3Q1Q0+ V1Q3Q1Q0+
+ V7Q3Q1Q0 + V8Q3Q1Q0 +
+ V10Q3Q1Q0
K2t = Q3Q1Q0 + Q3Q1Q0 +
+ V4Q3Q1Q0 + V5Q3Q1
R1t = Q3Q2Q1Q0 +
+ Q3Q2Q1Q0 + V0Q3Q2Q1 +
+ V1Q3Q1Q0 + V2Q3Q2Q0 +
+ V3Q2Q1Q0 + V5Q3Q2Q1 +
+ V7Q3Q2Q1 + V10Q3Q2Q0

Q3Q2
Q1Q0 00 01 11 10
00 V0 1 0 V1
01 0 0 1 V3
11 V10 V2 0 V7
10 – – V5 0
D0t = Q 0t+1
D0t = Q3Q2Q1 + Q3Q2Q1Q0 + Q3Q2Q1Q0 + V0Q3Q1Q0 + V2Q3Q1Q0 +
+ V3Q3Q1Q0 + V4Q3Q1Q0 + V6Q2Q1Q0 + V7Q2Q1Q0 + V9Q3Q2Q0+
+ V1Q3Q2Q1Q0
D0t = Q3Q2Q1(Q0+Q0) + Q3Q2Q1Q0 + Q3Q2Q1Q0 + V0Q3Q1Q0 +
+ V2Q3Q1Q0 + V3Q3Q1Q0 + V4Q3Q1Q0 + V6Q2Q1Q0(Q3+Q3) +
+ V7Q2Q1Q0(Q3+Q3) + V9Q3Q2Q0(Q1+Q1) + V1Q3Q2Q1Q0
D0t = Q3Q2Q1Q0 + Q3Q2Q1Q0 + Q3Q2Q1Q0 + Q3Q2Q1Q0+ V0Q3Q1Q0+
+ V2Q3Q1Q0 + V3Q3Q1Q0 + V4Q3Q1Q0 + V6Q3Q2Q1Q0 +
+ V6Q3Q2Q1Q0 + V7Q3Q2Q1Q0 + V7Q3Q2Q1Q0 + V9Q3Q2Q1Q0 +
+ V9Q3Q2Q1Q0 + V1Q3Q2Q1Q0
D0t = Q3Q1Q0(Q2+V0) + Q3Q1Q0V6Q2 + Q3Q1Q0(Q2+V4) +
+ Q3Q1Q0(Q2+V2+V7Q2) + Q 3Q1Q0V1Q2 +
+ Q3Q1Q0(Q2+V3+V6Q2+V9Q2) + Q 3Q1Q0(V7Q2+V9Q2)S1t = Q3Q2Q0 + Q3Q2Q1Q0 +
+ V0Q3Q0 + V2Q3Q2Q1 +
+ V3Q3Q1Q0 + V5Q2Q1Q0 +
+ V10Q3Q2Q1 + V1Q3Q2Q1Q0+
+ V7Q3Q2Q1Q0

Urmărind tabelul tranzițiilor se observă că, în cazul intrării din MUX 8:1 cu codul 011,
V7Q2 nu are nicio influență asupra rezultatului, așadar, poate fi eliminat din intrare. Același
lucru este valabil și în cazul lui V 6Q2 și V9Q2 din intrarea 101. Astfel, configurația pentru
MUX 8:1 devine ur mătoarea: MUX
8:1
Q3 Q1 Q0Q2+V0
V6Q2
Q2+V4
Q2+V2+V7Q2
V1Q2
Q2+V3+V6Q2+V9Q2
0
V7Q2+V9Q2000
001
010
011
100
101
110
111D0
MUX
8:1
Q3 Q1 Q0Q2+V0
V6Q2
Q2+V4
Q2+V2
V1Q2
Q2+V3
0
V7Q2+V9Q2000
001
010
011
100
101
110
111D0

9. Diagramele Karnaugh și ecuațiile rezultate pentru ieșiri
Q3Q2
Q1Q0 00 01 11 10
00 0 0 0 1
01 0 0 0 0
11 0 0 0 0
10 0 0 0 0
Q3Q2
Q1Q0 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 0 1 0 0
10 0 0 0 0
Q3Q2
Q1Q0 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 0 0 0 1
10 1 0 0 0E0 = Q3Q2Q1Q0
E1 = Q3Q2Q1Q0
E2 = Q3Q2Q1Q0 +
Q3Q2Q1Q0

Q3Q2
Q1Q0 00 01 11 10
00 0 0 0 0
01 0 0 0 V3
11 0 0 0 0
10 0 0 0 0
Q3Q2
Q1Q0 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 0 0 0 0
10 0 V4 0 0
Q3Q2
Q1Q0 00 01 11 10
00 0 1 0 0
01 0 0 0 0
11 0 0 0 0
10 0 0 0 1E3 = V3Q3Q2Q1Q0
E4 = V4Q3Q2Q1Q0
E5 = Q3Q2Q1Q0 +
Q3Q2Q1Q0

Q3Q2
Q1Q0 00 01 11 10
00 0 0 1 0
01 0 0 1 0
11 0 0 0 0
10 0 0 0 0
Q3Q2
Q1Q0 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 1 0 1 0
10 0 0 0 0
Q3Q2
Q1Q0 00 01 11 10
00 0 0 0 0
01 1 0 0 0
11 0 0 0 0
10 0 0 0 0E6 = Q3Q2Q1
E7 = Q3Q2Q1Q0 +
Q3Q2Q1Q0
E8 = Q3Q2Q1Q0

10. Implementarea circuitului

Similar Posts