Структурні особливості сучасних мікропроцесорних систем

Архітектура мікроконтролерів сімейства AVR. Поділ шин доступу до FLASH пам'яті і SRAM. Система переривань. Архітектура PIC контролерів. Регістри спеціального призначення. Послідовний периферійний інтерфейс пристрою. Резидентна пам'ять програм і даних.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык украинский
Дата добавления 25.10.2013
Размер файла 284,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Структурні особливості сучасних мікропроцесорних систем

1. Архітектура мікроконтролерів сімейства AVR

Мікроконтролери ATmega є 8-розрядними CMOS мікроконтролерами з AVR удосконаленою RISC архітектурою. Виконуючи більшість команд за один тактовий цикл, мікроконтролери забезпечують продуктивність 1 MIPS на кожен мегагерц тактової частоти.

AVR ядро базується на удосконаленої RISC архітектурі, з реєстровим файлом швидкого доступу, що містить 32 регістра загального призначення, безпосередньо зв'язаних з АЛП, і могутньою системою команд. За один тактовий цикл із реєстрового файлу витягається два операнди, виконується команда і результат записується в регістр призначення. Така високоефективна архітектура забезпечує продуктивність майже в десять разів більшу, ніж стандартні CISС мікроконтролери.

Основною ідеєю всіх RISC, як відомо, є збільшення швидкодії за рахунок скорочення кількості операцій обміну з пам'яттю програм. Для цього кожну команду прагнуть умістити в одну комірку пам'яті програм. При обмеженій розрядності комірки пам'яті це неминуче приводить до скорочення набору команд мікропроцесора.

AVR мікроконтролери мають у своєму розпорядженні наступні можливості: 64 Кбайт внутрісистемно програмувальної Flash пам'яті програм, 2 Кбайта EEPROM даних, 4 Кбайта SRAM даних, 32 лінії уведення / виведення загального призначення, 32 робітників регістра загального призначення, 4 гнучких таймери/лічильника, UART, послідовний SPI порт.

Арифметико-логічний пристрій (АЛП), у якому виконуються всі обчислювальні операції, має доступ до тридцяти двох оперативних регістрів, об'єднаним у реєстровий файл. Вибірка вмісту регістрів, виконання операції і запис результату назад у реєстровий файл виконуються за один машинний цикл. Для порівняння корисно згадати, що більшість мікроконтролерів, що вбудовуються, мають тільки один такий регістр, безпосередньо доступний АЛП, - акумулятор, що вимагає включення в програму додаткових команд його завантаження і зчитування.

Рис. 1. Структурна схема мікроконтролера AVR

Організація пам'яті AVR виконана за схемою Гарвардського типу, у якій розділені не тільки адресні простори пам'яті програм і пам'яті даних, але також і шини доступу до них. Уся програмна пам'ять AVR-мікроконтролерів виконана за технологією FLASH і розміщена на кристалі. Вона являє собою послідовність 16-розрядних осередків і має ємність від 512 слів до 64K слів (тобто 16384 слів) у залежності від типу кристала.

В FLASH-пам'ять, крім програми, можуть бути записані постійні дані, що не змінюються під час функціонування мікропроцесорної системи. Це різні константи, таблиці знакогенераторів, таблиці лінеаризації датчиків і т.п.

Достоїнством технології FLASH є високий ступінь упакування, а недоліком те, що вона не дозволяє стирати окремі осередки. Тому завжди виконується повне очищення всієї пам'яті програм. При цьому для AVR гарантується, як мінімум, 1000 циклів перезапису FLASH-пам'яті.

Крім того, для збереження даних AVR-мікроконтролери можуть мати, у залежності від типу кристала, внутрішню (від 0 до 4Kбайт) і зовнішню (від 0 до 64 Кбайт) оперативну SRAM пам'ять і енергонезалежна внутрішню EEPROM пам'ять (від 0 до 4Kбайт).

Поділ шин доступу до FLASH пам'яті і SRAM пам'яті дає можливість мати шини даних для пам'яті даних і пам'яті програм різної розрядності, а також використовувати технологію конвеєризації. Конвеєризація полягає в тім, що під час виконання поточної команди програмний код наступної уже вибирається з пам'яті і дешифрується.

Для порівняння - у мікроконтролерів сімейства MCS-51 вибірка коду команди і її виконання здійснюються послідовно, що займає один машинний цикл, що триває 12 періодів кварцового резонатора.

Файл регістрів загального призначення. Усі реєстрові команди звертаються безпосередньо до регістрів у плині одного тактового циклу. Виключення складають п'ять логічних і арифметичних операцій з константами (SBCI, SUBI, CPI И и ANDI) і операція OR між константою і вмістом регістра, і команда безпосереднього завантаження LDI. Ці команди використовують другу половину регістрів реєстрового файлу - R16..R31. Шість регістрів реєстрового файлу, крім звичайної для інших регістрів функцій, виконують функцію 16-розрядних регістрів покажчиків адреси при непрямій адресації SRAM. Ці три регістри непрямої адресації визначаються як регістри X, Y і Z. У різних режимах адресації ці регістри виконують функції фіксованого зсуву, автоматичного инкременту і декременту.

Покажчик стека SP. Мікроконтролери AVR оснащені 16-розрядним покажчиком стека, розміщеним у двох регістрах простору I/O. Покажчик стека вказує на область у SRAM даних, у якій розміщаються стеки підпрограм і переривань. Обсяг стека повинна задаватися програмою перед кожним викликом підпрограми й обробкою дозволеного переривання.

Рівнобіжні порти уведення / виведення інформації. Мікроконтролер містить чотири 8-розрядних двонаправлені порти: PortA, PortB, PortC, PortD. До виходів портів можуть бути підключені убудовані навантажувальні резистори (окремо до кожного розряду). При використанні висновків цих чотирьох портів як входи й установці зовнішнім сигналом у низький стан, струм буде випливати тільки при підключених убудованих навантажувальних резисторах. Вихідні буфери порту A забезпечують струм, що втікає, 29 ма і здатні на пряму керувати LED індикатором. Порт B використовується при реалізації різних спеціальних функцій. Port - 8-розрядний порт висновку. Порт C використовуються також як виходи адреси при використанні зовнішньої пам'яті (SRAM). Port - 8-розрядний порт уведення. Входи порту також використовуються як аналогові входи аналого-цифрового перетворювача.

Таймери/лічильники. AVR мікроконтролери оснащені трьома таймерами/ лічильниками загального призначення - двома 8-розрядними й одним 16-розрядним. Таймер/лічильник0, на додаток до звичайного режиму, може тактується асинхронно від зовнішнього генератора, оснащений своїм власним попереднім дільником. Таймери/лічильники 1 і 2 використовують виходи ступіней розподілу загального 10-розрядного попереднього дільника. Ці два таймери/лічильника можна використовувати як таймери з убудованою базою або як лічильники, що переключаються за станом на зовнішньому висновку.

Попередній дільник таймерів/лічильників 1 і 2 містить чотири ступіні розподілу: СК/8, СК/64, СК/256 і СК/1024, де СК вхідний тактовий сигнал. Крім того як джерела тактових сигналів можуть бути використані сигнали від зовнішніх джерел, тактовий сигнал СК і нульовий тактовий сигнал (stop).

Точність і дозвіл 8-розрядних таймерів/лічильників росте зі зменшенням коефіцієнтів попереднього розподілу. Аналогічним образом високий коефіцієнт попереднього розподілу зручно використовувати при реалізації функцій з низькою швидкодією або точної синхронізації рідко відбуваються дій.

Послідовний периферійний інтерфейс (SPI) забезпечує високошвидкісний обмін даними між мікроконтролерами ATmega і периферійними пристроями або між декількома мікроконтролерами ATmega. SPI інтерфейс здійснює повнодуплексний 3-провідний синхронний обмін даними з переданими першим старшим або молодшим бітами, забезпечує чотири програмувальні швидкості передачі даних, виставляє прапор переривання по закінченні передачі.

Універсальний асинхронний приймально-передавач UART має наступні функції: висока швидкість передачі при низькій частоті XTAL, 8-розрядний або 9-розрядний формати даних, фільтрація шуму, виявлення переповнення, виявлення помилок формування кадрів.

Передача даних ініціюється записом переданих даних уведення / виведення UART. Дані пересилаються з UDR у регістр зсуву передачі в наступних випадках. Перший - новий символ записаний у UDR після того як був виведений з регістра стоповий біт попереднього символу. Регістр зсуву завантажується негайно. Другий - новий символ записаний у UDR перш, ніж був виведений стоповий біт попереднього символу. Регістр зсуву завантажується після виходу стопового біта попереднього символу, що знаходився у регістрі зсуву.

Керування роботою UART робить регістр даних UDR і регістр статусу USR і безпосередньо регістр керування UCR. У дійсності регістр UDR є двома фізично розділеними регістрами - регістром передачі даних і регістром прийому даних, що використовують ті самі адреси введення / висновку. При записі в регістр запис виробляється в регістр передачі даних UART, при читанні відбувається читання вмісту регістра прийому даних UART. Регістр USR забезпечує тільки читання інформації про стан UART. Установлюючи біти регістра UCR можна дозволяти глобальне переривання по завершенні прийому, установлювати 8-розрядний або 9-розрядний формат прийому або передачі.

Система переривань. Мікроконтролери ATmega використовують 23 джерела переривання. Ці переривання і вектор скидання розташовують окремими програмними векторами в просторі пам'яті програм. Кожному перериванню привласнений свій біт дозволу, що повинний бути встановлений разом з першим битому регістра статусу.

Переривання з молодшими адресами мають більший рівень пріоритету. RESET має найвищий рівень пріоритету, що випливає є INT0 - запит зовнішнього переривання 0 і т.д.

Мікроконтролери ATmega містять два спеціальних 8-розрядних регістри масок переривань: регістр масок зовнішніх переривань EIMSK і регістр масок переривань по таймері/лічильникові TIMSK. Крім того, у регістрах керування периферією можуть бути організовані й інші біти дозволу і біти масок.

Відгук на виконання всіх дозволених переривань AVR складає мінімум 4 тактових цикли. При обробці підпрограм переривань, що вимагають збереження, запис повинна виконуватися програмними засобами користувача. Для переривань запускаються статичними подіями прапор переривань встановлюється в момент настання події.

2. Архітектура PIC контролерів

PIC16fXX - це 8-розрядні FLASH CMOS мікроконтролери з RISC архітектурою, вироблені фірмою Microchip Technology. Це сімейство мікроконтролерів відрізняється низькою ціною, низьким енергоспоживанням і високою швидкістю. Програмування здійснюється за допомогою 35 простих інструкцій, усі команди виконуються за один цикл (400 нс при 10 Мгц), крім інструкцій переходів, виконуваних за два цикли (800 нс).

Мікроконтролери мають убудоване до 8кБайт FLASH пам'яті програм, до 368 байт пам'яті даних (ОЗП), до 256 EEPROM пам'яті даних, систему переривань, що спрацьовує від 14 джерел, і 8-рівневий апаратний стік, 36 регістрів загального призначення. Периферія містить у собі 21 лінію двонаправленого уведення / виведення з індивідуальним настроюванням, 3 таймери/лічильника, сторожовий таймер WDT із власним RC генератором, багатоканальний 10-розрядній АЦП, послідовний синхронний порт MSSP, послідовний синхронно-асинхронний приймач-передавач USART з підтримкою детектування адреси.

Серія PIC16fXX підходить для широкого спектра додатків від схем високошвидкісного керування автомобільними й електричними двигунами до економічних вилучених приймачів-передавачів, контрольних приладів і зв'язних процесорів. Наявність ПЗП дозволяє підбудовувати параметри в прикладних програмах (коди передавача, швидкості двигуна, частоти приймача і т.д.).

Убудований автомат програмування EEPROM дозволяє легко підбудовувати програму і дані під конкретні вимоги навіть після завершення програмування і тестування. Ця можливість може бути використана як для тиражування, так і для занесення каліброваних даних уже після остаточного тестування.

Архітектура заснована на концепції роздільних шин і областей пам'яті для даних і для команд (мал. 1). Шина даних і пам'ять даних (ОЗП) - мають ширину 8 біт, а програмна шина і програмна пам'ять (ПЗП) мають ширину 14 біт. Така концепція забезпечує просту, але могутню систему команд, розроблену так, що бітові, байтові і реєстрові операції працюють з високою швидкістю і з перекриттям за часом вибірок команд і циклів виконання. 14-бітова ширина програмної пам'яті забезпечує вибірку 14-бітової команди в один цикл. Двоступінчастий конвеєр забезпечує одночасну вибірку і виконання команди. У PIC16fXX програмна пам'ять обсягом 1К х 14 розташована усередині кристала. Програма, що виконується, може знаходитися тільки в убудованому ПЗП.

АЛП - арифметико-логічний пристрій (АЛП).

Високопродуктивне АЛП з'єднано безпосередньо з усіма 36 швидкодіючими регістрами загального призначення. За один тактовий цикл АЛП виконує операцію між регістрами. Операції АЛП підрозділяються на три основні категорії: арифметичної, логічні й операції над бітами.

Організація пам'яті програм даних. Мікроконтролери PIC16FXX мають 13-розрядний лічильник команд PC, здатний адресувати 8К х 14 слів пам'яті програм. Фізично реалізовано FLASH пам'яті програм 8К х 14 у PIC16F877/876 і 4К х 14 у PIC16F873/874. Звертання до фізично не реалізованої пам'яті програм приведе до адресації реалізованої пам'яті. Адреса вектора скидання - 0000H. Адреса вектора переривань - 0004H.

Пам'ять даних розділена на чотири банки, що містять регістри загального і спеціального (SFR) призначення. Біти RP1 (STATUS<6>) і RPO (STATUS<5>) призначені для керування банками даних. У таблиці показаний стан керуючих бітів при звертанні до банок пам'яті даних.

Обсяг банків пам'яті даних до 128 байт (7FH). На початку банку розміщаються регістри спеціального призначення, потім регістри загального призначення виконані як статичне ОЗП. Усі реалізовані банки містять регістри спеціального призначення. Деякі, часто використовувані регістри спеціального призначення можуть відображатися й в інших банках пам'яті.

Рис. 1. Структурна схема мікроконтролера PIC16F877

Регістри загального призначення. Звернутися до регістрів загального призначення можна прямій або непрямій адресації, через регістр FSR.

Регістри спеціального призначення. За допомогою регістрів спеціального призначення виконується керування функціями ядра і периферійних модулів мікроконтролера. Регістри спеціального призначення реалізовані як статичне ОЗП.

У регістрі STATUS утримуються прапори стану АЛП, прапори причини скидання мікроконтролера і біти керування банками пам'яті даних.

Регістр STATUS може бути адресований будь-якою командою, як і будь-який інший регістр пам'яті даних. Якщо звертання до регістра STATUS виконується командою, що впливає на прапори Z, DC і C, то зміна цих трьох бітів командою заблокована. Ці біти скидаються або установлюються відповідно до логіки ядра мікроконтролера. Команди зміни регістра STATUS також не впливають на біти - ТЕ і - PD. Тому, результат виконання команди з регістром STATUS може відрізнятися від очікуваного. Наприклад, команда CLRF STATUS скине три старших біти й установить біт Z (стан регістра STATUS після виконання команди 000uu1uu, де u - не змінюваний біт).

При зміні бітів регістра STATUS рекомендується використовувати команди, що не впливають на прапори АЛП (SWAPF, MOVWF, BCF і BSF). Прапори С и DC використовуються як біти займу і десяткового займу відповідно, наприклад, при виконанні команд вирахування SUBLW і SUBWF. Прапор займу має інверсне значення. Вирахування виконується шляхом додатка додаткового коду другого операнду. При виконанні команд зрушення (RRF, RLF) біт C завантажується старшим або молодшим бітом регістра, що зрушується.

Регістр OPTION_REG доступний для читання і запису, містить біти керування (Якщо попередній дільник включений перед WDT, те коефіцієнт розподілу тактового сигналу для TMRO дорівнює 1:1):

Попереднім дільником TMRO/WDT;

Активним фронтом зовнішнього переривання RBO/INT;

Резисторами, що підтягують, на входах PORTB.

Регістр INTCON доступний для читання і запису, містить біти дозволів і прапори переривань: переповнення TMRO; зміни рівня сигналу на висновках PORTB; зовнішнє джерело переривань RBO/INT. Прапори переривань установлюються при виникненні умов переривань поза залежністю від відповідних бітів дозволи і битка загального дозволу переривань GIE (INTCON<7>).

Регістр PCON містить прапори, за допомогою яких можна визначити джерело скидання мікроконтролера:

Скидання по включенню харчування (POR);

Скидання по сигналі на висновку - MCLR;

Скидання по переповненню сторожового таймера WDT;

Скидання по виявленню зниження напруги харчування (BOR).

При включенні харчування біт - BOR має непередбачене значення і не повинне враховуватися. Біт - BOR призначений для виявлення наступних скидань мікроконтролера при зниженні напруги харчування. Стан біта - BOR також непередбачене, якщо робота детектора зниженої напруги заблокована в бітах конфігурації при програмуванні мікроконтролера (BODEN=0).

Регістри PCLATH і PCL - 13-розрядний регістр лічильника команд PC вказує адреса виконуваної інструкції. Молодший байт лічильника команд PCL доступний для читання і запису. Старший байт РСН, що містить <12:8> біти лічильника команд PC, не доступний для читання і запису. Всі операції з регістром РСН відбуваються через додатковий регістр PCLATH. При будь-якому виді скидання мікроконтролера лічильник команд PC очищається. На малюнку 2-5 показано дві ситуації завантаження значення в лічильник команд PC. Приклад зверху, запис у лічильник команд PC відбувається при записі значення в регістр PCL (PCLATH <4:0> > РСН). Приклад знизу, запис значення в лічильник команд PC відбувається при виконанні команди CALL або GOTO (PCLATH <4:3> > РСН).

Перехід, що обчислюється, може бути виконаний командою збільшення до регістра PCL (наприклад, ADDWF PCL). При виконанні табличного читання переходом, що обчислюється, варто піклуватися про те, щоб значення PCL не перетнуло границу блоку пам'яті (кожен блок 256 байт).

Стік. PIC16FXX мають 8-урівневий 13-розрядний апаратний стік. Стік не має відображення на пам'ять програм і пам'ять даних, не можна запис або прочитати дані зі стека. Значення лічильника команд заноситься у вершину стека при виконанні інструкцій переходу на підпрограму (CALL) або обробки переривань. Читання зі стека і запис у лічильник команд PC відбувається при виконанні інструкцій повернення з підпрограми або обробки переривань (RETURN, RETLW, RETFIE), при цьому значення регістра PCLATH не змінюється.

Стік працює як циклічний буфер. Після 8 записів у стек, дев'ятий запис запишеться на місце першої, а десятий запис замінить другу і так далі. У мікроконтролерах не мається ніяких покажчиків про переповнення стека. У мікроконтролерах не передбачено команд запису / читання зі стека, крім команд виклику / повернення з підпрограм (CALL, RETURN, RETLW і RETFIE) або умов переходу по векторі переривань.

Рівнобіжні порти введення / виведення. Деякі канали портів уведення / виведення мультиплексовані з периферійними модулями мікроконтролера. Коли периферійний модуль включений, висновок не може використовуватися як універсальний канал уведення / виведення.

PORTA - 6озрядний порт уведення / виведення. Усі канали PORTA мають відповідні біти напрямку в регістрі TRISA, що дозволяють набудовувати канал як вхід або вихід. Запис 1 у TRISA переводить відповідний вихідний буфер у 3-і стан. Запис 0 у регістр TRISA визначає відповідний канал як вихід, уміст засувки PORTA передається на висновок мікроконтролера (якщо вихідна засувка підключена до висновку мікроконтролера).

Читання регістра PORTA повертає стан на висновках порту, а запис виробляється в засувку PORTA. Всі операції запису в порт виконуються за принципом «читання - модифікація - запис», тобто спочатку виробляється читання стану висновків порту, потім зміна і запис у засувку.

RA4 - має тригер Шмідта на вході і відкритий стік на виході, мультиплесованій з тактовим входом TOCKI. Всі інші канали PORTA мають TTL буфер на вході і повнофункціональні вихідні КМОП буфери.

Канали PORTA мультипликсовані з аналоговими входами АЦП і аналоговим входом джерела опорної напруги VREF. Біти керування режимів роботи каналів порту уведення / виведення PORTA знаходяться в регістрі ADCON1.

Після скидання по включенню харчування висновки набудовуються як аналогові входи, а читання дає результат 0.

Біти регістра TRISA керують напрямком каналів PORTA, навіть коли вони використовуються як аналогові входи. Користувач повинний упевнитися, що відповідні канали PORTA набудовані на вхід при використанні їх як аналогові входи.

PORTB - 8озрядний двонаправлений порт уведення / виведення. Біти регістра TRISB визначають напрямок каналів порту. Установка битва в 1 регістра TRISB переводить вихідний буфер у 3-і стан. Запис 0 у регістр TRISB набудовує відповідний канал як вихід, уміст засувки PORTB передається на висновок мікроконтролера (якщо вихідна засувка підключена до висновку мікроконтролера).

Три висновки PORTB мультиплексовані зі схемою низьковольтного програмування: RB3/PGM, RB6/PGC, RB7/PGD. До кожного висновку PORTB підключений внутрішній резистор, що підтягує. Біт - RBPU (OPTION_REG <7>) визначає підключені (-RBPU=0) чи ні (-RBPU=1) резистори, що підтягують. Резистори, що підтягують, автоматично відключаються, коли канали порту набудовуються на вихід і після скидання по включенню харчування POR.

Чотири канали PORTB RB7:RB4, набудовані на вхід, можуть генерувати переривання по зміні логічного рівня сигналу на вході. Якщо один з каналів RB7:RB4 набудований на вихід, то він не може бути джерелом переривань. Сигнал на висновках RB7:RB4 порівнюється зі значенням, збереженим при останнім читанні PORTB. У випадку розбіжності одного зі значень установлюється прапор RBIF (INTCON<0>), і якщо дозволено, генерується переривання.

PORTC - 8озрядний двонаправлений порт уведення / виведення. Біти регістра TRISC визначають напрямок каналів порту. Установка біта в 1 регістра TRISC переводить вихідний буфер у 3-і стан. Запис 0 у регістр TRISC набудовує відповідний канал як вихід, уміст засувки PORTC передається на висновок мікроконтролера (якщо вихідна засувка підключена до висновку мікроконтролера).

Висновки PORTC мультиплексовані з декількома периферійними модулями. На каналах PORTC є присутнім вхідний буфер із тригером Шмідта.

Коли модуль MSSP включений у режимі I2C, висновки PORTC<4:3> можуть підтримувати рівні вихідних сигналів по специфікації I2C або SMBus у залежності від стану біта CKE (SSPSTAT<6>).

При використанні периферійних модулів необхідно відповідним чином набудовувати біти регістра TRISC для кожного висновку PORTC (див. опис периферійних модулів). Деякі периферійні модулі скасовують дія бітів TRISC примусово набудовуючи висновок на вхід або вихід. У зв'язку з чим не рекомендується використовувати команди «читання - модифікація - запис» з регістром TRISC.

Таймери/лічильники.

TMRO - 8-розрядний таймер/лічильник з можливість читання і запису поточного значення лічильника, має 8-розрядний програмувальний переддільник, внутрішнє або зовнішнє джерело тактового сигналу;

Коли біт TOCS скинутий у 0 (OPTION_REG<5>), TMRO працює від внутрішнього тактового сигналу. Збільшення лічильника TMRO відбувається в кожнім машинному циклі (якщо переддільник відключений). Після запису в TMRO збільшення лічильника заборонене два наступні цикли. Користувач повинний скорегувати цю затримку перед записом нового значення в TMRO. 8-розрядний лічильник може працювати як переддільник TMRO або вихідний дільник WDT.

TMR1 - 16-розрядний таймер/лічильник, що складається з двох 8-розрядних регістрів (TMR1H і TMR1L) доступних для читання і запису. Рахунок виконується в спарених регістрах (TMR1H:TMR1L), інкриментувавши їхнє значення від OOOOh до FFFFh, далі вважає з OOOOh. При переповненні лічильника встановлюється в 1 прапор переривання TMR1IF у регістрі PIR1<0>. Саме переривання можна дозволити / заборонити установкою / скиданням TMR1IE у регістрі Р1Е1<0>.

TMR1 може працювати в двох режимах: режим таймера і режим лічильника.

Включення модуля TMR1 здійснюється установкою біта TMR1ON у Т (Т1СОМ<0>).

Битому TMR1CS (T1CON<1>) вибирається джерело тактових імпульсів. У режимі таймера TMR1 інкриментується на кожному машинному циклі. Якщо TMR1 працює з зовнішнім джерелом тактового сигналу, то збільшення відбувається по кожнім передньому фронті сигналу. TMR1 має внутрішній вхід скидання від СРР модуля. Керуючі біти TMR1 знаходяться в регістрі T1CON.

TMR2 - 8-розрядний таймер із програмувальними переддільником і вихідним дільником, 8-розрядним регістром періоду PR2. TMR2 може бути опорним таймером у ШІМ режимі. Регістри TMR2 доступні для запису / читання й очищаються при будь-якому виді скидання.

Вхідний тактовий сигнал (Fosc/4) надходить через переддільник із програмувальним коефіцієнтом розподілу (1:1, 1:4 або 1:16), обумовлений бітами T2CKPS1:T2CKPSO (T2CON<1:0>).

TMR2 вважає, інкрементує від 00h до значення в регістрі PR2, потім скидається в 00h на наступному машинному циклі. Регістр PR2 доступний для запису і читання. Після скидання значення регістра PR2 дорівнює FFh. Сигнал переповнення TMR2 проходить через вихідний 4-розрядний дільник із програмувальним коефіцієнтом розподілу (від 1:1 до 1:16 включно) для установки прапора TMR2IF у регістрі PIR1 <1 >.

Відомий рівнобіжний порт (PSP). Фактично існують два 8-розрядних регістри: один регістр для прийому даних, іншої - для передачі. Користувач записує 8-розрядні дані у вихідну засувку PORTD, а читає дані з вхідної засувки (зверніть увагу, вихідна і вхідна засувка мають той самий адресу). У цьому режимі значення бітів регістра TRISE ігнорується, тому що напрямком даних керує зовнішній пристрій.

Запис у PSP відбувається, якщо висновки - CS і - WR мають низький рівень сигналу. Після переходу сигналу на висновку - CS або - WR у високий рівень дані зберігаються у вхідній засувці на такті Q2. На такті Q4 встановлюються в 1 біт IBF (TRISE<7>) і прапор переривань PSPIF (PIR<7>). Біт IBF може бути скинутий у 0 тільки читанням регістра PORTD. Біт переповнення IBOV (TRISE<5>) встановлюється в 1, якщо відбувся наступний запис у PSP, а попередній байт не був прочитаний.

Читання з PSP відбувається, якщо висновки - CS і - RD мають низький рівень сигналу. Негайно скидається в 0 біт OBF (TRISE<6>), що вказує, що PORTD очікує читання зовнішньою шиною. Після переходу сигналу на висновку - CS або - RD у високий рівень установлюється прапор переривання PSPIF на такті Q4 (тільки після такту Q2), указуючи, що читання довершене. Біт OBF залишається скинутим у '0' поки не будуть завантажені нові дані в PORTD.

Прапор переривання PSPIF встановлюється в 1 по завершенню кожної операції читання або записи (скидається в 0 програмно). Дозволити/заборонити переривання від модуля PSP можна установкою / скиданням біта PSPIE (Р1Е1<7>).

Послідовний периферійний інтерфейс (SPI). У SPI режимі можливий одночасний синхронний прийом / переду 8-розрядних даних. Модуль MSSP підтримує чотири режими SPI з типовим використанням трьох висновків мікроконтролера: вхід послідовних даних (SDI); вихід послідовних даних (SDO); тактовий сигнал (SCK). Додатково може бути задіяний четвертий висновок для роботи в режимі відомого.

При ініціалізації SPI необхідно визначити параметри роботи бітами SSPCON<5:0>, SSPSTAT<7:6>. Керуючі біти визначають наступні параметри роботи: ведучий режим (SCK вихід); відомий режим (SCK вхід); полярність тактового сигналу (пасивний рівень SCK).

Для включення модуля MSSP необхідно установити біт SSPEN (SSPCON<5>) у 1. Будь-яка небажана функція послідовного порту може бути виключена, набудовуючи відповідні біти регістрів напрямку даних TRIS.

Універсальний синхронно-асинхронний приймач-передавач (USART). USART - це модуль послідовного введення / висновку, що може працювати при повнодуплексному асинхронному режимі для зв'язку з терміналами, персональними комп'ютерами або синхронним напівдуплексним режимом для зв'язку з мікросхемами ЦАП, АЦП, послідовними EEPROM і т.д.

USART може працювати в трьох режимах: асинхронний, повний дуплекс; ведучий синхронний, напівдуплекс; відомий синхронний, напівдуплекс.

Біти SPEN (RCSTA<7>) і TRISC<7:6> повинні бути встановлені в 1 для використання висновків RC6/TX/CK і RC7/RX/DT як порти універсального синхронно-асинхронного приймача-передавача. Модуль USART підтримує режим детектування 9-розрядної адреси для роботи в мережному режимі.

Система переривань. Мікроконтролери PIC16F87X мають 14 джерел переривань. Регістр INTCON містить прапори окремих переривань, біти дозволу цих переривань і біт глобального дозволу переривань.

Якщо біт GIE (INTCON<7>) встановлений у 1, дозволені всі немасковані переривання. Якщо GIE=0, то всі переривання заборонені. Кожне переривання окремо може бути дозволено / заборонено установкою / скиданням відповідного біта в регістрах INTCON, PIE1 і PIE2. При скиданні мікроконтролера біт GIE скидається в 0.

При поверненні з підпрограми обробки переривання, по команді RETFIE, біт GIE апаратно встановлюється в 1, дозволяючи всі немасковані переривання.

У регістрі INTCON знаходяться прапори наступних переривань: зовнішнього сигналу INT, зміни рівня сигналу на входах RB7:RB4, переповнення TMRO.

При переході на підпрограму обробки переривань біт GIE апаратно скидається в 0, забороняючи переривання, адреса повернення з підпрограми обробки переривань міститься в стек, а в лічильник команд PC завантажується вектор переривання 0004h. Джерело переривань може бути визначений перевіркою прапорів переривань, що повинні бути скинуті програмно перед дозволом переривань, щоб уникнути повторного виклику.

Для зовнішніх джерел переривань (сигнал INT, зміни рівня сигналу на входах RB7:RB4) час переходу на підпрограму обробки переривань буде складати 3-4 машинних циклу. Точний час переходу залежить від конкретного випадку, він однаково для 1 і 2-х циклових команд. Прапори переривань установлюються незалежно від стану відповідних бітів маски і битка GIE.

3. Архітектура контролерів серії C51

В даний час серед усіх 8-розрядних мікроконтролерів - сімейство MCS-51 є безсумнівним чемпіоном з кількості різновидів і кількості компаній, що випускають його модифікації. Воно одержало свою назву від першого представника цього сімейства - мікроконтролера 8051, випущеного в 1980 році на базі технології HMOS. Удалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої або внутрішньої програмної пам'яті і прийнятна ціна забезпечили цьому мікроконтролерові успіх на ринку.

У результаті на сьогоднішній день існує більш 200 модифікацій мікроконтролерів сімейства 8051, що випускаються майже 20-ю компаніями. Ці модифікації містять у собі кристали з найширшим спектром периферії: від простих 20-вивідних пристроїв з одним таймером і 1K програмної пам'яті до складних 100-вивідних кристалів з 10-розрядними АЦП, масивами таймерів-лічильників, апаратними 16-розрядними множення і 64K програмної пам'яті на кристалі. Щороку з'являються всі нові варіанти представників цього сімейства. Основними напрямками розвитку є: збільшення швидкодії (підвищення тактової частоти і переробка архітектури), зниження напруги харчування і споживання, збільшення обсягу ОЗП і FLASH пам'яті на кристалі з можливістю внутрісхемного програмування, уведення до складу периферії мікроконтролера складних пристроїв типу системи керування приводами, CAN і USB інтерфейсів і т. п.

Усі мікроконтролери із сімейства MCS-51 мають загальну систему команд. Наявність додаткового устаткування впливає тільки на кількість регістрів спеціального призначення. Система команд MCS-51, орієнтована на реалізацію різних цифрових алгоритмів керування і має деякі переваги:

біто-біто-орієнтовані операції та адресовані в пам'яті даних бітові поля, що дало можливість говорити про реалізації на кристалі бітового процесора;

реалізовано виконання команд множення, розподіли і вирахування;

удосконалено роботу зі стеком;

розширено групу команд передачі керування;

введення апаратного послідовного дуплексного порту;

дворівнева система переривань.

Мікроконтролер MCS-51 виконаний на основі багаторівневій n-МОП технології. Через чотири програмувальних рівнобіжних порти уведення / виведення й один послідовний порт мікроконтролер взаємодіє з зовнішніми пристроями. Основу структурної схеми (мал. 1) утворить внутрішня двонаправлена 8-бітна шина, що зв'язує між собою основні вузли і пристрої мікроконтролера: резидентну пам'ять програм (RPM), резидентну пам'ять даних (RDM), арифметико-логічний пристрій (АЛП), блок регістрів спеціальних функцій, пристрій керування (CU) і порти уведення / виведення (P0-P3).

Рис. 2. Структурна схема мікроконтролера MCS-51

АЛП - 8-бітний арифметико-логічний пристрій (АЛП) може виконувати арифметичні операції додавання, вирахування, множення і розподіли; логічні операції И, АБО, що виключає АБО, а також операції циклічного зрушення, скидання, інвертування і т. п. До входів підключені програмно-недоступні регістри T1 і T2, призначені для тимчасового збереження операндів, схема десяткової корекції (DCU) і схема формування ознак результату операції (PSW).

Найпростіша операція додавання використовується в АЛП для інкрементування вмісту регістрів, просування регістра-покажчика даних (RAR) і автоматичного обчислення наступної адреси резидентної пам'яті програм. Найпростіша операція вирахування використовується в АЛП для декрементування регістрів і порівняння перемінних.

Важливою особливістю АЛП є його здатність оперувати не тільки байтами, але і бітами. Окремі програмно-доступні біти можуть бути встановлені, скинуті, інвертовані, передані, перевірені і використані в логічних операціях. Ця здатність досить важлива, оскільки для керування об'єктами часто застосовуються алгоритми, що містять операції над вхідними і вихідними булевими перемінними, реалізація яких засобами звичайних мікропроцесорів сполучена з визначеними труднощами.

Таким чином, АЛП може оперувати чотирма типами інформаційних об'єктів: булевими (1 біт), цифровими (4 біти), байтними (8 біт) і адресними (16 біт). У АЛП виконується 51 різна операція пересилання або перетворення цих даних. Тому що використовується 11 режимів адресації (7 для даних і 4 для адрес), те шляхом комбінування операції і режиму адресації базове число команд 111 розширюється до 255 з 256 можливих при однобайтному коді операції.

Резидентна пам'ять програм і даних. Резидентні (розміщені на кристалі) пам'ять програм (RPM) і пам'ять даних (RDM) фізично і логічно розділені, мають різні механізми адресації, працюють під керуванням різних сигналів і виконують різні функції.

Пам'ять програм RPM має ємність 4 Кбайта і призначена для збереження команд, констант, що керують слів ініціалізації, таблиць перекодування вхідна і вихідна перемінних і т. п. Пам'ять має 16-бітну шину адреси, через яку забезпечується доступ із програмного лічильника PC або з регістра-покажчика даних (DPTR). DPTR виконує функції базового регістра при непрямих переходах по програмі або використовується в операціях з таблицями.

Пам'ять даних RDM призначена для збереження перемінних у процесі виконання прикладної програми, адресується одним байтом і має ємність128 байт. Крім того, до її адресного простору примикають адреси регістрів спеціальних функцій, що перераховані в табл. 1.

Пам'ять програм, так само як і пам'ять даних, може бути розширена до 64 Кбайт шляхом підключення зовнішніх мікросхем.

Акумулятор, регістри загального призначення і прапори. Акумулятор (A) є джерелом операнду і місцем фіксації результату при виконанні арифметичних, логічних операцій і ряду операцій передачі даних. Крім того, тільки з використанням акумулятора можуть бути виконані операції зрушень, перевірка на нуль, формування прапора паритету і т. п. У розпорядженні користувача маються 8 регістрів загального призначення R0-R7 одного з чотирьох можливих банків. При виконанні багатьох команд у АЛП формується ряд ознак операції (прапорів), що фіксуються в регістрі PSW.

Найбільше «активним» прапором PSW є прапор переносу, що бере участь і модифікується в процесі виконання безлічі операцій, включаючи додавання, вирахування і зрушення. Крім того, прапор переносу (C) виконує функції «булевого акумулятора» у командах, що маніпулюють з бітами. Прапор переповнення (OV) фіксує арифметичне переповнення при операціях над цілими числами зі знаком і уможливлює використання арифметики в додаткових кодах. АЛП не керує прапорами селекції банку регістрів (RS0, RS1), їхнє значення цілком визначається прикладною програмою і використовується для вибору одного з чотирьох реєстрових банків.

У мікропроцесорах, архітектура яких спирається на акумулятор, більшість команд працюють з ним, використовуючи неявну адресацію. У Intel 8051 справа обстоїть інакше. Хоча процесор має у своїй основі акумулятор, він може виконувати безліч команд і без його участі. Наприклад, дані можуть бути передані з будь-якого осередку RDM у будь-який регістр, будь-який регістр може бути завантажений безпосереднім операндом і т.д. Багато логічних операцій можуть бути виконані без участі акумулятора. Крім того, перемінні можуть бути інкрементованими, декрементованими і перевірені без використання акумулятора. Прапори і керуючі біти можуть бути перевірені і змінені аналогічно.

Регістри-покажчики. 8-бітний покажчик стека (SP) може адресувати будь-яка область RDM. Його вміст інкрементируеться перш, ніж дані будуть запам'ятовані в стеці в ході виконання команд PUSH і CALL. Уміст SP декрементуеться після виконання команд POP і RET. Подібний спосіб адресації елементів стека називають передінкрементним/постдекрементним. У процесі ініціалізації мікроконтролера після сигналу RST у SP автоматично завантажується код 07Н. Це значить, що якщо прикладна програма не перевизначає стек, те перший елемент даних у стеці буде розташовуватися в осередку RDM з адресою 08Н.

Двухбайтнтий регістр-покажчик даних DPTR звичайно використовується для фіксації 16-бітної адреси в операціях зі звертанням до зовнішньої пам'яті. Командами мікроконтролера регістр-покажчик даних може бути використаний або як 16-бітний регістр, або як два незалежних 8-бітних регістри (DPH і DPL).

Регістри спеціальних функцій. Регістри із символічними іменами IP, IE, TMOD, TCON, SCON і PCON використовуються для фіксації і програмної зміни керуючих біт і біт стану схеми переривання, таймера/лічильника, приймача-передавача послідовного порту і для керування енергоспоживанням. Їхня організація буде описана нижче при розгляді особливостей роботи мікроконтролера в різних режимах.

Пристрій керування і синхронізації. Кварцовий резонатор, що підключається до зовнішніх висновків мікроконтролера, керує роботою внутрішнього генератора, що у свою чергу формує сигнали синхронізації. Пристрій керування (CU) на основі сигналів синхронізації формує машинний цикл фіксованої тривалості, рівним 12 періодам резонатора. Більшість команд мікроконтролера виконується за один машинний цикл. Деякі команди, що оперують з 2-байтними словами або зв'язані зі звертанням до зовнішньої пам'яті, виконуються за два машинних цикли. Тільки команди розподілу і множення вимагають чотирьох машинних циклів. На основі цих особливостей роботи пристрою керування виробляється розрахунок часу виконання прикладних програм.

На схемі мікроконтролера до пристрою керування примикає регістр команд (IR). У його функцію входить збереження коду виконуваної команди.

Рівнобіжні порти уведення / виведення інформації. Усі чотири порти (P0-P3) призначені для введення або висновку інформації побайтно. Кожен порт містить керований регістр-засувку, вхідний буфер і вихідний драйвер.

Вихідні драйвери портів 0 і 2, а також вхідний буфер порту 0 використовуються при звертанні до зовнішньої пам'яті. При цьому через порт 0 у режимі тимчасового мультиплексировання спочатку виводиться молодший байт адреси, а потім видається або приймається байт даних. Через порт 2 виводиться старший байт адреси в тих випадках, коли розрядність адреси дорівнює 16 біт. Усі висновки порту 3 можуть бути використані для реалізації альтернативних функцій, перерахованих у табл. 4. Ці функції можуть бути задіяні шляхом запису 1 у відповідні біти регістра-засувки (P3.0-P3.7) порту 3. Порт 0 є двонаправленим, а порти 1-3 - квазидвонаправленими. Кожна лінія портів може бути використана незалежно для введення або висновку.

По сигналі RST у регістри-засувки всіх портів автоматично записуються одиниці, що набудовують їх тим самим на режим уведення.

Звертання до портів уведення / виведення можливо з використанням команд, що оперують з байтом, окремим бітом, довільною комбінацією бітов.

Таймер/лічильник. У складі мікроконтролера маються реєстрові пари із символічними іменами TH0, TL0 і TH1, TL1, на основі яких функціонують два незалежних програмно-керованих 16-бітних таймери/лічильника подій (T/C0 і T/C1). При роботі як таймер уміст T/C інкрементується в кожнім машинному циклі, тобто через кожні 12 періодів резонатора. При роботі як лічильник уміст T/C інкрементується під впливом переходу з 1 у 0 зовнішнього вхідного сигналу, подаваного на відповідний (T0, T1) вхід мікроконтролера. Опитування сигналів виконується в кожнім машинному циклі. Тому що на розпізнавання переходу потрібно два машинних цикли, те максимальна частота підрахунку вхідних сигналів дорівнює 1/24 частоти резонатора. На тривалість періоду вхідних сигналів обмежень зверху немає. Для гарантованого прочитання вхідного сигналу, що зчитується, він повинний утримувати значення 1 як мінімум протягом одного машинного циклу.

Для керування режимами роботи і для організації взаємодії таймерів із системою переривання використовуються два регістри спеціальних функцій TMOD і TCON.

Послідовний порт. Через універсальний асинхронний приймач-передавач UART (Universal Asynchronous Receiver-Transmitter) відбувається передача інформації, представленої послідовним кодом (молодшими бітами вперед), у повному дуплексному режимі обміну. До складу UART, називаного часто послідовним портом, входять приймаючий і передавальний що зрушують регістри, а також спеціальний буферний регістр (SBUF) приймача-передавача, що являє собою два незалежних регістри: буфер приймача і буфер передавача. Завантаження байта в SBUF негайно викликає початок процесу передачі через послідовний порт. Коли байт зчитується з SBUF, це значить, що його джерелом є приймач послідовного порту. Запис байта в буфер приводить до автоматичного перепису байта в регістр передавача, що зрушує, і ініціює початок передачі байта. Наявність буферного регістра приймача дозволяє сполучати операцію читання раніше прийнятого байта з прийомом чергового байта. Якщо до моменту закінчення прийому байта попередній байт не був лічений, то він буде загублений.

Послідовний порт може працювати в чотирьох різних режимах.

Режим 0. Інформація передається і приймається через вхід приймача RXD. Приймаються і передаються 8 біт даних. Через зовнішній вихід передавача TXD видаються імпульси зрушення, що супроводжують кожен біт. Частота передачі дорівнює 1/12 частоти резонатора.

Режим 1. Через TXD передаються або з RXD приймаються 10 біт: старт-битий (0), 8 біт даних і стоп-битий (1). Швидкість прийому/передачі - величина перемінна і задається таймером.

Режим 2. Через TXD передаються або з RXD приймаються 11 біт: старт-битий, 8 біт даних, програмувальний дев'ятий біт і стоп-битий. При передачі дев'ятий біт може використовуватися для підвищення вірогідності передачі шляхом контролю по парності й у нього можна помістити значення ознаки паритету з PSW. Частота прийому/передачі вибирається програмно і може бути дорівнює 1/32 або 1/64 частоти резонатора в залежності від SMOD.

Режим 3. Збігається з режимом 2, але частота прийому/передачі є величиною перемінної і задається таймером.

Система переривань.

Зовнішні переривання INT0 і INT1 можуть бути викликані рівнем або переходом сигналу з 1 у 0 на входах мікроконтролера в залежності від значень керуючих бітів IT0 і IT1 у регістрі TCON. Від зовнішніх переривань установлюються прапори IE0 і IE1 у регістрі TCON, що ініціюють виклик відповідної підпрограми обслуговування переривання. Скидання цих прапорів виконується апаратно тільки в тому випадку, якщо переривання було викликано по переходу (зрізові) сигналу. Якщо ж переривання викликане рівнем вхідного сигналу, то скиданням прапора IE керує відповідна підпрограма обслуговування переривання шляхом впливу на джерело переривання з метою зняття їм запиту.

Прапори запитів переривання від таймерів TF0 і TF1 скидаються автоматично при передачі керування підпрограмі обслуговування. Прапори запитів переривання RI і TI установлюються UART апаратно, але скидатися повинні програмою. Переривання можуть бути викликані або скасовані програмою, тому що всі перераховані прапори програмно доступні.

Можливість програмної установки / скидання будь-якого керуючого біта в цих двох регістрах робить систему переривань винятково гнучкої.

Прапори переривань опитуються в кожнім машинному циклі. Ранжирування переривань по пріоритеті виконується протягом наступного машинного циклу. Система переривань сформує апаратно виклик LCALL відповідної підпрограми обслуговування, якщо вона не заблокована.

мікроконтролер пам'ять регістр інтерфейс

Размещено на Allbest.ru


Подобные документы

  • Архітектура моделі IntServ, її мета, функціональні блоки, переваги та недоліки. Призначення протоколу сигналізації RSVP, принципи його функціонування, стилі та механізм резервування. Типи повідомлень і інтегрованих послуг, які використовуються в RSVP.

    реферат [208,6 K], добавлен 28.03.2011

  • Структура и основні елементи архітектури Virtex, їх взаємодія та принцип роботи. Банки вводу-виводу. Логічний блок, що конфігурується – КЛБ. Таблиця перетворення. Елементи, що запам'ятовують. Умови та порядок позначення мікросхем сімейства Virtex.

    реферат [913,2 K], добавлен 09.11.2010

  • Структурна схема пристрою. Умовне графічне позначення мікроконтроллера ATmega. Схема підключення процесорного блоку. Призначення цифро-аналогового перетворювача. Розрахунок електричних навантажень на лінії мікросхем. Програма ініціалізації інтерфейсу.

    курсовая работа [1,6 M], добавлен 31.05.2013

  • Історія розвитку послуг IN. Розподілена та централізована архітектура побудови IN. Переваги цифрових комутаційних систем і цифрових систем передачі. Функції контролю та адміністративного управління IN. Частково розподілена архітектура побудови IN.

    реферат [558,8 K], добавлен 16.01.2011

  • Розробка структурної, функціональної та принципової електричної схеми каналу послідовної передачі даних. Моделювання каналу послідовної передачі даних. Розрахунок параметрів і часових характеристик каналу, токів і потужності та надійності пристрою.

    курсовая работа [208,4 K], добавлен 20.01.2009

  • Функціональна схема мікроконтролера ATtiny24 та її опис. Архітектура пристроїв з низьким енергоспоживанням. Конструювання структурної та функціональної схеми мультиметра. Розрахунок режимів вимірювання. Методи підключення основних компонентів приладу.

    курсовая работа [363,8 K], добавлен 27.01.2011

  • Базові принципи, що лежать в основі технології ATM. Мережі з встановленням з'єднання. Рівень адаптації ATM і якість сервісу. Типи віртуальних каналів. Стандарти моделі АТМ, архітектура, фізичний рівень. Функції передачі сигналів і управління трафіком.

    реферат [395,7 K], добавлен 05.02.2015

  • Архітектура та побудова IP-телебачення. Особливості захисту контенту від несанкціонованого доступу. Характеристика системи розподілу контенту. Сутність, функції та вимоги до системи біллінгу. Порівняння принципів кодування стандартів MPEG2 і MPEG4 AVC.

    реферат [1,7 M], добавлен 30.01.2010

  • Блок керування та синхронізації. Вибір АЦП, комутатора-мультиплексора, інтерфейсних схем. Таблиця розподілу оперативної пам'яті. Розробка структурної та принципової схеми і алгоритму функціонування контролера. Архітектура мікроконтролерів MCS-51.

    курсовая работа [801,8 K], добавлен 17.05.2013

  • Методи діагностування мікропроцесорних систем керування у вигляді інформаційної структури. Кваліфікація оператора-діагноста, етапи процесу діагностування. Поглиблена локалізація несправності та підтвердження діагнозу. Карти симптомів несправностей.

    контрольная работа [80,1 K], добавлен 03.10.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.