-18- PICmikrokontrolleri PIC (odatda "tanlash" deb talaffuz qilinadi) - Microchip Technology tomonidan ishlab chiqarilgan, dastlab General Instrument Mikroelektronika bo'limi tomonidan ishlab chiqilgan PIC1650 dan olingan mikrokontrollerlar oilasi. PIC nomi dastlab Periferik interfeyslarni boshqarish moslamasi deb atalgan va hozirda dasturlashtiriladigan aqlli kompyuter sifatida kengaytirilgan. Oilaning birinchi qismlari 1976 yilda paydo bo'lgan; 2013 yilga kelib kompaniya turli xil ko'milgan tizimlarda ishlatiladigan o'n ikki milliarddan ortiq alohida qismlarni jo'natdi.
Dastlabki PIC modellarida dasturlarni saqlash uchun faqat o'qish uchun xotira (ROM) yoki maydonda programlanadigan EPROM bor edi, ba'zilarida esa xotirani o'chirish imkoniyati mavjud edi. Hozirgi barcha modellar dasturni saqlash uchun flesh -xotiradan foydalanadi va yangi modellar PICning o'zini qayta dasturlashiga imkon beradi. Dastur xotirasi va ma'lumotlar xotirasi ajratilgan (Qarang: Arxitektura arxitekturasi). Ma'lumotlar xotirasi 8 bitli, 16 bitli va oxirgi modellarda 32 bitli. Dastur ko'rsatmalari PIC oilasi bo'yicha bit-sonda farq qiladi va uzunligi 12, 14, 16 yoki 24 bit bo'lishi mumkin. Ko'rsatmalar to'plami ham modelga qarab o'zgaradi, kuchliroq chiplar raqamli signalni qayta ishlash funktsiyalari uchun ko'rsatmalarni qo'shadi.
PIC qurilmalarining apparat imkoniyatlari 6-pinli SMD, 8-pinli DIP-chiplardan 144-pinli SMD-chipgacha, diskret kirish-chiqish pinlari, ADC va DAC modullari va UART, I2C, CAN va boshqalar kabi aloqa portlariga ega. hatto USB. Ko'p turdagi turlar uchun past quvvatli va yuqori tezlikdagi o'zgarishlar mavjud.
Ishlab chiqaruvchi MPLAB X, montajchilar va C/C ++ kompilyatorlari, MPLAB va PICKit seriyali dasturchi/disk raskadrovka uskunalari deb nomlanuvchi kompyuter dasturlarini ishlab chiqaradi. Uchinchi tomon va ba'zi ochiq manbali vositalar ham mavjud. Ba'zi qismlar elektron dasturlash qobiliyatiga ega; arzon ishlab chiqish dasturchilari, shuningdek, yuqori ishlab chiqaruvchilar mavjud.
PIC qurilmalari arzon ishlab chiqaruvchilar va havaskorlar orasida mashhurdir, chunki ularning arzonligi, keng mavjudligi, katta foydalanuvchilar bazasi, ilovalar yozuvlarining keng to'plami, arzon yoki bepul ishlab chiqish vositalarining mavjudligi, ketma-ket dasturlash va qayta programlanadigan flesh-xotira qobiliyati.
Asl PIC General Instrument-ning yangi CP1600 16-bitli markaziy protsessor birligi (CPU) bilan ishlatishga mo'ljallangan edi. CP1600 o'z davri uchun kuchli protsessor bo'lib, PDP-11 minikompyuterining buyruqlar majmuasining ko'p qismini mikrokompyuterlar to'plamida amalga oshiradi.
Aksariyat odamlar [kim?] CP1600 ni yaxshi protsessor deb hisoblashsa -da, uning bitta muhim muammosi bor edi; jismoniy DIP -qadoqlarining pin sonini kamaytirish uchun, u ko'p tarmoqli manzillar va ma'lumotlar avtobuslariga ega edi [havola kerak]: manzil shinalari va ma'lumotlar shinalari umumiy pinlari. Intel 8008 singari alohida kirish-chiqish kanallari bo'lgan protsessorlar uchun bu muammo bo'lmaydi [tushuntirish kerak], lekin 1600 shuningdek, PDP-11 xotira xaritasi bilan kiritilgan kirish/chiqish kontseptsiyasidan foydalangan. Bu shuni anglatadiki, qurilma bilan aloqa qilish qurilmaning bitta kompyuter tsiklidagi xotiraning asosiy joylariga kirishini kuzatishi, so'ngra keyingi ma'lumotlarni o'qishi kerak edi. Bu avtoulovda kirish -chiqish tezligini pasaytirdi, chunki avtobus manzillar va ma'lumotlar rejimlari o'rtasida almashib turardi va qurilmalar kirishni bir necha tsikllarda ushlab turishi kerak edi.
1600-ning bu zaifligini bartaraf etish uchun 1975-yilda 8-bitli PIC ishlab chiqilgan. G'oya shundan iborat ediki, tizim bir yoki bir nechta arzon PIC-ga ega bo'lib, qurilmalar bilan haqiqiy kirish-chiqish ishlarini bajaradi va keyin bu ma'lumotlarni yuboradi. CPUga. PIC o'z vazifalarini bajarish uchun ROMda saqlangan oddiy mikrokoddan [havola kerak] foydalangan.
1985 yilda General Instrument mikroelektronika bo'limini sotdi va yangi egalari deyarli eskirgan hamma narsani bekor qilishdi. Biroq, PIC ichki EPROM bilan yangilanib, dasturlashtiriladigan kanal boshqaruvchisini ishlab chiqardi. Shu bilan birga, Buyuk Britaniyadagi Plessey GI dizayniga asoslangan PIC1650 va PIC1655 raqamli NMOS protsessorlarini chiqargan, xuddi shu ko'rsatmalarni ishlatib, foydalanuvchi niqobini dasturlash yoki avtomatik terish va klaviatura interfeysi uchun oldindan dasturlashtirilgan.
1998 yilda Microchip o'zining muvaffaqiyatli ketma -ket programlanadigan PIC16C84 -ning flesh -programlanadigan va o'chiriladigan PIC 16F84 versiyasini taqdim etdi. 2001 yilda Microchip ko'proq Flash dasturlashtiriladigan qurilmalarini taqdim etdi, to'liq ishlab chiqarish 2002 yildan boshlanadi.
Bugungi kunda turli xil ichki qurilmalar (ketma-ket aloqa modullari, UARTlar, dvigatellarni boshqarish yadrolari va boshqalar) va 256 so'zdan 64K so'zgacha bo'lgan dastur xotirasi bilan PIC-larning xilma-xilligi mavjud ("so'z"-bu yig'ilish tilining bitta ko'rsatmasi. , uzunligi ma'lum PIC mikro oilasiga qarab 8 dan 16 bitgacha o'zgaradi).
PIC va PICmicro endi Microchip Technology kompaniyasining ro'yxatdan o'tgan savdo belgilaridir. Umuman olganda, PIC Periferik interfeys boshqaruvchisi degan ma'noni anglatadi, garchi General Instruments PIC1640 va PIC1650 qurilmalarining asl qisqartmasi "Dasturlanadigan interfeys boshqaruvchisi" edi.
Qisqartma tezda "Dasturlanadigan aqlli kompyuter" bilan almashtirildi.
1993 yilda taqdim etilgan Microchip 16C84 (PIC16x84) EEPROM chipli xotirali birinchi Microchip protsessor edi.
2013 yilga kelib, Microchip har yili bir milliarddan ortiq PIC mikrokontrolerini jo'natdi.
PIC mikro chiplari Garvard arxitekturasi bilan yaratilgan bo'lib, ular turli xil qurilmalar oilalarida taqdim etiladi. Boshlang'ich va o'rta toifadagi oilalar 8 bitli keng ma'lumotli xotiradan, yuqori darajali oilalar esa 16 bitli ma'lumot xotirasidan foydalanadilar. Oxirgi seriya, PIC32MZ-32 bitli MIPS asosidagi mikrokontroller. Ko'rsatma so'zlari 12 bitli (PIC10 va PIC12), 14 bitli (PIC16) va 24 bitli (PIC24 va dsPIC) o'lchamlarda. Mashina ko'rsatmalarining ikkilik ko'rinishi oilaga qarab o'zgaradi va PIC buyruqlar ro'yxatida ko'rsatiladi.
Bu oilalarda qurilmalar PICnnCxxx (CMOS) yoki PICnnFxxx (Flash) sifatida belgilanishi mumkin. "C" qurilmalari odatda "yangi rivojlanish uchun mos emas" deb tasniflanadi (Microchip tomonidan faol targ'ib qilinmaydi). "C" qurilmalarining dastur xotirasi OTP, ROM yoki EEPROM sifatida har xil ta'riflanadi. 2016 yil oktyabr holatiga ko'ra, "ishlab chiqarishda" deb tasniflangan yagona OTP mahsuloti pic16HV540 hisoblanadi. Kvarts oynalari bo'lgan "C" qurilmalari (o'chirish uchun) umuman mavjud emas.
Bu qurilmalarda 12 bitli keng kodli xotira, 32 baytli registrli fayl va ikki darajali chuqur qo'ng'iroqlar to'plami mavjud. Ular PIC10 seriyali, shuningdek ba'zi PIC12 va PIC16 qurilmalari bilan ifodalanadi. Asosiy qurilmalar 6-pinli 40-pinli paketlarda mavjud.
Odatda registr faylining birinchi 7 dan 9 baytigacha maxsus registrlar, qolgan baytlar esa umumiy maqsadli operativ xotira. Ko'rsatkichlar registrlar juftligi yordamida amalga oshiriladi: FSR (fayl tanlash reestri) ga manzil yozilgandan so'ng, INDF (bilvosita f) registrlari manzil registrining taxallusiga aylanadi. Agar operativ xotira o'rnatilgan bo'lsa, bank raqami FSRning 3 bitli yuqori qiymati bilan tanlanadi. Bu 16-31 ro'yxatga olish raqamlariga ta'sir qiladi; 0 dan 15 gacha registrlar global bo'lib, bankning bitlari ta'sir qilmaydi.
Ro'yxatga olish maydoni juda cheklanganligi sababli (5 bit), kamdan -kam o'qiladigan 4 ta registrga manzillar belgilanmagan, lekin ular maxsus ko'rsatmalar (OPTION va TRIS) bilan yozilgan.
ROM manzillar maydoni 512 so'zdan iborat (har biri 12 bit), uni bank orqali 2048 so'zgacha kengaytirish mumkin. CALL va GOTO ko'rsatmalari yangi kod joyining past 9 bitini ko'rsatadi; holat registridan qo'shimcha yuqori darajadagi bitlar olinadi. E'tibor bering, CALL buyrug'i faqat 8 bitli manzilni o'z ichiga oladi va har 512 so'zli sahifaning birinchi yarmida manzillarni ko'rsatishi mumkin. Ya'ni, CALL buyrug'i manzilning past 9 bitini bildiradi, lekin faqat 8 bitli past manzil
ko'rsatma parametridir, 9 -bit (8 -bit) esa CALL buyrug'ining o'zi bilan aniq 0 sifatida belgilanadi.
Qidiruv jadvallari hisoblangan GOTO (PCL reestriga topshiriq) yordamida RETLW ko'rsatmalari jadvaliga kiritiladi. RETLW, W registriga qaytib, 8 bitli doimiy konstantaga qaytadi, u yo'riqnomaga kodlangan.
Bu "asosiy yadro" uzilishlarni qo'llab -quvvatlamaydi; barcha I/U so'rovlari o'tkazilishi kerak. To'xtatilgan qo'llab-quvvatlash va to'rt darajali qo'ng'iroqlar to'plamiga ega bo'lgan "takomillashtirilgan bazaviy" variantlar mavjud.
PIC10F32x qurilmalarida 256 yoki 512 so'zdan iborat 14-bitli keng ko'lamli kodli xotira, 64 baytli SRAM registrli fayl va 8 darajali chuqur apparat to'plami mavjud. Ushbu qurilmalar 6-pinli SMD va 8-pinli DIP paketlarida mavjud (ikkita pin ishlatilmagan). Faqat bitta kirish va uchta kirish -chiqish pinlari mavjud. Murakkab uzilishlar to'plami mavjud. Soatlar-bu 16 MGts chastotali ichki kalibrlangan osilator, dasturiy ta'minot va 31 kHz kam quvvat manbai orqali tezlikni tanlash.
Ushbu qurilmalarda 14 bitli keng kodli xotira va 8 darajali chuqur qo'ng'iroqlar to'plami mavjud. Ko'rsatmalar to'plami boshlang'ich qurilmalardan juda kam farq qiladi, lekin ikkita qo'shimcha kodli bitlar 128 ta registr va 2048 ta so'zli so'zlarga to'g'ridan -to'g'ri murojaat qilish imkonini beradi. Bir nechta qo'shimcha ko'rsatmalar va 8 bitli ikkita qo'shimcha ko'rsatmalar mavjud, ularni qo'shish va olib tashlash. O'rta masofali yadro PIC12 va PIC16 etiketli qurilmalarning ko'pchiligida mavjud.
Ro'yxatga olish maydonining dastlabki 32 bayti maxsus registrlarga ajratilgan; qolgan 96 bayt umumiy maqsadli operativ xotira uchun ishlatiladi. Agar bank operativ xotirasidan foydalanilsa, yuqori 16 ta registr (0x70-0x7F), bir qator maxsus maqsadli registrlar, shu jumladan RAM bankini tanlash bitlarini ushlab turuvchi STATUS reestri ham global hisoblanadi. (Boshqa global registrlar - bu FSR va INDF, PCL dasturlari hisoblagichining past 8 biti, yuqori yuklangan PCLATH registri va INTCON asosiy uzilish registrlari.)
PCLATH reestri PCL registriga yozish orqali berilgan 8 bit yoki GOTO yoki CALL buyrug'i bilan ta'minlangan 8 bit mavjud ROM maydonini hal qilish uchun etarli bo'lmaganida, yuqori darajadagi ko'rsatma manzil bitlarini etkazib beradi.
17 -seriya hech qachon mashhur bo'lmagan va PIC18 arxitekturasi bilan almashtirilgan (ammo quyida klonlarga qarang). 17 -seriyali yangi dizaynlar uchun tavsiya etilmaydi va foydalanuvchilar bilan cheklanishi mumkin.
Oldingi yadrolarni takomillashtirish-bu 16 bitli keng kodli kodlar (ko'plab yangi ko'rsatmalarga ruxsat berish) va 16 darajali chuqur qo'ng'iroqlar to'plami. PIC17 qurilmalari 40 dan 68 pingacha bo'lgan paketlarda ishlab chiqarilgan.
17 -seriya bir qator muhim yangi xususiyatlarni taqdim etdi: [9]
*xotira kartasi akkumulyatori
*kod xotirasiga kirishni o'qish (jadval o'qiladi)
*harakatlarni ro'yxatga olish uchun to'g'ridan -to'g'ri ro'yxatga olish kitobi (registrlarni akkumulyator orqali o'tkazish uchun oldingi yadrolar kerak)
* kod maydonini kengaytirish uchun tashqi dastur xotira interfeysi
*8-bit × 8-bitli apparat multiplikatori
*ikkinchi bilvosita ro'yxatga olish juftligi
*status registridagi boshqaruv bitlari tomonidan boshqariladigan avtomatik o'sish/kamayish manzili (ALUSTA)
Muhim cheklov shundaki, operativ xotira maydoni 256 bayt bilan cheklangan edi (26 bayt maxsus funktsiyalar registri va 232 bayt umumiy maqsadli operativ xotira), bu esa ko'proq qo'llab-quvvatlanadigan modellarda noqulay bank almashtirish.