Mundarija:

Universal o'chirgich modeli: 10 qadam
Universal o'chirgich modeli: 10 qadam

Video: Universal o'chirgich modeli: 10 qadam

Video: Universal o'chirgich modeli: 10 qadam
Video: Распределенный автоматический выключатель: повышение отказоустойчивости ваших микросервисов 2024, Iyul
Anonim
Universal o'chirgich modeli
Universal o'chirgich modeli

Uyquga ketishdan oldin uyingizdagi barcha chiroqlar o'chganligini tekshirishdan charchadingizmi? Siz har qanday nurni birdaniga shovqinsiz o'chirishni xohlaysizmi? Quvvat va vaqtni tejash uchun biz nazariy jihatdan butun uyni birdaniga yopib qo'yadigan tizim yaratishga qaror qildik.

Biz bu kontseptsiyaning isbotini bir nechta LED va basys 3 elektron platalari yordamida modellashtirdik va tugmani bosish bilan barcha LEDlarni o'chiradigan dizayn yaratdik. Bu modelni uyning haqiqiy yoritish tizimiga ham qo'llash mumkin, garchi u VHDL fayllarini murakkabroq ulashni va o'zgartirishni talab qilsa.

1 -qadam: berilgan VHDL fayllarini import qiling

Bizning modelimiz to'g'ri ishlashi uchun sizga Basys 3 platasiga ko'rsatma beradigan dasturni yuklab olishingiz kerak bo'ladi.

Avval siz vhdl fayllarini qo'shimcha qurilmalarga o'rnatish uchun sintez vositasini yuklab olishingiz kerak bo'ladi. Agar siz barcha kodlar bizning dizaynimizni hech qanday o'zgartirishlarsiz to'liq takrorlashiga ishonch hosil qilishni istasangiz, Vivado 2016.2 dan foydalanishni tavsiya etamiz. Vivadoni o'rnatganingizdan so'ng, siz loyiha yaratishingiz va manba fayllarini yuklab olishingiz mumkin. Ularni loyihangizga manba sifatida qo'shing, cheklovlar faylini qo'shishni unutmang!

Keyin biz har bir manba faylining nima qilishini tushuntiramiz. Agar siz qurilmaning fizik konstruktsiyasiga kirishni xohlasangiz, 2 dan 6 gacha bo'lgan bosqichlarni o'tkazib yuboring.

2 -qadam: VHDL yuqori modulining bo'linishi

VHDL yuqori modulining bo'linishi
VHDL yuqori modulining bo'linishi
VHDL yuqori modulining taqsimlanishi
VHDL yuqori modulining taqsimlanishi

Loyihaning eng yuqori moduli - bu alohida komponent modullarini ishlatilgan apparat bilan bog'laydigan narsa. Ko'rib turganingizdek, bizda killSwitch va buzzerControl modullari tepada komponentlar sifatida belgilangan.

Pastki qismda bu modullar bir -biriga qanday bog'langanligi ko'rsatilgan. Biz to'rtta LEDni taxtaga uladik va ularni dev0 dan dev3gacha bo'lgan killSwitch modullari bilan bog'ladik. Bizda to'rtta killSwitch moduli aniqlangan, chunki har bir ulangan LED holatini boshqarish uchun bizga kerak. Ushbu modullarning har biri yuqori modul ta'rifida biz yaratgan soat va tugmachali signallarni, shuningdek ularning kirish va chiqish moslamalari signallarini ishlatadi.

Pastki qismdagi signalni boshqarish moduli universal o'chirish tugmasi bosilganda signalni ishga tushiradi. Ko'rib turganingizdek, signal signalini boshqarish moduli kirish sifatida soat va tugma signalidan o'tadi. Bundan tashqari, uni boshqarish uchun jismoniy signal signalining chiqish pimi uzatiladi.

3 -qadam: VHDL Kill Switch modulining buzilishi

VHDL Kill Switch modulining buzilishi
VHDL Kill Switch modulining buzilishi
VHDL Kill Switch modulining buzilishi
VHDL Kill Switch modulining buzilishi

Kill Switch - bu universal o'chirish tugmasi, va modul birinchi navbatda uni boshqa elektron elementlarga ulash bilan bog'liq, shuning uchun u bosilganda barcha chiroqlar o'chadi.

Yuqori modul jismoniy uskunalarni dasturiy ta'minotga ulash bilan shug'ullansa, killSwitch moduli har bir qurilmaning asosiy mantig'ini boshqaradi. Modul soat signalini, universal o'chirish tugmachasini va qurilmani almashtirish tugmachasini kiritadi. Buning evaziga u ulangan qurilma pinining holatini nazorat qiladi.

Kodning arxitektura qismida biz xotirani saqlash uchun dFlipFlop moduliga bog'liqligini ko'ramiz. Ko'rinib turibdiki, biz flip -flopni ulash va mantiqiy bayonotlarimizni amalga oshirish uchun ishlatiladigan to'rtta signalni e'lon qildik. Kodning xulq -atvori bo'limida biz dFlipFlop modulini yaratdik va portlarga kirish -chiqish signallarini berdik.

Bu erda bizning mantiqimizning asosiy qismi invertState va isDevOn uchun signal qiymatlarida yotadi. Qurilmaning mantiqiy asosi quyidagicha: "Qachonki kalit o'chirilsa, chiroq uning yoqish/o'chirish holatini o'zgartiradi. Har safar tugma bosilganda va LED yoniq bo'lsa, LED o'z holatini o'chiradi. " Ushbu ikkita bayonotdan biz LEDning holati kalitning XOR va xotira elementi bo'lishi kerakligini ekstrapolyatsiya qilishimiz mumkin. Buni isDevOn signalida ko'rish mumkin. Xotira elementining shartli LEDini invertState signalimiz boshqaradi. Agar LED yoniq bo'lsa va tugma bosilsa, xotira elementimiz yangilanadi va holatini o'zgartiradi. Bu LED holatini o'zgartiradi.

4 -qadam: VHDL Flip Flop modulining buzilishi

VHDL Flip Flop modulining buzilishi
VHDL Flip Flop modulining buzilishi

Bizning dizayndagi muammolardan biri shundaki, o'chirish tugmasi ishlatilgandan so'ng, yoqilgan holatga qaytish uchun avval yonib turgan chiroqlarni ikki marta aylantirish kerak bo'ladi. Vaqt o'tishi bilan bu odamlar uchun juda noqulay bo'ladi. Biz o'z dizaynimizga ma'lumotlarni saqlashga qodir bo'lgan "Flip Flop" elektron elementini qo'shib, bu noqulaylikni chetlab o'tishga muvaffaq bo'ldik. Endi, tizim avval chiroq yoqilganmi yoki yo'qligini eslab qoladi, shuning uchun agar u yana o'girilsa, u dastlabki holatidan qat'i nazar yoqiladi.

VHDL kodi, bizning sxemamizda komponent sifatida Flip Flop yaratish uchun if va else iboralaridan foydalanadi. Bu soat signalining pastdan yuqori holatga o'tishi, lampochka yoqilganda va o'chirish tugmasi bosilganda, flip -flopli chiqish uning kirishini yozib qo'yishini ta'minlaydi. Kirish qayta yozilganda, flip flop teskari bo'ladi.

5 -qadam: VHDL Piezo Buzzer modulining buzilishi

VHDL Piezo Buzzer modulining buzilishi
VHDL Piezo Buzzer modulining buzilishi
VHDL Piezo Buzzer modulining buzilishi
VHDL Piezo Buzzer modulining buzilishi

Uskuna dizayniga kelsak, bu fayl biroz ortiqcha, lekin yuqori modul va cheklovlar fayllari muammosiz ishlashini ta'minlash uchun zarur. Agar siz Piezo buzzeridan foydalanmaslikni tanlasangiz, bu faylni yuklab oling, lekin signalni Basys 3 taxtasiga biriktirmang.

Piezo buzzer, o'chirish tugmachasini bosgandan so'ng, foydalanuvchiga tugma bosilgani to'g'risida eshituvli javob beradigan ikkita nota ohangini ijro etadi. Biz buni VHDL -da jarayon tuzilmasidagi if iboralar seriyasi orqali amalga oshirdik. Biz soatning qancha o'zgarishi kuzatilishi uchun butun sonni yaratish bilan boshladik. Jarayon boshlangandan so'ng, dastur birinchi yarim soniyani sarflaydi (0 dan 50 million soatgacha), 440 gertsli A yozuvini chiqaradi. Bu modulli funktsiyali 227272 soat belgisining har bir soniga piezo -signal signalini teskari aylantirish orqali amalga oshiriladi. Bu raqam taxtaning soat signalini (100 MGts) kerakli chastotaga (400 Gts) bo'lish natijasidir. Ikkinchi yarim soniya davomida (50 dan 100 mln. Soatgacha) taxta F9 yozuvini 349,2 gers tezligida oldingi usul bilan chiqaradi. Bir soniyadan so'ng, dastur soat o'zgaruvchisini ko'paytirmaydi va piezo signalidan chiqishni to'xtatadi. Umumjahon o'chirish tugmachasini yana bosish bu raqamni 0 ga qaytaradi va shovqin davrini qaytadan boshlaydi.

6 -qadam: VHDL cheklovlari faylining bo'linishi

Cheklovlar fayli Vivadoga Basys 3 bortidagi qaysi qurilmalardan foydalanayotganimizni aytadi. Shuningdek, u Vivadoga o'z kodimizdagi qurilmalarga bergan nomlarini beradi. Vivado bu ma'lumotga muhtoj, shuning uchun u bizning mantiqiy elementlarimizni jismoniy qurilmalarga qanday ulashni biladi. Cheklovlar fayli ko'p miqdordagi sharhlangan (ishlatilmagan) kodni o'z ichiga oladi. Bu kod satrlari biz foydalanmayotgan bortdagi qurilmalarga tegishli.

Biz foydalanadigan qurilmalar bortda V17, V16, W16 va W1 deb belgilangan to'rtta kirish kalitini o'z ichiga oladi. Shuningdek, biz U18 deb nomlangan universal o'chirish tugmasidan foydalanmoqdamiz. Bizning to'rtta ulangan LED uchun chiqish pinlari - JB4, JB10, JC4 va JC10. Bizning piezzo signalizatorimiz uchun biz JA9 chiqish pinidan foydalanamiz.

Modulning yuqori qismlarida aytib o'tganimizdek, agar siz qo'shimcha LED yoki boshqa qurilmalarni taxtaga qo'shmoqchi bo'lsangiz, siz sw va dev signallarining ko'lamini oshirishingiz, killSwitch modullarini qo'shishingiz va ularni bir -biriga ulashingiz kerak. Keyinchalik, bu o'zgaruvchilar nomlarini cheklovlar fayli orqali qurilma uskunasiga ulashingiz kerak. Buni ishlatmoqchi bo'lgan pinlar bilan bog'liq kod satrlarini izohlamaslik (qayta yoqish) va yuqori modulga bog'langan o'zgaruvchining nomini qo'shish orqali amalga oshirish mumkin. Buning uchun to'g'ri sintaksisni biz foydalanayotgan qurilmalardan nusxalash mumkin. Taxtada ishlatmoqchi bo'lgan pinlarning nomlarini bilish uchun bu yerdagi Baasys 3 ma'lumotnomasiga murojaat qiling.

7 -qadam: Baza yaratish 3

Baza qurish 3
Baza qurish 3
Baza qurish 3
Baza qurish 3

O'zingizning LED -laringizni Basys -ning to'g'ri kirish -chiqish portlariga ulashingiz kerak bo'ladi 3. To'g'ri portlar nima ekanligini aniqlash uchun taqdim etilgan rasmlarga rioya qiling, chunki LEDni noto'g'ri portga ulasangiz, u yonmaydi. Agar siz piezo -signalni ulashni tanlagan bo'lsangiz, uni to'g'ri kirish -chiqish portlariga ulashingiz kerak bo'ladi.

Kengash tayyor bo'lgach, uni USB kabeli orqali kompyuterga ulang.

8 -qadam: VHDL fayllarini Basys 3 ga kiritish

VHDL fayllarini Basys 3 ga kiritish
VHDL fayllarini Basys 3 ga kiritish
VHDL fayllarini Basys 3 ga kiritish
VHDL fayllarini Basys 3 ga kiritish

Endi sizning taxtangiz tayyor va sizning kodingiz tugagach, siz nihoyat modelni birlashtira olasiz.

Vivadoda o'z loyihangizni o'rnatganingizdan so'ng, kodni taxtaga yuklanishidan oldin kompilyatsiya qilish uchun "Bitstream yaratish" tugmasini bosishingiz kerak. Agar siz hozirda xato xabari olsangiz, sizning kodingiz biznikiga to'liq mos kelishini ikki marta tekshirishingiz kerak. Men aniq aytganda, hatto nuqta -vergul yoki qavs turlarini ham nazarda tutyapman. Bit oqimingiz muvaffaqiyatli yozilgandan so'ng, Vivado -dagi apparat menejeriga o'ting va "Maqsadni ochish" tugmasini bosing, so'ng darhol "Dastur qurilmasi" ni bosing. Sizning Basys 3 taxtangiz endi to'liq ishlashi kerak.

9 -qadam: Basys 3 taxtasidan foydalanish

Basys 3 taxtasidan foydalanish
Basys 3 taxtasidan foydalanish

Endi Basys 3 kengashi ishlayotganda va bizning modelimizni ko'rsatish uchun dasturlashtirilgan bo'lsa, siz undan qanday foydalanishni bilishingiz kerak.

O'ng tomonda joylashgan to'rtta tugmachaning har biri LEDni boshqaradi. Agar LED yoqilmasa, kirish -chiqish portining to'g'ri ulanganligini va sizning LEDingiz birinchi navbatda funktsional ekanligini tekshiring.

Agar siz bir vaqtning o'zida barcha LEDlarni o'chirmoqchi bo'lsangiz, yuqorida ko'rsatilgan beshta tugmachadagi markaziy tugmani bosishingiz kerak.

10 -qadam: O'zingizni ko'rsating

Model sizning do'stlaringiz va oilangiz oldida namoyish etishingiz mumkin bo'lgan kichkina yangilik bo'lib xizmat qiladi. Agar siz LED -larni chirog'ingizga olib boruvchi simlar bilan almashtirsangiz, u nazariy jihatdan uyning elektr tizimiga universal o'chirgichni kiritish uchun ham ishlatilishi mumkin. Iloji bo'lsa ham, biz bunga qarshi maslahat berishimiz kerak edi. Agar siz elektrchining yordamisiz qayta ulanishga harakat qilsangiz, o'zingizga yoki uyingizga jiddiy zarar etkazish ehtimoli bor.

Tavsiya: