Хелпикс

Главная

Контакты

Случайная статья





6.3. Архітектура AVR-мікроконтролерів



 

Розглянемо узагальнену архітектуру AVR-мікроконтролерів (рис. 6. 2).

 

Рис. 6. 2 - Архітектура AVR мікроконтролера

 

Мікроконтролер містить: ПЗП (FLASH) – флеш-пам‘ять програм, ПЗП (EEPROM) – пам‘ять з електричним стиранням інформації; послідовний періферійний інтерфейс SPI (Serial Periphtral Interface); програмний лічильник PC (Program Counter), АЛП арифметико-логічний пристрій; регістр команд IR (Instruction Register}; дешифратор команд ID ( Instruction Decoder ); 32регістри загального призначення (General Purpоse Registers ); ОЗП статичного типу SRAM; регістри введення виведення; таймери; АЦП; – аналоговий компаратор AC (Analog Comparator); UART універсальний асинхронний приймач-передавач; сторожевий таймер WDT (Watchdog Timer); порти введення-виведення; модуль переривань.

Основою ядра архітектури є Гарвардськийпроцесор, регістрова пам’ять (регістри загального призначення та регістривведення-виведення), пам'ять програмтапам'ятьданих.

Склад та кількість періферійних пристроїв (таймерів, портів введення-виведення, послідовних інтерфейсів, АЦП) залежить від конкретної моделі мікроконтролера.

Гарвардський процесор реалізує повний логічний і фізичний розподіл не тільки адресних просторів, але й інформаційних шин для звертання до пам'яті програм і до пам'яті даних, причому способи адресуванні і доступу до цих масивів пам'яті також різні. Подібна побудова вже ближче до структури цифрових сигнальних процесорів і забезпечує істотне підвищення продуктивності. Процесор працює одночасно як із пам'яттю програм, так і з пам'яттю даних; розрядність шини пам'яті програм розширена до 16 біт. В МК AVR використовується технології конвеєрізації, унаслідок чого цикл " вибірка - виконання" команди помітно скорочений.

Послідовність виконання команд в конвеєрі та обробка їх а АЛП наведено на рис. 6. 3 та 6. 4 відповідно.

 

Рис. 6. 3 - Послідовність виконання команд в конвеєрі

 

Рис. 6. 4 - Функціонування АЛП

Під час першого машинного циклу Т1 (рис. 6. 3) відбувається вибірка команди з пам'яті програм і її декодування. Під час другого циклу Т2 ця команда виконується, а паралельно відбувається вибірка й декодування другої команди, і так далі. Завдяки підключенню АЛП безпосередньо до регістрового файлу воно виконує одну команду (читання вмісту двох регістрів, виконання операції й запис результату в регістр- приймач) за один такт, як показано на рис. 6. 4.

У результаті фактичний час виконання кожної команди виходить рівним одному машинному циклу. Таке рішення дозволяє досягати продуктивності до 1 MIPS на МГц.

Для порівняння, у мікроконтролерів сімейства MCS51 коротка команда виконується за 12 тактів генератора (1 машинний цикл), протягом якого процесор послідовно зчитує код операції і виконує її. У PIC-контролерах фірми Microchip, де вже реалізований конвеєр, коротка команда виконується протягом 8 періодів тактової частоти (2 машинних цикли).

Розмір лічильника команд становить від 9 до 12 розрядів у залежності від обсягу пам'яті. При цьому лічильник команд недоступний програмі безпосередньо (як регістр). При нормальному виконанні програми вміст лічильника команд автоматично збільшується на 1 (або на 2, залежно від команди) у кожному машинному циклі. Цей порядок порушується при виконанні команд переходу, виклику й повернення з підпрограм, а також при виникненні переривань.

Після включення живлення, а також після скидання мікроконтролера лічильник програм автоматично завантажується значення $000. Як правила по цій адресі розташовується команда відносного переходу (R JMP)| ініціалізаціонної частини програми.

При виникненні переривання в лічильник команд завантажується адреса відповідного вектора переривання ($001.. . $010). Знак $ указує на шістнадцятирічну систему числення. Якщо переривання використовуються в програмі, по цим адресам повинні розміщатися команди відносного переходу до підпрограм обробки переривань. У іншому випадку основна програма може починатися безпосередньо з адреси $З.

Регістрова пам’ять . Регістрова пам’ять включає 32 регістра загального призначення (РЗП), об’єднані в регістровий файл та службові регістри введення/виведення (РВВ). Розмір регістрової пам’яті фіксований та для всіх моделей складає 96 байт, відповідно під РЗП відводиться 32 байта, а під РВВ – 64 байта Регістри введення/виведення не повністю використовують відведені для них 64 адреси. Невикористані адреси зарезервовані для майбутніх застосувань, додаткових комірок пам'яті по цих адресах не існує.

Пам'ять програм Усі AVR-мікроконтролери мають флеш-пам'ять програм, що може бути завантажена як за допомогою звичайного програматора, так і за допомогою SPI-інтерфейсу, у тому числі безпосередньо на цільовій платі. Число циклів перезапису - не менше 1000. Деякі версії ВІС сімейства Mega мають можливість самопрограмування, тобто мікроконтролер здатний самостійно, без зовнішнього програматора, змінювати вміст комірок пам'яті програм. Це дає можливість записати у зовнішню енергонезалежну пам'ять декілька робочих версій програми, а потім у міру необхідності або по реакції на зовнішні або внутрішні логічні умови перевантажувати робочі програми в той же самий мікроконтролер AVR без витягування його з друкарської плати. Для цього весь масив пам'яті програм ділиться на дві нерівні по об'єму області: блок завантажника (програма, що управляє перезаписом флеш-пам'яті програм) і блок для розміщення робочих програм. Програма - завантажник створюється самим розроблювачем і повинна бути запрограмована зовнішнім програматором.

Пам'ять даних . Внутрішня оперативна пам'ять SRAM є у всіх AVR сімейств Сlassic і Mega і в одного нового кристала сімейства Ttiny - ATtiny26/L. Для деяких мікроконтролерів можлива організація підключення зовнішньої пам'яті даних об'ємом до 64К. Усі AVR- мікроконтролери мають також блок енергонезалежної пам'яті даних з електричним стиранням EEPROM. Цей тип пам'яті використовується для збереження проміжних даних, різних констант, таблиць перекодувань, каліброваних коефіцієнтів і т. п. Дані в EEPROM можуть бути завантажені як через SPI інтерфейс, так і за допомогою звичайного програматора. Число циклів перезапису - не менше 100000. Два програмовні біти захисту інформації дозволяють захистити пам'ять програм і енергонезалежної пам'яті даних EEPROM від несанкціонованого зчитування.

Внутрішній тактовий генератор МК AVR може запускатися від декількох джерел опорної частоти (зовнішній генератор, зовнішній кварцовий резонатор, внутрішній або зовнішній RC-ланцюжок). Оскільки AVR-мікроконтролери цілком статичні, мінімальна припустима частота нічим не обмежена, тобто можливо легко забезпечити навіть покроковий режим виконання програми. Максимальна робоча частота визначається конкретним типом мікроконтролера.

Режими енергоспоживання. Мікроконтролери AVR можуть бути переведені програмними шляхом в один із шести режимів зниженого енергоспоживання.

· Режим холостого ходу (IDLE), у якому припиняє роботу тільки процесор і фіксується вміст пам'яті даних, а внутрішній генератор синхросигналів, таймери, система переривань і WDG- таймер продовжують функціонувати.

· Режим мікроспоживання (Power Down), у якому зберігається вміст регістрового файлу, але зупиняється внутрішній генератор синхросигналів. Вихід із Power Down можливий або по загальному скиданню мікроконтролера, або по сигналу від зовнішнього джерела переривання. При включеному WDG-таймері струм споживання в цьому режимі складає біля 60... 80 мкА, а при виключеному - менше 1 мкА для всіх типів AVR. Вищенаведені значення справедливі для величини живлячої напруги 5 В.

· Режим зберігання енергії (Power Save), що реалізований тільки в тих AVR, що мають у своєму складі систему реального часу. У основному, режим Power Save ідентичний Power Down, але він допускає незалежну роботу таймера/лічильника RTC. Вихід із режиму Power Save можливий по перериванню, викликаному або переповненням таймера/лічильника RTC, або спрацьовуванням блока порівняння цього лічильника. Струм споживання в цьому режимі складає 6... 10 мкА при напрузі живлення 5 В на частоті 32, 768 кГц.

· Режим придушення шуму при роботі аналого-цифрового перетворювача (ADC Noise Reduction). У цьому режимі зупиняється робота процесора, але дозволена робота АЦП, двухпроводного інтерфейсу I2C і сторожового таймера.

· Основний режим очікування (Standby). Відрізняється від режиму Power Down, тим, що робота тактового генератора не припиняється. Це гарантує швидкий вихід мікроконтролера з режиму очікування усього за 6 тактів генератора.

· Додатковий режим очікування (Extended Standby). Ідентичний режиму Power Save, але робота тактового генератора теж не припиняється, гарантує швидкий вихід з режиму за 6 тактів генератора.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.