МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Програмна модель послідовного портаКомп'ютер, сумісний з IBM PC, може мати до чотирьох послідовних портів. Вони маркуються як COМ1 - COM4. Кожен СОМ-порт формується окремим UART 16450, встановленим усередині комп'ютера /UART 8250/16450/. На рис. показана внутрішня структура UART. У ньому маються вісім восьмибітових регістрів. Адреси введення/виведення цих регістрів обчислюються додаванням зсуву регістра до базової адреси СОМ-порту. Зсуви і функції регістрів UART такі: 00h - буферний регістр передавача/буферний регістр приймача: використовується для обміну даними; 01h - регістр дозволу переривань: установлює режим запиту переривань; 02h - регістр ідентифікації переривань: перевіряє режим запиту переривань; 03h - регістр формату даних: встановлює формат послідовних даних; 04h - регістр керування модемом: установлює керування модемом (RTS, DTR і т.д.); 05h - регістр стану прийомопередавача: містить інформацію про стан приймача і передавача; 06h - регістр стану модему: містить поточний стан ліній DCD, RI, DSR і CTS; 07h - регістр надоперативної пам'яті: працює як байт пам'яті.
Зсув 00h вказує на буферний регістр читання приймача і регістр запису передавача, що доступний, коли біт DLAB у регістрі формату даних (зсув 03h) дорівнює нулю. Якщо по цій адресі записаний байт, то він передається в регістр зміщення передавача і послідовно надходить на вихід. Під час прийому відбувається зворотна операція: після того як дані успішно прийняті і за допомогою регістра зміщення перетворені в рівнобіжний формат, вони передаються в буферний регістр приймача. Коли інформація з цього регістра зчитана, він очищається і готовий до прийому наступного блоку даних. По зсуву 01h від базового знаходиться регістр дозволу переривань, за допомогою якого можна конфігурувати переривання, що генеруються UART. Призначення бітів цього регістра: 0 0 0 0 SINP ERBK TBE RxRD біти з 7 по 4завжди нулі SINP 1 = переривання по зміні стану ліній CTS, DSR, DCD і RI 0 = немає переривання ERBK 1 = переривання при помилці прийому даних 0 = немає переривання ТВЕ 1 = переривання, коли регістр передавача порожній 0 = немає переривання RxRD 1 = переривання при одержанні даних 0 = немає переривання По зсуву 02h знаходиться регістр ідентифікації переривань. При виникненні переривання нульовий біт цього регістра встановлюється в 0. Біти 1 і 2 указують причину переривання. Біти з 7 по 3 не використовуються і завжди дорівнюють нулю. Призначення бітів регістра наступне: 0 0 0 0 0 ID1 ID0 PND PND 1 = немає переривання 0 = переривання 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 знаходиться регістр формату даних, що визначає такі параметри переданих даних, як швидкість, кількість бітів даних, кількість стопових бітів і настроювання перевірочного біту. Призначення бітів регістра приведене нижче: DLAB BRK PAR2 PAR1 PAR0 STOP DAB1 DAB0 DLAB 1 = доступ до установки швидкості 0 = доступ до регістра приймача/регістру передавача (00h) й до регістра дозволу переривань BRK 1 = зупинка включена 0 = зупинка виключена PAR2,1,0 000 = немає перевірки 001 = непарна 011 = парна 101 = завжди 1 111 = завжди STOP 1 = 2 стопових біти 0 = 1 стоповий біт DAB1,0 00 = 5 біт даних 01 = 6 біт даних 10 = 7 біт даних 11 = 8 біт даних Коли біт DLAB дорівнює 1, регістри прийомопередавача (00h) і дозволу переривань (01h) використовуються для завантаження дільника швидкості обміну. У перший записується молодший, у другий - старший байт дільника. Вони формують шістнадцятибітовий дільник, значення якого обчислюється за наступною формулою: Дільник = байтрегістр 00h + 256×байт регістр 01h У комп'ютері тактова частота, що подається в UART, складає 1,8432 Мгц. Усередині UART еталонна частота утвориться як тактова, ділена на 16, і дорівнює 115200 Гц. Співвідношення між значеннями дільника і швидкістю можна представити у виді формули: Для одержання швидкості 9600 бод необхідно, щоб дільник був рівний 12. Отже, у буферний регістр прийомопередавача (00h) повинно бути записане число 12, а в регістр дозволу переривань (01h) - нуль. Якщо в регістри дільника записана 1, то вийде найвища швидкість - 115200 бод. По зсуву 04h розташований регістр керування модемом. У загальному випадку він використовується для керування двома виходами інтерфейсу - RTS і DTR. По зсуву 05h знаходиться регістр стану прийомопередавача, що містить інформацію про стан приймача і передавача UART. При використанні разом з регістром ідентифікації переривань (02h) можна установити джерело переривань. По зсуву 06h знаходиться регістр стану модему, що може використовуватися для визначення стану вхідних сигналів, зокрема DCD, DSR, CTS, RI, а також для зчитування чотирьох цифрових вхідних ліній. Регістр зі зсувом 07h - це байт пам'яті. Запис даних урегістр не впливає на операції UART. Отримання базової адреси послідовного порта (2 байти) При ввімкнення або перевантаженні комп’ютер перевіряє адреси всіх встановлених послідовних портів і записує їх адреси у визначені комірки пам’яті. СОМ1: 0000:0400h - 0000:0401h СОМ2: 0000:0402h - 0000:0403h СОМ3: 0000:0404h - 0000:0405h СОМ4: 0000:0406h - 0000:0407h Однобайтова комірка пам’яті 0000:0411h містить число СОМ портів, що записані в 0, 1 та 2 бітах: 000 – 0 port 001 – 1 port 010 – 2 port Читайте також:
|
||||||||
|