33
Микропроцесор 8085 Фон-Најмонова архитектура •Микропроцесорот содржи: интерни регистри за чување на податоци и контрола, ALU иуправувачка единица •Меморијата се состои од мемориски елементи за чување на податоците. •В/Иединицата содржи делови за притап до периферните уреди (пристап до меморијата) Микропроцесорот е способен да ги извршува следниве работи: •Примање на влезни податоци (во вид на податочни инструкции). •Извршување на пресметки, аритметички и логички. •Складирање на податоци и инструкции. •Испишување на резултатите од направените пресметки. •Контролирање на сите уреди кои ги извршуваат сите горенаведени задачи директно или индиректно. •Првата задача е извршена од страна на влезената единица, втората задача е извршена од страна на аритметичко логичката единица (ALU), третата задача е извршена од страна на мемориската единица, четвртата задача ја извршува излезната единица и петата задача е извршена со тајмирање и со контролна (T&C) единица. •Бројот на битови кои ги препознава компјутерот и кои можат да бидат процесирани во одредено време се познати како “должина на збор”. •Инструкција е команда која го прашува микропроцесорот да изврши некоја одрадена задача. •Инструкцијата се состои од операционен код (наречен „opcode‟) и адреса од податоци (наречена „operand‟), на која операциониот код се извршува. Stek меморија •Дел од меморијата за привремено чување на податоците и адресите. •Притап преку принципот на LIFO (Last In First Out) •Најчеста примена: за чување на адресата кај која е дошло до прекин при извршувањето на програмата. •Обично се наоѓа на крајот на меморијата и расте во обратен правец

Mikroprocesori Za Ispit

Embed Size (px)

DESCRIPTION

Mikroprocesori za ispit ugd

Citation preview

Page 1: Mikroprocesori Za Ispit

Микропроцесор 8085Фон-Најмонова архитектура•Микропроцесорот содржи: интерни регистри за чување на податоци и контрола, ALU иуправувачка единица•Меморијата се состои од мемориски елементи за чување на податоците.•В/Иединицата содржи делови за притап до периферните уреди

(пристап до меморијата)Микропроцесорот е способен да ги извршува следниве работи:•Примање на влезни податоци (во вид на податочни инструкции).•Извршување на пресметки, аритметички и логички.•Складирање на податоци и инструкции.•Испишување на резултатите од направените пресметки.•Контролирање на сите уреди кои ги извршуваат сите горенаведени задачи директно или индиректно.

•Првата задача е извршена од страна на влезената единица, втората задача е извршена од страна на аритметичко логичката единица (ALU), третата задача е извршена од страна на мемориската единица, четвртата задача ја извршува излезната единица и петата задача е извршена со тајмирање и со контролна (T&C) единица.•Бројот на битови кои ги препознава компјутерот и кои можат да бидат процесирани во одредено време се познати како “должина на збор”.•Инструкција е команда која го прашува микропроцесорот да изврши некоја одрадена задача.•Инструкцијата се состои од операционен код (наречен „opcode‟) и адреса од податоци (наречена „operand‟), на која операциониот код се извршува.

Stek меморија•Дел од меморијата за привремено чување на податоците и адресите.•Притап преку принципот на LIFO (Last In First Out)•Најчеста примена: за чување на адресата кај која е дошло до прекин при извршувањето на програмата. •Обично се наоѓа на крајот на меморијата и расте во обратен правец

Програмски модел на микропроцесорот, начин на адресирање и инструкции.Сигналот на микропроцесорот 8085 може да биде класифициран во седум групи во зависност од нивните функции. Тие групи се:•Напојување и фреквенциски сигнал,•Податочни и адресни магистрали,•Контролен бас,•Интерапт сигнал,•Сериски влезни/излезни сигнали,•DMAсигнали,•Рестарт сигнал.

Page 2: Mikroprocesori Za Ispit

Функционалните блокови на микропроцесорот 8085 се:•Регистри,•Аритметичко логичка единица,•Адресен бафер,•Зголемувачки/намалувачки адресен прекинувач,•Интерапт контролер,•Сериски влезно/излезен контролер,•Временско и контролно коло,•Инструкциски декодер и машинско коло за кодерот.

Регистри за општа намена•Постојат 6 вакви регистра•Тоа сеB, C, D, E, H иL за 8-битниподатоци•Можат да се комбинираат како регистерски парови (B, C), (D, E) и (H, L) за 16 битни податоци•Служат за привремено шување на податоците и меѓурезултатите.

Акумулатор(ACC)•8-битен регистарregistar кој е дел одALU•Служи за чување на 8-битни податоци и за изведување на аритметички и логички операции врз податоците•Резултатот од операциите се чува во акумулаторот. •Овој ргистар се иднтификува какоA

Регистар за состојбата на битовите(Flag Register)•Се состои од 5 flip-flop-ови(флегови)чија состојба зависи од резултатот на извршните операции. •Флегови: Zero(Z), Carry(CY), Sign(S), Parity(P) и Auxiliary Carry(AC)•Sign (S)flag: Ако MSBод резултатот на операцијата е 1, тогаш овој флег е сетиран инаку е ресетиран.•Zero (Z) flag: Ако резултатот на инструкцијата е нула, тогаш овој флег е сетиран инаку е ресетиран.•Auxiliary Carry (AC) flag:Ако постои пренос од битот 3 во битот 4 што резултира од извршувањето од аритметичка операција тогаш овој флег е сетиран инаку е ресетиран.•Carry (CY) flag:Ако инструкција резултира во пренос (за операции собирање) или позајми (за операции одземање) од битот D7тогаш флегот е сетиран инаку е ресетиран.•Parity (P) flag:Овој флег е сетиран кога резултатот од операција содржи ист број на единици инаку е ресетиран.

Програмски бројач(PC)•Тоа 16-битен регистар кој се користи за управување на текот на инструкцијата која се извршува.•РС претставува покажувач на мемориските локации (адресата кај 8085 се одредува со 16 битни вредности односно има 16 адресни линии)

Page 3: Mikroprocesori Za Ispit

•Овој бројач се инкрементира секогаш кога се преземе текновната инструкција од меморијата

Stek покажувач(SP)•Исто така, 16-битни регистар•Дефинира место во меморијата (адреса) од која почнува стекот.•Постојат посебни инструкции за манипулација со стекот (PUSH, POP,и сл.)•Секогаш кога ќе се стави податок на стекот SP се декрементира.

•T&Cсекцијата е дел од процесорот и генерира тајминг и контролен сигнал за извршување на инструкции. •Оваа секција вклучува Клок сигнал, Контролен сигнал, Статус сигнал, DMAсигнал исто така и Рестарт секција.•Оваа секција го контролира преземањето и декодирањето на операциите. Исто така генерира соодветен контролен сигнал за инструциското извршување и сигнали кои се потребни за поврзување на надворешните уреди.•Контролните и статусните сигнали се Интерапт сигналите TRAP, RST 7.5, RST 6.5, RST 5.5, INTR.е потврден интерапт сигнал кој индицира дали процесорот го потврдил INTRинтераптот. •Сериски I/Oсигнали се SID иSOD. DMAсигнали се HOLD и HLDA. Ресет сигнали се RESETINи RESET OUT.

•Пинот 30 од микропроцесорот 8085 е ALEшто значи „Address Latch Enabled‟. •ALEсигналот се користи за демултиплексирање на понискиот ред на адресниот бас (AD0–AD7).•Пиновите од 12 до 19 од микропроцесорот 8085 се AD0–AD7кое е мултиплексираниот податочнен адресен бас. Мултиплексирањето се извршува за да се намали бројот на пинови на микропроцесорот 8085.

Начини на адресирањеПостојат пет начини на адресирање:–Имплицитно(Implicit) адресирање–Регистарско(Register) адресирање–Непосредно (Immediate) адресирање–Директно(Direct) адресирање–Индиректно (Indirect) адресирање

Имлицитно адресирање•Инструкцијата која е потребно да се изврши имплицитно кажува каде се наоѓа операндот (податокот врз кој треба да се изврши одредена операција)•Тоа се 1-бајтниинструкции ибрзо сеизвршуваат•Пример: ADD M;(A) ← (A)+(M)

Page 4: Mikroprocesori Za Ispit

Регистарско адресирање•Операндот врз кој се врши операцијата се наоѓа во некој внатрешен регистар•Иовие инструкции се 1-бајтни•Пример: MOV D, B;(D) ← (B)

Непосредно адресирање•Операндот (податокот) се наоѓа во самата инструкција.•Врши непосредно впишување на податоците на место на одредиштето.•Овие инструкции можат да бидат бајтни или3-бајтни•Пример: MVI B, 65H;(B) ← 65HLXI B, 1234H;(B, C) ← 1234H

Директно адресирање•Можат да бидат 2-бајтни или 3-бајтниинструкции•2. и3. бајт формираат адреса во меморијата на која се наоѓа операндот•Пример: LDA 0123H;(A) ← [0123H]IN 00H;(A) ← [00H]OUT 01H;(A) ← [01H]

Индиректно адресирање•Адресата на операндот (адресата на местото каде се наоѓа операндот во меморијата)се наоѓа во некој од регистарските парови(B-C, D-E ili H-L)•Пример: MOV A, M;(A) ← [H-L]LDAX B;(A) ← [B-C]

Интерапти кај 8085•Интерапт е процесот кога некој надворешен уред може да го добие вниманието од микропроцесорот. Процесот е асинхронен и го започнува В/И уредот.•Интераптите можат да се класифицираат во два вида: маскирачки (можат да бидат одложени или одбиени) и немаскирачки.•Другата поделба на интераптите е на векторски и невекторски (адресата на сервисната рутина треба надворешно да се добие преку некој уред.).

•Постојат пет интерапт пинови на микропроцесорот 8085. Тие интерапти се TRAP, RST 7.5, RST 6.5, RST 5.5 и INTR.•Интерапт кој може да биде исклучен од страна на софтвер е наречен маскиран интерапт. Интераптот кој не може да се маскира е немаскиран интерапт.•Микропроцесорот 8085 има 8 (осум) софтверски интерапти од RST 0 до RST 7.

•TRAPинтераптот има највисок приоритет па следат RST 7.5, RST 6.5, RST 5.5 ина крај INTR.

Page 5: Mikroprocesori Za Ispit

Инструкциско множествоИнструкциите кај 8085 се организирани во 5 групи, исто така и регистрите се кодирани со по 3 бита (23 = 8, а имаме 7 регистри).Постојат еднобајтни, двобајтни и тробајтни инструкции кај 8085.

Типови на инструкции:-инструкции за податочен трансфер;

-за аритметички операции; (Ваквите инструкции ги ажурираат сите флагови во статусниот регистар. Множење и делење се изведуваат преку собирање и одземање.)

-за логички операции; (Еден операнд е акумулаторот. Кога имаме I во инструкцијата непосредно адресирање. Кога имаме X во инструкцијата индиректно адресирање.)

-за скокови (условни, безусловни и процедура); (Скоковите се реализираат врз основа на флаговите. Повик за процедура CALL)

-статус на процесорот;

Функциoнален oпис кај 8085•Функцијата на внатрешната пoдатoчна магистрала e да пренесува инструкции и пoдатoци меѓу процесорот и регистрите.

•Таа е 8 битна и целосно е издвоена од надворешната податочна магистрала која се поврзува со меморијата и сигналите за влез и излез.

•Внатрешната и надворешната податочна магистрала се поврзани меѓу себе преку бидирекционата магистрала.•T&C делот на микропроцесорот генерира временски и контролни сигнали за извршување на инструкциите. Овој дел ги вклучува: Clock сигналите, Контролните сигнали, Статусните сигнали, DMA сигналите и Ресет делот.

•Овој дел главно се занимава со земање и декодирање на операциите, а исто така генерира соодветни контролни сигнали за извршување на инструкциите како и неопходните сигнали за работа со надворешните уреди.

Контролни и статусни сигнали се: ALE, RD, WR, IO/M, S0, S1 и READY.

•Интерапт сигнали се: TRAP, RST 7,5, RST6,5, RST 5,5, INTR, INTA (acknowledgement) за потврда дека процесорот примил INTR интерапт.

•Сериски В/И сигнали се:SID и SOD.

•DMA сигнали се HOLD и HLDA.

•Ресет сигнали се RESET IN и RESET OUT.

Page 6: Mikroprocesori Za Ispit

8085 има 7 различни машински циклуси. Тие се:•Земање на операцискиот код•Мемориско читање• Мемориско запишување•В/И читање•В/И Запишување•Потврда за интерапт•неактивна магистрала (Bus idle)

•Кога процесорот извршува програма, инструкциите (1,2 или 3 бајтни) секвентно се извршуваат од страна на системот. •Времето потребно од страна на процесорот за извршување на една инструкција се нарекува Инструкциски Циклус (IC).

•Еден инструкциски циклус се состои од Циклус на земање (Fetch Cycle (FC)) и циклус на извршување (Execute Cycle (EC)). Односно IC = FC + EC.

•Секоја инструкција се состои од две полиња: Тоа се Операцискиот код (opcode) и операндот.

•Кога системот започнува со извршување на инструкцијата, прво го декодира опрецискиот код, и потоа одлучува уште колку бајти треба да се донесат од меморијата. Минималната вредност е 0 (како при RAR), максималнта вредност е 2 (како при STA 4059 H

•Кај еднобајтните инструкции операцискиот код и оперндот се наоѓаат во истиот бајт.

•Кај двобајтните инструкции во првиот бајт е операцискиот код, во вториот бајт е операндот или податокот или адресата.

•Кај три бајтните инструкции. Во првиот бајт е операндот, во вториот бајт е нискиот бајт од адресата (8-те помалку значајни бита) во 3-тиот бајт е високиот бајт од адресата.

•Нискиoт бајт oд адресните линии (AD0 –AD7) е дoстапен на мултиплексираната адреснo-пoдатoчна магистрала за време на сoстoјбата Т1 вo секoј машински циклус, oсвен вo циклусoт на неактивна магистрала.

•Пoвисoкиoт бајт на адресата (А8-А15) е дoстапен за време oд Т1 дo Т3 сoстoјбата вo секoј машински циклус oсвен вo циклусoт на неактивна магистрала.

•ALE сигналoт oди висoкo на пoчетoкoт на Т1 при секoј машински циклус и oди на нискo на крајoт oд Т1 и се задржува на нискo се дo крајoт на машинскиoт циклус.

•Ова менување од високо на ниско кај ALE сигналот на крајот од Т1 се користи да се лечира нискиот бајт од адресните линии (A0 –A7) и на тој начин понискиот бајт односно линиите од A0 –A7 се достапни се до крајот на машинскиот циклус.

Page 7: Mikroprocesori Za Ispit

•Податочниот трансфер од меморијата или влезно-излезните уреди до микропроцесорот или обратно, се одвива за време на Т2 и Т3 состојбите од машинскиот циклус.

•Во машинскиот циклус за читање, податоците се појавуваат на почетокот на Т3, додека во машинскиот циклус за запишување податоците се појавуваат во Т2.

•Статусните сигнали се IO/ M , S0 и S1. •Нивните вредности го определуваат типот на машинскиот циклус низ кој поминува системот. •Овие три статусни сигнали стануваат активни од почетокот до крајот на секој машински циклус.•Кога RD е активен, микропроцесорот чита или од меморија или од влезно/излезен уред.

•Додека кога е активен WR сигналот микропроцесорот запишува или на В/И уред или во меморија. •Тие се активни во вториот и третиот временски циклус.•Првиот машински циклус на секоја инструкција претставува Земање на операцискиот код(Fetch).

•На тој начин се определува видот на инструкцијата која треба да се изврши од страна на системот. Должината на овој машински циклус варира пд 4T дп 6T состојби (временски циклуси)и зависи од видот на инструкцијата.

•Во овој машински циклус, процесорот ја сместува содржината од програмскиот бројач на адресните линии, определувајќи ја природата на машинскиот циклус (со IO/M, S0 иS1) и го активира ALE сигналот. Сето тоа се случува во состојба Т1.

•Во состојбата Т2, RD сигнал се активира и на тој начин определената мемориска локација се чита, и содржината се сместува на податочната магистрала (D0-D7).

•Во Т3, податоците од податочната магистрала се сместуваат во инструкцискиот регистар (IR)и RD сигналот оди на високо ниво, оневозможувајќи ја меморијата.

•Во Т4, процесорот прави одлука, врз основа на декодираниот IR, дали да влезе во Т5 и Т6 или да влезе во Т1 на следниот машински циклус. Инструкции од еден бајт кои оперираат со 8 битни податоци се извршуваат во Т4. ADD B, MOV C, B; RRC, DCR C.•И двата циклуси мемориско читање и мемориско запишување се 3Т циклуси.

•При мемориско читање, се чита содржината од R/W меморијата (вклучувајќи ја и Стек меморијата) или ROM, додека при мемориското запишување се сместуваат податоците во податочната меморија. •Статусните сигнали (IO/M, S0, S1) се комплементирачки кај циклусите за мемориско читање и мемориско запишување. •Операциите за читање и запишување се изведуваат во Т2. •Во Т3 при мемприското читање, податоците од податочната магистрала се сместуваат во некој определен регистар (А,В,С) и RD сигналот оди на високо ниво, со што се

Page 8: Mikroprocesori Za Ispit

оневозможува меморијата. Во Т3 од мемориското запишување WR сигналот оди на виспко ниво со што исто така се оневозможува меморијата.•В/И Читањето и запишувањето се слични на мемориското читање и запишување. •Разликата е тоа што при овој циклус сигналот IO/M е на високо ниво, со што укажува дека овој машински циклус е поврзан со влезно/излезни операции. •И овие машински циклуси траат 3Т состојби. •Кај I/O читањето, податоците од влезно излезните уреди се достапни во Т2 и Т3 состојбите, додека во истите состојби при I/O запишувањето, се достапни податоците од процесорот.Во машинскиот циклус М1, RST се декодира. Тоа иницира CALL до определена векторска локација. Содржината на програмскиот бројач се сместува во стек меморијата во машинските циклуси М2 и М3.•М2 и М3 машинските циклуси се потребни за повикување на 2 бајти од адресата кои следат по CALL инструкцијата. Мемориското читање се прави во машинските циклуси М4 и М5 во кои содржината од програмскиот бројач се става во стек и потоа заппчнува нов инструкциски циклус.•Постојат неколку ситуации во кои машинските циклуси не се нити читање ниту запишување, и таквиот циклус се нарекува машински циклус на неактивна магистрала.•Такви ситуации настануваат кога системот извршува DAD инструкција или за време на внатрешното генерирање на операцискиот код за RST и TRAP интерапти. •ALE сигналот ја менува состојбата за време на Т1 во секој машински циклус, но во машинскиот циклус на неактивна магистрала (bus Idle), АLE не ја менува состојбата.

•Секоја операција на читање и запишување кај 8085 се нарекува машински циклус. •Извршувањето на секоја инструкција се состои од секвенца на 1 до 5 машински циклуси•А секој машински циклус се состои од 3-6 временски циклуси.•STA инструкцијата предизвикува содржината на акумулаторот да се смести на адреса која се наоѓа во 2 и 3 бајт од инструкцијата.•Многу пати може да се случи да постои брзинска некомаптибилност меѓу микропроцесорот и меморијата или В/И уреди. •Најчесто микропроцесорот има поголема брзина. •Во дадена ситуација, ако микропроцесорот е подготвен да прифати податоци од периферен уред додека сеуште не постои некој валиден податок во уредот, тогаш системот влегува во состојба на чекање (WAIT)состојба•и пинот READY се става на ниско ниво од страна на уредот.

•Кога уредот ќе биде подготвен спо валидни податоци се активира READY пинот на микропроцесорот, и тој ги прифаќа податоците од периферниот уред со помош на софтверски инструкции.

•Фечирањето (земањето) на операцискиот код се разликува по тоа што има повеќе од три временски циклуси.•Opcode fetch машински циклус (на DCX)•При секој машински циклус се испраќаат 3 статусни сигнали (IO-M#, S1,S0)

Page 9: Mikroprocesori Za Ispit

INTEL 8086 8088Основни карактеристики• 8088 е дизајниран со 8 битна податочна магистрала, 8086 со 16 битна.• Спакувани се во 40 пинско куќиште и работат од единечен 5V извор.• Примена: од минимални системи па се до сложени системи со повеќе процесори.• Со 20 адресни линии адресираат 1 МВ меморија.• Постојат 2 режими на работа: минимален и максимален.

Некои од 40 пинови имаат различна функција во мин. и макс. режимите на работа.Во мин. режим овие пинови пренесуваат контролни сигнали директно до меморија и периферните уреди.Во макс. режим истите пинови имаат функции за средни и големи системи (системи со повеќе процесори). Контролните функции тогаш ги извршува посебна компонента 8288 магистрален контролер.Вискоите перформанси кај двата процесори се добиваат со комбинирање на 16 битната интерна магистрала со архитектура која овозможува паралелно вчитување на инструкциите во слободните циклуси.

Микропроцесорите извршуваат програма со кружење на следните чекори:– Правење fetch на инструкција од меморијата– Читање на операндот– Извршување на инструкцијата– Враќање на резултатот

• EU (извршната единица) ги извршува инструкциите• BIU (единицата за комуникација со магистралата) прави fetch на инструкциите, ги

чита операндите и ги враќа резултатите.

Извршна единица:– 16 битна ALU во EU ги чита статусните и контролните знаменца и

манипулира со општите регистри и инструкциските операнди.– Нема директна врска со надворешниот свет, а инструкциите ги добива од

BIU.– Сите адресни манипулации од оваа единица се 16 битни, а BIU прави

релокација и може да користи 20 бита за адресирање.Единица за комуникација со магистралата:

– BIU ја извршува целата комуникација со EU, меморијата и периферните уреди.

– Меморира инструкции во инструкцискиот ред на чекање (кај 8086- долг 6 бајти, кај 8088- 4 бајти)

– Иницира fetch кога барем еден 1 бајт е слободен од инструкциската редица кај 8088 или 2 бајта кај 8086.

– При скок се ресетира адресата на чекање се полни редицата со нова адреса.

Page 10: Mikroprocesori Za Ispit

Општи регистри:– Двата процесора имаат исти 8 16 битни општи регистри– Поделени се на две групи од по 4 регистри

• Податочни регистри (H и L група)- можат да се користат и адресираат како 8 битни.

• Поинтер и индекс регистри (или P и I група)Сегментни регистри

– Воведување на сегментација на меморискиот простор (делење на меморијата на логички сегменти од 64 КВ)

– Процесорот има пристап до 4 сегменти оддеднаш,а нивните базни адреси се во сегментните регистри. CS (Code), SS (Stack), DS (data),ES (extra)

Инструкциски покажувач (IP)– 16 битен, аналоген на програмскиот бројач РС.– Се контролира од BIU.– Го содржи офсетот (одалеченоста во бајти) на следната инструкција од

почетокот на тековниот коден сегмент. (покажува на следната инструкција која треба да се прочита од BIU)

– Програмите немаат директен пристап до IP, но можат да предизвикаат негова промена или размена со стекот.

Знаменца:– 6 еднобитни статусни знаменца контролирани од ЕU– На располагање постојат група на инструкции за проверка и промена на

знаменцата– Контролни знаменца

• TF –Trap DF- Direction IF- Interrupt enable– Статусни знаменца

• OF-overflow, SF- Sign, ZF-zero, AF- Auxillary Carry, PF-Parity, CF-CarryТакт генератор

– Потреба од надворешен такт сигнал– Intel за оваа намена нуди 8284- Clock Generator/Divider– Освен тоа што го обезбедува системскиот такт сигнал, овој уред го

обезбедува и хардверскиот ресет и обезбедува механизам за додавање на wait циклуси.

– Потребен е екстерен сигнал да осцилира на трипати поголема фреквенција од бараниот такт сигнал.

– Освен CLK, обезбеден е уште и PCLK (Peripheral Clock) на половина фреквенција.

Режими на работа– MN/MX- пинот приклучен на +5V процесорот се става во мнимален режим

на работа а ако е заземјен во максимален.Максимален режим на работа

– BUS LOCK. BIU го активира LOCK кога EU извршува 1 бајтна LOCK инструкција.– Во мин. Режим овој пин не е на располагање, но LOCK може да се скористи

да го успори HLDA одговорот на HOLD барање.

Page 11: Mikroprocesori Za Ispit

– WAIT и TEST- кога EU извршува WAIT инструкција, резултатот зависи од TEST линијата (ако таа е некативна процесорот се става на чекање и ја тестира секои 5 clock-а).

REQUEST/GRANT линии.-Кога 8086/8088 е конфигуриран во max режим на работа, HOLD и HLDA линиите еволуираат во 2 пософистицирани сигнали RQ/GT0 и RQ/GT 1 (request/grant).-Тоа се двонасочни линии кои ја делат локалната магистрала меѓу 8086 (8088) и два други процесори со handshake секвенца.-request/grant секвенцата се одвива во 3 чекори request, grant и release.-Процесорот испраќа имплус на request/grant линијата, процесорот враќа пулс на истата линија кажувајќи дека навлегува во HLDA состојба. BIU e исклучен од магистралата. Кога другиот процесор ќе заврши со магистралата испраќа сигнал дека магистралата е слободна до 8086.- RQ /GT0 има повисок приоритет од RQ/GT 1

Организација на меморијата– 8086 може да адресира 1 048 576 бајти на меморија во двата режими на

работа– Мемориските простори се организирани како идентични низи на бајти. – Инструкциите и податоците можат да се чуваат на која било адреса– Зборовите секогаш се чуваат со високиот бајт на повисоката мемориска

локација– Посебна класа податоци се double word. Овие се викаат покажувачи и се

користат за адресирање на податоци и код надвор од тековно адресираните сегменти

– Ниско адресираниот збор на покажувачот ја содржи вредноста на офсетот а високиот збор ја содржи сегментната базна адреса

Сегментација– 8086 го гледа адресниот простор од 1 МВ како група на сегменти

дефинирани од апликацијата.– Сегмент е логичка целина од меморијата до 64КВ– Секој сегмент содржи последователни мемориски адреси и е независна

посебно адресибилна целина– Сите сегменти започнуваат на 16-бајтни мемориски граници а можат да се

преклопуваат и надоврзуваат. – Една физичка мемориска локација може да се содржи во една или повеќе

мемориски сегменти.Генерирање на физчки адреси

– Секоја мемориска локација има два типа на адреси: физичка и логичка– Физичката адреса е 20 битна вредност единствена за секој бајт во

меморискиот простор.– Физичките адреси примаат вредности од 0h до FFFFFh.

Page 12: Mikroprocesori Za Ispit

– Секоја размена меѓу процесорот и меморијата ги користи физичките адреси, на тој начин се овозможува динамички менаџмет на мемориските ресурси.

Една логичка адреса се состои од базна адреса на сегментот и офсетЗа секоја мемориска локација вредноста на базната адреса го лоцира првиот бајт од сегментот, а офсетот ја специфицира одалеченоста во бајти на саканата локација од почетокот на сегментот.

Базата на сегментот и вредноста на офсетот се 16 битни вредности.Повеќе различни физички адреси можат да мапираат иста физичка локација.

Секогаш кога BIU пристапува кон меморијата се генрира физичка адреса од логичката, притоа базата на сегментот се поместува 4 бита на лево (се множи со 16) и на новодобиената вредност се додава офсетот.

Инструкциите секогаш се читаат од CSIP го содржи офсетот на бараната инструкцијаИнструкциите кои работата со стекот секогаш работат во SSSP го чува офсетот од врвот на стекотПовеќето променливи се чуваат во DSОфсетот на променливи се пресметува ЕU.

Стринговите се адресираат различно од другите променливиИзворниот операнд се очекува да биде во тековниот DS. Неговиот офесет се зема

од регистарот SI (source index).Одредишниот операнд се наоѓа во тековниот ES, а офсетот се чита од DI (destination

index)

String инструкциите автоматски ги конфигурираат SI и DI регистрите да процесираат по еден бајт или збор.

Имплементација на стек– Имплементиран во меморија и се лоцира со SS и SP– Еден систем може да има неограничен број на стекови, а еден стек може да

биде до 64 КВ– Само еден стек е директно адресибилен тоа е тековниот стек адресиран со

SS и SP– 8086 користи стек долг 16 бита па инструкциите кои работата со стекот

пренсуват по цел збор одеднаш– Кога се става податок во стекот SP се намалува за 2 и се запишува податокот.– А кога се вади податок, тој се чита а потоа се зголемува SP за 2.

Page 13: Mikroprocesori Za Ispit

Резервирани мемориски адреси– Два дела од врвот и дното на меморијата се користат за посебни намени (за

интерапти и reset процесирање) и програмерите не би требало да ги косристат

– Тоа се локациите 0h-7Fh (128 бајти) и FFFF0h-FFFFFh(16 бајти)8086 разлики во пристапот до меморијата

– Може да се има пристап или до 8 или до 16 бита од меморијата одеднаш.– Доколку инструкцијата покажува на збор лоциран на парна адреса, 8086 ќе

го пренесе зборот во еден циклус, а ако зборот започнува на непарна ќе бидат потребни 2 циклуса.

– Да се оптимизира системот, 16-битните податоци треба да бидат сместени на парни адреси (посебно за стекот).

– Секогаш се прави fetch на инструкции во зборови, освен во првиот fetch откако се бара непарна адреса

– 8088 секогаш работи со меморијата во бајти.Периферни уреди

– В/И (I/O) уредите можат да бидат поставени во меморискиот простор или да бидат адресирани како I/O.

– I/O просторот може да содржи до 64К 8 битни порти или до 32К 16-битни порти.

– IN и OUT разменуваат податоци помеѓу акумулаторот и портите на уредите.– I/O просторот не е сегментиран и ако треба да се пристапи на порта, BIU

едноставно ја става адресата (0-64к) на ниските 16 линии на адресната магистрала.

– Мемориски мапираните I/O треба да се однесуваат исто како мемориските компоненти и процесорот не ја познава разликата.

Direct memory access (DMA)-– Во минимален режим на работа има HOLD и HLDA сигнали компатибилни со

DMA контролерите 8257 и 8237 Прекини

– Едноставен систем за пекини, секој прекин има свој код.– Можат да се опслужат до 256 различни типови на прекини– Прекините можат да бидат иницирани од надворешен хардвер или пак од

самиот софтвер.Екстерни прекини

– има две линии INTR и NMI кои можат да ги користат надворешните уреди да сигнализираат прекини.

– INTR обично се користи со 8259 (PIC)Кога INTR е активен процесорот функционира според IF знаменцето.Извршувањето на прекинот не започнува додека не заврши тековната инструкција.Прекините се овозможуваат со STI (set interrupt enable flag) a се оневозможуваат со CLI (Clear interrupt enable flag)Прекините можат да бидат и селективно овозможени со испраќање на команди на 8159

Page 14: Mikroprocesori Za Ispit

Процесорот одговара на прекин по два последователни INTA циклуси.• Првиот INTA циклус му сигнализира на 8259 дека ќе го опслужува

барањето.• За време на вториот INTA циклус 8259 одговара со ставање на 1 бајт

на магистралата кој го покажува типот на прекин.• Процесорот го чита типот и продолжува со извршување на

соодветната irq процедура.Екстерно барање на прекин може да пристигне и на NMI линијата која не можеа да се маскира.

• Осетлива на ивица и се користи за сигнализација на катастрофални случаи (грешка во меморијата, прекин во напојувањето и сл)

• Не може да се исклучи и e со поголем приоритет од INTR.Интерни прекини

– INT инструкцијата генерира прекин веднаш по нејзиното извршување. Типот на прекин е кодиран во инструкцијата.• Ако ОF e сетира, INTO (interrupt on overflow) генерира прекин од тип

4 веднаш по извршувањето• Процесорот сам генерира irq0 DIV или IDIV ако резултатот е преголем• Ако ТF е сетиран процесорот автоматски генерира irq1 по секоја

инструкција.• Интерните прекини не можат да се исклучат, освен single step• Имаат повисок приоритет од екстерните.

Интерапт поинетр табела– Можат да се разликуват до 256 прекини, адресирани со double word

покажувач.– Високиот збор ја содржи базата а нискиот збор офсетот– Секој податок е долг 4 бајти (Адреса = тип *4)– По извршувањето на push се активира интерапт процедура еквивалентна на

CALL инструкција.– Процесорот ја запишува адреста на следната инструкција со push на CS и IP

на стекот, овие вредности подоцна се зманети со вториот и првиот збор од елементот во irq табелата.

– Кога се извршува интерапт процедура CS и IP се ставаат во стекот, а TF и IF се поништуваат.

– NMI и софтверските и интерните прекини во секое време можат да прекинат и интерапт процедура

– Интерапт процедурите завршуваат со IRET

Page 15: Mikroprocesori Za Ispit

Паралелен трансфер 8212 – 8282 – 8286Процес на селективен трансфер на податоци кон или од селектиран периферен уред.Методи:-Наједноставен I/O.-Режим на поздравување (strobe-режим).Режим на двојно поздравувањеСе остварува со додатна компонента помеѓу микропроцесорот и уредот.Секој паралелен уред треба да овозможи:- Податочно баферирање.- Адресибилност.-Контрола и тајминг.

8212 – 8 битна I/O портаНепрограмибилна I/O порта 8212, присутна во секој систем на 8085.8 влеза, 8 излези, 2 влеза за селекција,1 strobe влез, влез за режим на работа, интерапт излез, и CLR.

8282/8283 Октален леч-8282/8283 се три- состојбени излезни бафери.-еднонасочна компонента.

8286/8287 Октален bus трансивер-8286/8287 е 8 битен бидирекционен бафер.-20 пинско куќиште.

8155/8156 256x8 Static RAMОпис-2к статички RAM (256x8)-две 8 битни I/O порти (PA и PB)Внатрешни регистри-14 битен тајмер/бројач.

Операциски режими (режими на работа) 8255-Mode 0 (основен влез/излез)

Две 8-битни порти и две 4 битни портиСекоја порта може да биде влез или излез. Излезите се лечираат, а влезовите не. Можни се 16 различни влезно/ излезни конфигурации.

-Mode 1 (strobed влез/излез)Основни функциски карактеристики

Две групи (А и В)Секоја група се состои од една 8-битна податочна порта и една 4 битна контроло/податочна порта.8 битната податочна порта може да биде влез или излез.И влезовите и излезите се лечуваат.

Page 16: Mikroprocesori Za Ispit

-Mode 2 (двонасочна магистрала)Се користи само кај групата А.

Една 8 битна двонасочна магистрална порта (порта А) и една 5 битна контролна порта (Порта С).

И влезовите и излезите се лечираат.

Intel 8251Синхрон и Асинхрон режим на работа.Full Duplex, двојно баферирачки праќач и примач на податоци.Детекција на грешка.28 пинско куќиште.Universal Synchronous/Asynchronous Receiver/Transmitter (USART).

-Уредот ги прима податоците од процесорот во паралелен формат, ги конвертира во сериски и потоа ги праќа на порта/модем, но истовремено и прима сериски податоци од порта/модем, ги конвертира во паралелен формат и ги праќа на процесорот.- Исто така, брише или додава бити или знaци карактеристични за преносот.

Функционален опис-Data Bus Buffer; 3-state, бидирекцион 8 битен бафер. Податоците се пренесуваат или примаат со помош на IN/OUT инструкциите.-Read/Write Control Logic – Блок кој ги прима сигналите од контролната магистрала и генерира контролни сигнали за 8251. Ги содржи контролниот и командниот регистер.-Reset – Логичка единица на овој влез ја става 8251 во Idle режим.-CLK – поврзан за clock генератор (8224).- #WR – “0” на овој пин значи дека CPU запишува на 8251.-#RD – “0” на овој пин значи дека CPU чита од 8251.- C/#D – “1” се чита/запишува контролен збор, “0” податок.- #CS – Се селектира 8251 и се поврзува со адресен декодер.-Modem Control – содржи влезови и излези за интерфејс кон Модем (може и друг уред).-#DSR – Влезен сигнал, кој CPU го користи најчесто за тестирање на модем.- #DTR – Излезен сигнал.- #RTS – Излезен сигнал.- #CTS – Нула на овој влез овозможува сериски пренос на податоци доколку битот TxEN во командната Инструкција е сетиран.-Transmitter buffer – Прима паралелни податоци ги конвертира во сериски, внесува дополнителни карактери или битови и го праќа протокот на податоци преку TxD.-Transmitter Control – Контрола на серискиот пренос на податоци.

Page 17: Mikroprocesori Za Ispit

TxD Пинот служи за сериски излез на податоциTxRDY – Излезен сигнал кој му сигнализира на CPU дека трансмитерот е подготвен да прими податок. Може да се користи како интерапт или CPU може да проверува преку status read операција. Овој пин автоматски се ресетира кога CPU ќе смести карактер за пренос.#TxC – Рата на пренос на карактери. При синхрона трансмисија фреквенцијата е еднаква со актуелната baud рата. При асинхрон режим фреквенцијата е baud рата x константа (16,64). Битовите од серискиот податок се шифтираат при опаѓачка ивица.

-Примачки бафер-RxD – служи за сериски влез-RxRDY – излез кој индицира дека 8251 има карактер кој треба да го прочита CPU. Овој излез се врзува на интерапт или пак се чита соодветниот бит при Status Read операција (polled операција).-#RxC – Рата на примање на карактери. При синхрона работа, фреквенцијата е еднаква со актуелната baud рата. При асинхрон режим фреквенцијата е baud рата x константа (16,64). Битовите од серискиот податок се шифтираат при растечка ивица од #RxC.

Генерален опис-Програмерот треба да ја испрограмира компонентата преку: бауд ратата, должина накарактери, број на стоп битови, синхрон или асинхрон режим, парна/непарна парност итн.- По програмирањето, преку TxRDY излезот, 8251 му сигнализира на CPU дека е спремна да прими карактер. Додека, пак, преку RxRDY пинот сигнализира дека CPU треба да прочита карактер.-Притоа, мора да е сетиран TxEN и активен #CTS.

Асинхрон режим (Трансмисија)Кога е испратен карактер од CPU, 8251 автоматски внесува стартен бит и програмиран број на стоп битови. Исто така, пред стоп битовите се внесува и бит за парна или непарна парност. Потоа податоците преку серискиот излез TxD се испраќаат со рата (при опаѓачка ивица на TxC) еднаква на 1,1/16 или 1/64 од онаа на TxC (дефинирано со Mode Instruction).

Асинхрон режим (Примање)RxD линијата е нормално „1“, опаѓачка ивица означува почеток на стартниот бит. Потоа се стартува counter кој ја проверува парноста (при грешка се сетира флаг за парност). Потоа, стоп карактерите сигнализираат крај на карактер. Овој карактер се внесува во Data Bus Buffer-от и преку RxRDY се сигнализира на CPU дека карактерот е спремен за fetch. Доколку CPU не го прочита карактерот, новиот карактер го заменува стариот и се сетира OVERRUN флагот (не се стопира работата на 8251).

Дефиниција на Command Instruction-Откако ќе се внесе Mode инструкцијата се внесува Command инструкцијата.

Page 18: Mikroprocesori Za Ispit

Intel 8259А

Еден прекин бара еден влез за прекини-8086: два влеза (NMI, INTR)-Повеќе периферии = повеќе барања за прекин-Се штеди процесорското време:PIC (Programmable Interrupt Controller)

-Надворешен уред кој ги мултиплексира прекинитена една линија

Како работи 8086 INTR влезот?

8086 IF се поставува кога INTR е високо ниво:

1. Праќа два сигнали за потврда преку INTA на пинот INTA 8259A PIC (и го добива типот на прекин од 8259A) 2. Ја пресметува адресата во IVT (се множи добиениот тип на прекин со 4)3. Ги става флеговите на стек4. Се бришат IF и TF5. Се става повратната адреса на стек6. Ја сместува почетната адреса од IVT во CS и IP7. Ја извршува прекидната рутина

-Се справува со 8 интерапти за CPU -Го одредува приоритетот на интераптите-Без додавање на доплнителни кола можно е каскадно проширување и справување со 64 интерапти-28 пинско куќиште-Работи во повеќе режими на работа-Дизајнирана да го минимизира софтверското преполнување со повеќе интерапти

Делови кај 8259A-IMR (Interrupt Mask Register)-IRR (Interrupt Request Register)-ISR (Inservice Register)-Priority solver

Внатрешен поглед на 8259A• IMR (Interrupt Mask Register)

-(Де)маскирање на поединечните влезови за прекин-Bit во регистарот одговара на прекинот со ист број-Демаскирање на прекин преку праќање 0 на одговарачкиот бит.

Page 19: Mikroprocesori Za Ispit

• IRR (Interrupt Request Register)-Bit во регистарот одговара на влезот за прекин-Ако на некој од влезовите има барање за прекин ⇒ соодветниот бит во регистарот е поставен-Барањето за прекин мора да остане активен се до опаѓачката ивица на првиот импулс

• ISR (Inservice Register)-Bit во регистарот одговара на влезот запрекин-Доколку барањето моментално се опслужува ⇒ соодветниот бит во регистарот е поставен

• Priority solver-Одредува кој прекин ќе биде опслужен

Каскадно поврзување на 8259AАко не се доволни 8 влезови за прекин- Додавање на уште една 8259A во системот ⇒ 15влезови-На секој влез по еден 8259A ⇒ 64 влезови- 8086: еден INTR пин-Master – преку INT пинот поврзан директно на 8086

_ Пиновите CAS0, CAS1 и CAS2 работат како излези- Slave - останатите, каскадни 8259A

_ Нивните INT пинови ® на IR влезовите на master_ Пиновите CAS0, CAS1 и CAS2 работат како влезови_ SP/EN пинот поврзан на маса

- INTA 8086 -> и на master и на сите slave-ови

Обработка на барањата за прекин-Slave примил барање на некоја од своите IR линии-Master праќа INT сигнал до 8086 INTRвлезот ако тој IR влез:1. е демаскиран2. има поголем приоритет од сите прекини кои моментално се опслужуваат во мастерот-IF=1: 8086 праќа два импулса и до мастерот и до slave-от

o Прв INTA: -Slave-от го игнорирa -Master-от на CAS0..2 го дава 3-битниот id на slave-от. со ова се активира slave-от

o Втор INTA: -slave-от го праќа типот на прекинот до 8086 преку осумте долни линии на податочната магистрала-Барањето за прекин е директно на влезот за прекин на master-от-Се е исто, само што сега мастерот сам го праќа типот на прекин до 8086 кога ќе го добие вториот INTA импулс.

Page 20: Mikroprocesori Za Ispit

Иницијализација на 8259A1. Да се одреди системската адреса на уредот2. Да се знаат интерните адреси во уредот3. Системската адреса на секој дел од уредот4. Форматот на командните зборови5. Создавање на командните зборови6. Праќање на командните зборови

Командни зборови-Зборови за иницијализација -ICW (1-4)-Операциони зборови -OCW (1-3)

End of Interrupt (EOI)- AEOI (D1 во ICW4)

-автоматско ресетирање на битот во ISR, на опаѓачка ивица на вториот INTA импулс.-EOI (D7, D6 и D5 во OCW2) – мора да се прати командниот збор до 8259.

-Неспецифициран EOI, кога 8259 e во FNM.-OCW2 (R = 0, SL = 0, EOI = 1)

-Специфициран EOI, кога 8259 не во FNM.-OCW2 (R e 0, SL e 1, EOI e 1) и со помош на битовите L0, L1 и L2 го специфицираме битот во ISR

Приоритет-Автоматска ротација (уреди со еднаков приоритет)-Специфицирана ротација

Page 21: Mikroprocesori Za Ispit

Микропроцесори / МикроконтролериМикропроцесорот е компјутер, сместен во интегрално коло. Основниот елемент од

кој е изграден е силициум. Големината им од неколку милиметри (во 70-тите години) до неколку nm (современите микропроцесори). Тие имаат интегрирани милиони транзисториШто е микроконтролер?

Општо кажано микроконтролерот преставува дигитална интегрирана шема (интегрирано коло), која прави тоа што и кажеме. Функцијата која ќе ја извршува е укажана во програма, која е запишана во него. Значи микроконтролерот треба да биде програмиран.

Микроконтролерите се корисни кога треба да се дизајнира уред кој треба да извршува голем број на пресметки или сложни функции. Пример на употреба на микроконтролерите: комуникација со други уреди, управување на графички дисплеи, мерење на различни величини и т.н. Реализацијата на слични функции с помош на дискретни елементи или функционални интегрални шеми би довело до значително усложнување на уредот, зголемување на размерот, цената, намалување на сигурноста, квалитетот и т.н. Разлика меѓу микроконтролер и микропроцесор

Нај основна разлика е тоа што микропроцесорот е дел од микроконтролера. За да работи еден микропроцесор му се потребни дополнителни внатрешни блокови како: меморија (програмна и за податоци), тактов генератор, влезни - излезни уреди и т.н. За разлика од него микроконтролерот ги обединува сето тоа во една целина и може да функционира како самостоен уред. Од овде следува дека микроконтролерот преставува една завршена шема, во која микропроцесорот е еден од основните елементи. ОсобеностиМикроконтролерите имаат повеќе особености и карактеристики по кој може да ги групираме и разликуваме еден од друг. Особеностите по кој може да ги групираме се: колку битов е, видот и големината на меморијата, какви периферни уреди има, микропроцесор кој го користи, колку и од какви регистри се состои, број на порти или пинови, уреди за комуникација и т.н.Меморија на микроконтролеритеМикроконтролерот има меморија за податоци (RAM) и програмска меморија (ROM).ROM – Микроконтролерот може да користи разновидни ROM мемории:

PROM постојана меморија, еднократно програмирана. Се користи при сериско производство.

EPROM може многукратно да се програмира, пред да се запише нова програма претходната се брише со помош на UV зраци.

EEPROM може многукратно да се програмира се брише со електронски сигнал, недостаток ограничен број на циклуси на бришење/запишување.

FLASH. може многукратно да се програмира бришењето и програмирањето е со еден ист програматор, недостаток ограничен број на циклуси на бришење/запишување.

Периферни уреди

Page 22: Mikroprocesori Za Ispit

Тоа се блокови на микроконтролерот кој дополнително рашируваат можностите, микроконтролерот. Тој може да функционира и без нив но реализацијата на некој функции ќе биде многу потешка. Периферни уреди се: влезно излезните порти, тајмери, аналогно дигиталните конвертори, сериските порти и т.н.Од периферните уреди, единствено влезните и излезните порти и тајмери ги има во секој микроконтролер.Типови на микроконтролериПроизводителите на микроконтролери претставуваат свои типови микроконтролери, така што од типот може да разбереме кој го произведува, некои типични спецификации за тој тип или фамилија, архитектурата, дизајн, меморија, микропроцесор, какви периферија е достапна, технологија на производство, колку битов е и т.н. Некој типови на микроконтролери се: MSP430 (16-bit), CF (32-bit), ARM, MPIC(32-bit), S08, AVR, PIC, V850, PowerPC ISE, PsoC и т.н [10].Регистри на микроконтролеритеРегистарот преставува клетка која чува или помни податоци. В него можат да бидат запишани и читани податоци кој се добиваат при процесот на работа на процесорот. Меморијата за податоци на еден микроконтролер се состои од множество регистри, секој од кој спаѓа во една од двете групи: Регистри општо значење (GPR-General Purpose Registers) и регистри со специјални функции (SFR-Special Functional Register ).SFR - регистрите се користат од централниот процесор и периферијата на микроконтролера. Секој периферен уред располага со еден или повеќе SFR - регистри, преку кој се управува работат и се осигурува достап до него.GPR - регистрите са клетки од меморијата, каде времено се чуваат податоци, кој се користат од централниот процесор. Од бројот на GPR- регистрите зависи сложноста на програмите, кој може да се состават и работат на микроконтролерот. Архитектура на микроконтролерАрхитектурата на микроконтролерите е поим кој е сврзан со организацијата на меморијата и брзината на микроконтролерите. Микроконтролерите може да се разделат на два основни типа, едните користат HARVARD архитектура, а другите Фон Нојманова архитектура [2].Фон Нојман архитектураКарактеристично за микроконтролерите, кој користат Фон Нойманова архитектура, е што инструкциите и податоците се извлекуваат од една меморија, по една магистрала. Повеќето микроконтролери работат с 8-битови податоци тогаш и самата магистрала по која се извршува размената е 8-битова За разлика од податоците, инструкциите имаат должина поголема од 8 бита,кое наложува извлекувањето од меморијата да биде со два или повеќе циклуса. Тоа одзема процесорско време и ја намалува брзината на микроконтролерите. Микроконтролерите кој користат Фон Нојманова архитектура се нарекуваат CISC микроконтролери (CISC-Complex Instruktion Set Computer ) кое значи микроконтролери со раширен набор од инструкции.

HARVARD архитектура

Page 23: Mikroprocesori Za Ispit

HARVARD архитектурата е една сравнително нов концепт, основната на идеја е за да се зголеми брзината на микроконтролерите. Особеност на таа архитектура е тоа што кај неа програмата и податоците се во различна меморија и достапот до нив е по различни магистрали. Одделните магистрали и мемории дозволуваат инструкциите да се запишуваат и извлекуваат како еден двоичен збор, така што по тој начин се намалува времето за извлекување и исполнување на инструкциите. Микроконтролерите кој користат HARVARD архитектура, се нарекуваат RISC микроконтролери ( RISC-Reduced Instruction Set Computer) кое значи микроконтролер со скратен набор инструкции.Разликата меѓу RISC и CISC микроконтролерите е тоа што првите работат со значителен помал број на инструкции за разлика од вторите. Тоа не значи дека првите имаат ограничени возможности. Разликата е, ако при CISC се реализира некоја операција со една инструкција, при RISC може да са потребни две или повеќе инструкции.Програмирање на микроконтролериПрограмите со кој работат микроконтролерите се запишани и складирани во ROM меморијата. Микроконтролерите во прво време се програмирале само во асемблер. Ако програмата е запишана во асемблер, персоналниот компјутер треба да има софтвер наречен крос-асемблер, што генерира машински код за микропроцесорот.Со понатамошниот развој на програмските јазици на високо ниво, развојните средини, станало возможно програмирање на микроконтролерите со јазици на високо ниво. Проектирани се јазици специјално за таа цел или верзии на општо познатите јазици како C, Java, Paskal и т.н. Компајлерите за јазиците на високо ниво имаат некој ограничувања, освен тоа и подобрувања за подобра поддршка на карактеристиките на микроконтролерот. Производителите на микроконтролери често нудат слободни софтверски продукти со кој полесно можат да развиваат програми или дизајнираат уреди кој главен елемент е микроконтролерот. За многу микроконтролери има разработено дијалекти на С, кој не ги користат стандардни инструкции, овде кодот дури може и да не биде сврзан со хардверски функции. Има голем број на достапни симулатори за микроконтролерите како што се Microchip's MPLAB или Keil uVision3. Со нив се извршува компјутерска симулација на програмата за микроконтролерот, кое дозволува на програмерот да го анализира поведението на микроконтролерот и програмата.Какво е потребно за развој на апликации за микроконтролери...?За програмирање на микроконтролери се потребни два елемента и тоа: хардвер и софтвер. Средствата кои са потреби за разработка на програма се следните:

1. Персонален компјутер. На него се инсталирани програмните продукти, потребни при процеса на работа;

2. Средства за проектирање и тестирање на програмата:a) Текстов редактор за пишување на програма;b) Транслатор/Компајлер - софтвер за преобразување на програмата во вид,

разбирлив од микроконтролера;c) Симулатор – со нив се извршува компјутерска симулација на програмата на

микроконтролерот. Тоа е софтвер кој функционира во рамките на персоналниот компјутер;

Page 24: Mikroprocesori Za Ispit

d) Емулатор – средство за хардверска симулација на програмата во услови блиски до реалните. Се состои од печатена плочка. Тој може да се користи за запишување и управување на некоја програма на самиот микроконтролерот. Во некои случаи тој може да биде и програма која ја емулира работат на микроконтролерот;

3. Уред за запис на програмата в микроконтролерот (програматор).Текстовиот редактор, транслаторот, симулаторот и емулаторот во повеќето случаи се интегрирани како одделни модули и може да се дел во заеднички програмски продукт, познат како развојна средина. По принцип секој производител на микроконтролери нуди развојна средина, која може да се користи за развој, проектирање и тестирање, симулирање и т.н.Какво е “развојна средина”?Проектирањето и развојот на програма за микроконтролер го вклучува следните основни работи: пишување, симулација, оптимизација, дебагирање, тестирање, компилирање, транслирање, симулација и т.н. Можеме да кажеме дека развојната средина (компјутерска програма или поточно пакет од компјутерски програми) се користат за исполнување на горе наведените дејности. Со други зборови развојната средина преставува комплет од софтверски инструменти, со чија помош се олеснува пишувањето, редактирањето, тестирањето, оптимизацијата на програмите. Програмирање на Flash меморијатаFlash меморијата може да се брише и запишува (програмира) со помош на електронско коло (in-circuit). Од Flash меморијата може да чита, брише и запишува. Функцијата за бришење може да брише сектор (1KB) или страница (64KB). Операцијата за бришење на чипот, ја брише целата меморија. Flash меморијата ја чува содржината и до 100000 циклуси на бришење/запис.ТранслирањеЈазикот кој се користи за пишување на програмата (асемблер или јазик на високо ниво) е разбирлив за нас, но не и за самиот микроконтролер. Еве зошто пред да ја запишеме програмата во микроконтролерот, таа треба да е во вид разбирлив за него.Микроконтролерот преставува дигитално интегрирано коло, при што програмата која треба да се запише во него треба да биде преобразувана во комбинација од единици и нули т.е. во дигитална форма.Преобразувањето се извршува во две етапи:1) Со посредство на софтуер-транслатор/компајлер, програмата која е напишана на асемблер или јазик на високо ниво, се преобразува во хекса децимален машински код. Како резултат на тоа преобразување, транслаторот генерира излезна датотека со екстензија .HEX (hexadecimal).2) Со помош на софтвер за програмирање и уред за врска помеѓу компјутерот и микроконтролерот (програматор или некој друг уред: конектор, емулатор), транслираниот хексадецимален машински код се претовара во бинарен и се запишува во микроконтролерот.Транслатор: Програма, која преобразува програма напишана на еден јазик (се нарекува изворен јазик, а програмата изворен код) в програма, напишана на друг јазик (наречена целен јазик или објектен код).

Page 25: Mikroprocesori Za Ispit

Компилатор: Транслатор, кој преведува (компилира) програма напишана на високо ниво во објектен код кој семантично одговара на код на јазик на пониско ниво, кој може да биде машински (на микропроцесора или виртуелна машина) или асемблерски јазик. Во јазиците на ниско ниво (асемблер) секоја инструкција одговара на една машинска команда. Командите на асемблер се точна копија на инструкциите на машинскиот јазик и се од два дела: код на операцијата (команда) и податоци за обработка. Програма напишана на јазик на високо ниво или асемблер се нарекува изворна програма. Прво изворната програма треба да биде транслирана до објектен код. Тоа е изворна програма преобразена во последователност од нули и единици. На практика Транслаторот/Компајлерот претставува компјутерска програма програма, во која се заложени сите правила и особености, сврзани со јазикот за програмирање. На базата на тие правила и особености се извршува и самото транслиране/преведување на програмите.Корисничката датотека го содржи кодот на програмата (Асемблер, C и т.н.) има соодветна екстензија. Всушност тоа е текст датотека, за пишување може да се користи и основен текстов едитор (Notepad, WordPad). Се користат специјални текстови редактори, кој се вградени в развојната средина. Користењето на тие редактори е препорачливо затоа што во нив се вградени удобни функции, кој се поврзани со структурата и правилата за пишување на програма на соодветниот јазик.Избор на микроконтролерПри избор на микроконтролер треба да обрне внимание на некој основни работи: достапната литература за микроконтролерот, сложноста на задачата која треба а ја извршува микроконтролерот, достапноста на микроконтролерот, развојна средина, достап до кориснички хардвер (програматор, емулатор), јазик за програмирање, периферија, процесор, системните функции, цена и т.н. При конструирањето на уредот се разделува на два дела: хардвер и софтвер. По кое следува разделување на функциите. Стремеж е секогаш поголем дел од функциите да се реализира програмски со помош на микроконтролерот. ПрограматорСо помош на програматор се остварува електронската врска меѓу микроконтролерот и компјутерот. Во зависност од конкретниот програматор, врската програматор – компјутер е преку серискиот порт (RS-232), паралелен (LPT) или USB порта на компјутерот. Развојна плочаСо цел на олеснување при разработката и тестирањето на шеми со микроконтролери се користат развојни плочи. Кон микроконтролерите може да се додаде следната периферија: клавијатури, дисплеи, сензори и т.н. Во зависност од моделот развојните плочи може да располагаат со вграден програматор, со кое во исто време микроконтролерите може директно да се програмира.