Mikrokontroller bilan tanishish:
Mikrokontroller bu protsessorning barcha elementlarini (protsessor, RAM, ROM, (I / U) o'z ichiga olgan chip yoki integral mikrosxemadir. Ushbu qurilmalar 70-yillarning oxirida diskret mantiqqa asoslangan qimmat va murakkab tizimlarga echim topish uchun yaratilgan. Har kuni biz yuzlab dasturlarni ko'rib chiqamiz, bu erda mikrokontroller ishlatiladi, masalan, raqamli elektr pechlar, mashinalar, sanoatdagi PLC va boshqalar. Ushbu ishda biz 2 ta oila yoki marka qurilmalardan foydalanishni o'rganamiz: MICROCHIP kompaniyasining PIC-lari va ATMEL kompaniyasining AVR-lari, bu ham havaskorlar sohasida, ham sohada keng qo'llaniladi. Ushbu 2 ta qurilmalar oilasi RISC turiga kiradi (qisqartirilgan ko'rsatmalar to'plami). Bu shuni anglatadiki, uning ko'rsatmalar to'plami bajariladigan 30 dan 200 gacha buyruqlar tartibida juda kamaydi, ularning ba'zilari bundan mustasno, 1 mashina tsikli tartibida.
Quyidagi fotosuratlarda biz ikkita qurilmani ko'rishimiz mumkin: mos ravishda Microchip PIC2F16A va ATMEL ATmega877P.
Mikrokontrolning asosiy tuzilishi:
Rasmda har qanday mikrokontrolrning asosiy tarkibiy qismlarini ko'rishimiz mumkin. Har bir qurilmaning tarkibiy qismlari odatda ishlab chiqaruvchiga va uning me'morchiligiga qarab o'zgaradi.
Mikrokontroller arxitekturasi:
Arxitektura asosan 2 xil:
Fon Neyman
Garvard
Von Neyman arxitekturasi:
Protsessor bloki yoki protsessor dastur ko'rsatmalari va ma'lumotlarni o'z ichiga olgan bitta xotiraga ulangan. Ko'rsatmalarning uzunligi ma'lumotlar uzunligining birligi bilan cheklangan, shuning uchun mikroprotsessor murakkab ko'rsatmalarni izlash uchun xotiraga bir nechta kirishni amalga oshirishi kerak.
Ishlash tezligi tiqilib qolish effekti bilan cheklangan, bu ma'lumotlar va ko'rsatmalar uchun bitta avtobus degan ma'noni anglatadi, bu kirish vaqtining ikkala vaqtini takrorlanishiga yo'l qo'ymaydi.
Garvard me'morchiligi:
Ushbu turdagi arxitekturada ma'lumotlar xotirasi dastur xotirasidan ajralib turadi, shuning uchun ular CPU bilan har xil kenglikda bo'lishi mumkin bo'lgan mutlaqo mustaqil alohida avtobuslar orqali ulanadi. Shu sababli, ko'rsatmalar hajmi ma'lumotlar hajmi bilan bog'liq emas va shuning uchun har qanday ko'rsatma dastur xotirasida bitta pozitsiyani egallashi uchun optimallashtirilishi mumkin. Bu yuqori tezlikka va dasturning qisqa muddatiga erishadi.
Yana bir xususiyat shundaki, ko'rsatmalarga kirish vaqti ma'lumotlar bilan bir-biriga to'g'ri kelishi va yuqori ish tezligiga erishishi mumkin.
Mikrochip firmasidagi mikrokontrollerlar ham, ATMEL firmasidagi mikrokontrollerlar ham Garvard me'morchiligidir.
PICning asosiy xususiyatlari:
Ko'rsatmalar soni kamayadi.
Faqatgina standart W foydalanish akkumulyatori.
RAMdagi barcha pozitsiyalar matematik operatsiyalar va boshqa funktsiyalar uchun manba va / yoki maqsad registrlari sifatida ishlaydi.
Funktsiyani qaytarish bo'yicha ko'rsatmalarni saqlash uchun apparat to'plami.
Ma'lumotlar maydoni CPU, portlar va periferik registrlar bilan bog'liq.
Ko'rsatmalar 1 ta mashina siklida (4 ta tsikl) bajariladi.
AVR asosiy xususiyatlari:
Tuzilgan C kodini samarali bajarish.
X, Y, Z ko'rsatkichlarini boshqarish uchun registrlar.
Ko'p akkumulyator yadrosi.
Ba'zi sakrash ko'rsatmalaridan tashqari barcha ko'rsatmalar 1 yoki 1 soat tsikllariga teng bo'lgan 2 mashina tsiklini egallaydi.
GNU doirasida bepul ishlab chiqish vositalari.
IN - CIRCUIT dasturlashiga ruxsat beradi.
Biz allaqachon PIC va AVR mikrokontrolrlarini aniqlaydigan asosiy xususiyatlarni ko'rdik. Keyingi biz ular bilan ishlash uchun qanday vositalar kerakligini ko'rib chiqamiz.
Oldingi bobda biz uning asosiy xarakteristikalari - bu mikrokontroller hamda arxitekturasini tezkor tekshirish ekanligini ko'rdik.
Ushbu kurs davomida biz turli xil qurilmalarni foydalanuvchi belgilagan vazifani bajarishi uchun qanday qilib dasturlashni ko'rib chiqamiz, shuning uchun biz o'z dasturlarimizni ishlab chiqadigan tilga muhtojmiz. Yoki PIC yoki AVR uchun ham pullik va ham bepul tarqatiladigan ko'plab kompilyatorlar mavjud.
Shu maqsadda biz C tilini tanladik, chunki uning katta afzalliklari bor, ular orasida quyidagilarni ta'kidlashimiz mumkin:
Juda oz manba kodlari o'zgarishi bilan turli xil kompilyatorlar o'rtasida ajoyib portativlik.
Dasturlash paytida bu juda katta moslashuvchanlikni taklif etadi, chunki foydalanuvchi tilning tuzilmalariga asoslanib o'ziga xos uslubni olishi mumkin.
Ko'rsatkichlar yordamida past darajadagi xotiraga kirish.
Foydalanuvchi tomonidan aniqlangan ma'lumotlar turlari bilan tuzilmalar yarating.
Internetda ko'plab misollar va ma'lumotlar.
Mikrokontroller yordamida dasturlarni ishlab chiqishda ishlatiladigan ko'plab vositalarni Internetda tezkor qidiruv orqali topish mumkin. O'quvchi uchun ushbu qidiruv vazifasini engillashtirish uchun biz quyida eng ko'p ishlatilganlarni sanab o'tamiz ...
Kerakli dasturiy vositalar:
Ikkala PIC va AVR mikrokontrollageri uchun biz pullik yoki bepul tarqatiladigan ko'plab vositalardan foydalanamiz. Kursimizni rivojlantirish uchun bizga asosan 3 kerak bo'ladi:
S kompilyatori
IDEni rivojlantirish.
Nosozliklarni tuzatuvchi / simulyator.
Dasturchi / Yozuvchi.
S kompilyatorlari:
Avval aytib o'tganimizdek, AVR oilaviy qurilmalari kompilyatsiya qilingan C kodini samarali bajarish g'oyasi bilan yaratilgan.
AVRGCC hozirda biz topa oladigan eng yaxshi bepul tarqatish kompilyatorlaridan biridir; U C standartining barcha xususiyatlariga ega (qarang ANSI C).
PIC mikrokontrollerlarida ko'plab kompilyatorlar mavjud, ammo havaskorlar tomonidan eng ko'p foydalaniladigan CCS dan C; ushbu dasturiy ta'minotning kamchiligi shundaki, u to'lanadi. Biz mavjud bo'lganlarning ko'pchiligidan boshqa har qanday kompilyatorni tanlashimiz mumkin edi, lekin u eng yaxshi aloqaga ega (qo'llab-quvvatlanadigan qurilmalar soni / narx / funksionallik).
IDEni ishlab chiqish:
Ham ATMEL, ham MICROCHIP oilaviy qurilmalari uchun bir nechta ishlab chiqish platformalari mavjud.
ATMEL uchun bizda AVR - Studio 4 mavjud.
Ushbu dastur AVRGCC bilan birgalikda foydalanishi mumkin yoki bo'lmasligi mumkin, bu foydalanuvchiga o'z loyihalariga buyurtma berishiga imkon beradi, shuningdek ishlab chiqilgan dasturni mikrokontrollerda tuzatish, simulyatsiya qilish va yozib olish imkoniyatini beradi.
Ushbu tizimning kichik kamchiliklari - bu C kodiga kiritilgan assambleya tilini birlashtirish; WINAVR (AVRGCC) da operatsion dasturda yoki assemblerda yozilgan kod qismlarini asosiy kodga qo'shilgan tashqi funktsiyalar deb e'lon qilish orqali yordam beradi.
PIC mikrokontrollerlar oilasi uchun MPLAB mavjud. Ushbu dasturlash platformasi, xuddi AVR Studio singari, loyihalarimizni tartibga solish, shuningdek simulyatsiya qilish, xatolarni tuzatish va ishlab chiqilayotgan dasturni qurilmaga yozib olish imkoniyatini beradi.
Uskuna vositalari:
Biz o'z dasturlarimizni yozayotganimizda, kompilyatorlar Windows yoki Linux-da bajariladigan kodga o'xshash bajariladigan kodni yaratadilar. Uning ".hex" kengaytmasi mavjud (".hex" formatiga qarang).
Yozilgan dasturni qurilmaga kiritish uchun bizga ushbu qurilma xotirasini yozuvchi dastur bilan bog'lashga imkon beradigan tashqi vosita kerak, odatda "burner" deb nomlanadi.
Bozorda ushbu funktsiyani bajaradigan ko'plab vositalar mavjud, ammo havaskor va professional ishlab chiquvchilar (ularning xususiyatlari tufayli) eng ko'p foydalanadiganlar quyidagilar:
PICKIT 2 (MICROCHIP kompaniyasi).
AVR-ISPMK 2 (ATMEL kompaniyasi).
Illyustratsiya qilish uchun men sizga ikkala vositaning fotosuratini beraman ...
2 -chi tanlov:
MPLAB platformasi bilan birgalikda MICROCHIP kompaniyasi tomonidan yaratilgan ushbu dasturchi PIC mikrokontrolrlarini dasturlash uchun foydali bo'ladi. Tarmoqda uning ko'plab klonlari mavjud, shuning uchun xarajatlarni tejash uchun keyinchalik qanday qilib buni qilishni ko'rsataman.
E'tibor bering: yaqinda o'tkazilgan tekshiruv shuni ko'rsatadiki, ushbu vosita PIC va AVR mikrokontrollerlarini yozish uchun dasturchining apparati va proshivkasiga hech qanday o'zgartirish kiritmasdan foydalaniladi. Faqatgina kichik dastur yordamida biz ushbu funksiyani qo'sha olamiz, u keyinchalik ishlab chiqiladi.
AVR-ISPMK 2:
ATMEL kompaniyasi tomonidan AVR Studio to'plami bilan birgalikda ishlab chiqarilgan ushbu qurilma AVR mikrokontrolrlarini yozib olish uchun ishlatiladi. PICKIT 2-da bo'lgani kabi, tarmoqda ham ko'plab klonlar mavjud, shuning uchun keyinchalik sizga qanday qilib buni qilishni o'rgataman ...
Keyingi uchun biz yuqorida bayon qilingan vositalardan foydalanishni o'rganamiz. Umid qilamanki bu xizmat qildi.
Ilgari biz PIC va AVR mikrokontrolrlari bilan dasturlarni ishlab chiqish uchun zarur bo'lgan vositalarni ko'rdik. Ushbu bo'limda ikkala turdagi qurilmalar qanday dasturlashtirilganligini ko'rib chiqamiz.
PIC mikrokontrolrini dasturlash:
PIC mikrokontrolrlari ICSP (In circuit serial programing) deb nomlangan tizim tomonidan yoziladi, uning yordamida dastur xotirasi, ma'lumotlar xotirasi va konfiguratsiya so'zini yozib olish mumkin.
Ushbu tizim yordamida biz uchta asosiy afzalliklarga ega bo'lamiz:
Ishlab chiqish vaqtini qisqartiramiz, chunki siz qurilmani mavjud bo'lgan anakartdan olib tashlashingiz shart emas, faqat dasturchini uning ICSP rozetkasiga ulashingiz kerak.
Dasturlash uchun o'rnini o'zgartirishga hojat qoldirmasdan mikrokontroller pinlarining mexanik charchoqlarini kamaytiramiz.
Xatolarni tuzatish va dastur dasturlarini to'g'ridan-to'g'ri dastur kartasida tuzishimiz mumkin.
Yozib olish tartibi:
Yozib olish uchun PIC yozuv rejimida bo'lishi kerak. Amaldagi PIC-ga qarab, ushbu rejimga kirishning bir necha yo'li mavjud. Ulardan biri MCLR pimi orqali 12 voltli kuchlanishni kiritishdir. (Boshqa usul past kuchlanish yoki LVP deb nomlanadi). Ushbu usuldan foydalanib, PB5F yoki PIC3F bo'lishiga qarab RB16 / PGM oyog'i orqali 18 voltni kiritish kerak (har bir qurilmalar oilasi uchun dasturiy qo'llanmani ko'ring).
Quyidagi rasmda PIC dasturlash rejimiga o'tish uchun sxemaning misoli ko'rsatilgan. Qayta tiklash tugmasi har safar chiqarilganda biz yozib olish xizmatlaridan foydalanishimiz mumkin. Tugma bosilgandan so'ng, qurilma barcha ichki registrlardan boshlab asl holatini tiklash holatiga o'tadi.
Arxitektura:
Dasturlash rejimida bo'lganingizda, siz ICSP protokoli orqali bir qator xizmatlardan foydalanishingiz mumkin. Ushbu protokol ikki daraja yoki qatlamda tasvirlangan:
Jismoniy qatlam.
Buyruq qatlami.
Jismoniy darajada, bitlarning qanday uzatilishi (vaqtlar, sinxronizatsiya vaqtlari va boshqalar) va buyruqlar darajasida, turli xil xizmatlarga kirish uchun qaysi ramkalar yuborilishi kerakligi ko'rsatilgan.
Jismoniy darajasi:
Muloqotni amalga oshirish uchun sinxron ketma-ket protokol ishlatiladi. B portidan ikkita sim kerak:
Ma'lumot pimi (DATA O PGD) RB7 (PIC16F / 18F). Ushbu pin ikki tomonlama.
Soat pimi (CKL OR PGC) RB6 (PIC16F / 18F).
Rasmda biz PIC16F-da ishlatiladigan pinlarni ko'ramiz.
Operatsion tafsilotlari quyidagicha:
Avvaliga eng kam miqdordagi bitlar yuboriladi.
Ma'lumotlar soatning tushgan qismida olinadi.
Minimal soat davri 200 MGts chastotasi uchun 5 soat.
O'rnatish vaqti (ma'lumotlar tushgan chekka kelguniga qadar bo'lishi kerak bo'lgan vaqt) va ushlab turish vaqti (qulab tushgandan keyin bo'lishi kerak) 100 soat.
PIC-ga yuborilgan buyruqlar 6 bit va ma'lumotlar 14 bitli chiziqli mikrokontroller ishlatilganda 16 bit va 16F chiziqli qurilmalardan foydalanganda 18 bit. Ma'lumotlar ikki tomonlama bo'lib, ularni PIC-ga yuborish yoki undan o'qish mumkin. Ma'lumotlarni uzatishda siz 0 qiymatiga ega bo'lgan boshlash biti va to'xtash bitini o'rnatishingiz kerak. Ma'lumotlarni yuborish uchun jami 16 tushgan qirralar va buyruqlar uchun 6 tushgan qirralar kerak. 18F chiziqning PIC-lari uchun 18 tushgan qirralardan foydalaniladi.
Buyruqni yuborish: 6 tushgan qirralar (6 bit).
Ma'lumotlarni yuborish: 16 tushgan qirralar. (14 bit + 1 start bit + 1 stop bit). PIC18F uchun (16 bit + 1 start bit + 1 stop bit).
Ma'lumotlar ikki tomonlama: ularni PIC-ga yuborish yoki olish mumkin.
Buyruqni yuborish va ma'lumotlarni o'qish yoki yozish orasidagi minimal vaqt 1 mikrosaniyani tashkil qilishi kerak.
Buyruq darajasi:
Ushbu darajada ro'yxatga olish xizmatining turli xil buyruqlari mavjud, ishlatiladigan qurilmalar turkumiga qarab turli xil buyruqlar mavjud. Ushbu buyruqlar dastur xotirasida ma'lumotlarni yozish, ma'lumotlar xotirasidan ma'lumotlarni o'qish, dasturlash rejimiga kirish uchun ishlatiladi.
Ushbu buyruqlar har bir qurilmaning ma'lumot varag'ida tavsiflangan, shuning uchun o'quvchi ularni mikrochip sahifasiga kirib, har bir oila uchun dasturiy qo'llanmani qidirib topishi mumkin.
AVR mikrokontroller dasturlash:
AVR mikrokontrolrlari ISP (In tizim dasturlash) deb nomlangan PIC mikrokontrollageri uchun ishlatilgan tizimga o'xshash tizim tomonidan qayd qilinadi, shu orqali dastur xotirasi, ma'lumotlar xotirasi va konfiguratsiya so'zini yozib olish mumkin.
Ushbu tizimdan foydalanishning afzalliklari PIC-larning ICSP-dan foydalanish bilan bir xil.
Yozib olish tartibi:
PIC mikrokontrollerlaridan farqli o'laroq, AVR oilaviy qurilmalari ro'yxatga olish jarayonida yuqori voltajga ehtiyoj sezilmasligi bilan, lekin ularning barcha ishlarida bir xil quvvat kuchlanishidan foydalanishlari bilan farqlanadi.
Dasturlash rejimiga o'tish uchun ular ishlatiladigan qurilmalar oilasiga qarab ma'lum buyruqlar orqali amalga oshiriladi.
Arxitektura:
Amaliy me'morchilik bitta qatlamli va bitta buyruqli 2 qatlamga asoslangan PIC mikrokontrollerlari bilan bir xil.
Jismoniy darajasi:
SPI protokoli aloqani amalga oshirish uchun ishlatiladi, bu yozuv protokolini soddalashtiradi. Bu to'liq dupleks ketma-ket aloqadan iborat (bir vaqtning o'zida ma'lumotlarni uzatadi va qabul qiladi), qurilma bilan aloqa qilishda yuqori tezlikni oladi.
Hammasi bo'lib ushbu tizim SPI orqali aloqa o'rnatish uchun 4 ta kabeldan foydalanadi.
MISO: Kirish - Asosiy va Chiqish - qul (SPI ma'lumot signali).
MOSI: Chiqish - Asosiy va Kirish - qul (SPI ma'lumot uzatish).
SCK: soat signali.
RST: Mikrokontrollerni tiklash pimi.
Rasmda biz AVR oilasining mikrokontrollerining aloqasi uchun ishlatiladigan pinlarning taqsimlanishini ko'ramiz:
Operatsiyaning qisqacha tavsifi quyidagicha:
Qurilma dasturlash rejimiga faqat qayta tiklash davridan so'ng kiradi.
Birinchi buyruqlar 20 msdan keyin yuboriladi.
Buyruqlar buyruqlar uzunligi 4 bayt bo'lgan PIC-lardan farqli o'laroq 6 baytli formatga ega.
Birinchi yuborilgan buyruq - "dasturlash rejimini yoqish" buyrug'i
Qurilma tegishli buyruqlar yordamida aniqlanadi.
Dastur xotirasining o'qish / yozish davrlari, ma'lumotlar xotirasi va sigortalar ishga tushirildi.
Ushbu operatsiyani ko'rib chiqish asosiy hisoblanadi va faqat o'quvchiga uning ishlashi to'g'risida sharh berish uchun xizmat qiladi. Agar mavzu bo'yicha chuqurroq ma'lumotga ega bo'lishni istasangiz, ATMEL veb-saytidan Internet-provayderning protokol qo'llanmasini yuklab oling.
Buyruq darajasi:
Ushbu buyruqlar har bir qurilmaning ma'lumot varag'ida tasvirlangan, shuning uchun o'quvchi ularni o'zi ATMEL sahifasiga kirib, har bir oila uchun dasturiy qo'llanmani qidirib topishi mumkin.
Bizni har bir oilaning buyruqlari qiziqtirmaydi, chunki ularni bajarish dasturchining vazifasi (apparat).
Hozircha biz har ikkala qurilmaning oilasini yozib olish jarayonini tushunish uchun asoslarni ko'rdik. Keyingi qismda biz tasvirlangan qurilmalarning 2 ta oilasi bilan ishlash uchun yozuvchini qurishni o'rganishni boshlaymiz.