Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_Вычисл техн и микропроц_2 автора_130709.doc
Скачиваний:
9
Добавлен:
07.05.2019
Размер:
5.26 Mб
Скачать

10.3 Приклади реалізації простих вузлів телекомунікацій

10.3.1 Ініціалізація послідовного асинхронного адаптера rs-232-c

Вхідний контроль:

  1. Які адреси мають порти послідовного асинхронного адаптера?

  2. Чому для передавання даного 41Н (п. 6.2) використовується керувальне слово 1ЕН?

  3. З якою метою у цьому ж прикладі використовується один стоповий біт?

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

Для протоколу обміну даними, який застосовується у п. 6.2, керувальне слово становить 1ЕН. Цей режим забезпечує довжину надсилання у бітах – 7 бітів, два стопових біти та контроль на парність.

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

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

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

Нижче наведено фрагмент програми ініціалізації асинхронного адаптера мовою Асемблер-86.

MOV DX,3FBH ; Завантаження адреси керувального регістра у DX

MOV AL,80H ; Порт керування настроюється на забезпечення

; передавання подільника: D7 = 1, інші біти дорівнюють

; 0, керувальне слово дорівнює 80Н

OUT DX,AL ; Виведення керувального слова

MOV DX,3F8H ; Завантаження адреси порту 3F8H

; та

MOV AL,60H ; завантаження молодшого байта

OUT DX,AL ; подільника частоти

MOV DX,3F9H ; Завантаження адреси порту 3F9H

; та

MOV AL,00H ; завантаження старшого байта

OUT DX,AL ; подільника частоти

M3: MOV AL,1EН ; Завантаження керувального слова в AL

MOV DX,3FBH ; Завантаження адреси керувального регістра

OUT DX,AL ; Виведення керувального слова

MOV AL,00H ; Заборона переривань від RS-232-C

MOV DX,3F9H ;Завантаження адреси керувального регістра переривань

OUT DX,AL ; Виведення керувального слова