Elektroniczne termometry i rejestratory temperatury wielokrotnie były już publikowane na łamach EdW. Różnego rodzaju termometry, obok zegarów i „timerów do jajek", należą du najpopularniejszych projektów elektroników amatorów. Osobiście byłem zainteresowany obserwacją zmian temperatury w mieszkaniu i na zewnątrz budynku w ciągu duby. Jednakże wszystkie dotychczasowe projekty były bardzo rozbudowane i zawierały koszluwne czujniki, mikroprocesory oraz wyświetlacze. Chciałem zbudować dla siebie takie urządzenie możliwie najtańszym kosztem. W pierwszej kolejności zacząłem analizować różnego rodzaju mikroprocesorowe układy. Właśnie wtedy pojawiło się pytanie; Co by było, gdyby nic było mikroprocesora? Tak właśnie powstała koncepcja podłączenia układu cyfrowego czujnika temperatury wprost do komputera PC z pominięciem mikroprocesora.
Mając już gotowy prototyp urządzenia, jeden ze znajomych zasugerował, by przystosować mój termometr do pracy w sieci Internet. Dzięki temu posunięciu uniwersalność urządzenia wzrosła jeszcze bardziej. Teraz
taki układ może być stosowany nic tylko przez prywatnych użytkowników na ich własnych komputerach. Może być także częścią znacznie większego portalu internetowego.
Schemat ideowy pokazany jest na rysunku 1. Komunikacja z komputerem odbywa się z wykorzystaniem łącza szeregowego RS-232. Podczas pierwszych prób z prototypem wyszło na jaw, że komputer PC z systemem Windows XP nie radzi sobie zupełnie z wysyłaniem i odbiorem bardzo krótkich impulsów rzędu lps. Najkrótsze impulsy uzyskiwane na komputerze z procesorem Celeron 2GHz miały długość 20ps. Do obsługi układów .-wire jest to czas stanowczo za długi. Spowodowało to nieznaczną komplikację układu sterującego.
Układy pobierają prąd z końcówki DTR. Ponieważ port RS-232 pracuje z napięciami z zakresu nawet -25V... +25V, konieczne było zastosowanie diody Zenem Dl w celu obniżenia do wymaganego przez układy DS1820 napięcia 5V.
Obsługa magistrali 1-wire wygląda następująco. Ustawienie stanu 1 (ujemne napię
cie) na wyjściu TXD portu RS-232 powoduje zatkanie tranzystora Tl. W tej chwili za pomocą rezystora R1 na linii utrzymuje się stan spoczynkowy, czyli +5V. Zwarcie tranzystora Tl powoduje ściągnięcie linii do masy. Jeśli czas zwarcia będzie dłuższy niż układy DS1820 odbiorą to jako sygnał globalnego resetu. Wysyłanie logicznego zera do układów DS1820 jest realizowane za pomocą tranzystora Tl. Testy wykazały, że nawet impuls o długości 200ps jest prawidłowo interpretowany jako 0. 7 drugiej strony, jt*ś i komputer wysyła logiczną jedynkę, ustawi napięcie dodatnie na wyjściu RTS. Spowoduje to przeładow anie ładunku :ia kondensatorze Cl. Jednocześnie dioda 1)2 nie dopuści do wzrostu napięcia na linii danych powyżej 5V. Następnie następuje ustawienie na linii RTS napięcia ujemnego i ładowanie kondensatora Cl przez elementy Rl, R2 i D3. Kondensator zostaje naładowany po ok. 5ps, układy DS1820 zinterpretują taki krótki impuls jako sygnał logicznej jedynki. Teraz jeśli układy 1-wire wysyłają 0. nastąpi zwarcie linii danych po stronie tych układów do masy. W tym momencie na katodzie diody D3 wystąpi napięcie dodatnie, a na anudzie ujemne. Bramki Ul spowodują ustawienie na wejściu CTS komputera stanu wysokiego. Taki impuls zostanie zapamiętany przez rejestr systemowy. Gdy tylko program sterujący zakończy bieżącą funkcję, zostanie poinformowany o wysłaniu przez układ 1-wire logicznej jedynki Po więcej szczegółów dotyczących transmisji danych przez łącze 1-W'ire odsyłam do numem EdW.
Montaż można wykonać na płytce przedstawionej na rysunku 2 lub w' pająku, wiuto-wuiąc elementy wprost do złącza DB9. Płytka
Maj 2006