DS18B20 to 1-przewodowy cyfrowy czujnik temperatury wyprodukowany przez Dallas, z 3-pinowym małym pakietem do 92. The temperature measurement range is -55℃~+125℃, and it can be programmed to 9-bit~12-bit A/D conversion accuracy. The temperature measurement resolution can reach 0.0625℃, and the measured temperature is serially output in the form of a 16-bit digital quantity with sign extension. Its working power supply can be introduced at the remote end or generated by parasitic power supply. Multiple DS18B20s can be connected in parallel to 3 Lub 2 lines. The CPU only needs one port line to communicate with many DS18B20s, occupying fewer ports of the microprocessor, which can save a lot of leads and logic circuits. The above characteristics make DS18B20 very suitable for long-distance multi-point temperature detection systems.
2. Internal structure of DS18B20 ds18b20 circuit diagram
Wewnętrzną strukturę DS18B20 pokazano na rysunku 1, na który składa się głównie 4 strony: 64-trochę ROMu, czujnik temperatury, nieulotny alarm temperatury wyzwala TH i TL, i rejestry konfiguracyjne. Układ pinów DS18B20 pokazano na rysunku 2. DQ to terminal wejścia/wyjścia sygnału cyfrowego; GND to masa zasilania; VDD to terminal wejściowy zewnętrznego źródła zasilania (uziemione w trybie pasożytniczego okablowania zasilania, patrz rysunek 4).
64-bitowy numer seryjny w pamięci ROM jest fototrawiony przed opuszczeniem fabryki. Można go uważać za kod sekwencji adresów DS18B20. 64-bitowy numer seryjny każdego DS18B20 jest inny. Kod cyklicznej kontroli nadmiarowości (CRC=X8+X5+X4+1) uporządkowana jest 64-bitowa pamięć ROM. Rolą pamięci ROM jest uczynienie każdego DS18B20 innym, dzięki czemu do jednej magistrali można podłączyć wiele DS18B20.
Postać 1, struktura wewnętrzna DS18B20
Czujnik temperatury w DS18B20 kończy pomiar temperatury, który jest dostarczany w postaci 16-bitowych odczytów binarnych z rozszerzonym znakiem, wyrażone w postaci 0,0625 ℃/LSB, gdzie S jest bitem znaku. Na przykład, wyjście cyfrowe +125 ℃ wynosi 07D0H, wyjście cyfrowe +25,0625 ℃ to 0191H, wyjście cyfrowe -25,0625 ℃ to FF6FH, a wyjście cyfrowe -55 ℃ to FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Młodszy bajt wartości temperatury
MSBLSB
S
S
S
S
S
22
25
24
Wysoki bajt wartości temperatury
Alarm wysokiej i niskiej temperatury wyzwala TH i TL, i rejestr konfiguracyjny składają się z jednego bajtu pamięci EEPROM. Do zapisu do TH można użyć polecenia funkcji pamięci, TL, lub rejestr konfiguracyjny. Format rejestru konfiguracyjnego jest następujący:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 i R0 określają liczbę cyfr dokładności konwersji temperatury: R1R0 = “00”, 9-bitowa precyzja, maksymalny czas konwersji wynosi 93,75 ms; R1R0 = “01”, 10-bitowa precyzja, maksymalny czas konwersji wynosi 187,5 ms. R1R0 = “10”, 11-bitowa precyzja, maksymalny czas konwersji wynosi 375 ms. R1R0 = “11”, 12-bitowa precyzja, maksymalny czas konwersji wynosi 750 ms. Domyślną wartością jest 12-bitowa precyzja, jeśli nie jest zaprogramowana.
Rejestr szybki to pamięć 9-bajtowa. Pierwsze dwa bajty zawierają cyfrową informację o zmierzonej temperaturze; trzeci, 4t, a piąty bajt to tymczasowe kopie TH, TL, i rejestry konfiguracyjne, odpowiednio, i są odświeżane przy każdym resetowaniu po włączeniu zasilania; 6, 7t, i ósmy bajt nie są używane i są reprezentowane jako wszystkie logiczne jedyneki; 9. bajt odczytuje kod CRC wszystkich poprzednich 8 bajty, które można wykorzystać do zapewnienia prawidłowej komunikacji.
3. Sekwencja robocza DS18B20
Przepływ protokołu roboczego pierwszej linii DS18B20 to: inicjalizacja → instrukcja obsługi ROM → instrukcja obsługi pamięci → transmisja danych. Jego sekwencja robocza obejmuje sekwencję inicjującą, sekwencję zapisu i sekwencję odczytu, Jak pokazano na rysunku 3 (A) (B) (C).
(A) Sekwencja inicjalizacji
(C) Przeczytaj sekwencję
Postać 3, Schemat sekwencji roboczej DS18B20
4. Typowy projekt interfejsu DS18B20 i mikrokomputera jednoukładowego
Postać 4 bierze za przykład jednoukładowy mikrokomputer serii MCS-51, aby narysować typowe połączenie między DS18B20 a mikroprocesorem. Na rysunku 4 (A), DS18B20 przyjmuje pasożytniczy tryb zasilania, a jego zaciski VDD i GND są uziemione. Na rysunku 4 (B), DS18B20 przyjmuje tryb zewnętrznego zasilania, a jego terminal VDD jest zasilany z zasilacza 3 V ~ 5,5 V.
A) Tryb pracy zasilacza pasożytniczego
(B) Tryb pracy zewnętrznego zasilacza
Postać 4 Typowy schemat połączeń DS18B20 i mikroprocesora
Zakładając, że częstotliwość kryształu używana przez jednoukładowy system mikrokomputera wynosi 12 MHz, zapisywane są trzy podprogramy zgodnie z czasem inicjalizacji, zapisz taktowanie i odczytaj taktowanie DS18B20: INIT jest podprogramem inicjującym; ZAPIS to zapis (polecenie lub dane) podprogram; READ jest podprogramem odczytu danych. Cały odczyt i zapis danych rozpoczynają się od najniższego bitu.
DATAQUP1.0
……
WSTĘP:CLREA
Zjednoczony:USTAWDAT
Movr2, # 200
Ini11:Klardat
DJNZR2, Ini11; Host wysyła impuls resetujący na czas 3 μs × 200 = 600 μs
USTAWDAT; Gospodarz zwalnia autobus, a linia portu zostaje zmieniona na wejście
Movr2, # 30
W12:DJNZR2,INI12; DS18B20 czeka 2μs×30=60μs
CLRC
Orlc,TO; Czy poziom linii danych DS18B20 jest niski (puls istnieje)?
Jcini10; DS18B20 nie jest gotowy, ponownie zainicjować
MOVR6, #80
INI13: Orlc, TO
Jcini14; Linia danych DS18B20 osiąga wysoki poziom, inicjalizacja zakończyła się pomyślnie
DJNZR6, INI13; Niski poziom linii danych może trwać 3μs × 80 = 240 ms
Sjmpini10; inicjalizacja nie powiodła się, uruchom ponownie
INI14: Modr2, #240
W 15: DJNZR2, NI15; DS18B20 odpowiada przez co najmniej 2μs × 240 = 48 0μs
GNIĆ
;-------------------------
PISAĆ:CLREA
MOVR3, # 8;Pętla 8 czasy, napisz bajt
WR11:USTAWDAT
MOVR4,#8
Rrc;Zapisz ruchy bitów od A do CY
Klardat
WR12:DJNZR4, WR12
;Poczekaj 16μs
MOVDAT,C;Słowo rozkazu jest wysyłane bit po bicie do DS18B20
MOVR4,#20
WR13:DJNZR4, WR1 3
; Upewnij się, że proces zapisu trwa 60μs
DJNZR3, WR11
; Kontynuuj przed wysłaniem bajtu
USTAWDAT
GNIĆ
;------------------------
CZYTAĆ:CLREA
MOVR6,#8; Pętla 8 czasy, przeczytaj bajt
RD11:Klardat
MOVR4,#4
NIE; Niski poziom trwa 2μs
USTAWDAT; Ustaw linię portu na wejście
RD12:DJNZR4, RD12
; Poczekaj 8μs
MOVC,od t
;Host odczytuje dane DS18B20 krok po kroku
Rrc;Odczytane dane są przenoszone do A
Movr5, # 30
RD13:DJNZR5, RD13
;Upewnij się, że proces odczytu trwa 60μs
DJNZR6, RD11
;Po odczytaniu bajtu danych, przechowuj go w A
USTAWDAT
GNIĆ
;-------------------------
Host musi przejść trzy kroki, aby kontrolować DS18B20 i zakończyć konwersję temperatury: inicjalizacja, Instrukcje obsługi pamięci ROM, oraz instrukcje obsługi pamięci. Aby rozpocząć konwersję, przed odczytaniem wartości konwersji temperatury należy uruchomić DS18B20. Zakładając, że do jednej linii podłączony jest tylko jeden chip, używana jest domyślna 12-bitowa dokładność konwersji, i używany jest zewnętrzny zasilacz, można zapisać podprogram GETWD, aby zakończyć konwersję i odczytać wartość temperatury.
Utalentowany:LCALLINIT
PRZENOSIĆ,#0CCH
LCALLWRITE; wyślij polecenie pominięcia ROM
PRZENOSIĆ,#44H
LCALLWRITE; wyślij polecenie rozpoczęcia konwersji
LCALLINIT
PRZENOSIĆ,#0CCH; wyślij polecenie pominięcia ROM
LCALLWRITE
PRZENOSIĆ,# 0BH; wyślij polecenie odczytu pamięci
LCALLWRITE
LCALLCZYTAJ
MOVWDLSB,A
; wyślij młodszy bajt wartości temperatury do WDLSB
LCALLCZYTAJ
MOVWDMSB,A
; wyślij starszy bajt wartości temperatury do WDMSB
GNIĆ
……
Starszy bajt wartości temperatury odczytany przez podprogram GETWD jest wysyłany do modułu WDMSB, a młodszy bajt jest wysyłany do jednostki WDLSB. Następnie zgodnie z formatem reprezentacji bajtu wartości temperatury i jego bitu znaku, rzeczywistą wartość temperatury można uzyskać poprzez proste przekształcenie.
Jeśli wiele DS18B20 jest podłączonych do jednej linii, przyjęto pasożytniczy tryb podłączenia zasilania, konfiguracja dokładności konwersji, alarm górnego i dolnego limitu, itp. są wymagane. Wtedy napisanie podprogramu GETWD będzie bardziej skomplikowane. Ze względu na ograniczenia przestrzenne, sekcja ta nie będzie szczegółowo opisana. Proszę zapoznać się z odpowiednią treścią.
Z powodzeniem zastosowaliśmy DS18B20 w “domowa kąpiel grzewcza” opracowany przez nas system sterowania. Jego duża prędkość konwersji, wysoka dokładność konwersji, i prosty interfejs z mikroprocesorem zapewniły dużą wygodę podczas projektowania sprzętu, skutecznie redukując koszty i skracając cykle rozwojowe.
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



