их. Номінальне значення затримки дорівнює 30 мкс, однак, воно може коливатися в межах 15 - 60 мкс. За імпульсом низького рівня слід передається біт. Він повинен утримуватися майстром на шині протягом 60 - 120 мкс від початку інтервалу. Часовий інтервал завершується переведенням шини в стан високого рівня на час не менше 1 мкс.Длітельность інтервалу залежить від власної ємності лінії обумовленою довгою. Так як в моєму пристрої датчики знаходяться на великій відстані від контролера, то рекомендується не мене 15мкс. br/>В В
Рис 2.5 Тимчасова діаграма передачі одного біта
Першою командою, яку повинен передати майстер для DS18B20 після ініціалізації, є одна з команд реалізованих пристроєм функцій. p align="justify"> При прийомі даних від підлеглого пристрою тимчасові інтервали для прийнятих бітів теж формує майстер. Інтервал починається імпульсом низького рівня тривалістю 15 мкс. Потім контролер відпускає шину і якщо через 30мкс він зчитує 0, то цей біт утримує термометр, інакше зчитується 1. Таким способом, послідовно тактіруя кожен біт, контролер зчитує всі необхідні йому дані. Прийом байта починається з молодшого біта. p align="justify"> Розглянемо особливості протоколу обміну. ​​ Вначалепосле проведення процедури ініціалізації передається команда на виконання певних функцій. Так як на лінії підключено три термометра, то можна виконати запуск вимірювання температури відразу для всіх термометрів і щоб виключити обмін номерами передаємо команду пропустити передачу номери 0xCC. Далі посилаємо команду Convert T - 0х44. Це відразу в трьох мікросхемах термометрів запускає вимірювання і перетворення в цифровий вигляд температури. Далі необхідно сформувати затримку від 500 до 750мкс (залежить від конкретного типу мікросхеми, тому вибираємо найбільший інтервал). Далі процедура скидання повторюється і тепер для вибірки виміряної температури необхідно передати команду 0xCD після чого передається номер конкретного термометра. а далі посилаємо команду ReadScratchpad - BEh. Перший байт містить знак, якщо температура В«+В», то він заповнений 000000000-ми, якщо В«-В«, то 11111111-ми. Якщо температура негативна, то значення температури передається в інверсному додатковому коді, що вимагає перетворення температури.
ІнтерфейсI 2 C
Даний інтерфейс використовується для збереження результатів на ФПЗУ, тому що він не реалізований апаратно, його треба реалізувати програмно. Для цього використовується процедура I 2 C, що має в якості атрибутів молодшу і старшу частину початкової адреси ліченого блоку. Процедура виконує всі кроки для виконання обміну з даного інтерфейсу:
) Старт біта
) Посилка префік...