Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
praktika.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7 Мб
Скачать
☆
        1. Передача даних на рівні розрядів

Основою передачі текстових даних є передача окремих байтів. Це

завдання розрядного протоколу шини

I 2C . В цілому окремі розряди кодуються

127

через рівень на лінії синхронізуючих імпульсів та SDA. SCL функціонує в цьому випадку як послідовний синхронізатор (як при здвиговому регістрі). Спеціальний рівень – комбінації фронтів обох ліній передач кодують так звані початкові та кінцеві умови. Таким чином, за допомогою обох ліній SDA та SCL можна отримати сигнал про початок та кінець передачі даних. Це можливо не в усіх послідовних шинах. В інших для цього потрібні додаткові лінії передач. Для обох ліній передач рівень нижче 1,5 V вважається низьким, а вище 3 V – високим. Рівень, що знаходиться між заданими значеннями, є невизначеним.

Достовірність даних

Дані на лінії SDA мають бути стабільними до того часу, поки SCL лінія має високий рівень. В іншому випадку зміни на лінії SDA будуть інтерпретовані як спеціальні умови початку та кінця передачі. Це означає, що пристрої, які передають, мають перевести свої дані по низькому рівню SCL на лінію SD, а, пристрої які приймають, звісно, читають цю лінію на високому рівні SCL.

Рис. 9.9. Перевірка достовірності даних

Умови початку та кінця передачі

Умови початку та кінця передачі кодуються через фронти SDA лінії при високому логічному рівні ведучої SCL лінії. Для генерації умови початку передачі потрібно сформувати перепад з 1 в 0 сигналу SDA, для умови кінця – з

0 в 1. Це продемонстровано на рис. 9.10. Згідно з специфікаціями, умови початку та кінця можуть генеруватися до кожного моменту часу поточної передачі даних. Але рекомендується обережність, коли до шини підключені прилади, що лише частково відповідають стандартам, які сюди відносяться. Це

часто стосується випадків програмної реалізації протоколу шини на мікроконтролері.

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

SDA

SCL S P

початкова умова кінцева умова

Рис. 9.10 Умови початку та кінця передачі даних

        1. Керування доступом до спільного ресурсу (розподіл доступу до шини) та тактова синхронізація

Тактова синхронізація

Всі ведучі прилади самостійно генерують тактовий імпульс. Однак при реалізації лінії шини у вигляді дротового з’єднання «І» виникає можливість синхронізувати тактові імпульси конкуруючих ведучих пристроїв. Один ведучій пристрій, що видає низький рівень на лінію SCL, буде потім віддавати його назад, тобто видавати високий рівень. З цього моменту ведучий пристрій не тільки продовжує працювати далі, а й в свою чергу зчитує повторений сигнал лінії SCL, доки вона не буде мати високий рівень. Це означає, що доти, доки інший механізм знижує лінію SCL, ведучий пристрій синхронізується з ним. Цей інший механізм може бути як ведучим пристроєм, так і тим, якого ведуть, що й викликає затримку. В цілому здійснюється синхронізація найдовшого низького рівня та найповільнішого механізму.

Арбітраж доступу (керування доступом до спільного ресурсу)

Під арбітражем розуміють процес розподілу прав доступу до шини між

кількома ведучими пристроями. На шині

I 2C реалізується спеціальна операція,

що називається CSMA/CA (Carrier Sense, Multiple Access with Collision Avoidance). Carrier Sense означає, що ведучий пристрій, який хоче виконати

передачу даних, сканує лінії передач, щоб виявити, чи зайнята шина. Шина

I 2C

128

визначається як зайнята, коли одна з ліній передач знаходиться у стані з низьким рівнем напруги. Інтервал, під час якого обидві лінії передачі даних мають бути в стані з високим рівнем напруги (стан логічної «1»), щоб шина була розпізнана як вільна, зображено в технічному описі параметрів Philips як tHD;STA . В стандартному протоколі він складає мінімум 4,7 мікросекунди. Якщо ведучий пристрій розпізнав лінію як вільну, він задає умови початку передачі і

в першому біті видає адресу бажаного пристрою, якого ведуть. Якщо одночасно з першим ту саму дію виконує інший ведучий пристрій, то спочатку потрібно зрівняти імпульси на SCL лінії (див. попередній розділ). Під час зчитування синхронізованих фаз рівня високої напруги ведучі пристрої кожен раз порівнюють SDA-біти, котрі видають, з тими, котрі вони зчитують. Це функціонує так само як при керуванні синхронізованою лінією передач. Ведучий пристрій, який видає «1» та приймає «0» (так як «0» через дротове з’єднання «І» є домінантним), розрізняє таким чином, що інший механізм в цей момент використовує шину, і перериває передачу даних.

DATA 1

DATA 2

SDA

SCL

передавач 1 вільного арбітражу

DATA 1 # SDA

Рис. 9.11. Засіб попередження конфліктів

Цей процес являє собою Collision Avoidance (попередження конфліктів), тому що ведучий пристрій, що «переміг», від спроби отримання доступу конкурентом нічого не отримує. Це є протилежністю до іншого процесу, який називають Collision Detection (виявлення конфліктів), під час якого обидва ведучі пристрої мають звільнити шину. За допомогою процесу попередження конфліктів підвищується пропускна здатність шини, тому що доступ завжди отримує тільки один ведучій пристрій.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]