Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Układy cyfrowe - projekt na zaliczenie.

lord_dagoth 25 Maj 2009 16:37 7445 11
  • #1 25 Maj 2009 16:37
    lord_dagoth
    Poziom 25  

    Witam, mam na zaliczenie wykonać taki projekt:

    Code:
    Układy Cyfrowe - Projekt 9
    
    Zaprojektować układ, który po wykryciu przedniego zbocza na wejściu START ma wygenerować (w oparciu o wewnętrzny generator o częstotliwości ok. 10kHz) dwa impulsy o przebiegu 101. Początek przebiegu ma pojawić się jednocześnie z początkiem najbliższego okresu generatora wewnętrznego. Przebieg ten w postaci "tekstowej" przedstawiony jest poniżej (są na nim 3 okresy generatora wewnętrznego):
                +---+   +---+
                |   |   |   |
                |   |   |   |
                +   +---+   +
    Póki co, jedyne co udało mi się wykombinować to ten wewnętrzny generator na układzie 555, który wyglądał by mniej więcej tak (z kalkulatorka do 555 wzięte):
    Układy cyfrowe - projekt na zaliczenie.
    A co do wygenerowania tej sekwencji, ma ktoś może jakiś pomysł? Nie chodzi mi o gotowy schemat, tylko jakieś nakierowanie czy cuś, za wszęlką pomoc będę bardzo wdzięczny :D
    Myślałem żeby na wyjściu generatora dać jakieś zliczanie impulsów, ale nie wiem jak się za to zabrać...

    0 11
  • #2 01 Cze 2009 22:05
    lord_dagoth
    Poziom 25  

    Wykombinowałem coś takiego (to znaczy na razie schemat blokowy :P), i mógłby mi ktoś powiedzieć, czy idę w dobrą stronę?
    Układy cyfrowe - projekt na zaliczenie.
    Po pojawieniu się jedynki na wejściu, detektor wykrywa przednie zobcze i puszcza impuls do licznika, który zlicza (i przepuszcza) dwa impulsy, a następnie dalej oczekuje na pojawienie się impulsu z detektora.

    0
  • #3 02 Cze 2009 22:22
    lord_dagoth
    Poziom 25  

    Ehhh… naprawdę nikt nie pomoże?
    Siedzę i kombinuję, nawet nie wiem czy dobrze :P Żebym przypadkiem czegoś nie przekombinował :P No dobra, to może ktoś chociaż sprawdzi co udało mi się wypocić.
    Doszedłem do tego, że będzie to raczej układ synchroniczny, w którym będziemy mogli wyróżnić pięć stanów, ponumerowanych odpowiednio:

    -000: stan, w którym oczekujemy aż pojawi się jedynka na wejściu, nie zważając na to co pojawia się z generatora, na wyjściu mamy ustawione 0.
    -001: stan, w którym pojawiła się jedynka na wejściu, oraz otrzymaliśmy jedynke z generatora, czyli ustawiamy jedynke na wyjściu i oczekujemy, aż pojawi się zero od generatora
    -011: stan, gdy będąc w 000 wykryliśmy jedynke z wejścia, ale z generatora było zero, więc czekamy tutaj aż dostaniemy 1 z generatora, żeby wejść do 001, na wyjściu ciągle pozostaje 0
    -010: tutaj oczekujemy, aż z generatora dostaniemy jedynke, na wyjściu mamy 0
    -110: oczekujemy na 0 z generatora, żeby powrócić do stanu początkowego (000), mamy na wyjściu ustawioną jedynke.

    Prace tego układu demonstruje graf:
    Układy cyfrowe - projekt na zaliczenie.

    Tabela przejść, zrobiona na podstawie tego grafu, chyba się nigdzie nie machnąłem:
    Układy cyfrowe - projekt na zaliczenie.
    Opis:
    q2, q1, q0 – bity stanu
    x1- generator
    x2- wejście
    Y – wyjście z układu

    Teraz zaczynają się schody… bo nie wiem czy dobrzy minimalizuję te funkcje, coś mam prawie że na pewno źle, między innymi wiem że w układach asynchronicznych trzeba wyeliminować hazardy, ale nie do końca wiem jak. Wiem że trzeba skleić ze sobą stykające się bokiem grupy, ale nie wiem czy to się tyczy tylko dwuelementowych, czy też innych. Tak więc, z tej tabelki mam coś takiego:
    Układy cyfrowe - projekt na zaliczenie.

    Po zminimalizowaniu wyszły mi takie funkcje:
    Układy cyfrowe - projekt na zaliczenie.

    Schemat do nich potrafię narysować (na NAND’ach), tylko czy mógłby ktoś sprawdzić, czy dobrze to zrobiłem?

    0
  • Pomocny post
    #4 03 Cze 2009 13:09
    Dar.El
    Poziom 40  

    Witam
    Na wejściu zastosuj przerzutnik D, który będzie zerowany przez licznik do 2. Na razie nie mam czasu, później rozwinę pomysł.

    0
  • #5 03 Cze 2009 13:24
    lord_dagoth
    Poziom 25  

    Hmmm... chyba wolałbym to zrobić jako układ asynchroniczny na samych bramkach (nie licząc generatora). Jeżeli chodzi o tamten schemat blokowy z mojego drugiego postu, to raczej jest nieaktualny, teraz to mniej więcej tak by działało:

    Układy cyfrowe - projekt na zaliczenie.


    Wielkie dzięki za zainteresowanie tematem! Już myślałem że nikt nie odpisze ;)

    0
  • Pomocny post
    #6 03 Cze 2009 19:35
    Dar.El
    Poziom 40  

    Układ ma reagować na zbocze dodatnie i ma wysłać dwa impulsy z generatora, nie obcięte. Trzeba zastosować przerzutniki, w inny sposób wątpię żeby się udało. Przerzutniki D można zrobić na bramkach. Na schemacie prawie wszystko, potrzeba układu, który po dwóch impulsach, zresetuje przerzutniki D, ale tylko na chwilę.
    Chyba nie zrozumiałem końca opisu, impulsy generatora trzeba dzielić przez dwa, ale to jeszcze uprości schemat. Na razie popatrz na ten co jest.

    Układy cyfrowe - projekt na zaliczenie.

    0
  • #7 03 Cze 2009 20:59
    lord_dagoth
    Poziom 25  

    A to co ja podałem, nie zadziała?
    Ma wyróżnione wszystkie potrzebne stany, reaguje na wszystkie możliwe kombinacje stanów wejściowych, tylko chyba nie ma eliminacji hazardów.
    Bo tak szczerze mówiąc, nie za bardzo rozumiem tą idee z przerzutnikami, a musze do tego projektu mieć wszystkie tabelki, grafy, minimalizacje przeprowadzone. Układ nigdy nie będzie zbudowany ani zasymulowany, tylko musze udowodnić że coś takiego zadziała :P

    0
  • Pomocny post
    #8 03 Cze 2009 21:26
    Dar.El
    Poziom 40  

    Nigdy nie bawiłem się w żadne tabelki. Jak chcesz działający schemat, to mogę go narysować, ale jak nie potrafisz zrobić tabelek ze schematu to nic z tego nie będzie. Praktycznie układ powinien być zrobiony z przerzutników D i to z 4 albo z 5, zależy to od sposobu generowania impulsu zerującego te przerzutniki. Do usunięcia hazardu potrzeba użyć elementów RC, których w tabelkach chyba nie będzie.

    0
  • #9 05 Cze 2009 09:27
    lord_dagoth
    Poziom 25  

    Jakbyś mógł narysować go, to byłbym bardzo wdzięczny :)

    0
  • Pomocny post
    #10 05 Cze 2009 15:37
    Paweł Es.
    Pomocny dla użytkowników

    Układ można zrobić na trzech układach scalonych (łącznie z generatorem) :)

    Układy cyfrowe - projekt na zaliczenie.

    Bramki CMOS 4093 (NAND 2 wejściowy) mają wbudowany układ Schmitta co pozwala zrealizować generator na jednej bramce.

    Czyli na bramce U3A mamy generator 10 kHz dostrajany potencjometrem (jest on wymagany ponieważ poziomy przełączania bramki zależą od napięcia zasilania i dla różnych napięć trzeba ustawić inną wartość rezystancji.

    Generator taktuje 3 przerzutniki. U1A i U1B pracują jako pseudopierścieniowy licznik Johnsona liczący następująco:

    Code:
    QA QB
    
    0   0
    1   0
    1   1
    1   0


    Bramki U3B, U3C i U3D dekodują stany 10 i 01 dając 1 na wyjście układu
    pomiędzy tymi stanami jest stan 11, który daje 0 rozdzielające jedynki.

    Licznik Johnsona jest blokowany stanem 1 z przerzutnika U2B (wyjście zanegowane) podanym na asynchroniczne wejścia zerujące przerzutników U1A i U1B.

    Przerzutnik U2A na narastającym zboczu zegara zapisuje stan 0 z wyjścia bramki dekodującej ostatni stan licznika (10) i podaje stan 1 zerujący przerzutnik startowy U2B.

    Układy cyfrowe - projekt na zaliczenie.

    Układ działa następująco:

    W stanie spoczynkowym U2B jest skasowany i blokuje licznik U1A, U1B, który stoi w stanie 00.

    Gdy przyjdzie narastające zbocze na wejście START to U2B jest ustawiany w stan 1 i odblokowuje licznik U1A, U1B

    Licznik zlicza impulsy z generatora na bramce U3A i liczy kolejno 01, 11, 10.
    Układ bramek wyjściowych dekoduje stanu 10 i 01 dając dwa impulsy na wyjście.
    Gdy licznik jest w stanie 01 to następnym zboczu narastającym zegara stan 0 z wyjścia bramki U3B jest wpisywany do przerzutnika U2A.

    Stan wysoki z wyjścia zanegowanego przerzutnika U2A powoduje skasowanie przerzutnika startowego U2B.

    Na następnym zboczu narastającym jedynka z bramki U3B jest zapisywana do przerzutnika U2A i 0 z wyjścia zanegowanego tego przerzutnika odblokowuje przrzutnik startowy U2B i układ jest gotowy do kolejnego wyzwolenia.

    W układzie użyto 3 układów scalonych: 2 x 4013 (podwójny przerzutnik typu D) i 1 x 4093 (cztery dwuwejściowe bramki NAND z układem Schmitta).

    0
  • Pomocny post
    #11 05 Cze 2009 17:00
    Dar.El
    Poziom 40  

    Witam
    Schemat jest prostszy, ale zawiera elementy RC. Nie wiem czy muszę tłumaczyć, chyba jest prosty do zrozumienia. Są 4 przerzutniki D, generator i dwie bramki AND.

    Układy cyfrowe - projekt na zaliczenie.

    0
  • #12 05 Cze 2009 20:41
    lord_dagoth
    Poziom 25  

    Wielkie dzięki za schematy! Już zupełnie straciłem nadzieje że ktoś pomoże :D Zabieram się za przestudiowanie obu, zasymulowanie w multisimie, w razie czego będę pytał :D

    0