
- •Розділ 5 інтерфейс пристроїв введення-виведення
- •5.1. Функції інтерфейсу введення-виведення
- •5.2. Програмований паралельний інтерфейс
- •5.3. Програмований інтерфейс клавіатури та індикації
- •5.4. Програмований таймер
- •5.5. Архітектура і функціональні можливості контролера прямого доступу до пам'яті
- •5.6. Програмований послідовний інтерфейс
- •5.7. Програмований контролер переривань
- •5.8. Приклад розробки мікропроцесорної системи
5.6. Програмований послідовний інтерфейс
Програмований послідовний інтерфейс КР580ВВ51 (І8251) — це універсальний синхронно-асинхронний приймач-передавач (УСАПП), призначений для організації обміну між МП і зовнішніми пристроями в послідовному форматі. Універсальний синхронно-асинхронний приймач-передавач приймає дані з 8-розрядної шини даних МП і передає їх у послідовному форматі периферійному пристрою або отримує послідовні дані від периферійного пристрою й перетворює їх на паралельну форму для передавання МП. Обмін може бути як напівдуплексним (односпрямованим), так і дуплексним (двонапрямленим). Послідовний інтерфейс здійснює обмін даними в асинхронному режимі зі швидкістю передавання до 9 6 Кбіт/с або в синхронному — зі швидкістю до 56 Кбіт/с залежно від запрограмованого режиму. Довжина переданих даних - від 5 до 8 біт. Під час передавання в МП символів завдовжки менше ніж 8 біт невикористані біти заповнюють нулями. Формат символу містить також службові біти і необов'язковий біт контролю парності.
Структурна схема УСАПП (рис. 5.51) містить:
• буфер передавача TBF зі схемою керування передавачем TCU, який призначений для приймання даних від МП і видавання їх у послідовному форматі на вихід Тх;
• буфер приймача RBF зі схемою керування приймачем RCU, що виконує приймання послідовних даних із входу Rx і передавання їх у МП у паралельному форматі;
• буфер даних BD, який є паралельним 8-розрядним двонапрямленим буфером шини даних з тристабільними каскадами, що використовується для обміну даними та керуючими словами між МП і УСАПП;
Рис. 5.51. Структурна схема УСАПП
• блок керування читаниям-записом RWCU, що приймає керуючі сигнали від МП і генерує внутрішні сигнали керування;
• блок керування модемом MCU, що обробляє керуючі сигнали, призначені для зовнішнього пристрою.
Призначення виводів ВІС УСАПП наведено у табл. 5.13. З'єднання УСАПП із шинами МП показано на рис. 5.52.
Таблиця 5.13. Призначення виводів УСАПП
Позначення виводу |
Номер виводу |
Призначення |
|
D7-D0 |
8; 7; 6; 5; 2; 1; 28; 27 |
Канал даних |
|
RESET |
21 |
Установлення «0» (вихідний стан) |
|
CLK |
20 |
Синхронізація |
|
A0 |
12 |
Низький рівень визначає можливість запису або читання даних в(із) УСАПП; високий рівень визначає можливість запису керуючих слів або читання слова стану в (із) УСАПП |
|
|
13 |
Читання-дозвіл виведення даних або слова стану з УСАПП на шину даних |
|
|
10 |
Запис-дозвіл введення інформації із шини даних |
|
|
11 |
Вибірка кристала-з'єднання УСАПП із шинами даних МП |
|
|
22 |
Готовність передавача термінала |
|
|
24 |
Запит передавача термінала |
|
|
17 |
Готовність приймача термінала |
|
|
23 |
Запит приймача термінала |
|
SYNDET |
16 |
Вид синхронізації: для синхронного режиму вихідний сигнал високого рівня — ознака внутрішньої синхронізації; для синхронного режиму із зовнішньою синхронізацією сигнал є вхідним; в асинхронному режимі сигнал є вихідним |
|
RxC |
25 |
Синхронізація приймача |
|
RxRDY |
14 |
Готовність приймача |
|
RxD |
3 |
Вхід приймача |
|
ТхС |
9 |
Синхронізація передавача |
|
|
18 |
Кінець передавання. Сигнал високого рівня є ознакою закінчення посилання даних |
|
TxRDY |
15 |
Готовність передавача |
|
TxD |
19 |
Вихід передавача |
|
Ucc |
26 |
Напруга живлення +5 В |
Сигнал Аі, поданий на вивід ВІС ЛО, визначає дві адреси УСАПП. Для адреси з Аі = 0 передаватимуться дані, а за Аі = 1 записуватимуться команди або читатиметься слово стану. Інші виводи під'єднані до однойменних ліній шин МП системи.
Програмування УСАПП відбувається завантаженням керуючих слів. Розрізняють керуючі слова двох типів: керуюче слово ініціалізації та операційне керуюче слово.
Значення сигналів адреси A0, керування читанням , записом і вибіркою під час запису та читання регістрів ВІС подано у табл. 5.14.
Керуюче слово ініціалізації задає синхронний або асинхронний режим роботи, формат даних, швидкість приймання або передавання, контроль правильності даних. Це слово заноситься відразу після встановлення УСАПП у вихідний стан відповідною програмою або за сигналом RESET, а замінюється лише у разі зміни режиму. Формат керуючого слова різний в асинхронному чи синхронному режимах.
В асинхронному режимі роботи дані, що передаються, містять нульовий старт-біт, біти даних, біт контролю і стоп-біти. Кількість бітів даних і стоп-бітів та наявність або відсутність біта контролю задаються записом в УСАПП керуючого слова режиму (рис 5.53, а). Розряди DO і D1 визначають коефіцієнт ділення сигналів синхронізації CLK. Розряди D3 і D2 визначають кількість бітів даних. Режим контролю задається розрядами D5 і D4; за D4 = 0 контроль парності заборонений; значення розряду D5 встановлює вид контролю — парності або непарності. Розряди D1 і D6 визначають кількість переданих стоп-бітів.
Рис. 5.52. З'єднання УСАПП із шинами МП
Таблиця 5.14. Визначення операцій сигналами керування від МП
Операція |
Сигнали керування |
|||
A0 |
|
|
|
|
Читання даних з УСАПП на шину D7 — D0 |
0 |
0 |
1 |
0 |
Запис даних із шини D7—D0 в УСАПП |
0 |
1 |
0 |
0 |
Зчитування слов стану з УСАПП на шину D7 — D0 |
1 |
0 |
1 |
0 |
Запис керуючого слова із шини D7-D0 в УСАПП |
1 |
1 |
0 |
0 |
Високоімпедансний стан виводів |
x |
1 |
1 |
0 |
D7-D0 |
x |
x |
x |
1 |
Синхронний обмін передбачає передавання даних у вигляді масивів слів. Для синхронізації запуску під час приймання даних використовуються один або два символи синхронізації (спеціальні кодові комбінації, наприклад 10010100). Формат керуючого слова ініціалізації режиму для синхронного обміну наведено на рис. 5.53, б. Розряди D1 і D0 мають нульове значення. Розряд D6 встановлює тип синхронізації (зовнішню або внутрішню). Розряд D1 визначає використання одного (D7 = 1) або двох (D7 = 0) символів синхронізації. Призначення розрядів D3, D2 і D5, D4 аналогічне призначенню цих розрядів під час асинхронного обміну.
Контроль стану УСАПП у процесі обміну даними МП здійснюється за допомогою команди читання слова стану. На рис. 5.53, в показано формат слова стану УСАПП. Розряд D3(PE) установлюється тоді, коли виникають помилки парності; розряд D4(ОЕ) — коли виникають помилки переповнення, якщо МП не прочитав символ; розряд D5 — коли виникає помилка, внаслідок того, що для асинхронного режиму не виявлено стоп-біт. Інші розряди слова стану мають таке саме значення, що й однойменні виводи МП, які наведені в табл. 5.13.
Рис. 5.53. Формат керуючого слова ініціалізації:
а — для асинхронного обміну; б — для синхронного обміну; в — формат
слова стану
Керування роботою УСАПП після ініціалізації здійснюється записуванням операційних керуючих слів, які можуть багаторазово задаватися у процесі обміну, керуючи різними його етапами. Призначення окремих розрядів операційного керуючого слова УСАПП наведено в табл. 5.15.
Під час асинхронного обміну операційне керуюче слово завантажується відразу після керуючого слова ініціалізації, а під час синхронного — перед ним розміщуються один або два символи синхронізації.
Часові діаграми сигналів керування УСАПП під час запису керуючого слова режиму, символів синхронізації команди наведено на рис. 5.54, а, а часові діаграми сигналів під час читання слова стану — на рис. 5.54, б.
Запис керуючих слів і символів
синхронізації здійснюється через
шину даних DB у
процесі подання на вхід С
/
Н-рівня,
а на вхід
— L-рівня
(див. рис. 5.54, а). Після
початкового встановлення УСАПП приймає
інформацію на DB
як керуюче слово
ініціалізації і розміщує його у
відповідному регістрі. Блок RWCU
дешифрує це слово і,
якщо запрограмований асинхронний режим,
то наступне слово сприймається як
операційне керуюче слово, а якщо
синхронний — інформація на DB
сприймається як символ
синхронізації.
Таблиця 5.15. Призначення розрядів операційного керуючого слова УСАПП
Розряд |
Позначення |
Призначення |
D0 |
ТхЕ |
Дозвіл передавання. За нульового значення передавання інформації неможлива, за одиничного — можлива |
D1 |
DTR |
Запит про готовність передавача до передавання. За одиничного значення — запис нуля на виході DTR |
D2 |
RxE |
Дозвіл на прийом. За нульового значення приймання інформації неможливе, за одиничного — можливе |
D3 |
SBRK |
Кінець передавання. За нульового значення — нормальна робота каналу передавання, при одиничному значенні — встановлення високого рівня на виводі TxD |
D4 |
ER |
Виявлення помилок. За одиничного значення — встановлення розрядів помилок у вихідний стан |
D5 |
RTS |
Запит про готовність приймача термінала до приймання. Запис нуля на вході RTS за D5 = 1 |
D6 |
IR |
Програмне скидання схеми у вихідний стан. При одиничному значенні — встановлення УСАПП у вихідний стан і готовність до приймання інструкції режиму |
D7 |
EH |
Режим пошуку імпульсів синхронізації. За одиничного значення — встановлення режиму пошуку символів синхронізації |
Читання слова стану (див. рис. 5.54, б) здійснюється під час подання на вхід С /D Я-рівня, а на RD — L-рівня. Інформацію, яка міститься у слові стану (див. рис. 5.53, в), можна використовувати для організації обміну між МП і УСАПП, наприклад, визначати, чи не було помилки під час передавання інформації, який стан готовності приймача (передавача) до обміну.
Рис. 5.54. Часові діаграми сигналів керування УСАПП: а — запис керуючого слова режиму, символів синхронізації та операційного слова; б — читання слова стану; в — приймання вхідних даних з внутрішньою синхронізацією; г — синхронне приймання із зовнішньою синхронізацією
Після запису керуючого слова режиму та операційного слова УСАПП готовий до виконання обміну даними в одному з п'яти режимів:
• синхронне передавання;
• синхронне приймання з внутрішньою синхронізацією;
• синхронне приймання із зовнішньою синхронізацією;
• асинхронне передавання;
• асинхронне приймання.
Під час синхронного передавання даних на виході TxD з частотою сигналу синхронізації формується послідовність, що починається з символів синхронізації, запрограмованих керуючим словом режиму (рис. 5.53, б). Потім передаються коди символів, що надходять з МП, кожний з яких може закінчуватися бітом контролю. Якщо МП не завантажив черговий символ до моменту передавання, то УСАПП вставляє в передану послідовність символи синхронізації, а на виході TxD генерується сигнал високого рівня, який вказує на порожній регістр передавання.
У режимі синхронного приймання з внутрішньою синхронізацією (див. рис. 5.54, в) УСАПП починає роботу з пошуку у вхідній послідовності символів синхронізації. УСАПП порівнює записані в нього під час програмування символи синхронізації з прийнятими символами. Після виявлення символів синхронізації на виводі SYNDET встановлюється сигнал високого рівня і починається приймання вхідних даних (див. рис. 5.54, в). Сигнал на виводі SYNDET автоматично скидається у процесі читання слова стану УСАПП.
Під час синхронного приймання із зовнішньою синхронізацією (див. рис. 5.54, г) на вивід SYNDET подається сигнал від зовнішнього пристрою, що дозволяє приймання даних на вході RxD зі швидкістю сигналів синхронізації, які надходять на вхід RxD. Можлива організація приймання даних у МП за перериванням, якщо сигнали на виводі SYNDET використовуються як запит переривання.
У режимі асинхронного передавання послідовні дані формуються на виході TxD за заднім фронтом сигналу синхронізації ТхС з періодом, що задається керуючим словом режиму і дорівнює 1, 16 або 64 періодам сигналу синхронізації. Якщо після передавання символу наступного символу немає, то на виході TxD встановлюється напруга високого рівня доти, доки нові дані не надійдуть від МП. У програмі, яка реалізує алгоритм асинхронного передавання, запис чергового байта в УСАПП здійснюється за командою виведення OUT, якщо у слові стану розряд D0 = 1. Сигнал на виході TxD Y використовується як сигнал запиту переривання.
Асинхронне приймання даних починається з пошуку старт-біта, який встановлює на вході RxD напруга L-рівня. Наявність цього біта вдруге перевіряється внутрішнім строб-імпульсом. Якщо старт-біт підтверджений, то запускається внутрішній лічильник бітів, який визначає початок і кінець бітів даних, біт контролю і стоп-біт. Приймання стоп-біта вказує на закінчення приймання байта інформації і супроводжується встановленням сигналу високого рівня на виході RxRDY. У програмі асинхронного приймання передавання чергового байта даних у МП може здійснюватися за командою введення IN, якщо в слові стану розряд
D1 = 1, що відповідає Я-рівню сигналу на виході RxRDY, або за перериванням, якщо сигнал на виході RxRDY використовується як сигнал запиту переривання.
Приклад 5.16. Запрограмувати УСАПП на асинхронний режим з наступним форматом даних — старт-біт, 8 біт даних, біт контролю парності та 1,5 стоп-біта. Коефіцієнт ділення частоти синхросигналів 1/64. Вхід УСАПП з'єднати з адресною лінією А4, вхід А0 з лінією А1 Здійснити передавання даних із регістра BL по послідовному порту.
Визначимо адреси УСАПП. Запис керуючого слова відбуватиметься, якщо А4 = 0,
А1 = 1, тобто за адресою 02, а передавання даних — якщо А1 = 0, тобто за адресою 00.
Згідно з рис. 5.53, а керуюче слово ініціалізації дорівнює 10111111.
Операційне керуюче слово визначимо за табл. 5.14 як 00010001. Одиничне значення біта D0 дозволяє передавання, біт D4 скидає значення розрядів помилок у слові стану у вихідне положення. Нульове значення біта D3 визначає нормальну роботу каналу передавання. Інші біти не впливають на цей режим.
|
MOV AL, 10111111В |
Формування в AL керуючого слова ініціалізації |
|
OUT 02,AL |
і пересилання його в УСАПП |
|
MOV AL, 00010001B |
Формування в AL операційного керуючого слова |
|
OUT 02, AL |
і пересилання його в УСАПП |
М1: |
IN AL,02 |
Читання слова стану |
|
AND AL,01 |
Виділення розряду £)0 |
|
JZ M1 |
Якщо D0 = 0 (УСАПП не готовий допередачі),то відбувається перехід на М1 |
|
MOV AL,BL |
|
|
OUT 00,AL |
Пересилання даних |
Ознакою того, що дані можна передавати по послідовному порту, тобто УСАПП готовий до обміну, в цій програмі прийнята умова D0 = 1 у слові стану. Іншим шляхом є використання сигналу на виході TxDY як запиту переривання.