Розглянемо цикл обміну інформації
керуюча програма передає на lpt-порт код модулю, що буде опитаний (лінія 1);
з порта інформація поступає на блок попередньої обробки інформації (лінія 2);
звідки код модуля поступає на прийомо-передавальний пристрій для запиту до модуля збору (лінія 3);
прийомо-передавальноий пристрій приладу прийому інформації передає прийомо-передавальному пристрою модуля збору метеорологічних даних код модуля (лінія 4);
далі іде передача коду для аналіза мікроконтролером переданого коду (лінія 5) мікроконтролер власний код (код модуля) з отриманим, якщо не співпадає – цикл завершується, якщо співпадає – цикл триває;
мікроконтролер передає запит до блоку датчиків для отримання корисної інформації (лінія 6);
блок датчиків отримавши повідомленя, робить замір погодних показників та повертає корисну інформацію до мікроконтролера (лінія 7);
мікроконтролер, зберігши інформацію у власному буфері, передає її до прийомо-передавального пристрою (лінія 8);
модуль збору (прийомо-передавальний пристрій) передає інформацію до модулю прийому метеорологічних даних (лінія 9);
прийомо-передавальний пристрій передає інформацію модулю попередньої обробки сигналу для її подальшої передачі у ПК (лінія 10);
модуль попередньої обробки робить необхідні перетворення та передає відповідну інформацію на lpt-порт (лінія 11);
керуюча програма робить зчитування інформації з lpt-порту та робить подальшу обробку прийнятої інформації (лінія 12).
Модуль збору метеорологічних даних
Рисунок. 2.2.2.1. Обмін інформацією між вузлами метеорологічного комплекса.
3. Вибір апаратних засобів
3.1 Вибір та характеристики прийомо-передавального пристрою
Для передачі даних між модулями збору та прийому метеоінформації через радіоканал потрібно вибрати радіо прийомо-передавальний пристрій, який задовільняв би наступним вимогам:
- низька ціна;
- досить малі габаритні розміри;
- забезпечувати високу частоту передачі даних – понад 500 МГц;
- мати можливість зовнішнього живлення до 5В, та 30 mA у режимі передачі;
- забезпечувати прийом/передачу даних у напівдуплексному режимі.
Оскільки у технічному завданні маємо 1 канал радіозв’язку для прийому та передачі, використаємо напівдуплексний режим передачі даних.
Виходячи із частотних вимог передачі даних, оберемо частоту 700 МГц для прийому та передачі даних.
Оберемо прийомо-передавальний пристрій швейцарської фірми Xemics XE1201A, бо він має низьку ціну (близько 5% від запланованої суми витрат), має відносно невеликі габаритні розміри (25х25 мм), та задовільняє іншим вищезгаданим вимогам.
Характеристики прийомо-передавального пристрою:
- напруга живлення 2,4В;
- ток живлення в режимах прийом/передача до 6/8 мА;
- потужність передавача 20 мВт;
- температурний діапазон роботи -40 + 850С;
- частотний діапазон передачі даних 400 – 700 МГц;
- швидкість передачі даних – до 64 Кбіт/С.
3.2 Вибір мікроконтролера
Для здійснення попередньої обробки інформації, прийнятої від датчиків оберемо мікроконтролер РІС16С54, бо він має досить низьку ціну, досить поширений на ринку, та здатен забезпечувати всі необхідні функції для роботи модуля збору інформації.
Мікроконтролер має вісімнадцять ніжок. Усі регістри мікросхеми 8-бітні.
4. Розобка протоколу передачі даних
4.1 Трьохрівневий сигнал обміну даними
Для реалізації циклу обміну даними у метеорологічному комплексі запропонуємо троьрівневий сигнал, тобто такий сигнал, у которому є можливим виділити за амплітудою три логічних рівня: логічний рівень „0”, логічний рівень „1” та логічний рівень „синхронізація”.
Умовно такий сигнал можна зобразити так (рис. 4.1.1):
Рисунок 4.1.1. Трьохрівневий сигнал, що використовуватиметься при передачі даних.
Uсинхр. – рівень напруги синхронізуючого сигналу;
U1 – рівень напруги логічної одиниці;
U0 – рівень напруги логічного нуля.
Як бачимо з рисунка, сигнал, що передається має три логічних рівня, тобто після інформаційного сигналу („0” або „1”), відразу йде сигнал-підтвердження високого рівня. У момент приходу синхронізуючого сигналу можна знімати попередній інформаційний рівень.
4.2 Передача даних через lpt-порт ПК
4.2.1 Характеристики LPT-порту
Оскільки виходячи із технічного завдання прийом-передача інформації повинна здійснюватись через LPT-порт ПК, модуль прийому інформації повинен задовільняти його фізичним та електричним інтерфейсам.
Адаптер паралельного інтерфейсу являє собою набір регістрів, розташованих у просторі введення/виводу. Регістри порту адресуються щодо базової адреси порту, стандартними значеннями якого є 3BCh, 378h і 278h. Порт може використати лінію запиту апаратного переривання, зазвичай IRQ5 або IRQ7. Порт має зовнішню 8-бітну шину даних, 5-бітну шину сигналів стану й 4-бітну шину керуючих сигналів. При передачі даних використовуватимемо адресу 378h (lpt1).
Стандарт на паралельний інтерфейс IEEE 1284, прийнятий у 1994 році, визначає терміни SPP, EPP, і ECP. Стандарт визначає п'ять режимів обміну даними, метод узгодження режиму, фізичний і електричний інтерфейси. Згідно IEEE 1284, можливі наступні режими обміну даними через паралельний порт:
До передавачів пред'являються наступні вимоги:
- рівні сигналів без нагрузки не повинні виходити за рівні -0,5 ... +5,5В;
- рівні сигналов при струмі нагрузки 14 мА мають бути не нижчими +2,4
- швидкість наростання (спаду) імпульса має знаходитись в межах 0,05-0,4 В/нс.
Вимоги до приймачів:
- припустимі амплітудні раівні сигналів -2,0 + 7,0 В (що витримуються без руйнувань та помилок у роботі);
- пороги спрацьовування мають бути не вище 2,0 В (VIH) для високого рівня та не нижче 0,8 В (VIL) для низького;
- вхідна ємкість не повинна перевищувати 50 пФ.
Стандарт IEEE 1284 визначає три типи використовуваних рознімань. Типи А(DB-25) і В (Centronics-36) використовуються у традиційних кабелях підключення принтера, тип С - нове малогабаритне 36-контактне рознімання.
При розробці будемо використовувати стандартне А(DB-25) рознімання.
4.2.2 Вибір режиму прийому-передачі через lpt-порт
Розглянемо основні (найбільш поширені) режими роботи lpt-порта.
- Compatibility Mode - однонаправлений (вивід) за протоколом Centronics. Цей режим відповідає стандартному (традиційному) порту SPP.
- Nibble Mode - ввід байта у два цикли (по 4 біта), використовуючи для прийому лінії стану.
- Byte Mode – ввід цілого байта, використовуючи для прийому лінії даних.
- ЕРР (Enhanced Parallel Port) Mode – двонаправлений обмін даними, при якому керуючі сигнали інтерфейсу генеруються апаратно під час циклу звернення до порта (читання або запису в порт).
- ECP (Extended Capability Port) Mode - двонаправлений обмін даними з можливістю апаратного стискання даних за методом RLE (Run Length En-coding) та використання FIFO-буферів та DMA. Керуючі сигнали інтерфейсу генеруються апаратно.
Розглянемо вимоги, що висуваються до прийому та передачі даних через lpt-порт:
- двонаправлений обмін даними;
- найбільша поширеність та апаратна реалізація у сучасних ПК функцій, що застосовуватимуться під час прийому та передачі;
- керуючі сигнали мають генеруватися як програмно, так й апаратно.
- цикли читання й запису можуть чергуватися в довільному порядку або йти блоками.
Для задоволення всих цих вимог стандартні режими обміну є неприйнятними, тому запропонуємо власний режим (протокол) обміну.
4.2.3 Розробка інтерфейсу передачі даних через 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).