Обща информация за микроконтролери

Има три основни типа памет, използвани в микроконтролери. Програма памет е енергонезависима памет за съхранение на програмен код и константи. Тази памет не се променя съдържанието му по време на изпълнение. Паметта се използва за съхраняване променливи в програмата. Микроконтролера регистрира - този вид памет включва вътрешни регистри процесор и регистри, които се използват за периферни устройства.

Може да се изненадате малко количество микроконтролери памет. На следващо място, ще видите, че това не е техен основен недостатък. Но когато първата ни среща, тази функция е никак изненадващо, особено в сравнение с микроконтролери с модерни персонални компютри, които съдържат десетки мегабайта памет.

За съхранение на програми обикновено служи като вид енергонезависима памет:

PROM (веднъж програмируема ROM),

EPROM (електрически програмируема ROM с ултравиолетова изтриване)

EEPROM (ROM електрически запис и изтриване, към този тип са и модерен микрочип Flash-памет)

ROM (маска-програмируема ROM).

Всички тези видове памет са енергонезависима - което означава, че съдържанието на паметта се запазват след изключване на захранването на микроконтролера. Тази памет е необходимо, тъй микроконтролера не съдържа никакви устройства за съхранение на данни (дискове), за да заредите софтуера на компютрите. Софтуер се съхранява в микроконтролера.

При изпълнението на тази програма се чете от паметта, и устройството за управление (инструкция декодер), предвижда неговото декодиране и изпълнение на необходимите действия. Съдържанието на паметта на програмата не могат да бъдат променяни (препрограмирани) по време на програмата. Поради това, функционалността на микроконтролер не може да се промени, докато съдържанието на програмата си памет, няма да бъдат изтрити (ако е възможно) и препрограмиран (пълен с нови команди).

Имайте предвид, че битов микроконтролер (8, 16 или 32 бита) е определен в зависимост от капацитета на трансфер на данни. архитектура Екипът на Харвард може да има по-голям капацитет от данните, за да се даде възможност на четенето в един цикъл на целия екип. Например, PIC микроконтролери, в зависимост от модела се използват команди с битове 12, 14 или 16 бита. Командата AVR микроконтролер винаги е 16 бита. Въпреки това, всички тези устройства имат за трансфер на данни 8 бита.

В устройствата с малко данни архитектура Принстън обикновено определя капацитет (брой линии), използвани гуми. Мик Motorola HC 68 май 24-битовият инструкция намира на три клетки 8-битова програма памет. За пълния извадка от тази команда, трябва да извършите три цикъла прочетете тази памет.

Когато се казва, че устройството е на 8-битов, това означава, данните за бита, което е способна да се справи с микроконтролер.

ROM памет (ROM) се използва, когато програмния код се съхранява в микроконтролера по време на неговото производство. Предварително тестван и отстраняването на грешките програма, и след това се прехвърлят на производителя, където програмата се превръща в модел маска върху стъклена photomask. Получената photomask с маска, използвана в процеса на установяване на връзки между елементите, които изграждат паметта на програмата. Ето защо, тази памет е често по-нататък маска програмируеми ROM.

ROM е най-скъпият енергонезависима памет тип за масово производство. Въпреки това, той има и някои съществени недостатъци, които са довели до факта, че този тип памет е почти не се използват през последните години. Основните недостатъци са значителни разходи и време спестяванията в създаването на нов набор от маски и въвеждането им в производството. Обикновено този процес отнема около десет седмици и рентабилна с освобождаването на десетки хиляди устройства. Само при тези производствени обеми, предоставени от ROM предимство в сравнение с Е (Е) PROM. Има също ограничение, свързани с използването на микроконтролери само в специфична област на приложение, тъй като тя гарантира, че програмата е неподвижно фиксирана последователност от операции, както и не може да се използва за решаване на други проблеми.

електрически програмируема памет EPROM се състои от клетки, които са програмирани и изтрити от електрически сигнали с помощта на ултравиолетова светлина. ОБН памет може да се програмира само веднъж. Тази памет обикновено съдържа предпазители, които горят през време на програмирането. В момента, тази памет се използва много рядко.

EPROM памет клетка М е OS-транзистор плаващ порта, който е заобиколен от силициев диоксид (SiO 2). Drain на транзистора е свързан с "земята", и източник, свързан към захранващото напрежение чрез резистор. В изтрити държавата (преди запис) не съдържа плаващ порта, и М-OS транзистор е затворена. В този случай, източникът на високия капацитет се запазва, а когато се отнася до клетка се чете от устройството логика. Програмиране на паметта се редуцира до съответния влизането в клетката на логическите нули.

Програмиране се прави чрез прилагане на контрол на порта за високо напрежение (фигура 1.7). Това напрежение трябва да бъде достатъчна, за да се представи разбивка между порта и плаващ порта, след което таксата се прехвърля от контрол порта да се плаващите. MOS-транзистор е включен в отворено състояние от късо съединение на източника на земята. В този случай, в зависимост от клетката се чете логика нула.

За да изтриете съдържанието на клетка, тя се осветява с ултравиолетова светлина, която дава на таксата върху плаващ порта достатъчно енергия, така че той може да напусне портата. Този процес може да отнеме от няколко секунди до няколко минути.

Обща информация за микроконтролери

Фигура 1.7 памет клетъчна EPROM.

Обикновено, EPROM чипове са произведени в керамичен пакет и кварцов прозорец за UV светлина достъп. Такива жилища е доста скъпо, което значително повишава цената на чипа. За да се намалят цените на EPROM чип затворена в корпус без (версия EPROM с едно програмиране) прозорец. Намаляване на разходите за използването на такива органи може да бъде толкова значими, че версията на EPROM сега често се използва на мястото на маска програмируеми ROM.

Преди микроконтролери програмирани само чрез паралелни протоколи доста сложни за изпълнение. В момента най-съвременни протоколи за програмиране EPROM и EEPROM памет са се променили значително, което позволи на микроконтролера да извършва програмиране директно в системата, където се работи. Този метод за програмиране, наречен «в - програмна система" или "ISP». ISP-микроконтролери могат да бъдат програмирани, след като спойка на борда. Това намалява разходите за програмиране, така че не е необходимо да се използват специални съоръжения - програмисти.

Един EEPROM (ел изтриваема програмируема памет - електрически изтриваема програмируема памет) може да се разглежда като ново поколение EPROM памет. В такава клетъчна памет не се изтрива от ултравиолетова светлина, и електрическо свързване на плаващ порта на "земята". Използването на EEPROM ви дава възможност да изтриете, и програмиране на микроконтролера, без да се маха от дъската. По този начин е възможно да се периодично актуализиране на софтуера си.

EEPROM памет е по-скъпо от EPROM (два пъти цената на един-EPROM програмиране). EEPROM е малко по-бавен от EPROM.

Основното предимство на използване на EEPROM е възможността за неговото многократно препрограмиране без да се маха от дъската. Това дава огромен резултат в началните етапи на разработването на системи, базирани на микроконтролери или в хода на проучването си, когато много време, прекарано в търсене на причините за множествена системна престой и изпълнение на последващи изтриване паметта на програмата и програмните цикли.

Функционално, Flash-памет не е много различен от EEPROM. Основната разлика е в метода на изтриване на записаната информация. изтриване на EEPROM памет се извършва отделно за всяка клетка, както и в Flash-памет заличаване се извършва с цели блокове. Ако искате да се променя съдържанието на една клетка, Flash-памет, ще се наложи да се препрограмира целия блок (или целия чип). Микроконтролери с EEPROM памет, които можете да промените отделни части от програмата, без да се налага да се препрограмира цялото устройство.

Често това означава, че устройството има Flash-памет, когато в действителност тя съдържа EEPROM. В момента между видовете памет има няколко разлики, така че някои производители използват тези термини като еквивалент.

Когато първото представяне на описание микроконтролера много изненадващо малко количество данни RAM памет. който обикновено е от порядъка на десетки или стотици байта. Ако микроконтролер използва за съхранение на данни EEPROM памет. След това му обем и не повече от няколко десетки байта.

Ако се напише програма за персонален компютър (PC), а след това най-вероятно имам един въпрос, какво може да се направи с такова малко количество памет. Вероятно, вашето приложение за PC съдържа променливи, обемът на която се измерва в килобайти, без да се броят на използваните бази данни. При използване на масиви изисква капацитет на паметта може да бъде стотици килобайти. И така, какво може да се направи с RAM на около 25 байта?

Факт е, че програмирането на микроконтролера се извършва от няколко различни правила от PC програмиране. Прилагането на някои прости правила, които може да реши много проблеми с помощта на малко количество RAM памет. При програмиране на микроконтролера постоянно, ако е възможно, да не се съхранява като променливи. Максимално използване на хардуер възможности микроконтролер (като например таймери, индексни регистри) да се ограничи възможно поставянето на данни в RAM. Това означава, че разработването на приложения, трябва първо да се грижи за разпределението на ресурсите на паметта. Заявленията следва да се съсредоточат върху работата без използването на големи обеми от данни.

RAM памет за микроконтролер се използва за организиране на подпрограма разговор и управление на прекъсвания. При тези операции на съдържанието на програмата брояч и основните регистри (акумулатор, регистър на статут, индексни регистри и т.н.), се записват и след това възстановени, когато се връщат към основната програма.

Stack - структура от електронни данни, който функционира подобно на физическата си колега - една купчина документи. Когато нещо се поставя в стека, той остава там, докато, докато не бъде изваден обратно. Въвеждане на цветни листове хартия, които се наслагват един върху друг. Когато листа се отстраняват, а след тяхното движение се проявява в обратен ред. Поради тази причина, на комина често се нарича LIFO типа опашка (Last първа изходяща.) - «продължи, първа изходяща".

В Принстън RAM архитектура се използва за реализиране на множество хардуерни функции, включително функциите на стека. Това намалява ефективността на устройството, тъй като достъп до различните видове памет изисква многократно лечение, което не може да се извършва едновременно. По същата причина Принстън архитектура обикновено изисква повече цикли часовник, за да се изпълни команда от Харвард.

В архитектурата Harvard операции стека могат да се извършват в паметта, специално определени за тази цел. Това означава, че командата «покана» подпрограма за обработка на повикване с Харвард архитектура изпълнява няколко действия едновременно. В Принстън архитектура при извършване на следната «покана» команда команда е избран, след като съдържанието на програмата брояч ще бъде поставен в стека.

Трябва да се помни, че и двата микроконтролери архитектури имат ограничен капацитет на паметта за съхранение на данни. Превишение на това може да доведе до проблеми по време на изпълнението на програмата.

А сега да разгледаме възможността за запазване на съдържанието на стека регистъра. Някои архитектури не разполагат с екипи, които изпълняват съдържанието на регистри в стека товарене «тласък» и усвоиха от стека «поп». Въпреки «тласък» и «поп» команди могат да бъдат внедрени лесно с помощта на индексния регистър, което ясно показва област от стека. В този случай, вместо на всеки един от отборите «тласък" и "поп» две команди, изброени по-долу:

Натиснете :; зареждането на данните върху стека

движат [индекс] А; освен съдържанието на стека батерия

индекс Намаляване; преминете към следващата клетка стека

Поп :; добиващи данни от стека

увеличава индекса; да отидете на предишното клетъчния

А ход, [индекс]; място стойност в стека батерия

Разбира се, това решение е по-малко ефективен от използването на специални екипи «натиснете» и «поп», и се използва може да се изисква индексния регистър за други цели. Все пак, това решение осигурява купчина симулация с помощта на процесори, които нямат такава команда.

Има и друг проблем с горния пример. Какво се случва, ако възникне необходимост от прекъсване между първия и втория отбор, който симулира работа «тласък» и «поп»? Ако прекъсващ оператор използва стека, данните, съхранявани в него ще бъдат загубени. За да предотвратите това, можете да деактивирате прекъсва преди да изпълни тези команди, или да ги подредите в следния ред:

Натиснете :; зареждането на данните върху стека

индекс Намаляване; преминете към следващата клетка стека

движат [индекс] А; освен съдържанието на стека батерия

Поп :; добиващи данни от стека

А ход, [индекс]; място стойност в стека батерия

увеличава индекса; да отидете на предишното клетъчния

Ако след първата команда, програмата е прекъсната, няма да бъдат загубени след лечението, съдържанието на прекъсването на стека.