Tartalomjegyzék:

Az univerzális kikapcsoló modellje: 10 lépés
Az univerzális kikapcsoló modellje: 10 lépés

Videó: Az univerzális kikapcsoló modellje: 10 lépés

Videó: Az univerzális kikapcsoló modellje: 10 lépés
Videó: A rendszer tulajdonságainak megtekintése Windows 10-ben 2024, Július
Anonim
Univerzális kikapcsoló modellje
Univerzális kikapcsoló modellje

Belefáradt, hogy lefekvés előtt ellenőrizze, hogy a házban lévő összes lámpa ki van kapcsolva? Szeretné, ha minden fényt egyszerre, minden felhajtás nélkül lekapcsolna? Az energia és az idő megtakarítása érdekében úgy döntöttünk, hogy létrehozunk egy rendszert, amely elméletileg egyszerre leállíthat egy egész házat.

Ennek a koncepciónak a bizonyítékát modelleztük néhány LED és egy basys 3 áramköri kártya segítségével, és létrehoztunk egy olyan konstrukciót, amely egy gombnyomással kikapcsolja az összes LED -et. Ez a modell alkalmazható egy tényleges otthoni világítási rendszerre is, bár bonyolultabb kábelezést és az adott VHDL fájlok módosítását igényli.

1. lépés: Importálja az adott VHDL fájlokat

Annak érdekében, hogy modellünk megfelelően működjön, le kell töltenie azt a szoftvert, amely a Basys 3 tábla utasításait tartalmazza.

Először le kell töltenie egy szintézis eszközt a vhdl fájlok hardverbe történő implementálásához. Ha biztos akar lenni abban, hogy az összes kód teljes mértékben megismétli a tervezésünket, anélkül, hogy módosítani kellene, javasoljuk, hogy használja a Vivado 2016.2 verziót. A Vivado telepítése után létrehozhat egy projektet, és letöltheti forrásfájljainkat. Adja hozzá őket forrásként a projekthez, ne felejtse el hozzáadni a kényszerfájlt is!

Ezután elmagyarázzuk, hogy az egyes forrásfájlok mit tesznek. Ha csak az eszköz fizikai felépítését szeretné elérni, hagyja ki a 2–6. Lépést.

2. lépés: A VHDL felső modul lebontása

A VHDL felső modul bontása
A VHDL felső modul bontása
A VHDL felső modul bontása
A VHDL felső modul bontása

A projekt felső modulja összeköti az összes egyes komponens modult a használt hardverrel. Amint láthatja, a killSwitch és a buzzerControl modulok összetevőként vannak meghatározva a tetején.

Az alsó rész meghatározza, hogy ezek a modulok hogyan kapcsolódnak egymáshoz. Négy LED -et kapcsoltunk a táblához, és társítottuk őket a killSwitch dev0 -dev3 moduljaival. Négy killSwitch modulunk van definiálva, mert mindegyik csatlakoztatott LED állapotának kezelésére egy szükséges. Mindegyik modul felhasználja az óra és a gomb jelét, amelyet a felső modul definícióban hoztunk létre, valamint a hozzájuk tartozó bemeneti kapcsoló és kimeneti eszköz jeleit.

Az alsó hangjelző vezérlő modul az univerzális kikapcsolás gomb megnyomásakor aktiválja a zümmögőt. Mint látható, a hangjelző vezérlőmodul bemenetként az óra és a gomb jelét adja át. A fizikai zümmögő kimeneti csap is átadásra kerül, hogy ennek megfelelően vezérelje.

3. lépés: A VHDL Kill Switch modul lebomlása

A VHDL Kill Switch modul bontása
A VHDL Kill Switch modul bontása
A VHDL Kill Switch modul bontása
A VHDL Kill Switch modul bontása

A Kill Switch az univerzális kikapcsoló gomb, és a modul elsősorban a többi áramköri elemhez való csatlakoztatással foglalkozik, hogy megnyomásakor az összes lámpa kialudjon.

Míg a felső modul kezeli a fizikai hardver szoftverhez való csatlakoztatását, a killSwitch modul kezeli az egyes eszközök fő logikáját. A modul bemenetet vesz az órajelhez, az univerzális kikapcsológombhoz és a készülék kapcsolójához. Cserébe vezérli a csatlakoztatott eszközcsap állapotát.

A kód architektúra szakaszában látjuk, hogy a memória tárolására a dFlipFlop modul függősége van. Azt is láthatja, hogy négy jelet jelentettünk be, amelyek a flip flop összekapcsolására és a logikai kijelentéseink megvalósítására szolgálnak. A kód viselkedési szakaszában létrehoztuk a dFlipFlop modul egy példányát, és hozzárendeltük az I/O jeleket a portokhoz.

Innentől kezdve logikánk fő része az invertState és az isDevOn jelértékeiben rejlik. A készülék logikai alapja a következő: "Bármikor, amikor a kapcsolót megdobják, a fény megfordítja be/ki állapotát. Bármikor, amikor megnyomja a gombot, és a LED jelenleg világít, a LED kikapcsolja az állapotát. " Ebből a két állításból extrapolálhatjuk, hogy a LED állapotának a kapcsoló és a memóriaelem XOR -jának kell lennie. Így bármelyik változás megfordítja a LED -et. Ez látható az isDevOn jelben megvalósítva. A memóriaelem bekapcsolt állapotát jelző LED -et az invertState jelünk kezeli. Ha a LED világít, és a gombot megnyomjuk, a memóriaelem frissíti és megfordítja állapotát. Ez megfordítja a LED állapotát is.

4. lépés: A VHDL Flip Flop modul bontása

A VHDL Flip Flop modul bontása
A VHDL Flip Flop modul bontása

Tervezésünk egyik problémája az volt, hogy a kikapcsológomb használata után a korábban bekapcsolt lámpákat kétszer el kell fordítani, hogy visszatérjenek a bekapcsolt helyzetbe. Ez nagy kényelmetlenséget okozna az embereknek az idő múlásával. Sikerült megkerülni ezt a kellemetlenséget azáltal, hogy a tervezésünkbe beépítettünk egy "Flip Flop" -ot, egy információ tárolására alkalmas áramköri elemet. Most a rendszer megjegyzi, hogy a világítás kapcsoló korábban be volt -e kapcsolva, így ha újra elfordítják, akkor a kezdeti helyzetétől függetlenül bekapcsol.

A VHDL kód az if és else utasításokat használja annak érdekében, hogy a Flip Flop -ot komponensként hozza létre az áramkör tervezésében. Biztosítja, hogy amikor az órajel alacsonyról magas állapotra vált, amikor az izzó be van kapcsolva, és amikor a kikapcsoló gombot megnyomják, a flip flop kimenet felülírja a bemenetet. Amikor a bemenet felülírásra kerül, a flip flop megfordul.

5. lépés: A VHDL Piezo Buzzer modul bontása

A VHDL Piezo Buzzer modul bontása
A VHDL Piezo Buzzer modul bontása
A VHDL Piezo Buzzer modul bontása
A VHDL Piezo Buzzer modul bontása

Ez a fájl kissé fölösleges a hardver kialakítását illetően, de elengedhetetlen ahhoz, hogy a felső modul és a korlátozó fájlok zökkenőmentesen működjenek. Ha úgy dönt, hogy nem használja a Piezo hangjelzőt, töltse le ezt a fájlt, de ne csatolja a zümmögőt a Basys 3 táblához.

A Piezo hangjelző a letiltás gomb megnyomására két hangból álló hangot ad le, amely hangos visszajelzést ad a felhasználónak a gomb megnyomásáról. Ezt a viselkedési módot a VHDL -ben egy folyamat -szerkezetű if utasítással hajtottuk végre. Először egy egész érték létrehozásával kezdtük nyomon követni, hogy hány óra váltás történt. Miután a folyamat elkezdődött, a program az első fél másodpercet (0–50 millió órajel) elküldi egy A jegyzet kiadására 440 Hz -en. Ez úgy érhető el, hogy a piezo zümmerező jelet megfordítja a 227272 órajel minden páros többszörösében, modulus funkcióval. Ez a szám az alaplap órajelét (100 MHz) elosztva a kívánt frekvenciával (400 Hz). A második fél másodperc alatt (50-100 millió órajel) a tábla 349,2 hertzes F -hangot ad ki ugyanazzal a módszerrel, mint korábban. Egy másodperc elteltével a program nem növeli tovább az óraváltozót, és leállít valamit a piezo zümmernek. Az univerzális kikapcsolás gomb ismételt megnyomásával ez a szám 0 -ra áll vissza, és a zajciklus újraindul.

6. lépés: A VHDL kényszerfájl lebontása

A kényszerfájl megmondja Vivadónak, hogy milyen eszközöket használunk a Basys 3 táblán. Ezenkívül megadja Vivadónak azokat a neveket, amelyeket a kódunkban szereplő eszközöknek adtunk. Vivadónak szüksége van ezekre az információkra, hogy tudja, hogyan kapcsolhatjuk össze logikai elemeinket a fizikai hardverrel. A kényszerfájl nagy mennyiségű megjegyzést (nem használt) tartalmazó kódot tartalmaz. Ezek a kódsorok a táblán lévő eszközökre vonatkoznak, amelyeket nem használunk.

Az általunk használt eszközök négy bemeneti kapcsolót tartalmaznak a táblán, V17, V16, W16 és W1 felirattal. Az U18 jelzésű univerzális kikapcsoló gombot is használjuk. A négy csatlakoztatott LED kimeneti csapja a JB4, JB10, JC4 és JC10. A piezzo hangjelzőnkhöz JA9 kimeneti csapot használunk.

Amint azt a modulok legfelső bontásában kifejtettük, ha további LED -eket vagy más eszközöket szeretne hozzáadni a táblához, növelnie kell az sw és dev jelek hatókörét, további killSwitch modulokat kell hozzáadnia, és össze kell kötnie őket. Ezután a korlátozó fájlon keresztül össze kell kapcsolnia ezeket a változóneveket az eszköz hardverével. Ezt úgy teheti meg, hogy megszünteti (újra engedélyezi) a használni kívánt csapokhoz tartozó kódsorokat, majd hozzáadja a hozzá tartozó változó nevét a felső modulban. Ennek megfelelő szintaxisa másolható le az általunk használt eszközökről. A táblán használni kívánt csapok nevét a Baasys 3 kézikönyvében találja meg.

7. lépés: Az alapok felépítése 3

A bázisok építése 3
A bázisok építése 3
A bázisok építése 3
A bázisok építése 3

A LED -eket a Basys 3 megfelelő I/O portjába kell csatlakoztatni. Kövesse a mellékelt képeket, hogy megtudja, melyek a megfelelő portok, mert ha egy LED -et rossz porthoz csatlakoztat, az nem fog világítani. Ha úgy döntött, hogy csatlakoztatja a piezo zümmeret, akkor azt is a megfelelő I/O portokhoz kell csatlakoztatnia.

Ha a kártya készen áll, csatlakoztassa a számítógéphez USB -kábellel.

8. lépés: VHDL -fájlok implementálása a Basys -ba 3

VHDL fájlok megvalósítása a Basys 3 -hoz
VHDL fájlok megvalósítása a Basys 3 -hoz
VHDL fájlok megvalósítása a Basys 3 -hoz
VHDL fájlok megvalósítása a Basys 3 -hoz

Most, hogy a tábla készen áll, és a kód elkészült, végre összeállíthatja a modellt.

Miután beállította a projektjét a Vivado -ban, kattintson a "Bitfolyam létrehozása" gombra a kód összeállításához, mielőtt feltöltené a táblára. Ha ekkor hibaüzenetet kap, akkor ismét ellenőriznie kell, hogy a kód pontosan egyezik -e a miénkkel. Amikor pontosan mondom, még a pontosvesszőre vagy a használt zárójelekre is gondolok. Miután sikeresen megírta a bitfolyamot, lépjen a Vivado hardverkezelőjére, és kattintson a "Cél megnyitása" gombra, majd azonnal kattintson az "Eszköz programozása" gombra. A Basys 3 kártyának most teljesen működőképesnek kell lennie.

9. lépés: A Basys 3 tábla használata

A Basys 3 tábla használata
A Basys 3 tábla használata

Most, hogy a Basys 3 tábla működőképes, és úgy lett programozva, hogy képviselje modellünket, tudnia kell, hogyan kell használni.

A jobbra legtávolabbi négy kapcsoló mindegyike vezérli a LED -ek valamelyikét, ha rájuk kattint, a LED be- vagy kikapcsol. Ha a LED nem aktiválódik, ellenőrizze, hogy a megfelelő I/O porthoz van csatlakoztatva, és hogy a LED működőképes.

Ha egyszerre szeretné letiltani az összes LED -et, akkor nyomja meg a középső gombot a fent látható öt gombból.

10. lépés: Mutasd meg magad

A modell ügyes kis újdonságként szolgál, amelyet bemutathat barátai és családja előtt. Elméletileg az univerzális kikapcsoló beépítésére is használható az otthoni elektromos rendszerben, ha a LED -eket a fényekhez vezető vezetékekre cseréli. Bár lehetséges, mégis tanácsot kell tennünk ellene. Súlyos kárt tehet önmagában vagy otthonában, ha villanyszerelő segítsége nélkül próbálja meg újrakötni a kábeleket.

Ajánlott: