Wprowadzenie do wiedzy o czujnikach temperatury DS18B20
DS18B20 to powszechnie stosowany cyfrowy czujnik temperatury. Wyświetla sygnały cyfrowe, ma charakterystykę małych rozmiarów, niskie obciążenie sprzętowe, silna zdolność przeciwzakłóceniowa, wysoka precyzja, i jest szeroko stosowany.
Wprowadzenie do czujnika temperatury DS18B20
Cechy techniczne:
①. Unikalny tryb interfejsu jednoprzewodowego. Gdy DS18B20 jest podłączony do mikroprocesora, tylko 1 przewód jest potrzebny do realizacji dwukierunkowej komunikacji pomiędzy mikroprocesorem a DS18B20.
②. Zakres pomiaru temperatury -55℃~+125℃, nieodłączny błąd pomiaru temperatury 1 ℃.
③. Obsługa funkcji sieci wielopunktowej. Wiele DS18B20 można podłączyć równolegle na tylko trzech przewodach, i maksymalnie 8 można łączyć równolegle w celu realizacji wielopunktowego pomiaru temperatury. Jeśli liczba jest za duża, napięcie zasilania będzie zbyt niskie, co powoduje niestabilną transmisję sygnału.
④. Zasilacz roboczy: 3.0~5,5 V/DC (można zastosować pasożytniczy zasilacz linii danych).
⑤. Podczas użytkowania nie są wymagane żadne elementy peryferyjne.
⑥. Wyniki pomiarów przesyłane są szeregowo w postaci cyfrowej 9~12-bitów.
⑦. Średnica rury ochronnej ze stali nierdzewnej wynosi Φ6.
⑧. Nadaje się do pomiaru temperatury różnych średnich rurociągów przemysłowych o średnicy DN15 ~ 25, DN40~DN250 i sprzęt w wąskich przestrzeniach.
⑨. Standardowe gwinty montażowe M10X1, M12X1,5, G1/2” są opcjonalne.
⑩. Kabel PCV jest podłączony bezpośrednio lub podłączona jest niemiecka skrzynka przyłączeniowa typu kulowego, co jest wygodne do połączenia z innym sprzętem elektrycznym.
DS18B20 zasada odczytu i zapisu czasu i pomiaru temperatury:
Zasada pomiaru temperatury DS18B20 pokazana jest na rysunku 1. Częstotliwość oscylacji oscylatora kwarcowego o niskim współczynniku temperaturowym na rysunku jest w niewielkim stopniu zależna od temperatury, i służy do generowania sygnału impulsowego o stałej częstotliwości, który ma być wysłany do licznika 1. Częstotliwość oscylacji oscylatora kwarcowego o wysokim współczynniku temperaturowym zmienia się znacząco wraz z temperaturą, a wygenerowany sygnał wykorzystywany jest jako wejście impulsowe licznika 2. Lada 1 i rejestr temperatury są ustawione na wartość bazową odpowiadającą -55℃. Lada 1 odejmuje sygnał impulsowy generowany przez oscylator kwarcowy o niskim współczynniku temperaturowym. Gdy ustawiona wartość licznika 1 jest zredukowany do 0, wartość rejestru temperatury zostanie zwiększona o 1, i ustawienie licznika 1 zostanie ponownie załadowany. Lada 1 uruchamia się ponownie, aby zliczyć sygnał impulsowy generowany przez oscylator kwarcowy o niskim współczynniku temperaturowym, i cykl trwa aż do licznika 2 liczy się 0, zatrzymanie akumulacji wartości rejestru temperatury. W tej chwili, wartość w rejestrze temperatury jest zmierzoną temperaturą. Akumulator nachylenia służy do kompensacji i korygowania nieliniowości w procesie pomiaru temperatury, a jego wyjście służy do korekty zadanej wartości licznika 1.
Postać 1 jest następująco:
2. Schemat połączeń DS18B20 i MCU
3. Definicja pinów DS18B20:
DQ: Wejście/wyjście danych. Interfejs 1-przewodowy z otwartym drenem. Może również zasilać urządzenie, gdy jest używane w trybie zasilania pasożytniczego VDD: dodatnia masa zasilania: uziemienie zasilania 4. Wprowadzenie do analizy wewnętrznej DS18B20:
Powyższy rysunek przedstawia schemat blokowy DS18B20, a 64-bitowa pamięć ROM przechowuje unikalny kod seryjny urządzenia. Pamięć buforowa zawiera 2 bajty rejestrów temperatury przechowujące wyjście cyfrowe czujnika temperatury. Ponadto, pamięć buforowa zapewnia dostęp do 1-bajtowych górnych i dolnych rejestrów wyzwalających alarm (TH i TL) i 1-bajtowe rejestry konfiguracyjne. Rejestr konfiguracyjny umożliwia użytkownikowi ustawienie rozdzielczości temperatury do konwersji cyfrowej 9, 10, 11, Lub 12 bity. TH, TL, i rejestry konfiguracyjne są nieulotne (EEPROM), dzięki czemu zachowają dane po wyłączeniu urządzenia. DS18B20 wykorzystuje unikalny 1-przewodowy protokół magistrali Maxim, który wykorzystuje sygnał sterujący. Linia sterująca wymaga słabego rezystora podciągającego, ponieważ wszystkie urządzenia są podłączone do magistrali poprzez port 3-stanowy lub port z otwartym drenem (Pin DQ w przypadku DS18B20). W tym systemie magistrali mikroprocesor (gospodarz) wykorzystuje unikalny 64-bitowy kod dla każdego urządzenia. Ponieważ każde urządzenie ma unikalny kod, liczba urządzeń, które można zaadresować na jednej magistrali, jest praktycznie nieograniczona.
Format rejestru temperatury
Zależność temperatura/dane
Sygnał alarmowy działania
Po przeprowadzeniu przez DS18B20 konwersji temperatury, porównuje wartość temperatury ze zdefiniowaną przez użytkownika wartością wyzwalającą alarm z uzupełnieniem do dwóch, zapisaną w 1-bajtowych rejestrach TH i TL. Bit znaku wskazuje, czy wartość jest dodatnia, czy ujemna: dodatnie S=0, ujemny S=1. Rejestry TH i TL są nieulotne (EEPROM) i dlatego nie są ulotne, gdy urządzenie jest wyłączone. Dostęp do TH i TL można uzyskać poprzez bajty 2 I 3 pamięci.
Format rejestru TH i TL:
Schemat ideowy zasilania DS18B20 z wykorzystaniem zewnętrznego zasilacza
64-bitowy laserowy kod pamięci tylko do odczytu:
Każdy DS18B20 zawiera unikalny 64-bitowy kod przechowywany w pamięci ROM. Najmniej znaczące 8 bity kodu ROM zawierają jednoprzewodowy kod rodziny DS18B20: 28H. Następny 48 bity zawierają unikalny numer seryjny. Najbardziej znaczący 8 bity zawierają cykliczną kontrolę redundancji (CRC) bajt, który jest liczony od pierwszego 56 bity kodu ROM.
Mapa pamięci DS18B20
Rejestr konfiguracji:
Postać 2
Bajt 4 pamięci zawiera rejestr konfiguracyjny, który jest zorganizowany jak pokazano na rysunku 2. Użytkownik może ustawić rozdzielczość konwersji DS18B20 za pomocą bitów R0 i R1, jak pokazano w tabeli 2. Domyślne wartości po włączeniu zasilania dla tych bitów to R0 = 1 i R1 = 1 (12-rozdzielczość bitowa). Należy pamiętać, że istnieje bezpośredni związek pomiędzy rozdzielczością i czasem konwersji. Fragment 7 i bity 0 Do 4 w rejestrze konfiguracyjnym są zarezerwowane do użytku wewnętrznego urządzenia i nie można ich nadpisać.
Tabela 2 Konfiguracja rozdzielczości termometru
Generacja CRC
Bajt CRC jest częścią 64-bitowego kodu ROM DS18B20 i znajduje się w 9. bajcie notatnika. Kod ROM CRC jest obliczany od pierwszego 56 bitów kodu ROM i jest zawarty w najbardziej znaczącym bajcie ROM. CRC notatnika jest obliczane na podstawie danych przechowywanych w notatniku, więc zmienia się, gdy zmieniają się dane w notatniku. CRC zapewnia hostowi magistrali metodę weryfikacji danych podczas odczytu danych z DS18B20. Po sprawdzeniu, czy dane zostały odczytane prawidłowo, master magistrali musi ponownie obliczyć CRC z odebranych danych, a następnie porównać tę wartość z kodem CRC ROM (do odczytów ROM) lub notatnik CRC (do czytania w notatniku). Jeśli obliczony CRC jest zgodny z odczytanym CRC, dane zostały odebrane prawidłowo. Decyzja o porównaniu wartości CRC i dalszym postępowaniu leży wyłącznie w gestii kapitana autobusu. Wewnątrz DS18B20 nie ma żadnych obwodów, które uniemożliwiałyby wykonanie sekwencji poleceń, jeśli:
CRC DS18B20 (ROM lub notatnik) nie odpowiada wartości generowanej przez mastera magistrali.
Równoważna funkcja wielomianowa dla CRC to:
CRC = X8 + X5 + X4 + 1
Master magistrali może przeliczyć CRC i porównać go z wartością CRC DS18B20 poprzez:
Generator wielomianów pokazano na rysunku 3. Obwód zawiera rejestr przesuwny i bramki Yihuo, i bity rejestru przesuwnego są inicjalizowane 0. Najmniej znaczący bit kodu ROM lub najmniej znaczący bit bajtu 0 w notatniku należy przesuwać pojedynczo do rejestru przesuwnego. Po przesunięciu bitu 56 z pamięci ROM lub najbardziej znaczącego bitu bajtu 7 ze zdrapki, generator wielomianów będzie zawierał przeliczoną sumę CRC. Następny, do układu należy przesunąć 8-bitowy kod ROM lub sygnał CRC w scrappadzie DS18B20. W tym momencie, jeśli przeliczone CRC jest prawidłowe, rejestr przesuwny będzie zawierał same zera.
Postać 3: Generator CRC
V. Dostęp do DS18B20:
Sekwencja dostępu do DS18B20 jest następująca:
Krok 1. Inicjalizacja;
Krok 2. Polecenie ROM (po czym następuje konieczna wymiana danych);
Krok 3. Polecenie funkcji DS18B20 (po czym następuje konieczna wymiana danych);
Notatka: Ta sekwencja jest wykonywana przy każdym dostępie do DS18B20, ponieważ DS18B20 nie zareaguje, jeśli brakuje któregokolwiek kroku w sekwencji lub jest on niesprawny. Wyjątkiem od tej reguły jest ROM wyszukiwania [F0h] i wyszukiwanie alarmów [Ech] polecenia. Po wydaniu tych dwóch poleceń ROM, gospodarz musi wrócić do kroku 1 kolejno.
(Powyższe wprowadzenie zostało przetłumaczone z oficjalnego podręcznika)
Polecenie ROM
1, Przeczytaj ROM [33H]
2, Dopasuj rom [55H]
3, Pokój statku [CCh]
4, Wyszukiwanie alarmów [Ech]
Polecenie funkcji DS18B20
1, Konwersja temperatury [44H]
2, Napisz Scratchpad (Pamięć) [4Ech]
3, Przeczytaj Scratchpad (Pamięć) [BEh]
4, Skopiuj Scratchpad (Pamięć [48H]
5, Obudź ponownie E2 [B8h]
6, Przeczytaj Moc [B4h]
(Szczegółowy opis powyższych poleceń, zobacz oficjalną instrukcję)
VI. Uzyskaj dostęp do rozrządu DS18B20
Podczas procesu inicjalizacji, urządzenie nadrzędne magistrali wysyła impuls resetujący (Teksas) niski poziom przez co najmniej 480 µs, pociągając magistralę 1-Wire. Następnie, master magistrali zwalnia magistralę i przechodzi w tryb odbioru (RX). Po zwolnieniu autobusu, rezystor podciągający 5 kΩ podnosi poziom magistrali 1-Wire. Gdy DS18B20 wykryje to zbocze narastające, czeka od 15 µs do 60 µs, a następnie wysyła impuls obecności, obniżając poziom magistrali 1-Wire przez 60 µs do 240 µs.
Czas inicjalizacji:
Istnieją dwa typy przedziałów czasowych zapisu: “Napisz 1” przedziały czasowe i “Napisz 0” przedziały czasowe. Autobus używa zapisu 1 przedział czasowy na napisanie logiki 1 do DS18B20 i zapisz 0 przedział czasowy na napisanie logiki 0 do DS18B20. Wszystkie przedziały czasu zapisu muszą trwać co najmniej 60 µs z czasem odtwarzania wynoszącym co najmniej 1 µs pomiędzy poszczególnymi przedziałami czasu zapisu. Obydwa typy szczelin czasowych zapisu są inicjowane przez urządzenie główne, które ustawia stan niski na magistrali 1-Wire (patrz rysunek 14). Aby wygenerować zapis 1 szczelina czasowa, po wyciągnięciu magistrali 1-Wire do stanu niskiego, master magistrali musi zwolnić magistralę 1-Wire w ciągu 15 µs. Po zwolnieniu autobusu, rezystor podciągający 5 kΩ podciąga magistralę wysoko. Wygeneruj
Pisać 0 szczelina czasowa, po pociągnięciu linii 1-Wire do niskiego poziomu, kapitan autobusu musi nadal utrzymywać niski poziom autobusu przez cały przedział czasowy (co najmniej 60µs). DS18B20 próbkuje magistralę 1-Wire w oknie od 15 µs do 60 µs po tym, jak urządzenie master inicjuje szczelinę czasową zapisu. Jeśli autobus jest wysoki w oknie próbkowania, A 1 jest zapisany w DS18B20. Jeśli linia jest niska, A 0 jest zapisany w DS18B20.
Notatka: Szczelina czasowa to część szeregowego samomultipleksowania informacji o szczelinie czasowej przeznaczona dla pojedynczego kanału.
Postać 14 jest następująco:

Szczeliny czasowe zapisu DS18B20 są sterowane przez hosta w celu obniżenia poziomu magistrali 1-Wire
Przeczytaj przedział czasowy:
DS18B20 może wysyłać dane do hosta tylko wtedy, gdy host wyznaczy przedział czasu na odczyt. Dlatego, host musi wygenerować przedział czasowy odczytu natychmiast po wydaniu polecenia odczytu pamięci [BEh] lub zasilacz do odczytu [B4h] polecenie, aby DS18B20 dostarczył wymagane dane. Alternatywnie, host może wygenerować przedział czasowy odczytu po wydaniu Convert T [44H] lub Przypomnij sobie E2 [B8h] polecenie, aby sprawdzić status. Wszystkie szczeliny czasowe odczytu muszą trwać co najmniej 60 µs z minimalnym czasem odzyskiwania wynoszącym 1 µs pomiędzy szczelinami czasowymi. Szczelina czasowa odczytu jest inicjowana przez urządzenie nadrzędne, które ustawia magistralę 1-Wire w stanie niskim przez co najmniej 1 µs, a następnie zwalnia magistralę (patrz rysunek 14). Po tym jak urządzenie główne inicjuje szczelinę czasową odczytu, DS18B20 zacznie wysyłać do magistrali 1 lub 0. DS18B20 wysyła 1 trzymając autobus wysoko i wysyłając 0 poprzez obniżenie autobusu. Kiedy A 0 jest wysyłany, DS18B20 zwalnia magistralę, trzymając ją wysoko. Szczelina czasowa kończy się, a magistrala jest wciągana z powrotem do wysokiego stanu jałowego przez rezystor podciągający.
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt















