Основні принципи побудови мережі 1 WIRE

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Основні принципи побудови мережі
Однопроводной інтерфейс 1-Wire, розроблений наприкінці 90-х років фірмою Dallas Semiconductor Corp., Регламентований розробниками для застосування в трьох основних сферах-додатках:
прилади в спеціальних корпусах MicroCAN для вирішення проблем ідентифікації, перенесення або перетворення інформації (технологія iButton),
програмування вбудованої пам'яті інтегральних компонентів,
системи автоматизації (технологія мереж 1-Wire-мереж).
1-Wire-net представляє собою інформаційну мережу, що використовує для здійснення цифрового зв'язку одну лінію даних і один поворотний (або земляний) провід. Таким чином, для реалізації середовища обміну цієї мережі можуть бути застосовані доступні кабелі, що містять неекрановану виту пару тієї чи іншої категорії, і навіть звичайний телефонний дріт. Такі кабелі при їх прокладанні не вимагають наявності будь-якого спеціального обладнання, а обмеження максимальної довжини однопроводной лінії регламентовано розробниками на рівні 300м.
Основою архітектури 1-Wire-мереж, є топологія загальної шини, коли кожне з пристроїв підключено безпосередньо до єдиної магістралі, без будь-яких каскадних з'єднань або розгалужень. При цьому в якості базової використовується структура мережі з одним провідним або майстром і численними відомими. Хоча існує ряд специфічних прийомів організації роботи однопровідні систем в режимі мультімастера.
Конфігурація будь-який 1-Wire-мережі може довільно змінюватися в процесі її роботи, не створюючи перешкод подальшої експлуатації та працездатності всієї системи в цілому, якщо при цих змінах дотримуються основні принципи організації однопроводной шини. Ця можливість досягається завдяки присутності в протоколі 1-Wire-інтерфейсу спеціальної команди пошуку ведених пристроїв (Пошук ПЗУ), яка дозволяє швидко визначити нових учасників інформаційного обміну. Стандартна швидкість відпрацювання такої команди складає ~ 75 вузлів мережі в секунду.
Завдяки наявності у складі будь-якого пристрою, оснащеного мережевою версією 1-Wire-інтерфейсу, унікального індивідуального адреси (відсутність збігу адрес для приладів, коли-небудь випущених Dallas Semiconductor Corp., Гарантується самою фірмою-виробником), така мережа має практично необмежену адресний простір. При цьому, кожен з однопровідні приладів відразу готовий до використання в складі 1-Wire-мережі, без будь-яких додаткових апаратно-програмних модифікацій. Однопровідні компоненти є самотактіруемимі напівпровідниковими пристроями, в основі обміну інформацією між якими, лежить управління зміною тривалості часових інтервалів імпульсних сигналів в однопроводной середовищі та їх вимір. Передача сигналів, для 1-Wire-інтерфейсу, асинхронна і напівдуплексна, а вся інформація, що циркулює в мережі, сприймається абонентами або як команди, або як дані. Команди мережі генеруються майстром і забезпечують різні варіанти пошуку та адресації ведених пристроїв, визначають активність на лінії навіть без безпосередньої адресації окремих компонентів, управляють обміном даними в мережі і т.д.
Стандартна швидкість роботи 1-Wire-мережі, яка становить 15,4 Кбіт / сек, була обрана, по-перше, з урахуванням забезпечення максимальної надійності передачі даних на великі відстані, і, по-друге, з урахуванням швидкодії найбільш широко поширених типів мікроконтролерів , які в основному повинні використовуватися при реалізації провідних пристроїв однопроводной шини. Це значення швидкості обміну може бути зменшена до будь-якого можливого значення завдяки впровадження примусової затримки між передачею в лінію окремих бітів даних (розтягуванню тимчасових слотів протоколу). Або збільшено за рахунок переходу на спеціальний прискорений режим обміну (швидкість Overdrive - до 125Кбіт/сек), який допускається для окремих типів однопровідні компонентів на невеликий по відстані, якісної, не перевантаженою іншими приладами лінії зв'язку.
При реалізації однопроводной інтерфейсу використовуються стандартні КМОП / ТТЛ логічні рівні сигналів, а живлення більшості однопровідні компонентів може здійснюватися від зовнішнього джерела з робочою напругою в діапазоні від 2,8 В до 6,0 В. Альтернативою застосуванню зовнішнього живлення служить, так званий, механізм "паразитного харчування", дія якого полягає у використанні кожним з відомих компонентів 1-Wire-лінії електричної енергії імпульсів, переданих по шині даних, яка акумулюється спеціальної, вбудованої в прилад ємністю. Крім того, окремі компоненти однопровідні мереж можуть використовувати режим харчування по шині даних, коли енергія до приймача надходить безпосередньо від майстра по лінії зв'язку, при цьому обмін інформацією в мережі примусово припиняється.
Фізична реалізація інтерфейсу 1 - Wire
Фізична реалізація інтерфейсу 1-Wire досить проста. На малюнку показана спрощена схема апаратної реалізації інтерфейсу 1-Wire.

Апаратна реалізація інтерфейсу 1-Wire
Рис. Апаратна реалізація інтерфейсу 1-Wire
Висновок DQ пристрою являє собою вхід КМОП-логічного елемента, який може бути зашунтований (замкнутий на загальний провід) польовим транзистором. Опір каналу цього транзистора у відкритому стані - близько 100 Ом. Коли транзистор замкнений - є невеликий струм витоку (приблизно 5 мкА) на загальний провід.
Шина 1-Wire повинна бути підтягнута окремим резистором до напруги живлення пристроїв. Опір цього резистора 4.7 К, однак, це значення рекомендовано тільки для досить коротких ліній. Якщо шина 1-Wire використовується для підключення віддалених на велику відстань пристроїв, то опір цього резистора слід зменшити. Мінімально допустимий його опір - близько 300 Ом, а максимальне - близько 20 - 30 кОм. Дані величини - орієнтовні, і завжди уточнюються за характеристиками конкретного пристрою 1-Wire його максимальний втікають струм лінії DQ, який, власне, і визначає мінімум зовнішнього опору.
Підключення шини 1-Wire до МК показано умовно в двох варіантах: з використанням 2 окремих висновків МК (один в якості виходу, а інший в якості входу), так і одного, що працює і на введення і на висновок. Поділ цих способів показано пунктирною лінією, умовно позначає кордон корпусу МК. З деякою натяжкою можна уявити собі логічне будова шини 1-Wire як усім відоме з'єднання висновків мікросхем з відкритим колектором за схемою "монтажне АБО". Очевидно, що передача будь-якої інформації при цьому можлива тільки видачею низького рівня в лінію, тобто замиканням її на загальний провід, а у високий логічний рівень лінія повернеться сама, завдяки наявності зовнішнього подтягивающего резистора. Так само очевидно, що одночасна передача декількох пристроїв приречена на невдачу через повного спотворення інформації (всі передані одиниці одного пристрою будуть пригнічені переданими нулями від іншого пристрою).
Передача даних в мережі 1 - Wire
Основні правила передачі даних у мережі 1-Wire:
1. Обмін завжди ведеться за ініціативою одного ведучого пристрою, яке в більшості випадків є мікроконтролером (МК).
2. Будь-який обмін інформацією починається з подачі імпульсу скидання ("Reset Pulse" або просто RESET) в лінію 1-Wire провідним пристроєм.
3. Для інтерфейсу 1-Wire в загальному випадку передбачається "гаряче" підключення і відключення пристроїв.
4. Будь-який пристрій, підключений до 1-Wire після отримання живлення видає в лінію DQ імпульс присутності, званий "Presence pulse". Цей же імпульс пристрій завжди видає в лінію, якщо виявить сигнал RESET.
5. Поява в шині 1-Wire імпульсу PRESENCE після видачі RESET однозначно свідчить про наявність хоча б одного підключеного пристрою.
6. Обмін інформацією ведеться так званими тайм-слотами: один тайм-слот служить для обміну одним бітом інформації.
7. Дані передаються побайтно, біт за бітом, починаючи з молодшого біта. Достовірність переданих / прийнятих даних (перевірка відсутності спотворень) гарантується шляхом підрахунку циклічної контрольної суми.
Перераховані правила визначають логічний низькорівневий протокол обміну даними. На малюнку показана діаграма сигналів RESET і PRESENCE, з яких завжди починається будь-який обмін даними. Видача імпульсу RESET в процесі обміну служить так само для дострокового завершення процедури обміну інформацією.
Діаграма сигналів ініціалізації обміну
Рис. Діаграма сигналів RESET і PRESENCE
Як бачимо, тривалість більшості тимчасових інтервалів дуже приблизна і має тільки обмеження тільки по мінімуму (не менше зазначеного). Умовні позначення ліній, будуть використовуватися і далі. Імпульс RESET формує провідний МК, переводячи в низький логічний рівень шину 1-Wire і утримуючи її в цьому стані мінімум 480 мікросекунд. Потім МК повинен "відпустити" шину. Через деякий час, що залежить від ємності лінії і опору подтягивающего резистора, в лінії встановиться високий логічний рівень. Протокол 1-Wire обмежує цей час "релаксації" діапазоном від 15 до 60 мікросекунд, що і є визначальним для вибору подтягивающего резистора (як правило, ємність лінії ми міняти істотно не можемо, а саме вона робить істотний вплив на час повернення лінії до високого рівня ).
Виявивши імпульс RESET, ведене пристрій приводить свої внутрішні вузли в початковий стан і формує відповідний імпульс PRESENCE, як випливає з малюнка - не пізніше 60 мікросекунд після завершення імпульсу RESET. Для цього пристрій переводить в низький рівень лінію DQ і утримує її в цьому стані від 60 до 240 мікросекунд. Конкретний час утримання залежить від багатьох параметрів, але завжди знаходиться у вказаному діапазоні. Після цього пристрій так само "відпускає" шину.
Але після завершення імпульсу PRESENCE пристрою дається ще деякий час для завершення внутрішніх процедур ініціалізації, таким чином, МК повинен приступити до будь-якого обміну з пристроєм не раніше, ніж через 480 мікросекунд після завершення імпульсу RESET.
Отже, процедура ініціалізації інтерфейсу, з якої починається будь-який обмін даними між пристроями, триває мінімум 960 мікросекунд, складається з передачі від МК сигналу RESET і прийому від пристрою сигналу PRESENCE. Якщо сигнал PRESENCE не виявлено - значить на шині 1-Wire немає готових до обміну пристроїв.
Тепер розглянемо процедури обміну бітами інформації, які здійснюються певними тайм-слотами. Тайм-слот - це по суті певна, досить жорстко лімітована за часом послідовність зміни рівнів сигналу в лінії 1-Wire. Розрізняють 4 типи тайм-слотів: передача "1" від МК, передача "0" від МК, прийом "1" від пристрою і прийом "0" від пристрою.
Будь-тайм-слот завжди починає МК шляхом перекладу шини 1-Wire в низький логічний рівень. Тривалість будь-якого тайм-слота повинна знаходитися в межах від 60 до 120 мікросекунд. Між окремими тайм-слотами завжди повинен передбачатися інтервал не менше 1 мікросекунди (конкретне значення визначається параметрами відомого пристрою).
Тайм-слоти передачі відрізняються від тайм-слотів прийому поведінкою МК: при передачі він тільки формує сигнали, при прийомі, крім того, ще й опитує (тобто приймає) рівень сигналу в лінії 1-Wire. Наступний малюнок демонструє тимчасові діаграми тайм-слотів всіх 4-х типів: вгорі показані тайм-слоти передачі від МК, внизу - прийому від пристрою.
Діаграми тайм-слотів при обміні даними
Рис. Тимчасові діаграми передачі даних у мережі 1-Wire
Тайм-слот передачі "0" полягає просто в утриманні шини 1-Wire в низькому рівні протягом всієї тривалості тайм-слота. Передача "1" здійснюється шляхом "відпускання" шини 1-Wire з боку МК не раніше ніж через 1 мікросекунду після початку тайм-слота, але не пізніше ніж через 15 мікросекунд. Ведений пристрій опитує рівень у шині 1-Wire протягом тимчасового інтервалу, умовно показаного у вигляді сірого прямокутника, тобто починаючи з 15-ї мікросекунди від початку тайм-слота і закінчуючи 60-й мікросекунд від початку. Типовий момент введення рівня в пристрій (тобто характерний для більшості пристроїв) - близько 30-ї мікросекунди від початку тайм-слота.
Заштрихована область - це область "наростання" рівня в шині 1-Wire, який залежить від ємності лінії і опору подтягивающего резистора, вона приведена для довідки.
Тайм-слоти прийому інформації відрізняються тим, що МК формує тільки початок тайм-слота (абсолютно так само, як при передачі "1"), а потім управління рівнем шини 1-Wire бере на себе пристрій, а МК здійснює введення цього рівня так само в певній зоні тимчасових інтервалів. Зона ця, як видно з малюнка, досить мала. Як і раніше, заштрихована область - область невизначеності, тому для введення, власне кажучи, контролеру залишається навіть не проміжок, а скоріше конкретний момент, коли він повинен ввести рівень сигналу з лінії. Цей момент часу - 14-я чи 15-я мікросекунд від початку тайм-слота. Зрозуміло, якщо лінія має малу ємність, а підтягаючий резистор малий, зона опитування трохи розширюється.
Отже, підіб'ємо підсумки. МК починає тайм слот з видачі в шину 1-Wire "0" протягом 1 мікросекунди. Наступний рівень залежить від типу тайм слоту: для прийому і передачі "1" рівень повинен стати високим, а для передачі "0" - залишатися низьким аж до кінця тайм-слота, тобто не менше 60 і не більше 120 мікросекунд. Якщо МК приймає дані, то опитування рівня в шині він повинен зробити на проміжку від 13-ої до 15-ї мікросекунд тайм-слота. МК повинен забезпечити інтервал між окремими тайм-слотами не менше 1 мікросекунди (краще - більше, максимальне значення не обмежена).
Важливо розуміти, що слід дуже ретельно підходити до забезпечення у шині 1-Wire необхідних тимчасових інтервалів, тому що, наприклад, збільшення тривалості тайм-слота висновку "0" понад рекомендованого значення може призвести до помилкового сприйняття цього тайм-слота, як сигналу RESET, і, зрозуміло, після цього вся процедура обміну припиниться. Але так само слід враховувати вплив самої лінії на тривалість фронтів імпульсів. Тому в загальному випадку, це не просте завдання. Але виконання нескладних рекомендацій дозволить її вирішити досить простими засобами: по-перше, всі сигнали, які повинен формувати МК, слід формувати за принципом необхідного мінімуму тривалості (тобто трохи більше, ніж зазначена мінімальна тривалість), а від пристрою слід очікувати сигналів за принципом найгіршого (тобто орієнтуватися на найгірші варіанти часових параметрів сигналу).
Протокол обміну інформацією
Розглянемо принципи адресації пристроїв та управління ними. Кожен пристрій 1-Wire володіє унікальним ідентифікаційним 64-бітним номером, програмованим на етапі виробництва мікросхеми. Унікальним - це означає, що фірма-виробник гарантує, що не знайдеться двох мікросхем з однаковим ідентифікаційним номером (принаймні протягом кількох десятків років при існуючих темпах виробництва).
При розгляді протоколу обміну будемо виходити з принципу, що на шині 1-Wire є більше одного пристрою. У цьому випадку перед МК встають 2 проблеми: визначення кількості наявних пристроїв і вибір (адресація) одного конкретного з них для обміну даними.
Номери деяких пристроїв нанесені прямо на корпусі мікросхем (наприклад, для пристроїв iButton - всім відомих ключів-таблеток), а номери інших можна визначити за допомогою спеціальних програм або пристроїв. Отже, припустимо, що ми знаємо номери всіх пристроїв 1-Wire на шині. Алгоритм роботи з ними наступний: МК посилає, як зазвичай, імпульс RESET, і всі наявні пристрої видають PRESENCE. Потім МК посилає в шину команду, яку приймають всі пристрої. Команд визначено декілька загальних для всіх типів 1-Wire-пристроїв, а так само можуть бути команди, унікальні для окремих типів. Серед загальних команд нас в першу чергу можуть зацікавити наступні:
Команда
Значення байта
Опис
SEARCH ROM
0xF0
Пошук адрес - використовується при універсальному алгоритмі визначення кількості і адрес підключених пристроїв
READ ROM
0x33
Читання адреси пристрою - використовується для визначення адреси єдиного пристрою на шині
MATCH ROM
0x55
Вибір адреси - використовується для звернення до конкретного адресою пристрої з багатьох підключених
SKIP ROM
0xCC
Ігнорувати адреса - використовується для звернення до єдиного пристрою на шині, при цьому адреса пристрою ігнорується (можна звертатися до невідомого пристрою)
Першу команду не станемо розглядати за раніше викладеної причини, друга дозволить вам визначити адресу наявних пристроїв перед їх установкою в готовий виріб.
Після того, як МК видасть команду READ ROM, від пристрою надійде 8 байт його власного унікального адреси - МК повинен їх прийняти. Слід врахувати, що будь-яка процедура обміну даними з пристроєм повинна бути завершена повністю або перервана посилаючи сигнал RESET.
Якщо відправлена ​​команда MATCH ROM, то після неї МК повинен передати так само і 8 байт конкретної адреси пристрою, з яким буде здійснюватися подальший обмін даними. Це рівносильно виставлення адреси на паралельній шині в мікропроцесорних пристроях. Прийнявши цю команду, кожен пристрій порівнює передається адресу з своїм власним. Всі пристрої, адреса яких не співпав, припиняють аналіз та видачу сигналів у лінії 1-Wire, а упізнав адресу пристрій продовжує роботу. Тепер усі дані, що передаються МК будуть потрапляти тільки до цього "адресованому" пристрою. Те, які саме дані треба послати в пристрій або отримати від нього після його адресації, залежить від конкретного пристрою і в цій статті не розглядається (наприклад, для термометра це можуть бути команди запуску вимірювання або зчитування результату, для ключа-таблетки не визначені жодні інші команди, крім основних, а для мікросхем АЦП додаткових команд може бути близько десятка).
Якщо пристрій одне на шині - можна прискорити процес взаємодії з ним за допомогою команди SKIP ROM. Повчивши цю команду, пристрій відразу вважає адресу яке співпало, хоча ніякого адреси за цією командою не слід. Деякі процедури не вимагають прийому від пристрою ніяких даних, в цьому випадку команду SKIP ROM можна використовувати для передачі якоїсь інформації відразу всім пристроям. Це можна використовувати, наприклад, для одночасного запуску циклу вимірювання температури кількома датчиками-термостатами типу DS18S20.
Прийом і передача байтів завжди починається з молодшого біта. Порядок проходження байтів при передачі та прийомі адреси пристрою так само ведеться від молодшого до старшого. Порядок передачі іншій інформації залежить від конкретного пристрою, тому слід звертатися до документації на застосовувані пристрою.
На завершення огляду інтерфейсу розглянемо детально будова унікального 64-бітового номери-адреси пристроїв 1-Wire. Він складається фактично з 8 окремих байт: одного байта ідентифікатора сімейства, шести байт (48 біт) власне унікального адреси і одного байта контрольної суми всіх попередніх байтів.
Отже, контрольна сума або CRC - це байт, значення якого передається найостанніших і обчислюється за спеціальним алгоритмом на основі значення всіх 7-й попередніх байтів. Алгоритм підрахунку такий, що якщо всі байти передані-прийняті без спотворень (а спотворення цілком можливі, якщо згадати характер апаратної реалізації інтерфейсу), прийнятий байт контрольної суми обов'язково співпаде з розрахованим в МК (або пристрої) значенням. Тобто при реалізації програмного алгоритму обміну інформацією ми повинні при передачі та прийомі байтів підраховувати їх контрольну суму за строго певним алгоритмом, а потім або передати отримане значення (якщо ми вели передачу адреси / даних), або порівняти розрахункове значення з прийнятим значенням CRC. Тільки при збігу обох CRC МК або пристрій вважають прийняті дані достовірними. В іншому випадку продовження обміну неможливо. Очевидно, що алгоритм підрахунку CRC повинен бути однаковим як для МК, так і для будь-якого пристрою. Він "стандартизований" і описаний в документації.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
42.6кб. | скачати


Схожі роботи:
Основні принципи побудови мережі 1-WIRE
Державний бюджет його структура та основні принципи побудови
Основні принципи побудови методики вивчення стохастичної лінії в курсі математики основної школи
Типи організаційних структур управління Основні принципи побудови організаційних структур
Проблеми побудови роздрібної торговельної мережі
Топології мереж Граф як основа побудови комп ютерної мережі
Принципи побудови і дії ПЗЗ
Принципи побудови фінансової звітності
Принципи побудови формальних теорій
© Усі права захищені
написати до нас