Лабораторна робода №9. Програмування послідового порту, інтерфейс RS-232
Лабораторна робода №9. Програмування послідового порту, інтерфейс RS-232
Тема: Програмування послідовного порту, інтерфейс RS-232. Мета: Вивчити принцип передачі даних по інтерфейсу RS-232, зокрема ознайомитися з режимами роботи послідовного інтерфейсу, здійснити налаштування прийому/передачі даних на різних режимах
Порядок виконання роботи: 1. Вивчити принцип роботи послідовного інтерфейсу RS-232. 2. Розробити алгоритм індивідуального завдання до початку заняття. 3. Розробити програму і скомпілювати її. 4. Завантажити програму в стенд, переконатись в правильності її роботи, при негативному результаті виявити допущені помилки і виправити їх. Повторити завантаження схеми в стенд.
Рисунок 9. 1 – Схема для лабораторної роботи №9
Короткі теоретичні відомості Універсальний асинхронний приймач-передавач (UART – Universal Asynchronous Receiver-Transmitter) – периферійний пристрій мікроконтролера, який дозволяє послідовно передавати ти приймати дані по двох однопровідних лініях. UART має можливість працювати в режимі повного дуплексу і не використовувати при цьому додаткової лінії для синхронізації. Часто UART застосовують у парі з інтерфейсом RS-232 для зв’язку периферійного пристрою з персональним комп’ютером. Сигнали UART та RS-232 відрізняються в основному рівнями логічної одиниці та нуля. Якщо UART використовує рівні стандартні для КМОН чи ТТЛ логіки, то стандарт RS-232 передбачає використання напруги від -3В до -25В для кодування логічної одиниці та напруги від 3В до 25В для кодування логічного нуля. Передавання даних відбувається пакетами по 8 або 9 біт (молодші біти передаються першими). Синхронізація приймача та передавача відбувається таким чином (рис. 9. 2). У спокої лінія утримується передавачем у стані логічної одиниці. Якщо виникає необхідність передати дані то передавач передає нульовий старт біт, вісім або дев’ять інформаційних бітів, та обов’язково одиничний стоп-біт, що повертає лінію в стан очікування. Дев’ятий інформаційний біт можна використати для перевірки цілісності байта.
При прийманні посилання, приймач постійно прослуховує лінію RXD і в момент переходу з одиничного в нульовий стан (прийом старт-біта) внутрішній таймер прийому скидаєтьсь в нуль, щоб синхронізувати його із таймером передавача. По синхронізованому внутрішньому таймеру контролер за період переривання кожного інформаційного біта тричі опитує лінію RXD, а у вхідний буфер записується значення, отримане шляхом “мажоритарного голосування” – записується значення, отримане принаймні в двох вимірах із трьох. Після прийому всіх інформаційних біт та стоп-біта приймач переходить у стан очікування нового старт-біта.
Рисунок 9. 2 – Часові діаграми роботи UART
Для успішного обміну приймач і передавач має бути налаштованим на одну і ту ж швидкість передавання та довжину посилання. Допустиме відхилення частоти передавача та приймача визначається з умов недопущення роз синхронізації за час передачі посилання і не може перевищувати 3%. UART сімейства мікроконтролерів MCS51 (до якого відноситься ADuC841) передбачає рободу в чотирьох режимах, які вибираються регістром SCON (табл. 9. 2). В нульовому, синхронному, режимі дані передаються та приймаються через вхід RXD, вихід TXD передає синхроімпульси. В першому-третьому режимах дані передаються асинхронно виводом TXD, а приймаються RXD. - в першому режимі передається старт-біт, 8 біт даних та стоп-біт; - у другому та третьому режимах передається старт-біт, 9 біт даних і стоп-біт. Щоб задати частоту передачі даних по UART використовуємо таймер 3, який в мікроконтролері ADuC841, призначений для даної задачі. Для того щоб здійснювати передачу даних з відповідною швидкістю необхідно налаштувати регістр T3CON, який відповідає за режим роботи таймера 3 для даного регістра потрібно визначити значення дільника (DIV) за формулою:
де: fCODE – частота тактування контролера; Baud Rate – швидкість передач (Бод). При розрахунку заокруглення отриманого результату необхідно здійснити в сторону меншого цілого числа.
Таблиця 9. 1 – Біти регістру T3CON
Також необхідно встановити відповідний дробовий коефіцієнт дільника, який записуємо в регістр T3FD і значення розраховуємо за формулою:
Отримане значення слід заокруглювати до ближчого цілого числа. Для прикладу проведемо розрахунок значення регістрів T3CON і T3FD при передачі даних з швидкістю 115200 Бод, для 11, 0592МГц.
DIV=log(11059200/(16х115200))/log2=2, 563=2 T3CON=82H T3FD=(2х11059200)/(22-1х115200)-64=32=20H Таблиця 9. 2 – Біти регістру SCON
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|