Ieee 1394

З чого все починалося

Свою лепту в розвиток IEEE 1394 внесла і Texas Instruments, яка організувала масове виробництво дійсно дешевих мікросхем для реалізації IEEE 1394 інтерфейсу, що зіграло величезну роль в бурхливому зростанні кількості IEEE 1394 контролерів в персональних комп'ютерах.

Що ж такого хорошого в IEEE 1394?

Як вже говорилося, розробники спиралися на випущені раніше стандарти, і в IEEE 1394 увійшло все краще, що існувало на той момент. З головних особливостей IEEE 1394 можна відзначити:
  • Послідовна шина замість паралельного інтерфейсу дозволила використовувати кабелю малого діаметра і роз'єми малого розміру.
  • Підтримка гарячого підключення і відключення всього чого завгодно.
  • Харчування зовнішніх пристроїв через IEEE 1394 кабель.
  • Висока швидкість
  • Можливість будувати мережі з різних пристроїв і самої різної конфігурації.
  • Простота конфігурації і широта можливостей. Через IEEE 1394 може працювати саме різне обладнання, причому користувачеві не доведеться мучитися питанням, як це все правильно підключити.
  • Підтримка асинхронної і синхронної передачі даних.
На останньому пункті необхідно зупинитися детальніше.

Асинхронна передача. Asybnchronous, від грецького Asyn - інший і Chronous - час. Це означає, що дані обов'язково будуть доставлені в цілості й схоронності, нехай і не завжди в строк. Отримання кожного пакета перевіряється і підтверджується, якщо пакет не дійшов, передача буде повторена заново.

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

Як це все працює?

IEEE 1394 ділиться на кілька рівнів. Виглядає це так:

Внизу знаходиться фізичний рівень (Physical Layer). Апаратна складова, яка відповідає за переклад сигналів, отриманих по кабелях в зрозумілу комп'ютеру форму (і навпаки - за переклад даних в електричні сигнали, що йдуть по кабелях). Ця ж частина відповідає за управління фізичним каналом, тобто визначає, має пристрій займати канал прямо зараз, або має почекати. Крім того, цей же рівень забезпечує інтерфейс для кабелів і роз'ємів і відповідає за такі процеси:

Інтерфейс середовища (Media Interface) - відповідає за стан сигналу, що передається по кабелях.

Арбітраж (Arbitration) - різні IEEE 1394 для пристрою, включені в мережу розбираються між собою, хто і в якому порядку може діяти.

Кодування / декодування (Encode / Decode) - переклад даних в електричні сигнали, які можуть передаватися по кабелях і назад.

Рівнем вище розташований рівень каналу (Link Layer). Сюди доставляються вже готові пакети даних. Саме цей рівень відповідає за пересилання даних вгору і вниз, тут відбуваються такі процеси:

Приймач пакетів (Packet Receiver) - організовує і відповідає за прийом пакетів даних.

Передавач пакетів (Packet Transmitter) - організовує і відповідає за передачу пакетів даних.

Контроль циклів (Cycle Control) - пакети передаються не поодинці, а циклами. Тут і здійснюється контроль над цими циклами.

Ці два рівні реалізовані в "залозі", тобто виконуються апаратно. Вони повністю відповідають за формування сигналу з даних, формування даних з сигналу, і прийом / передачу в потрібний час і в потрібне місце. Тому, тільки цих двох рівнів і вистачає при синхронній передачі, коли ніякого контролю над тим що передається і виходить не потрібно. При асинхронної передачі це не так, і там в дію вступає:

Мережевий рівень (Transaction Layer). На цьому рівні відбувається перевірка отриманих даних. Якщо все нормально (жоден пакет не загубився або, не пошкодився), дані відправляються споживачеві. Якщо виявлена ​​помилка - повертаємося на фізичний рівень і повторюємо все спочатку, поки дані не будуть отримані без помилок.

Всі рівні (в тому числі і перші два) контролюються firmware, і цей процес називається менеджмент послідовної шини (Serial Bus management).

Такі процеси відбуваються в кожному IEEE 1394 пристрої, і два будь-яких пристрої утворюють між собою з'єднання типу точка-точка (point-to-point). Але, крім цього, IEEE 1394 дозволяє об'єднувати безліч таких пристроїв і з'єднань в одну логічну мережу. Для цього фізичний рівень (physical layer) дозволяє мати більше одного фізичного інтерфейсу на одному пристрої.

Розглянемо докладніше, як різні пристрої в одній логічної мережі розбираються, хто, коли, і що повинен робити.

Ініціалізація мережі відбувається в кілька етапів:

Скидання (reset) - відбувається кожного разу, коли потрібно. Причиною для скидання може стати, наприклад, фізична зміна конфігурації мережі (підключили новий пристрій або відключили старе). З скидання шини і починається процес ініціалізації мережі. Конфігурація, що сформувалася при цьому, залишається дійсною і незмінною до наступного скидання шини.

Ідентифікація дерева (Tree identification) - підключення пристрою з'ясовують, які з них батьківські, а які дочірні, і формують логічне дерево. Визначається кореневе пристрій для всього дерева.

Примітка: Перше, що визначає пристрій після включення, це скільки підключених портів воно має. Один (leaf) або кілька (branch). Потім визначається батьківські (parent) і дочірні (child) пристрої (яке до якого підключено). На основі цих даних будується дерево і визначається кореневе пристрій.

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

Пристрій, який хоче почати передачу, спочатку посилає запит свого батьківського пристрою. Батьківське пристрій, отримавши запит, забороняє передачу всім іншим дочірнім (в один момент обробляється тільки один запит) і, в свою чергу, передає запит далі, свого батьківського пристрою, де все повторюється. У підсумку запит доходить до кореневого пристрою, який, в свою чергу, дозволяє передачу тому пристрою, чий запит прийшов першим. Всім іншим передача забороняється. Таким чином, якщо два пристрої одночасно пошлють запит на передачу даних, то відповідь буде залежати від того, чий запит першим досягне кореневого пристрою. Воно виграє арбітраж і отримує право почати передачу. Програло пристрій. не отримавши дозволу на передачу, змушене чекати, поки яке виграло не звільнить шину.

Все це відбувається на фізичному рівні (physical layer). Після того, як дозвіл на передачу даних отримано і потрібно почати передачу даних, в справу вступає рівень каналу (link layer). Як вже говорилося, саме він формує пакети і визначає - коли і скільки пакетів має надсилатися. Передача даних починається з запиту готовності до прийому пристрою, для якого призначені дані, і, отримавши підтвердження готовності, починає передачу. Дані йдуть пакетами, між якими є проміжки (gap). Типовий пакет даних 256 байт, або 2048 біт, з яких 160 біт доводиться на заголовок. Таким чином, загальна ефективність (скільки в пакеті дійсно даних, а не службової інформації) дуже висока і чим більше пакет, тим вище ефективність). У заголовок входить інформація про відправника, одержувача і CRC. Після пакета йде невеликий проміжок, довжиною менше 0.75 msec (acknowledge gap), після чого одержувач повинен вислати 8-ми бітовий блок даних, що підтверджує, що пакет отриманий в цілості й схоронності (ack packet). Потім слід довший проміжок, довгою більше 1 msec, що розділяє пакети (subaction gap). І так далі - пакет, acknowledge gap, що підтверджує байт (ack), subaction gap.

Для того, щоб один пристрій, почавши передавати дані, не зайняло весь канал, не залишивши сусідам жодних шансів почати передачу, поки воно не перестане, введено поняття fairness interval. Протягом одного fairness interval кожен пристрій в шині отримує одну можливість передати свої дані. Після того як дозвіл отримано (арбітраж виграний), і порція даних передана, пристрій повинен чекати кінця fairness interval і початку наступного циклу, перш ніж воно знову отримає можливість передати наступну порцію даних. Закінчується fairness interval так званим reset gap, який довший subaction gap, і викликає скидання всієї шини.

Для синхронної передачі використовується дещо інша методика. Дані передаються "пострілами", довжина кожного 125 мsec. Таких пострілів проводиться стільки, скільки дозволяє канал. Навіть на одинарної (98.304 Mbit / sec) швидкості за один такий цикл передається до 1000 байт. Чим вище швидкість, тим більше даних встигає пройти. При цьому, при синхронній передачі абсолютно не важливо, отримало приймаючий пристрій дані чи ні. Пакети просто йдуть один за іншим, розділені subaction gap, ніяких ack packet ніхто не чекає. Для того, щоб приймаючий пристрій змогло розібратися, де синхронні, а де асинхронні дані, subaction gap при синхронній передачі коротше. Це дозволяє комбінувати в одному сеансі синхронні дані з асинхронними. Однак, в синхроном режимі одного пристрою ніколи не дозволять захопити весь доступний канал. На синхронно дані може доводиться не більше 85% доступного каналу, причому один пристрій не може зайняти більше 65%.

Як все це виглядає?

IEEE 1394 дозволяє передавати дані на швидкості 98.304 Mbit / sec. Крім цього, можлива передача в 2-x (196.608 Mbit / sec) і 4-x (393.216 Mbit / sec) режимах.

Спочатку з'явилися чіпи, які здатні працювати тільки на 100 Мбітах (хоча специфікація дозволяла і більше), але 200 і 400-мегабітні чіпи не змусили себе довго чекати. Незважаючи на такий уявний безлад, користувачі не повинні відчувати жодних незручностей (це було одне з обов'язкових умов, яке ставилося перед розробниками). Тому IEEE 1394 дозволяє в одній мережі використовувати самі різні пристрої одночасно. Причому, користувачеві не доведеться турбуватися про те, що він може неправильно їх підключити. Підключати можна що завгодно, і в яких завгодно сполученнях, залізяки самі розберуться, хто з ким і на якій швидкості може "розмовляти".

Для роботи на таких високих швидкостях потрібні були відповідні кабелі. Кабель для IEEE 1394 вельми складна система, і спаяти його самостійно (що можливо для USB) навряд чи можливо. Дані передаються по двох витих парах, кожна з яких окремо екранована. Для більшої надійності, додатково екранується і весь кабель. Крім двох сигнальних пар, в кабелі передбачені дві живлять жили, які можуть забезпечити будь-який зовнішній пристрій струмом силою до 1.5 А і напругою до 40 V. В розрізі кабель виглядає так:

Вибору роз'єму, до якого повинні підключатися IEEE 1394 для пристрою, було приділено найпильнішу увагу, адже від роз'єму в чималому ступені залежить те, наскільки зручно буде користуватися новим інтерфейсом. Роз'єм повинен бути невеликим, але в той же час міцним, повинен забезпечувати надійне з'єднання, але в той же час легко з'єднуватися-від'єднуватися навіть наосліп. Всім вимогам задовольнив роз'єм, який використовується в Nintendo GameBoy.


Як видно з фотографії, всі контакти виведені в середину роз'єму, а зовні захищені товстим обідком з твердої пластмаси. Надійність цієї схеми доведена багатьма GameBoy, нещадно розтерзаними дітьми різного віку.

Але навіть такий просунутий і зручний роз'єм не всіх задовольнив. Справді, навіщо нам тягнути за собою дві живлять жили там, де підключений пристрій має власне харчування. Дійсно нема чого, вирішили розробники і на світ з'явився новий, чотирьохконтактний роз'єм. Цей новий роз'єм хоч і не забезпечував такого надійного з'єднання як традиційний шестиконтактний, зате дозволяв заощадити місце, що важливо на портативних пристроях. Крім цього, кабель без двох додаткових жив, відповідальних за харчування, можна зробити ще тонше і дешевше. Особливо "за смаком" чотирьохконтактні роз'єми припали виробникам компактних DV камер, і саме їх можна побачити на більшості таких камер.


Виробники материнських плат включають в свої останні рішення підтримку обох роз'ємів:


Ieee 1394

брекет з комплекту материнської плати Asus P4B-533-E

Як це все розвивалося, і що ми маємо сьогодні

CleverClean SLIM-Series VRpro - самий плоский робот-пилосос Незважаючи на невеликі, майже іграшкові габарити, новий робот-пилосос компанії CleverClean може похвалитися тим, чого не зможе зробити ніхто інший його більший побратим. Він легко пропилососити під диваном або комодом, де пил може збиратися місяцями, а то й роками, адже дістатися туди нелегко навіть звичайними засобами: шваброю і ганчіркою

Згода на обробку персональних даних