Satura rādītājs:

Universāla izslēgšanas slēdža modelis: 10 soļi
Universāla izslēgšanas slēdža modelis: 10 soļi

Video: Universāla izslēgšanas slēdža modelis: 10 soļi

Video: Universāla izslēgšanas slēdža modelis: 10 soļi
Video: 🧨Все неприятности и "сюрпризы" Volkswagen Passat B6. У какой версии меньше проблем? 🤔 2024, Jūlijs
Anonim
Universāla izslēgšanas slēdža modelis
Universāla izslēgšanas slēdža modelis

Vai jums ir apnicis pirms gulētiešanas pārbaudīt, vai jūsu mājā ir izslēgtas visas gaismas? Vai vēlaties, lai jūs varētu izslēgt visas gaismas uzreiz bez satraukuma? Lai taupītu enerģiju un laiku, mēs nolēmām izveidot sistēmu, kas teorētiski varētu slēgt visu māju vienlaikus.

Mēs modelējām šīs koncepcijas pierādījumu, izmantojot pāris gaismas diodes un basys 3 shēmas plati, un izveidojām dizainu, kas deaktivizētu visas gaismas diodes, nospiežot pogu. Šo modeli varētu izmantot arī reālai mājas apgaismojuma sistēmai, lai gan tam būtu nepieciešama sarežģītāka elektroinstalācija un izmaiņas attiecīgajos VHDL failos.

1. darbība: importējiet dotos VHDL failus

Lai mūsu modelis darbotos pareizi, jums būs jālejupielādē programmatūra, kas sniedz Basys 3 tāfeles instrukcijas.

Vispirms jums būs jālejupielādē sintēzes rīks vhdl failu ieviešanai aparatūrā. Ja vēlaties būt pārliecināts, ka viss kods pilnībā atkārtos mūsu dizainu, neveicot nekādas izmaiņas, iesakām izmantot Vivado 2016.2. Pēc Vivado instalēšanas varat izveidot projektu un lejupielādēt mūsu avota failus. Pievienojiet tos kā avotus savam projektam, neaizmirstiet pievienot arī ierobežojumu failu!

Tālāk mēs izskaidrosim, ko dara katrs avota fails. Izlaidiet 2. līdz 6. darbību, ja vēlaties tikai nokļūt ierīces fiziskajā uzbūvē.

2. solis: VHDL augšējā moduļa sadalījums

VHDL augšējā moduļa sadalījums
VHDL augšējā moduļa sadalījums
VHDL augšējā moduļa sadalījums
VHDL augšējā moduļa sadalījums

Projekta augšējais modulis savieno visus atsevišķos komponentu moduļus ar izmantoto aparatūru. Kā redzat, augšpusē ir komponenti killSwitch un buzzerControl, kas definēti kā komponenti.

Apakšējā sadaļā ir norādīts, kā šie moduļi ir savienoti kopā. Mēs esam pieslēguši četras gaismas diodes pie paneļa un saistījuši tās ar killSwitch moduļiem dev0 līdz dev3. Mums ir definēti četri killSwitch moduļi, jo mums ir nepieciešams viens, lai pārvaldītu katras pievienotās gaismas diodes stāvokli. Katrs no šiem moduļiem izmanto pulksteņa un pogas signālu, ko mēs izveidojām augšējā moduļa definīcijā, kā arī to attiecīgos ievades slēdža un izejas ierīces signālus.

Signāla vadības modulis apakšā aktivizē skaņas signālu, kad tiek nospiesta universālā izslēgšanas poga. Kā redzat, skaņas signāla vadības modulis tiek ievadīts kā pulksteņa un pogas signāls. Tiek nodota arī fiziskā skaņas signāla izejas tapa, lai to atbilstoši kontrolētu.

3. solis: VHDL nogalināšanas slēdža moduļa sadalījums

VHDL nogalināšanas slēdža moduļa sadalījums
VHDL nogalināšanas slēdža moduļa sadalījums
VHDL nogalināšanas slēdža moduļa sadalījums
VHDL nogalināšanas slēdža moduļa sadalījums

Nogalināšanas slēdzis ir universāla izslēgšanas poga, un modulis galvenokārt ir saistīts ar tā pievienošanu citiem ķēdes elementiem, lai, nospiežot, visas gaismas izslēgtos.

Kamēr augšējais modulis apstrādā fiziskās aparatūras savienošanu ar programmatūru, killSwitch modulis apstrādā katras ierīces galveno loģiku. Modulis ievada pulksteņa signāla, universālās izslēgšanas pogas un ierīces pārslēgšanas slēdža ievadi. Savukārt tas kontrolē ierīces tapas stāvokli, ar kuru tā ir savienota.

Koda arhitektūras sadaļā mēs redzam, ka atmiņas glabāšanai tā ir atkarīga no moduļa dFlipFlop. Jūs varat arī redzēt, ka esam paziņojuši četrus signālus, kas tiks izmantoti, lai savienotu flip flop, kā arī ieviestu mūsu loģiskos apgalvojumus. Koda uzvedības sadaļā mēs esam izveidojuši dFlipFlop moduļa eksemplāru un piešķīruši saviem I/O signāliem portiem.

No šejienes mūsu loģikas galvenā daļa ir invertState un isDevOn signālu vērtībās. Mūsu loģiskais pamats ierīcei ir šāds: "Ikreiz, kad tiek izmests slēdzis, gaisma apgriezīs tā ieslēgšanas/izslēgšanas stāvokli. Ikreiz, kad tiek nospiesta poga un gaismas diode pašlaik ir ieslēgta, gaismas diode apvērsīs savu stāvokli uz izslēgtu. " No šiem diviem apgalvojumiem mēs varam ekstrapolēt, ka gaismas diodes stāvoklim jābūt slēdža XOR un mūsu atmiņas elementam. Tādā veidā pārmaiņas vai nu apgriež LED. To var redzēt, izmantojot isDevOn signālu. Atmiņas elementa gaismas diodes stāvokli apstrādā mūsu invertState signāls. Ja gaismas diode ir ieslēgta un poga tiek nospiesta, mūsu atmiņas elements atjauninās un mainīs tā stāvokli. Tādējādi tiek mainīts arī gaismas diodes stāvoklis.

4. solis: VHDL Flip Flop moduļa sadalījums

VHDL Flip Flop moduļa sadalījums
VHDL Flip Flop moduļa sadalījums

Viena no mūsu dizaina problēmām bija fakts, ka pēc izslēgšanas slēdža izmantošanas, iespējams, vajadzēs divreiz pagriezt gaismas, lai atgrieztos ieslēgtajā stāvoklī. Tas cilvēkiem laika gaitā radītu diezgan lielas neērtības. Mums izdevās apiet šīs neērtības, iekļaujot mūsu dizainā “Flip Flop” - ķēdes elementu, kas spēj uzglabāt informāciju. Tagad sistēma atceras, vai gaismas slēdzis iepriekš bija ieslēgts, tāpēc, ja tas atkal tiek pagriezts, tas ieslēgsies neatkarīgi no sākotnējās pozīcijas.

VHDL kods izmanto paziņojumus if un else, lai izveidotu Flip Flop kā komponentu mūsu shēmas dizainā. Tas nodrošina, ka tad, kad pulksteņa signāls pāriet no zemas uz augstu stāvokli, kad ir ieslēgta spuldze un kad tiek nospiests izslēgšanas slēdzis, flip flops izeja pārraksta ievadīto. Kad ievade tiek pārrakstīta, flip flop tiek apgriezts otrādi.

5. solis: VHDL pjezo skaņas signāla moduļa sadalījums

VHDL pjezo skaņas signāla moduļa sadalījums
VHDL pjezo skaņas signāla moduļa sadalījums
VHDL pjezo skaņas signāla moduļa sadalījums
VHDL pjezo skaņas signāla moduļa sadalījums

Šis fails ir nedaudz lieks attiecībā uz aparatūras dizainu, taču tas ir būtiski, lai augšējā moduļa un ierobežojumu faili darbotos nevainojami. Ja izvēlaties neizmantot Piezo skaņas signālu, lejupielādējiet šo failu, bet nepievienojiet skaņas signālu pie Basys 3 plates.

Piezo skaņas signāls, nospiežot atspējošanas pogu, atskaņos divu piezīmju signālu, kas sniegs lietotājam skaņas atgriezenisko saiti par pogas nospiešanu. Mēs to īstenojām VHDL uzvedībā, izmantojot virkni if paziņojumu procesa struktūrā. Sākumā izveidojām veselu skaitļa vērtību, lai izsekotu, cik pulksteņa izmaiņas ir notikušas. Tiklīdz process sākas, programma pirmo pusi sekundes pavada (no 0 līdz 50 miljoniem pulksteņa atzīmju), izdodot A piezīmi ar 440 herciem. Tas tiek panākts, apgriežot pjezo skaņas signāla signālu ik pēc 227272 pulksteņa ērču pāra reizēm ar moduļu funkciju. Šis skaitlis ir iegūts, sadalot tāfeles pulksteņa signālu (100 MHz) ar vēlamo frekvenci (400 Hz). Otrās puses sekundes laikā (no 50 līdz 100 miljoniem pulksteņa ērču) tāfele izdod F piezīmi ar 349,2 hercu, izmantojot to pašu metodi kā iepriekš. Pēc vienas sekundes programma vairs nepalielina pulksteņa mainīgo un pārtrauc izvadīt neko no pjezo skaņas signāla. Vēlreiz nospiežot universālās izslēgšanas pogu, šis skaitlis tiek atiestatīts uz 0, atsākot trokšņa ciklu.

6. darbība. VHDL ierobežojumu faila sadalījums

Ierobežojumu fails Vivado norāda, kādas ierīces mēs izmantojam Basys 3 panelī. Tas arī nodrošina Vivado nosaukumus, ko mēs devām ierīcēm mūsu kodā. Vivado ir nepieciešama šī informācija, lai tā zinātu, kā savienot mūsu loģikas elementus ar fizisko aparatūru. Ierobežojumu failā ir iekļauts liels daudzums komentētu (neizmantotu) kodu. Šīs koda rindiņas norāda uz ierīcēm, kas atrodas uz tāfeles un kuras mēs neizmantojam.

Mūsu izmantotajās ierīcēs ir četri ievades slēdži, kas uz tāfeles ir apzīmēti ar V17, V16, W16 un W1. Mēs izmantojam arī universālo izslēgšanas pogu ar apzīmējumu U18. Mūsu četru savienoto gaismas diožu izejas tapas ir JB4, JB10, JC4 un JC10. Mūsu pjezo skaņas signālam mēs izmantojam izejas tapu JA9.

Kā mēs norādījām augšējā moduļa sadalījumā, ja vēlaties plāksnei pievienot papildu gaismas diodes vai citas ierīces, jums jāpalielina sw un dev signālu darbības joma, jāpievieno vairāk killSwitch moduļu un jāsavieno kopā. Pēc tam, izmantojot ierobežojumu failu, šie mainīgo nosaukumi ir jāsaista ar ierīces aparatūru. To var izdarīt, nekomentējot (atkārtoti iespējojot) koda rindas, kas saistītas ar tapām, kuras vēlaties izmantot, un augšējā modulī pievienojot ar to saistītā mainīgā nosaukumu. Pareizo sintaksi tam var nokopēt no mūsu izmantotajām ierīcēm. Lai uzzinātu to tapu nosaukumus, kurus vēlaties izmantot uz tāfeles, skatiet Baasys 3 uzziņu rokasgrāmatu šeit.

7. darbība: pamatu izveide 3

Bāzes veidošana 3
Bāzes veidošana 3
Bāzes veidošana 3
Bāzes veidošana 3

Jums būs jāpievieno gaismas diodes pareizajos Basys I/O portos. Izpildiet pievienotos attēlus, lai noteiktu pareizos portus, jo, pievienojot gaismas diodi nepareizam portam, tas nedeg. Ja esat izvēlējies piestiprināt pjezo skaņas signālu, tas būs jāpievieno arī pareizajiem I/O portiem.

Kad tāfele ir gatava, pievienojiet to datoram, izmantojot USB kabeli.

8. solis: VHDL failu ieviešana Basys 3

VHDL failu ieviešana Basys 3
VHDL failu ieviešana Basys 3
VHDL failu ieviešana Basys 3
VHDL failu ieviešana Basys 3

Tagad, kad tāfele ir gatava un kods ir pabeigts, jūs beidzot varat salikt modeli.

Kad esat izveidojis savu projektu Vivado, jums ir jānoklikšķina uz pogas "Ģenerēt bitu plūsmu", lai apkopotu kodu, pirms tas tiek augšupielādēts uz tāfeles. Ja šajā laikā saņemat kļūdas ziņojumu, jums vēlreiz jāpārbauda, vai jūsu kods precīzi atbilst mūsējam. Kad es saku precīzi, es domāju līdz pat semikoliem vai iekavām, kuras tiek izmantotas. Kad jūsu bitu plūsma ir veiksmīgi uzrakstīta, dodieties uz aparatūras pārvaldnieku Vivado un noklikšķiniet uz pogas "Atvērt mērķi", pēc tam tūlīt pēc tam noklikšķiniet uz "Programmēt ierīci". Jūsu Basys 3 plāksnei tagad vajadzētu būt pilnībā funkcionālai.

9. darbība. Basys 3 dēļa izmantošana

Basys 3 dēļa izmantošana
Basys 3 dēļa izmantošana

Tagad, kad Basys 3 dēlis darbojas un ir ieprogrammēts, lai attēlotu mūsu modeli, jums jāzina, kā to izmantot.

Katrs no četriem slēdžiem, kas atrodas vistālāk labajā pusē, kontrolē vienu no gaismas diodēm, to nospiežot, gaismas diode ieslēgsies vai izslēgsies. Ja gaismas diode neieslēdzas, pārbaudiet, vai esat pievienots pareizajam I/O portam un vai jūsu gaismas diode darbojas.

Ja vēlaties vienlaikus atspējot visas gaismas diodes, jums ir jānospiež centrālā poga piecu pogu komplektā, kas parādīts iepriekš.

10. solis: parādiet sevi

Modelis ir neliels jaunums, ko varat demonstrēt savu draugu un ģimenes priekšā. Teorētiski to var izmantot arī universālā izslēgšanas slēdža ieviešanai jūsu mājas elektriskajā sistēmā, ja gaismas diodes aizstājat ar vadiem, kas ved uz jūsu gaismām. Lai gan tas ir iespējams, mums joprojām būtu jāiesaka to nedarīt. Pastāv iespēja nodarīt nopietnu kaitējumu sev vai jūsu mājām, ja mēģināsit veikt vadu savienošanu bez elektriķa palīdzības.

Ieteicams: