Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ СЦУК 100500.docx
Скачиваний:
0
Добавлен:
09.09.2019
Размер:
386.2 Кб
Скачать

2.3Апаратна реалізація

Комп’ютер має від одного до восьми портів послідовного передавання даних, які реалізовуються на мікросхемі InteI 8250. Це універсальний асинхронний приймач/передавач (UART - Universal Asynchronous Receiver Transmitter). Мікросхема вміщує кілька внутрішніх регістрів, доступних через команди введення/виведення. При передаванні байт записується у буферний регістр передавача, звідки потім переписується у зсувовий регістр передавача. Байт „висувається” з регістра по бітах, молодшими бітами уперед. Аналогічно, приймач теж має зсувовий та буферний регістри. Зовнішні пристрої підмикаються до порту введення/виведення через з’єднувач типу DB25P або DB9P, які мають відповідно 25 та 9 виводів. У таблиці 2.1 подається призначення контактів з’єднувача.

Ha етапі ініціалізації комп’ютера модуль POST BIOS тестує наявні асинхронні адаптери та ініціалізує перші два з них. їхні базові адреси розташовано в області даних BIOS, починаючи з адреси 0000:0400Н. Перший адаптер, COMl, має базову адресу 3F8H і займає діапазон адрес з 3F8H до 3FFH. Другий адаптер, COM2, має базову адресу 2F8H і займає адреси 2F8H...2FFH. Асинхронні адаптери можуть викликати переривання: COMl - IRQ4 (INT OCH), COM2 - IRQ3 (WT OBH).

2.3.1 Пopm3F8H

ГІорт 3F8H відповідає регістру даних, котрі передаються чи приймаються. Для передавання дані треба записати у цей порт. Після прийняття даних від зовнішнього пристрою вони можуть зчитуватись з цього порту.

Залежно від стану старшого біта керувального слова, яке виводиться в керувальний регістр з адресою 3FBH, призначення порту 3F8H може змінюватись. Якщо цей біт дорівнює 0, порт 3F8H використовується для запису передаваних даних. Якщо ж він дорівнює 1, то порт 3F8H використовується для виведення молодшого байта подільника частоти тактового генератора. Змінюючи значення подільника, можна змінювати швидкість передавання даних. Старший байт подільника записується у порт 3F9H. Залежність швидкості передавання даних від значення подільника частоти подано нижче:

Подільник Швидкість (Бод)

На рецензію 1

До захисту 1

“__ ” травня 201_ р 2

ЗАВДАННЯ НА ВИКОНАННЯ ВИПУСКНОЇ РОБОТИ БАКАЛАВРА 2

2.1 Основні положення. . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 Апаратна реалізація. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Текстова частина дипломної роботи: 22 с., 8 рис., 2 таблиці. 3

Об’єкт дослідження – драйвер вводу-виводу. 4

Мета дипломної роботи – аналіз Розробка програмного забезпечення для драйвера вводу-виводу телемедичної інформації. 4

Метод дослідження – программно-аналітичний із використанням комп’ютерних технологій. 4

Умови одержання дипломного проекту: за дозволом проректора із навчальної роботи ОНАЗ iм. О.С. Попова. 4

ВСТУП 4

2.1Основні положення 10

C++, Linux, Unix, Java, Java Script, PHP, 1C, OS Linux, Free BSD, Windows, MySQL, Oracle, написання мережних програм, сокети, адміністрування, Microsoft Windows, досвід Web програмування, досвід розробки додатків клієнт-сервер. Все це використовується при проектуванні та будівлі сучасних телемедичних мереж. 10

Ізмаїл 10

Б. Дністровськ 10

Котовськ 10

Южний 10

Арциз 10

Телемедицина розвивається по кільком напрямкам. 10

1. Використання медичними закладами в районних центрах баз даних, які зберігаються у ведучих медичних закладах обласного центру. Це може бути учбова література, проведення операцій. В БД повинні зберігатися також відеозаписи операцій. Це можливо тільки під керуванням системи керування Oracle, так як зображення рухливе. 10

2. Спостереження за операціями в реальному масштабі часу, як з боку лікаря в районному центрі за операціями, які робляться ведучими лікарями в обласному центрі і навпаки. 10

3. Консультація хворого по мережі або консультація у лікаря в обласному центрі. Можлива консультація лікаря районного центру у закордонних фахівців. 10

4. Телемедицина в надзвичайних ситуаціях( розвинена в Норвегії, Німеччині, Великій Британії, Америці). 10

5. Безперервна медична освіта на протязі всієї діяльності лікаря. 10

Порт послідовного передавання RS-232-C, який називається асинхронним адаптером, або послідовним інтерфейсом, має багатоцільове призначення: 11

2.3Апаратна реалізація 12

  1. 115200

2.3.2 Порт 3F9H

Порт використовується як регістр керування перериваннями від асинхронного адаптера або (після виведення в порт 3F9H байта з встановленим

у 1 старшим бітом) для виведення значення старшого байта подільника частоти. B режимі керування перериваннями порт має такий формат:

2.3.3 Порт 3FAH

Регістр призначено для ідентифікації переривань. Його вміст визначає причину переривань. Регістр має такий формат:

2.3.4 Порт 3FBH

Керувальний регістр, доступний для запису та зчитування.

2.3.5 Порт 3FCH

Регістр керування модемом. Керує станом вихідних ліній DTR, RTS3 ліній, специфічних для модемів OUTl та OUT2, для запускання діагностики при вході асинхронного адаптера, замкненого на його виході. Формат порту:


2.3.6 Пopт3FDH

Регістр стану лінії.

2.3.7 Порт 3FEH

Регістр стану модема.


3 Програмування асинхронного адаптера

3.1 Ініціалізація асинхронного адаптера

Перше, що повинна зробити програма, яка працює з асинхронним адаптером, - це встановити протокол обміну та швидкість передавання даних. Після завантаження операційної системи встановлюється швидкість 2400 Бод, не виконується перевірка на парність, використовується один стоповий біт та лерувального довжина передаваного символу.

При введені з порту 3FBH програма може одержати поточний режим адаптера, наприклад, після завантаження BIOS з лерувального регістру 3FBH можна прочитати байт стану адаптера 0O0X0011=03H (або 13H). Для встановлення іншого режиму можна змінити потрібні поля та записати новий байт режиму за адресою 3FBH. Наприклад, режиму передавання, зображеного на рисунку 2.1, відповідає лерувально слово 00011110B=lEH.

Для завдання нового значення швидкості обміну даними треба встановити старший біт лерувального байта у 1 та вивести 80Н за адресою 3FBH. Після цього двома послідовними командами виведення треба завантажити подільник частоти. Молодший байт подільника завантажується у порт 3FBH, а старший – у порт 3F9H. Перед початком роботи ініціалізується регістр керування перериваннями (порт 3F9H), якщо у програмі навіть не використовуються переривання від самого адаптера. Якщо переривання не потрібні, у порт записується нуль. Ha цьому ініціалізація завершується.

Перед записом байту даних у регістр передавача треба перевірити, чи вільний є регістр зберігання передавача, тобто чи завершено передавання попереднього символу. Ознакою „порожнього” регістру зберігання є встановлений у 1 п’ятий біт регістру стану лінії з адресою 3FDH.

При прийманні даних перед введенням символу з порту приймача 3F8H треба перевірити значення біта 0 порту 3FDH. Якщо він дорівнює 1, то символ прийнято з лінії і останній перебуває у буферному регістрі приймача.

Для дозволу переривань необхідно встановити в 1 біти порту керування перериваннями 3F9H, відповідні тим перериванням, які треба опрацьовувати. Коли відбулося переривання, програма-опрацьовувач переривання повинна проаналізувати його причину за значенням вмісту порту ідентифікації переривання з адресою 3FAH. Наприкінці програми-опрацьовувача апаратного переривання повинна бути послідовність команд:

MOV AL,20H

OUT 20H,AL

IRET

Якщо водночас виникають декілька запитів на переривання, біт 0 регістру ідентифікації буде встановлено в 1. У такому разі перед завершенням опрацювань переривань треба знов прочитати регістр ідентифікації переривань і опрацювати наступне переривання. Процес повторюється доти, доки біт 0 регістру ідентифікації переривань не дорівнюватиме 0.

3.2 Приклад програми ініціалізації введення/виведення даних на мові Assembler-86

MOV DX,3FBH

завантаження адреси алагоджувану регістру у DX

IN AL,DX

введення поточного режиму адаптера; після завантаження BIOS: швидкість 2400 Бод (подільник ЗОН), немає контролю на парність (D3=0, D4=X), один стоповий біт (D2=0), кількість бітів – 8 (D1=1, D0=1), слово стану дорівнює 000X0011=03H або 13Н 4

MOV AL,8QH

порт керування настроюється на забезпечення передавання подільника: D7=1, інші біти дорівнюють 0, алагоджува слово дорівнює 80Н

OUT DX,AL

виведення алагоджувану слова

MOVDX,3F8H

завантаження адреси порту 3F8H та

завантаження молодшого байта

MOV AL,60H

OUT DX,AL

подільника частоти

MOV DX,3F9H

завантаження адреси порта 3F9H та

завантаження старшого байта

MOV AL,00H

OUT DX,AI

подільника частоти

M3:

MOV AL,TEH

завантаження алагоджувану слова в AL

MOV DX,3FBH

завантаження адреси алагоджувану регістру

OUT DX,AL

виведення алагоджувану слова

MOV AL,00H

заборона переривань від RS-232-C

MOV DX,3F9H

завантаження адреси алагоджувану регістру переривань

OUT DX,AL

виведення алагоджувану слова

Ml:

MOV DX,3FDH

завантаження адреси регістру стану лінії

IN AL,DX

введення слова стану лінії

AND AL,20H

регістр зберігання даних

JZ Ml

порожній, D5=1?

MOV AL,41H

так, завантаження даного в AL

MOVDX,3F8H

завантаження адреси порту передавання даних

OUT DX,AL

виведення даних

MOV DX,3FDH

завантаження адреси порту стану лінії

M2:

IN AL,DX

введення слова стану лінії

AND AL,01H

перевірка наявності даних в лінії (D0= 1 ?)

JZ M2

у циклі

MOV DX,3F8H

завантаження адреси порту приймання даних 3F8H у DX

M5:

IN AL,DX

введення даних

JMP M1

циклування програми

NOP

При наборі та виконанні програми у алагоджувану DEBUG замість міток треба вказати виконавчі адреси.

Програма дозволяє у покроковому режимі здійснити введення слова стану режиму адаптера після завантаження операційної системи, ініціалізувати адаптер на заданий режим, перевірити стан буфера передавання при передаванні даних та наявність даних у лінії при прийманні, здійснити передавання та приймання даних при замиканні контактів 2-3 з’єднувача (вхід на вихід). При циклуванні програми на контактах 2-3 за допомогою осцилографа можна спостерігати часові діаграми електричних сигналів та формат даних.