Агуулгын хүснэгт:

Бүх нийтийн унтраагчийн загвар: 10 алхам
Бүх нийтийн унтраагчийн загвар: 10 алхам

Видео: Бүх нийтийн унтраагчийн загвар: 10 алхам

Видео: Бүх нийтийн унтраагчийн загвар: 10 алхам
Видео: Бүх бэрхшээлийг арилгахын тулд өдөр бүр дарь эхийн тарни сонс 2024, Долдугаар сарын
Anonim
Бүх нийтийн унтраагчийн загвар
Бүх нийтийн унтраагчийн загвар

Унтахаасаа өмнө гэрийнхээ бүх гэрэл унтарсан эсэхийг шалгахаас залхаж байна уу? Ямар ч үймээн самуунгүйгээр гэрэл бүрийг нэгэн зэрэг унтрааж өгөхийг хүсч байна уу? Эрчим хүч, цаг хэмнэхийн тулд бид онолын хувьд бүхэл бүтэн байшинг нэгэн зэрэг хаах системийг бий болгохоор шийдсэн.

Бид энэхүү үзэл баримтлалын нотолгоог хэд хэдэн LED болон basys 3 хэлхээний самбар ашиглан загварчилж, товчлуур дарахад бүх LED -ийг идэвхгүй болгох загварыг бүтээсэн. Энэхүү загварыг гэрийн гэрэлтүүлгийн бодит системд ашиглах боломжтой боловч VHDL файлд илүү төвөгтэй утас, өөрчлөлт оруулах шаардлагатай болно.

Алхам 1: Өгөгдсөн VHDL файлуудыг импортлох

Манай загварыг зөв ажиллуулахын тулд Basys 3 самбарт зааварчилгаа өгдөг програмыг татаж авах шаардлагатай болно.

Эхлээд та vhdl файлуудыг техник хангамжид хэрэгжүүлэх синтез хэрэгслийг татаж авах хэрэгтэй болно. Хэрэв та бүх код нь бидний дизайныг ямар ч өөрчлөлт оруулахгүйгээр бүрэн хуулбарлах болно гэдэгт итгэлтэй байхыг хүсч байвал Vivado 2016.2 -ийг ашиглахыг зөвлөж байна. Vivado -г суулгасны дараа та төсөл үүсгэж, манай эх файлыг татаж авах боломжтой. Тэдгээрийг төслийнхөө эх сурвалж болгон нэмээрэй, хязгаарлалтын файлыг нэмж оруулахаа бүү мартаарай!

Дараа нь бид эх файл тус бүр юу хийдэг талаар тайлбарлах болно. Хэрэв та төхөөрөмжийн физик бүтцэд нэвтрэхийг хүсч байвал 2-6 -р алхамуудыг алгасаарай.

Алхам 2: VHDL шилдэг модулийг задлах

VHDL шилдэг модулийн задаргаа
VHDL шилдэг модулийн задаргаа
VHDL шилдэг модулийн задаргаа
VHDL шилдэг модулийн задаргаа

Төслийн дээд модуль нь бүх бүрэлдэхүүн хэсгүүдийн модулийг ашигласан тоног төхөөрөмжтэй холбодог. Таны харж байгаагаар бид killSwitch болон buzzerControl модулиудыг дээд хэсэгт бүрэлдэхүүн хэсэг гэж тодорхойлсон болно.

Доод хэсэгт эдгээр модулиуд хоорондоо хэрхэн холбогдсон болохыг зааж өгсөн болно. Бид дөрвөн LED -ийг самбар дээр холбож, killSwitch dev0 -ээс dev3 хүртэлх модулиудтай холбосон. Бид холбогдсон LED бүрийн төлөв байдлыг удирдах нэг модул хэрэгтэй байгаа тул killSwitch гэсэн дөрвөн модулийг тодорхойлсон болно. Эдгээр модуль бүр нь дээд модулийн тодорхойлолтод бидний үүсгэсэн цаг, товчлуурын дохио, тэдгээрийн холбогдох оролт, гаралтын төхөөрөмжийн дохиог ашигладаг.

Доод талд байгаа дуугаралтын хяналтын модуль нь бүх нийтийн унтраах товчлуурыг дарахад дуугаралтыг идэвхжүүлдэг. Таны харж байгаагаар дуут дохионы хяналтын модулийг цаг, товчлуурын дохиог оролт болгон дамжуулдаг. Үүнийг зохих ёсоор хянахын тулд физик дохионы гаралтын зүүг дамжуулдаг.

Алхам 3: VHDL Kill Switch Module -ийн задаргаа

VHDL Kill Switch Module -ийн эвдрэл
VHDL Kill Switch Module -ийн эвдрэл
VHDL Kill Switch Module -ийн эвдрэл
VHDL Kill Switch Module -ийн эвдрэл

Kill Switch бол бүх нийтийн унтраах товчлуур бөгөөд модуль нь голчлон бусад хэлхээний элементүүдтэй холбох асуудал бөгөөд ингэснээр дарахад бүх гэрэл унтрах болно.

Дээд модуль нь физик техник хангамжийг програм хангамжтай холбох ажлыг гүйцэтгэдэг бол killSwitch модуль нь төхөөрөмж бүрийн үндсэн логикийг зохицуулдаг. Модуль нь цагийн дохио, бүх нийтийн унтраах товчлуур, төхөөрөмжийг солих унтраалга зэргийг оруулдаг. Үүний хариуд холбогдсон төхөөрөмжийн зүүний байдлыг хянадаг.

Кодын архитектурын хэсэгт санах ойг хадгалахын тулд dFlipFlop модульд хамааралтай болохыг бид харж байна. Түүнчлэн, бид флопыг холбох, логик мэдэгдлүүдээ хэрэгжүүлэх дөрвөн дохиог зарласан болохыг та харж болно. Кодын зан үйлийн хэсэгт бид dFlipFlop модулийн жишээг үүсгэж, оролт/гаралтын дохиог портуудад өгсөн.

Эндээс бидний логикийн гол хэсэг нь invertState ба isDevOn -ийн дохионы утгуудад оршдог. Төхөөрөмжийн бидний логик үндэс нь дараах байдалтай байна: "Шилжүүлэгчийг асаахад гэрэл нь асаах/унтраах төлөвийг өөрчилдөг. Товчлуурыг дарах, LED асаалттай байх үед LED нь түүний төлөвийг унтраадаг. " Эдгээр хоёр мэдэгдлээс бид LED -ийн төлөв нь унтраалга болон санах ойн элементийн XOR байх ёстой гэдгийг тодорхойлж болно. Үүнийг isDevOn дохиогоор хэрэгжүүлж байгааг харж болно. Санах ойн элементийн LED -ийг манай invertState дохиогоор удирддаг. Хэрэв LED асаалттай байгаа бөгөөд товчлуур дарагдсан бол бидний санах ойн элемент шинэчлэгдэж, төлөв байдлыг нь өөрчлөх болно. Энэ нь LED -ийн төлөв байдлыг өөрчилдөг.

Алхам 4: VHDL Flip Flop модулийн задаргаа

VHDL Flip Flop модулийн задаргаа
VHDL Flip Flop модулийн задаргаа

Манай дизайны нэг асуудал бол унтраагуурыг ашигласны дараа асаалттай байрлал руу буцахын тулд өмнө нь асаалттай байсан гэрлүүдийг хоёр удаа эргүүлэх шаардлагатай болсон явдал байв. Цаг хугацаа өнгөрөх тусам энэ нь хүмүүст ихээхэн төвөг учруулах болно. Мэдээлэл хадгалах чадвартай хэлхээний элемент болох "Flip Flop" -ыг дизайнд оруулах замаар бид энэхүү эвгүй байдлыг тойрч чадсан. Одоо систем нь гэрлийн унтраалга өмнө асаалттай байсан эсэхийг санаж байгаа бөгөөд хэрэв дахин эргүүлбэл анхны байрлалаас үл хамааран асах болно.

VHDL код нь манай хэлхээний дизайны бүрэлдэхүүн хэсэг болгон Flip Flop үүсгэхийн тулд if and else мэдэгдэл ашигладаг. Энэ нь цагийн дохио бага байдлаас өндөр төлөвт шилжих, гэрлийн чийдэн асах, унтраах товчлуурыг дарахад унтраах товчлуур нь түүний оролтыг дарж бичих боломжийг олгодог. Оролтыг дарж бичихэд флип флоп нь урвуу болно.

Алхам 5: VHDL Piezo Buzzer модулийн задаргаа

VHDL Piezo Buzzer модулийн задаргаа
VHDL Piezo Buzzer модулийн задаргаа
VHDL Piezo Buzzer модулийн задаргаа
VHDL Piezo Buzzer модулийн задаргаа

Тоног төхөөрөмжийн дизайны хувьд энэ файл нь арай илүү боловч дээд зэргийн модуль болон хязгаарлалтын файлуудыг жигд ажиллуулахад чухал ач холбогдолтой юм. Хэрэв та Piezo дохио ашиглахгүй байхыг сонгосон бол энэ файлыг татаж аваарай, гэхдээ дуугаруулагчийг Basys 3 самбарт бүү хавсаргаарай.

Piezo дуут дохио нь идэвхгүй болгох товчлуурыг дарсны дараа хоёр тэмдэглэлийн аяыг тоглуулах бөгөөд энэ товчлуурыг дарсан гэсэн сонсголын хариуг хэрэглэгчдэд өгөх болно. Бид үүнийг VHDL -д үйл явцын бүтэц дэх хэд хэдэн if илэрхийллээр дамжуулан хэрэгжүүлсэн. Бид хичнээн цагийн өөрчлөлт хийгдсэнийг хянахын тулд бүхэл тоон утгыг үүсгэж эхлэв. Процесс эхэлмэгц програм нь эхний хагас секундыг зарцуулдаг (0-50 сая цаг), 440 герц давтамжтай A тэмдэглэл гаргадаг. Энэ нь модуль функц бүхий 227272 цагны олон тооны тэмдэгт бүрийг пиезо дуугаргах дохиог эргүүлэх замаар хийгддэг. Энэ тоо нь самбарын цагийн дохиог (100 МГц) хүссэн давтамжид (400 Гц) хуваасны үр дүн юм. Хоёр дахь хагас секундын турш (50-100 сая цаг) нь самбар дээрх F тэмдэглэлийг 349.2 герц давтамжтай гаргадаг. Нэг секундын дараа програм нь цагийн хувьсагчийг нэмэгдүүлэхгүй бөгөөд пьезо дуугаралтаас юу ч гаргахыг зогсооно. Бүх нийтийн унтраах товчлуурыг дахин дарахад энэ дугаарыг 0 болгож, дуу чимээний мөчлөгийг дахин эхлүүлнэ.

Алхам 6: VHDL хязгаарлалтын файлын задаргаа

Хязгаарлалтын файл нь Vivado -д Basys 3 самбар дээр ямар төхөөрөмжүүдийг ашиглаж байгааг хэлдэг. Энэ нь Vivado -д манай кодонд байгаа төхөөрөмжүүдэд өгсөн нэрийг өгдөг. Vivado -д энэ мэдээлэл хэрэгтэй байгаа тул бидний логик элементүүдийг физик тоног төхөөрөмжтэй хэрхэн холбохыг мэддэг. Хязгаарлалтын файлд их хэмжээний тайлбарласан (ашиглагдаагүй) кодыг оруулсан болно. Эдгээр кодын мөрүүд нь бидний ашигладаггүй самбар дээрх төхөөрөмжүүдийг хэлдэг.

Бидний ашиглаж буй төхөөрөмжүүд нь самбар дээр V17, V16, W16, W1 гэсэн шошготой дөрвөн оролтын унтраалга байдаг. Бид U18 гэсэн бүх нийтийн унтраах товчлуурыг ашиглаж байна. Манай холбогдсон дөрвөн LED -ийн гаралтын тээглүүр нь JB4, JB10, JC4, JC10 юм. Манай пьеззо дуугаралтын хувьд бид JA9 гаралтын зүү ашиглаж байна.

Дээд модулийн задаргаа дээр дурдсанчлан хэрэв та самбар дээр нэмэлт LED эсвэл бусад төхөөрөмж нэмж оруулахыг хүсвэл sw болон dev дохионы хамрах хүрээг нэмэгдүүлэх, killSwitch модулиудыг нэмж, тэдгээрийг хооронд нь холбох хэрэгтэй. Дараа нь та эдгээр хувьсагчийн нэрийг төхөөрөмжийн тоног төхөөрөмжид хязгаарлалтын файлаар холбох хэрэгтэй. Үүнийг ашиглахыг хүссэн тээглүүдтэйгээ холбоотой кодын мөрүүдийг тайлбарлахгүй (дахин идэвхжүүлэх), дараа нь холбогдох модульд холбогдох хувьсагчийн нэрийг нэмж оруулах замаар хийж болно. Үүний зохих синтаксийг бидний ашиглаж буй төхөөрөмжүүдээс хуулж болно. Самбар дээр ашиглахыг хүссэн тээглүүрийн нэрийг мэдэхийн тулд энд байгаа Baasys 3 лавлах гарын авлагаас үзнэ үү.

Алхам 7: Базис байгуулах 3

Базис байгуулах 3
Базис байгуулах 3
Базис байгуулах 3
Базис байгуулах 3

Та LED -ээ Basys -ийн зөв оролт/гаралтын портууд руу залгах хэрэгтэй болно 3. Зөв портууд юу болохыг тодорхойлохын тулд өгсөн зургуудыг дагана уу. Хэрэв та пьезо дуугаруулагч хавсаргахаар шийдсэн бол үүнийг зөв оролт/гаралтын порт руу холбох хэрэгтэй болно.

Самбар бэлэн болмогц USB кабелиар компьютертээ залгаарай.

Алхам 8: VHDL файлуудыг Basys дээр хэрэгжүүлэх 3

Basys дээр VHDL файлуудыг хэрэгжүүлэх 3
Basys дээр VHDL файлуудыг хэрэгжүүлэх 3
Basys дээр VHDL файлуудыг хэрэгжүүлэх 3
Basys дээр VHDL файлуудыг хэрэгжүүлэх 3

Таны самбар бэлэн болсон бөгөөд код дууссан тул та загвараа нэгтгэж болно.

Vivado -д төслөө тохируулсны дараа та самбар дээр байршуулахаас өмнө кодыг эмхэтгэхийн тулд "Bitstream үүсгэх" товчийг дарах ёстой. Хэрэв та энэ үед алдааны мессеж хүлээн авбал, таны код манай кодтой яг таарч байгаа эсэхийг дахин шалгах хэрэгтэй. Яг хэлэхдээ би цэг таслал эсвэл ашиглаж байгаа хаалтны төрлийг хүртэл хэлж байгаа юм. Таны bitstream амжилттай бичигдсэний дараа Vivado доторх техник хангамжийн менежер рүү очоод "Зорилтот програмыг нээх" товчийг дараад дараа нь "Program Device" дээр дарна уу. Таны Basys 3 самбар одоо бүрэн ажиллагаатай байх ёстой.

Алхам 9: Basys 3 самбарыг ашиглах

Basys 3 самбарыг ашиглах
Basys 3 самбарыг ашиглах

Basys 3 самбар ажиллаж байгаа бөгөөд манай загварыг төлөөлөх програмчлагдсан тул та үүнийг хэрхэн ашиглахаа мэдэх ёстой.

Хамгийн баруун тийш дөрвөн унтраалга тус бүр нь LED -ийн аль нэгийг удирддаг бөгөөд тэдгээрийг дарах нь LED -ийг асаах эсвэл унтраахад хүргэдэг. Хэрэв LED идэвхжихгүй бол оролтын гаралтын зөв портод холбогдсон эсэхээ шалгаарай.

Хэрэв та бүх LED -ийг нэгэн зэрэг идэвхгүй болгохыг хүсвэл дээр харуулсан таван товчлуурын дунд товчлуурыг дарах ёстой.

Алхам 10: Үзүүлээрэй

Энэхүү загвар нь найз нөхөд, гэр бүлийнхээ өмнө үзүүлэх боломжтой цэвэрхэн шинэлэг зүйл болж өгдөг. Хэрэв та LED -ийг гэрэлд хүргэдэг утсаар сольсон бол үүнийг бүх нийтийн унтраагуурыг гэрийнхээ цахилгаан системд оруулахын тулд онолын хувьд ашиглаж болно. Боломжтой хэдий ч бид үүний эсрэг зөвлөгөө өгөх хэрэгтэй хэвээр байх болно. Цахилгаанчингүйгээр дахин утсаа холбохыг оролдвол өөртөө болон гэрт ноцтой хохирол учруулах магадлал бий.

Зөвлөмж болгож буй: