Дипломная работа: Комп’ютерне моделювання роботи послідовного порта
ID1, ID0 00 = зміна вхідного сигналу RS232 (пріоритет 3)
01 = регістр передавача порожній (пріоритет 2)
10 = у буферному регістрі приймача дані готові (пріоритет 1)
11 = помилка передачі даних чи зупинка (пріоритет 0, вищий ступінь)
Якщо процес обміну даними організований по перериваннях, то стале переривання повинно бути скинуте; у протилежному випадку коректність обміну даними порушиться. Дії, необхідні для очищення переривання, такі:
ID1 = 0, ID0 = 0 читання вмісту регістра стану модему (06h)
ID1 = 0, ID0 = 1 запис у регістр передавача (00h)чи читання регістра ідентифікації переривань (02h)
ID1 = 1, ID0 = 0 читання байта даних з буферного регістра приймача (00h)
ID1 = 1, ID0 = 1 читання регістра стану прийомопередавача (05h)
По зсуву 03h знаходиться регістр формату даних, що визначає такі параметри переданих даних, як швидкість, кількість бітів даних, кількість стопових бітів і настроювання перевірочного біту. Призначення бітів регістра приведене нижче:
DLABBRKPAR2 PAR1 PAR0 STOPDAB1 DAB0
DLAB1 = доступ до установки швидкості 0 = доступ до регістра приймача/регістру передавача (00h) й до регістра дозволу переривань
BRK1 = зупинка включена
0 = зупинка виключена
PAR2,1,0 000 = немає перевірки
001 = непарна
011 = парна
101 = завжди 1
111 = завжди
STOP1 = 2 стопових біти
0 = 1 стоповий біт
DAB1,0 00 = 5 біт даних
01 = 6 біт даних
10 = 7 біт даних
11 = 8 біт даних
Коли біт DLAB дорівнює 1, регістри прийомопередавача (00h) і дозволу переривань (01h) використовуються для завантаження дільника швидкості обміну. У перший записується молодший, у другий - старший байт дільника. Вони формують шістнадцятибітовий дільник, значення якого обчислюється за наступною формулою:
Дільник = байтрегістр 00 h + 256×байт регістр 01 h
У комп'ютері тактова частота, що подається в UART, складас 1,8432 Мгц. Усередині UARTеталонна частота утвориться як тактова, ділена на 16, і дорівнює 115200 Гц. Співвідношення між значеннями дільника і швидкістю можна представити у виді формули: