- •Міністерство освіти і науки, молоді та спорту україни Національний університет "Львівська політехніка"
- •Інструкція до лабораторної роботи №2
- •Тема. "Програмування послідовного порту (uart)"
- •Мета роботи.
- •Короткі теоретичнi відомості.
- •Домашня підготовка до роботи:
- •Порядок виконання роботи
- •Контрольні питання.
- •Рівень знань та навичок після виконання лабораторної роботи.
- •Література.
Міністерство освіти і науки, молоді та спорту україни Національний університет "Львівська політехніка"
Науково-навчальний інститут екології, природоохоронної діяльності та туризму імені В’ячеслава Чорновола
Кафедра загадьної екології та екоінформаційних систем
Інструкція до лабораторної роботи №2
з дисципліни «Програмування мікропроцесорних систем»
Тема. "Програмування послідовного порту (uart)"
Для студентів базового напряму 6.0915 „Комп’ютерна інженерія”
Затверджено
на засіданні кафедри ЗЕС
Протокол № 1 від 22.08.2011 р.
Львів – 2011
Мета роботи.
1.1. Набути практичних навичок програмування послідовного порту (UART).
1.2. Навчитися використовувати UART для передачі даних між окремими пристроями.
Короткі теоретичнi відомості.
Через універсальний асинхронний прийомо/передавач UART (Universal Asynchronous Receiver- Transmitter) здійснюються прийом і передача інформації, представленої послідовним кодом (молодшими бітами вперед), у повному дуплексному режимі обміну. До складу UART, званого часто послідовним портом, входять приймальний і передавальний регістри зсуву, а також спеціальний буферний регістр (SBUF).
Крім того, роботою послідовного порту керують два службові регістри:
регістр управління/статусу SCON;
біт SMOD регістра управління потужністю PCON.
Запис байта в SBUFприводить до автоматичного перезапису байта в регістр зсуву передавача і ініціює початок передачі байта. Наявність буферного регістра приймача дозволяє суміщати операцію читання раніше прийнятого байта з прийомом чергового. Але якщо до моменту закінчення прийому байта попередній не був зчитаний з SBUF, то він буде втрачений.
Послідовний порт може працювати в чотирьох різних режимах:
Режим 0. Інформація і передається і приймається через вивід RxD). Приймаються або передається 8 біт даних. Через вивід TхD видаються тактові імпульси зсуву, які супроводжують кожний біт. Частота передачі інформації рівна 1/12 частоти кварцевого резонатора
Режим 1. У цьому режимі через TхD передаються та (або) через RхD приймаються 10 біт інформації: старт-біт (0), 8 біт даних і стоп-біт (1). Частота прийому/передачі - величина змінна і задається таймером TMR1
Режим 2. У цьому режимі через TхD передаються та (або) через RхD приймаються 11 біт інформації: старт-біт, 8 біт даних, програмований дев'ятий біт і стоп-біт. При передачі дев'ятий біт даних може набувати значення 0 або 1 або, наприклад, для підвищення достовірності передачі шляхом контролю по парності в нього може бути поміщене значення ознаки паритету із слова стану програми (PSW.0). При прийомі дев'ятий біт даних поміщається в біт RB8 регістру SCON. Частота прийому/передачі вибирається програмою і може бути рівна або 1/32, або 1/64 частоти резонатора залежно від значення біта SMOD.
Режим 3. Збігається з режимом 2 у всіх деталях, за винятком частоти прийому/передачі яка є величиною змінною і задається таймером.
У всіх випадках передача ініціалізувалася інструкцією, в якій дані переміщуються в SBUF.
Прийом ініціалізувався при виявленні перепаду з 1 в 0 на вході приймача. При цьому в режимі 0 цей перехід повинен супроводжуватись виконанням умов RІ = 0 і REN = 1, а для решти режимів - REN = 1.
Управління режимом роботи приймача здійснюється через спеціальний регістр з символічним ім'ям SCON. Цей регістр містить не тільки керівні біти, що визначають режим роботи послідовного порту, але і дев'ятий біт даних (RB8 і ТВ8), що приймається або передається, і біти переривання приймача (RІ і ТІ).
Прикладна програма шляхом завантаження в старші біти регістра SCON двохбітової комбінації визначає режим роботи приймача. У всіх чотирьох режимах роботи передача ініціалізується будь-якою командою, в якій буферний регістр SBUF вказаний як одержувач байта. Як вже наголошувалося, прийом здійснюється за умови, що REN = 1.
У біті ТВ8 програмно встановлюється значення дев'ятого біта даних, який буде переданий у режимі 2 або 3. У біті RB8 в цих режимах фіксується дев'ятий біт даних, що приймається. У режимі 1 в біт RB8 заноситься стоп-біт. У режимі 0 біт RB8 не використовується.
Прапор переривання передавача ТI встановлюється апаратно в кінці періоду передачі стоп-біта у всіх режимах. Відповідна підпрограма обслуговування переривання повинна скидати біт TІ.
Прапор переривання приймача RI встановлюється апаратного в кінці періоду прийому восьмого біта даних. Підпрограма обслуговування переривання повинна скидати біт RI.
Регістр управління/статусу (SCON)
Символ |
Позиція |
Ім'я і призначення |
||
SM0 |
SCON.7 |
Биті управління режимом роботи УАПП. Встановлюються/ скидаються програмно (див. примітку) |
||
SM1 |
SCON.6 |
|||
SM2 |
SCON.5 |
Біт управління режимом УАПП. Встановлюється програмно для заборони прийому повідомлення, в якому десятий біт має значення 0 |
||
REN |
SCON.4 |
Біт дозволу прийому. Встановлюється/скидається програмно для дозволу/заборони прийому послідовних даних |
||
TB8 |
SCON.3 |
Передача службового біта. Встановлюється/скидається програмно для завдання службового передаваного біта в режимах 2, 3. |
||
RB8 |
SCON.2 |
Прийом службового біта. Встановлюється/скидається апаратурно для фіксації службового біта, що приймається, в режимах 2, 3 |
||
TI |
SCON.1 |
Прапор переривання передавача. Встановлюється апаратурно при закінченні передачі байта. Скидається програмно після обслуговування переривання |
||
RI |
SCON.0 |
Прапор переривання приймача. Встановлюється апаратурно при прийомі байта. Скидається програмно після обслуговування переривання |
||
Примітка |
||||
SM0 |
SM1 |
Режим роботи УАПП |
||
0 |
0 |
Р-м 0. Синхронна передача 8 біт даних |
||
0 |
1 |
Р-м 1. Асинхронна передача 8 біт даних |
||
1 |
0 |
Р-м 0. Асинхронна передача 8 біт даних і службового біта |
||
1 |
1 |
Р-м 0. Асинхронна передача 8 біт даних і службового біта |
Регістр управління потужністю (PCON)
Символ |
Позиція |
Ім'я і призначення |
SMOD |
PCON.7 |
Подвоєна швидкість передачі. Якщо біт встановлений в 1, то швидкість передачі удвічі більше, ніж при SMOD = 0 |
- |
PCON.6 |
Не використовуються |
- |
PCON.5 |
|
- |
PCON.4 |
|
GF1 |
PCON.3 |
Прапори, що специфікуються користувачем (прапори загального призначення) |
GF0 |
PCON.2 |
|
PD |
PCON.1 |
Біт зниженої потужності. При установці біт а в 1 МК переходить в режим зниженої споживаної потужності |
IDL |
PCON.0 |
Біт холостого ходу. Якщо біт встановлений в 1, то МК переходить в режим холостого ходу |
Швидкість прийому/передачі, тобто частота роботи УАПП в різних режимах, визначається різними способами.
У режимі 0 частота передачі залежить тільки від резонансної частоти кварцового резонатора Fпер =fclk/12. За один машинний цикл послідовний порт передає один біт інформації.
У режимах 1, 2 і 3 швидкість прийому/передачі залежить від значення управляючого біта SMOD в регістрі спеціальних функцій PCON.
У режимі 2 частота передачі визначається виразом Fпер = 2SMOD/64 * fclk іншими словами, при SMOD = 0 частота передачі рівна fclk/64, а при SMOD = 1 рівна fclk/32.
У режимах 1 і 3 у формуванні частоти передачі окрім управляючого біта SMOD бере участь таймер 1. При цьому частота передачі залежить від частоти переповнювання таймера (таймер повинен працювати в режимі 2)
Fпер = 2SMOD/32 * fclk /12 * 1 /(256-(TH1))
Керування комунікаційними інтерфейсами лабораторного стенда здійснюється за допомогою комірки ЗПД з адресою С000h шляхом запису в неї однієї з наступних комбінацій:
00 - вибраний COM1;
01 - вибраний COM2;
10 - вибраний RS-485 (прийом);
11 - вибраний RS-485 (передача).