0000 | 0000 0001 | 0001h
0°C | 0000 0000 | 0000 0000 | 0000h
-0.5°C | 1111 1111 | 1111 1111 | FFFFh
-25°C | 1111 1111 | 1100 1110 | FFCEh
-55°C | 1111 1111 | 1001 0010 | FF92h
Більш висока роздільна здатність може бути отримана, якщо провести додаткові обчислення на основі значень COUNT REMAIN (значення, залишені в лічильнику в кінці вимірювань) і COUNT PER C (кількість імпульсів на один градус для даної температури), які доступні. Для обчислень потрібно взяти зчитане значення температури і відкинути молодший біт. Отримане значення назвемо TEMP READ. Тепер дійсне значення температури можна порахувати за формулою:
TEMPERATURE=TEMP_READ-0.25+(COUNT_PER_C - COUNT_REMAIN)/COUNT_PER_C
В нашому випадку такий розрахунок дозволяє отримати дискретність представлення температури 0,1 °С.
Кожен екземпляр DS18S20 має унікальний 48-бітний номер, записаний за допомогою лазера в ПЗУ в процесі виробництва. Цей номер використовується для адресації пристроїв. Крім серійного номера в ПЗУ закладений код сімейства (для DS18S20 це 10h) і контрольна сума.
Крім ПЗУ DS18S20 має проміжні ОЗУ об’ємом 8 байт, плюс два байти енергонезалежної пам’яті. Карта пам’яті DS18S20 показана на рис. 2.2:
Рисунок 2.2- Карта пам’яті DS18S20.
Байти TH і TL представляють собою температурні пороги, з якими порівнюється 8 біт кожного виміряного значення температури (молодший біт відкидається). З допомогою спеціальної команди можна організувати сигналізацію виходу температури за межі цих порогів. Якщо така функція не потрібна, байти TH і TL можна використати для зберігання любих даних користувача.
Зчитування значення виміряної температури, а також передача команди початку перетворення та інших команд здійснюється з допомогою 1-провідного інтерфейсу (1-Wire™) фірми DALLAS. На основі цього інтерфейсу фірма DALLAS навіть створила мережу, яка називається mikroLAN (або µLAN). Для роботи в цій мережі випускається цілий ряд пристроїв, такі як адресні ключі, АЦП, термометри, годинники реального часу, цифрові потенціометри. До речі такий самий протокол обміну мають і цифрові ключі IButton (або Touch Memory), які широко використовуються в системах обмеження доступу.
Протокол, який використовується 1-проводним інтерфейсом, достатньо простий. В будь-який момент часу на 1-проводній шині можна виділити пристрій-майстер, яким може бути мікропроцесор або комп’ютер, і мікросхема термометра. Так як у нас на шині наявний тільки майстер и всього один пристрій, можна знехтувати всім тим, що пов’язано з адресацією пристроїв. В результаті потрібно знати лише протокол передачі байтів, які можуть бути командами або даними.
Розглянемо апаратну конфігурацію. 1-проводна шина є двохнаправленою. На рис. 2.3 показана апаратна конфігурація інтерфейсної частини DS18S20 і майстра шини. У кожного 1-проводного пристрою до шини підключений вхід приймача і вихід передатчика с відкритим стоком. Відкритий стік дозволяє підключати до шини безліч пристроїв, забезпечуючи логіку «монтажне або». Генератор струму 5мкА забезпечує на вході 1-проводного пристрою низький логічний рівень, коли шина не підключена. Так як лінія тактового сигналу відсутня, обмін є синхронним. Це означає, що в процесі обміну необхідно достатньо точно витримувати потрібні часові співвідношення.
Рисунок 2.3- Апаратна конфігурація інтерфейсної частини 1-проводних пристроїв.
1-провідна шина оперує з TTL-рівнями, тобто логічна одиниця представлена рівнем напруги близько 5В, а логічний нуль – напругою близькою 0В. В початковому стані на лінії присутній рівень логічної одиниці, який забезпечується підстроювальним резистором номіналом біля 5Ком.
Ініціатором обміну по 1-провідній шині завжди виступає майстер. Всі пересилки починаються з процесу ініціалізації. Ініціалізація відбувається в наступній послідовності (рис. 2.4):
Рисунок 2.4- Ініцілізація обміну по 1-провідній шині.
Майстер посилає імпульс скидання (reset pulse) - сигнал низького рівня довжиною не менше 480 мкс.
За імпульсом скидання слідує відповідь підпорядкованого пристрою (presence pulse) - сигнал низького рівня довжиною 60 - 240 мкс, який генерує через 15 - 60 мкс після завершення імпульсу скидання.
Відповідь підпорядкованого пристрою дає майстру зрозуміти, що на шині присутній термометр і він готовий до обміну. Після того, як майстер виявив відповідь, він може передати термометру одну із команд. Передача ведеться шляхом формування майстром спеціальних часових інтервалів (time slots). Кожен часовий інтервал служить для передавання одного біта. Першим передається молодший біт. Інтервал починається імпульсом низького рівня, тривалість якого знаходиться в межах 1-15 мкс. Оскільки перехід із одиниці в нуль менш чутливий до ємності шини (він формується відкритим транзистором, в той час як перехід із нуля в одиницю формується підстроювальним резистором), саме цей перехід використовують 1-провідні пристрої для синхронізації з майстром. В підпорядкованому пристрої запускається схема часової затримки, яка визначає момент зчитування даних. Номінальне значення затримки рівне 30 мкс, однак, воно може коливатися в межах 15-60 мкс. За імпульсом низького рівня поступає біт, що передається. Він повинен утримуватися майстром на шині протягом 60-120 мкс від початку інтервалу. Часовий інтервал завершується переведенням шини в стан високого рівня на час не менше 1 мкс. Необхідно відмітити, що обмеження на цей час зверху не накладається. Аналогічно формуються часові інтервали для всіх бітів, що передаються (рис. 2.5):
Рисунок 2.5- Передавання біта по 1-провідній шині.
2.3. Програмне забезпечення та технічна реалізація системи вимірювання температури
До складу каналу вимірювання температури входить термометр DS18S20 для забезпечення роботи якого розроблене програмне забезпечення “DS18S20 on COM2”.
Для підключення DS18S20 до СОМ-порта комп’ютера використовується адаптер, схема якого наведена на рис. 2.6, де показане вікно допомоги програми.
Рисунок 2.6- Вікно допомоги програми із схемою адаптера.
Для живлення DS18S20 використовується лінія DTR послідовного порту. Конструктивно адаптер виконаний в корпусі роз’єма D-SUB-25 (рис. 2.7):
Рисунок 2.7 - Зовнішній вигляд