Розробка інтерфейсу передачі даних через lpt-порт

Стандартний порт має при 8-ми бітних регістри, розташованих на сусідніх адресах вводу/виводу, починаючи з базової адреси порту BASE.

Data Register(DR) – регістр даних. Дані, записані у цей регістр, виводяться на лінії інтерфейсу. Дані, зчитані з цього регістра, в залежності від схемотехніки адаптера відповідають або раніше записаним даним, або сигналам на тих же лініях.

Status Register (SR) — регістр стану, що представляє собою 5-бітний порт уведення сигналів стану принтера (біти SR.4-SR.7). Біт SR.7 інвертується — низькому рівню сигналу відповідає одиничне значенню біта в регістрі, і навпаки.

Control Register (CR) — регістр керування. Як і регістр даних, цей 4-бітний порт виводу допускає запис і читання (біти 0-3), але його вихідний буфер звичайно, має тип відкритий колектор. Це дозволяє більш коректно використовувати лінії даного регістра як вхідні при програмуванні їхній у високий рівень. Біти 0, 1, 3 інвертуються — одиничному значенню в регістрі відповідає низький рівень сигналу, і навпаки.

Будемо розглядати стандартне рознімання порту DB-25S (розетка).

Для розробки протоколу обміну даними будемо використовувати такі клеми:

DR0 (Data 0) – працює на вивід інформації. У режимі виводу – передає номер модулю, від якого будуть запрошені дані (контакт номер 2 у DB-25S).

DR1 (Data 1) – працює на вивід інформації. У режимі виводу – передає номер модулю, від якого будуть запрошені дані (контакт номер 3 у DB-25S).

CR2 (Init#) – працює на вивід інформації. Використовується для синхронізації під час запису до порту (контакт номер 16 у DB-25S).

CR3 (Select Input#) – працює на вивід інформації. Використовуєтся для задання напрямку виводу (запис або читання), також служить для задання режиму роботи прийомо-передавального пристрою – RX/TX – інвертований сигнал (контакт номер 17 у DB-25S).

SR7 (Busy) – працює на ввід інформації. Використовується для прийому даних від зовнішнього пристрою. Інвертований сигнал (контакт номер 11 у DB-25S).

SR5 (Paper Out) – працює на ввід інформації. Використовується для синхронізації під час читання інформації з порту (контакт номер 12 у DB-25S).

Умовно графічну схему обміну даними через lpt-порт можна зобразити так (рис. 4.2.3.1):

 

     
 
дані дані синхронізація до ППП дані синхронізація  

 

 


Рисунок 4.2.3.1. Виводи lpt-порта при роботі з приладом.

 

Алгоритм циклу читання даних за допомогою lpt-порта можна представити так:

1. Програмно встановлюється низький рівень сигналу Select Input# (CR3), тим самим переключаючи порт у режим читання даних, цей же сигнал й передається на вхід прийомо-передавальний пристрою RX/TX, переключаючи його у режим прийому даних.

2. На вхід Busy (SR7) від блоку попередньої обробки сигналу надходять дані. Порт чекає на підтверждення від переферійного пристрою.

3. Від блоку попередньої обробки сигналу на вхід Paper Out (SR5) надхо-дить синхронізуючий сигнал (високий рівень).

4. Знімаються дані з SR7.

5. Програмно встановлюється низікий рівень сигналу Paper Out (SR5) для готовності прийому наступного біту інформації.

Алгоритм запису даних до lpt-порту можна представити так:

1. Програмно встановлюється високий рівень сигналу Select Input# (CR3), тим самим переключаючи порт у режим запису даних, цей же сигнал й передається на вхід прийомо-передавального пристрою RX/TX, переключаючи його у режим передачі даних.

2. До lpt-порту програмно записується байт 00000001, що символізує передачу „0”, або 00000010, що символізує передачу „1”, тим самим з’являються відповідні сигнали на виходах DR0 або DR1.

3. Програмно встановлюється високий рівень сигналу CR3 (Select Input#) для підтвердження посилки наступного біту інформації.

4. Дається програмна затримка (10 мкс) – для витримування рівня сигналу CR3.

5. Програмно встановлюється низький рівень сигналу CR3 (Select Input#) для кінця підтвердження.

5 Розробка модулю попередньої обробки сигналу

5.1 Обробка прийнятого сигналу

Модуль збору метеорологічних даних має наступну структуру (рис. 5.1.1):


Рисунок. 5.1.1 Структура модулю збору інформації

 

Мікроконтролер модуля збору інформації передає дані, які щойно були зчитані з блоку датчиків, та збережені у власному буфері мікроконтролера.

Розглянемо форму сигналу на виході прийомо-передавального пристрою приладу прийому інформації, який був отриманий від модуля збору інформації (рис. 5.1.2).

Тривалість інформаційного рівня сигналу становить 40 мкс, тривалість синхронізуючого сигналу становить 10 мкс.

За умови таких тривалостей сигналу, можлива передача інформації зі швидкістю до 20 000 біт/сек.

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

 

 


Рисунок 5.1.2 Модуль попередньої обробки прийнятого сигналу.

 

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


 

 


Рисунок 5.1.3. Форма сигналу на виході прийомо-передавального пристрою приладу прийому.

 

Рівні вхідних інформаційних та синхронізуючого сигналів отримуємо у процентному співвідношені від постійної утворюючої сигналу, що прийшов на вхід.

Для вирішення цих вимог запропонуємо наступну схему (рис. 5.1.4):

Оскільки передається сигнал зі швидкістю 20 000 біт/сек, у якості логічних компонентів можуть слугувати будь-які мікросхеми ТТЛ-логіки низької потужності та з часом переключення не більшим 2000 нс.

У якості мікросхем DD1, DD2, DD3, наприклад мікропотужний чотирьохканальний аналоговий компаратор TLC339 (мінімальна напруга живлення – +1,5 В, вхідний ток 0,005 нА, час переключення 1700 нс).

 


       
VD1

 


Рисунок 5.1.4. Обробка прийнятого сигналу для передачі до lpt-порта.

 

У якості мікросхем DD4, DD5 – наприклад, мікросхема 74ALS86, що являє собою 4 двохвходових логічних елементи “виключаюче або” (напруга живлення – +3,6В, час переключення 30 нс). У якості мікросхеми DD6, наприклад, мікросхему 74SN7432, що являє собою 4 двохвходових логічних елементи “або” (напруга живлення – +3,6В, час переключення 30 нс).

Зробимо розрахунок параметрів схеми, використаємо формули:

 

(1)

 

де R, C – параетри RC-ланцюга;

τ – час падіння напруги на конденсаторі.

Оскільки в даній схемі виділяємо лише три різні рівні сигналів, приймемо τ > 20. Тобто рівень падіння напруги на виході конденсатора не повинен перевищувати 5%

Приймемо загальний опір ланцюга R = R1+ R2+ R3+ R4 = 10 КОм (вважа-ючи при цьому, що ток, що протікає у ланцюгу дорівнює 0,36 mА).

Обчислимо ємкість конденсатора:

 

С = τ/R = 50 ∙ 10-6 ∙ 20 / 104 = 10-7 (Ф).

 

Приймемо амплітуди спрацьовування логічних рівнів сигналів:

логічний рівень „0” – 0,7 В;

логічний рівень „1” – 2,0 В;

логічний рівень „синхронізація” – 3,0 В.

Обчислимо R1, R2, R3, R4, прийнявши вхідну напругу 3,6 В, ток ланцюга 0,36 mA.

 

R4 = 0,7 / 0,00036 = 1,9 Ком;

R3 = 2,0 / 0,00036 – 1,9 ∙ 103 = 3,6 Ком;

R2 = 3,0 / 0,00036 – 1,9 ∙ 103 – 3,6 ∙ 103 = 2,7 Ком;

R1 = 10 – 1,9 – 3,6 – 2,7 = 1,8 Ком.

 

Таким чином маємо на одному виході схеми інформаційний рівень сигналу – “0” або “1”, на іншому – сигнал синхронізації.

 









Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: