Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Програмна модель послідовного порта

Комп'ютер, сумісний з 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


Читайте також:

  1. G2G-модель електронного уряду
  2. II. Вимоги до складання паспорта бюджетної програми
  3. Internet- торгівля , бізнес- портали, аукціон, Internet-банкінг
  4. OSI - Базова Еталонна модель взаємодії відкритих систем
  5. Абстрактна модель
  6. Абстрактна модель
  7. Абстрактна модель оптимального планування виробництва
  8. Американська модель соціальної відповідальності
  9. Аналіз послідовного інтерфейсу з DSP-процесорами
  10. Англійський економіст У. Бріджез пропонує модель організаційних змін за такими напрямками.
  11. Англо-американська модель
  12. Англо-американська модель




Переглядів: 971

<== попередня сторінка | наступна сторінка ==>
Сигнали та роз’єми порту | Електричний інтерфейс RS-232C

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.012 сек.