Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
final (восстановлен).docx
Скачиваний:
1
Добавлен:
27.08.2019
Размер:
298.79 Кб
Скачать

4.Які класи мікроконтролерів ви знаєте? Детально охарактеризуйте регістри, стек та зовнішню пам'ять мікроконтролера.

Я знаю 3 класи мікроконтролерів:

  • 8-розрядні мікроконтролери

  • 16-32-розрядні міроконтролери

  • цифрові сигнальні процесори

Регістри мікроконторолера.

В число регістрів мікроконтролера входять регістр акумулятора, слово стану процесора, регістри таймерів, регістри даних портів, регістри керування портами вводу/виводу. Звернення до цих регістрів може бути реалізоване по-різному. В мікроконтролерах з RISCархітектурою процесора всі регістри розташовуються за явною адресою. В деяких мікроконтролерах всі регістри і пам'ять даних розташовуються в одному адресному просторі (відображення ресурсів мікроконтролера на пам'ять). В інших мікроконтролерах регістри пристроїв вводу/виводу відокремлені від решти регістрів. Є можливість в гарвардській архітектурі зчитувати дані паралельно з командами.

Стек мікроконтролера

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

Якщо в процесорі є окремий стек, але він вже повністю зайнятий якимись даними, то відбувається циклічна зміна вказівника стека. Відбувається переписування поверх записаного. Тобто при виконанні великої кількості підпрограм існує загроза неправильних адрес. Якщо архітектура фоннейманівська – є загроза запису в область даних (оскільки використовується спільний адресний спосіб).

Зовнішня пам'ять

Якщо мікроконтролер має спеціальні апаратні засоби для підключення додаткових модулів пам'яті – можемо відповідно ці модулі підключати. Порти вводу/виводу – використовуються для підключення зовнішніх модулів – прості програмовані штуки (?) без використання складних шинних інтерфейсів.

5. Як організовано взаємодію мікроконтролера із зовнішнім середовищем? Детально опишіть функції портів вводу/виводу.

Порти вводу/виводу мікроконтролера.

Кожен мікроконтролер має певну кількість портів вводу/виводу (часто 8 – розрядні порти вводу/виводу). В пам'яті мікроконтролера кожній вісімці ліній відповідає своя адреса. Окремі розряди портів можуть бути опитані командами бітового процесора.

Типи портів в/в:

  • одно направлені порти (використовуються лише для вводу або для виводу)

  • двонаправлені (напрямки визначаються в процесі ініціалізації мікроконтролера)

  • мультиплексовані порти (з пристроями – таймерами, АЦП тощо)

  • з програмно керованою схемотехнікою (керується програмою в процесі виконання програми)

Порти виконують роль часового узгодження.

Режими:

  • режим простого програмного вводу/виводу (найшвидший, але найненадійніший)

  • режим вводу/виводу із стробуванням (середній по швидкодії і надійності)

  • обмін по шинах з повним набором сигналів підтвердження (найповільніший, але найнадійніший режим)

6.Як організовано взаємодію мікроконтролера із зовнішнім середовищем?Детально опишіть функції таймерів.

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

Оскільки покладати функцію формування керування в реальному часі тільки на один процесор є неефективним(займає ресурси,чкі необхідні для розрахункових ресурсів),то в більшості сучасних мікроконтролерах використовується апаратна підтримка роботи в реальному часі з використанням таймеру.

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

М одуль таймеру 8-розрядного мікроконтролера являє собою 8 або 16-ти розрядний лічильник з схемою керування.Схемотехніка мікроконтролера зазвичай передбачає можливість використання таймеру в режимі лічильника зовнішніх подій,тому його називають таймер/лічильник.

Структура типового таймеру/лічильнику у складі мікроконтролеру:

В памяті мікроконтролера 16-розрядний лічильник відображається 2 регістарми:ТН-старший байт, TL -молодший байт. Регістри придатні для читання та запису. Напрямок рахунку-тільки прямий,тобто при надходженні вхідних імпульсів зміст лічильнику інкрементується.В залежності від налаштування лічильник може використовувати один з джерел вхідних сигналів:

-імпульсну послідовність з входу керуючого дільника частоти fbus;

-сигнали від зовнішніх подій,які надходять на вхід ТОСКІ контролера.

В першому випадку кажуть,що лічильник працює в режимі таймеру,в другому випадку-в режимі лічильника подій.При переповненні лічильника тригер переповнення TF встановлюється на 1 і генерує запит на переривання(якщо переривання від таймеру дозволені) .Запуск та зупинка таймеру може виконуватись тільки за допомогою керування програмою. Також можна встатновити старший та молодший біти лічильника в довільному стані,абопрочитати поточний код лічильника.

Ми розглянули “класичний” модуль таймера/лічильника,він широко застосовується в різних моделях відносно простих мікроконтролерів.Він може використовуватися для вимірювання часових інтервалів та формування послідовності імпульсів.Основні недоліки:

-втрати часу на виконання команд запуску та зупинки таймеру(також вони можуть приводити до появи помилки при вимірюванні часових інтервалів ,обмежують мінімальну тривалість вимірюваних проміжків часу одиницями мс;

-проблеми при формуванні часових інтервалів(міток часу),які відрізняються від періоду повного коефіцієнта рахунку,який = Кдел/fbus *(2)16(це степінь);

-неможливість одночасного обслуговування(вимірювання чи формування імпльсного сигналу) декількох каналів одночасно.

Перші з двох перерахованих недоліків були усунені в покращенному модулі таймеру/лічильника,який використовується в мікроконтролері сімейства MSC-51(Intel).Додаткова логіка лічильного входу дозволяє тактовим імпульсам надходити на вхід лічильника,якщо рівень сигналу на одній із ліній вводу =”1”.Таке рішення підвищує точність вимірів часових інтервалів(оскільки запуск та зупинка таймеру проводиться аппартно).Також в покращенному таймері реалізований режим перезавантаження лічильника довільним кодом в момент переповнення.Це дозволяє формувати часові послідовності з періодом,відмінним від періоду повного коефіцієнту лічення.Однак не було усунено головного недоліку-одноканального режиму роботи.Покращення підсистеми реального часу мікроконтролеру ведеться по наступним напрямкам:

-збільшення кількості модулей таймерів/лічильників.(Mitsubishi,Hitachi)

-модифікація стр-ри модулю т/л,при якій підвищення к-сті каналів досягається не за рахунок підвищення к-сті лічильників,а за рахунок введення додаткових аппартних засобів вхідного захоплення і вихідного порівняння.Такий підхід використовується(Motorola).

П ринцип дії каналу вхідного захоплення:

Схема детектору подій “спостерігає “за рівнем напруги на одному з виходів мікроконтролеру.Найчастіше це одна з ліній порту вводу/виводу..При зміні рівня логічного сигналуз “0” на “1” і навпаки створюєтиься строб запису,і поточний стан лічильника/таймеру записуєтьяс в 16-розрядний регістр вхідного захоплення.Така дія називається подією захоплення.Передбачена можливість вибору типу сгналу на вході,це також сприймаєтьяс як подія:

-позитивний(передній) фронт сигналу;

-негативний(задній) фронт сигналу;

-довільна зміна логічног рівня сигналу;

Вибір типу події захоплення встановлюється в процесі ініціалізації таймеру і може змінюватись при виконанні програми.Кожна подія захоплення приводиь до всатновлення “1” тригеру вхідного захоплення і до появи його на вході ознаки вхіднго захоплення ICF. Стан тригеру вхіднго сигналу може бути зчитано програмно,а якщо переривання по події захоплення дозволені,то формується запит на переривання INT IC.

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

Структура аппаратних засобів каналу вихідного порівняння:

Цифровий компаратор неперервно порівнює поточний код лічильника/таймеру з кодом,який записаний в 16-розрядному регістрі вихідного порівняння.В момент рівності кодів на одному з виходів мікроконтролера встановлюється заданий рівень логічного сигналу.Зазвичай передбачено 3 типи зміни сигналу на виході в момент події вихідного порівняння:

-встановлення високого логічного рівня;

-встановленя низького логічного рівня;

-інвертування сигналу на виході.

При здійсненні події порівняння,встановлюється в “1” тригер вихідного порівняння і відповідна йому ознака вихідного порівняння ОСF.Аналогічно режиму вхідного захоплення стану тригеру вихідного порівняння може бути зчитано программно,а якщо переривання по події порівняння розширені -формується запит на переривання INT oc.

Режим вихідного порівняння призначений для формаування часових інтервалів заданої тривалості.Тривалість зформованного часового інтервалу визначається тільки різницею кодів,які послідовно завантажуються в регістр вихідного порівняння(не залежить від програмного забезпечення мікроконтролера).Час,який необхідний для запису нового значення коду в регістр каналу порівняння,обмежує мін.тривалість часового інтервалу,що формується.

Модулі покращеного таймеру використовуються в мікроконтролерах в різних модифікаціях.Число каналів вхідного захоплення може бути різним.В низці модулей канали можуть бути довільним чином виставлені на ф-ію вхідного захоплення або вихідного порівняння засобом ініціалізації.Оскільки лічильник в оновленому таймері може не мати ф-ії програмної зупинки,то в цьому випадку стан лічильника не можна буде синхронізувати з довільним моментом роботи мікроконтролера.Такий лічильник характеризується як вільно рахуючий.

Обмеження модулей покращеного таймеру:

-недостатня к-ст каналів захоплення та порівняння,які належать до одного лічильника сучасної бази.Це не дозволяє формувати синхронізовані між собою багатоканальні імпульсні послідовності;

-однозначно визначена конфігурація каналу зазвичай не задовільняє потреби задачі,яка вирішується.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]