Какво е микроконтролер?
Най-общо казано микроконтролерът представлява цифрова интегрална схема, която ( за разклика от останалите) може да прави това, което вие й “кажете”. Средство, чрез което “казвате” на микроконтролера какви функции да изпълнява е програма, която предварително сте съставили в него. Следователно, за да изпълнява микроконтролера конкретни функции, е необходимо преди това да го програмирате.
Друг случай, в който микроконтролерите са особено полезни, а понякога и незаменими, е когато трябва да се реализира устройство, изпълняващо голям брой или сравнително сложни фукнции. Такива например са: комуникация с други устройства, управление на буквено-символни или графични дисплеи, измерване на различни величини, управление на технологични процеси и т.н. Реализацията на подобни функции с помощта на дискретни елементи или функционални интегрални схеми би довела до значително усложнняване схемата на устройството, а оттам и до увеличаване размерите и понижаване надежността му.
Какви знания са ви необходими за да работите с микроконтролери?
За да можете да използвате един микроконтролер, трябва да познавате:
1) Структурата му, т.е. какво има в него;
2) Езика за програмиране, който той използва.
3) Работата с микроконтролери до голяма степен е свързана с използването на компютър, т.е. освен всичко ще ви е необходима и компютърна грамотност.
От какво се състои един микроконтролер?
В общи линии всеки микроконтролер съдържа: централен процесор (по-известен като микропроцесор или само процесор), памет за данни (RAM), програмна памет (ROM) и различни блокове (периферни устройства), които осигуряват връзката му с околния свят и допълнително разширяват неговите възможности. Тъй като съставните блоковете на микроконтролера са характерни и за всеки компютър, другото име , с което той е известен в литературата е: едночипов микрокомпютър. Освен по блоковете, които съдържа, микроконтролерът може да се отъждестви с компютъра и по други признаци. Например, както за работата на компютъра е необходима операционна система, така и за използване на микроконтролера трябва в него да се запише конкретна програма.
Каква е разликата между микроконтролер и микропроцесор?
Най-съществената разлика е, че микропроцесорът е част от микроконтролера. За да работи един микропроцесор са му необходими допълнителни външни блокове като: памет (програмна и за данни), тактов генератор, входно-изходни устройства, осигуряващи връзката със заобикалящата го среда и т.н. За разлика от него, миктоконтролерът обединява всичко това в едно цяло и може да функционира като самостоятелно устройство. Следователно, подобно на един компютър, процесорът е един от оснивните елементи.
С какво трябва да разполагате при проектирането на устройство базирано на микроконтролер?
Всяко подобно устройство се състои от две части: апаратна част (хардуер) и програмна част (софтуер). Следователно, проектирането му също се осъществява на два етапа: разработване на апаратното осигуряване и разработване на програмно осигуряване. Средствата, които ще ви бъдат необходими за разработване на програмното осигуряване са следните:
1) Персонален компютър. На него се инсталират програмните продукти, които ще са ви необходими в процеса на работа;
2) Средства за проектиране и тестване на програмното осигуряване (ПО):
- Текстов редактор за въвеждане на програмата в компютъра;
- Транслатор – сфтуер за преобразуване на програмата във вид, подходящ за запис в микроконтролера;
- Симулатор – чрез него се осъществява компютъра симулация на програмата за микроконтролера;
- Емулатор – средство за хардуерна симумлация на програмата в условия, близки до реалните.
3) Устройство за запис на програмата в микроконтролера (програматор).
Текстовият редактор, транслаторът, симулаторът и емулаторът в повечето случаи са заложени като отделни модули в общ програмен продукт, известен като развойна среда. По принцип всеки производител на микроконтролери предоставя развойната среда, която може да бъде използвана при проектиране и тестване на програмното осигуряване. Развойната среда, която се използва при работа с PIC микроконтролерите се нарича MPLAB IDE и е предоставена от производителя Microchip за свободно ползване.
През какви етапи се преминава при проектиране на устройство, използващо микроконтролер?
Проектирането преминава през няколко основни момента:
1) Разпределяне функциите между апаратно и програмно осигуряване. На този етап, след като са изяснени функциите устройството, трябва да се прецени кои от тях да се реализират програмно, чрез микроконтролера и кои, с помощта на други елементи. Естествено, стремежът винаги е по-голямата част от функциите да се реазлизират програмно, но това не винаги е възможно и целесъобразно. По принцип не се изключват ситуации, при които една функция може сравнително лесно да се реализира с използване на интегрални схеми или други елементи, а програмната й реализация значително би усложнила нещата. Следователно, за оптималното разпределяне фукнциите на устройството между апаратната и програмната част не могат да бъдат дадени конкретни правила. Това се постига единствено с натрупване на определен опит в работата с микроконтролерите.
2) Изработване на схемата и програмиране на микроконтролера.
3) Изпитване на устройството. На този етап се проверява дали устройството работи така, както първоначално е замислено. Ако се констатира някакъв проблем, следователно да се установи дали той е в апаратното или в програмното осигуряване. Практиката показва, че в повечето случаи проблемът е в програмното осигуряване, т.е. допусната е грешка (или грешки) при съставяне на програмата. По принцип това е в реда на нещата и не би трябвало да ви притеснява. Напълно нормално е, при съставяне на програмата например от 1000 реда, да сбъркате или пропуснете нещо.
PIC- микроконтролери
Какви фамилии PIC-микроконтролери са налични до момента?
В зависимост от дължината, на инструкциите, които използват и характеристиките им като цяло, PIC- микроконтролерите могат да се причислят към една от следните фамилии:
-Фамилия PIC12CXXX/PIC12FXXX
-Фамилия PIC16C5X
-Фамилия PIC16CXXX/PIC16FXXX
-Фамилия PIC17CXXX
-Фамилия PIC18CXXX/PIC18FXXX
Архитектура
Високото бързодействие на PIC16F84A, както и на всички останали PIC микроконтролери се дължи главно на използваната HARVARD-архитектура, типична за RISC микроконтролерите.
Блоковете, изграждащи PIC16F84A, условно могат да бъдат разделени на две групи, включващи: блокове, изграждащи ядрото на микроконтролера и периферни устройства. За максимално съответствие с терминологията, използвана от производителя, имената на отделните блокове в схемата са дадени на английски, като конкретните им значения са:
1. Ядро:
-CPU – Централен процесор. Не е означен като самостоятелен блок на схемата, а е изграден от следните блокове:
• ALU – Аритметико-логическо устройство;
• MUX – Мултиплексор, чрез който се избира източникът на втория операнд за ALU (паметта за данни или константа от програмата памет).
• W reg - Работен регистър;
• STATUS reg – Регистър на състоянието;
• Program Counter – Програмен брояч
• 8Level Stack – Хардуерен стек с 8 нива;
• Instruction reg – Регистър за инструкцията;
• Instruction Decode & Control – Блок за декодиране на инструкциите и контрол;
• Direct Addr – Адресна магистрала за пряка адресация;
• Indirect Addr – Адресна магистрала за непряка адресация;
• Addr MUX – Адресен мултиплексор. Чрез него се избира източника на адреса (инструкцията или FSR), в зависимост от метода за адресация на RAM паметта (пряка или непряка).
• FSR reg – Регистър, указващ адреса при непряка адресация;
- Flash Program Memory – Програмна Flash памет;
- RAM – Памет за данни, с произволен достъп;
- Program Bus – Програмна магистрала (шина);
- Data Bus – Даннова магистрала (шина);
- RAM Addr – Адресна магистрала за RAM паметта;
- Timing Generation – Блок, осигуряващ всички вътрешни тактове, необходими за работата на централния процесор и периферните устройства.
2. Периферни устройства и устройства със специални функции:
- EEPROM Data Memory – енергонезависима EEPROM памет за данни;
- TMR0 – Модул Таймер 0;
- I/0 Ports – Входно-изходни портове;
- Power-up Timer – Таймер на включване на захранването;
- Oscillator Start-up Timer – Стартов таймер на генератора;
- Power-on Reset – Блок за начално установяване при вкл. на захр-то;
- Watchdog Timer – Стражеви таймер.
Асемблер - За оптимално използване ресурсите на микроконтролера са необходими, както добри познанния, свързани с архитектурата и особеностите му, така и познаване на езика за програмиране, заложен в микроконтролера.
Основният език за програмиране, използван при микроконтролерите на фирмата Microchip, е езикът Асемблер. Това е машинно ориентиран език, основното предназначение на който е осъществяване на комуникация между човека и микроконтролера.
Основни характеристики и описание на PIC16F84A
PIX16F84A е 8-битов RISC-микроконтролер на фирмата Microchip и принадлежи към групата PIC16X8X на фамилията PIC16FXXX. Освен него, към тази група спадат още: PIC16F83, PIC16C83, PIC16F84, PIC16CR84.
Разликата между отделните микроконтролери се изразява основно в бързодействието им в капацитета на паметта, а също и в това че някои от тях са репрограмируеми, а други- не. От всички тези микроконтролери, разглежданият PIC16F84A има най-добри характеристики, а именно:
- Максимална тактова честота 20MHz (което отговаря на минимална продължителност на цикъла на инструкцията – 200ns)
- Всички инструкции се изпълняват от микропроцесора за един цикъл, с изключение на предходните, които отнемат по два цикъла;
- Набор от 35 инструкции, всяка от които е с дължина една дума;
- Капацитет на програмата (Flash) памет – 1024 думиу;
- 68 байта, даннова RAM памет;
- 64 байта, даннова EEPROM памет;
- Отделни 14-битова магистрала за инструкциите и 80битова за данните;
- Хардуерен стек с осем нива;
- Четири източника на прекъсване, съответно:
- Повече от 1000 цикъла изтриване/запис на програмната FLASH памет и 1 000 000 на ЕЕРROM паметта;
- Време на съхранение на данните, записване в енергонезависимата EEPROM памет – повече от 40 години;
- Интервал на захранващото напрежение – от 2 до 5,5V;
Ето тука съм качил още информация, има и практически пример надявам се да е било полезно на някой.
http://192.168.222.20/rack3/users/DarK% ... controler/