Tehnologija senzora temperature

Dizajn funkcije mjerenja temperature digitalnog temperaturnog senzora DS18B20

funkcija mjerenja temperature digitalnog temperaturnog senzora DS18B20

DS18B20 je 1-žični digitalni temperaturni senzor koji proizvodi DALLAS, sa 3-pinskim TO-92 malim paketom. Opseg mjerenja temperature je -55℃~+125℃, i može se programirati na tačnost A/D konverzije od 9-12-bita. Rezolucija mjerenja temperature može doseći 0,0625 ℃, a izmjerena temperatura se serijski izlazi u obliku 16-bitne digitalne veličine sa proširenjem predznaka. Njegovo radno napajanje može biti uvedeno na udaljenom kraju ili generirano parazitskim napajanjem. Više DS18B20 može se povezati paralelno na 3 ili 2 linije. CPU-u je potrebna samo jedna linija porta za komunikaciju sa mnogim DS18B20, zauzimaju manje portova mikroprocesora, što može uštedjeti mnogo izvoda i logičkih kola. Gore navedene karakteristike čine DS18B20 veoma pogodnim za sisteme za detekciju temperature sa više tačaka na daljinu.

funkcija mjerenja temperature digitalnog temperaturnog senzora DS18B20

funkcija mjerenja temperature digitalnog temperaturnog senzora DS18B20

2. Interna struktura dijagrama strujnog kola DS18B20 ds18b20
Unutrašnja struktura DS18B20 prikazana je na slici 1, koji se uglavnom sastoji od 4 dijelovi: 64-bit ROM, temperaturni senzor, neisparljivi temperaturni alarm aktivira TH i TL, i konfiguracijskim registrima. Raspored pinova DS18B20 prikazan je na slici 2. DQ je terminal za ulaz/izlaz digitalnog signala; GND je uzemljenje napajanja; VDD je ulazni terminal eksternog napajanja (uzemljen u parazitskom načinu ožičenja, vidi sliku 4).

64-bitni serijski broj u ROM-u je fotourezan prije izlaska iz fabrike. Može se smatrati kodom adresnog niza DS18B20. 64-bitni serijski broj svakog DS18B20 je drugačiji. Kod za provjeru cikličke redundancije (CRC=X8+X5+X4+1) 64-bitnog ROM-a je uređen. Uloga ROM-a je da svaki DS18B20 učini drugačijim, tako da više DS18B20 može biti povezano na jednu magistralu.

Unutrašnja struktura DS18B20 čipa

Unutrašnja struktura DS18B20 čipa

Slika 1, unutrašnja struktura DS18B20

Senzor temperature u DS18B20 završava mjerenje temperature, koji je obezbeđen u obliku 16-bitnih binarnih čitanja komplementa sa proširenim predznakom, izraženo u obliku 0,0625℃/LSB, gdje je S bit predznaka. Na primjer, digitalni izlaz od +125℃ je 07D0H, digitalni izlaz od +25,0625℃ je 0191H, digitalni izlaz od -25,0625℃ je FF6FH, a digitalni izlaz od -55℃ je FC90H.

23
22
21
20
2-1
2-2
2-3
2-4

Niži bajt vrijednosti temperature
MSBLSB
S
S
S
S
S
22
25
24

Visoki bajt vrijednosti temperature
Alarm visoke i niske temperature aktivira TH i TL, i konfiguracijski registar se sastoje od jednog bajta EEPROM-a. Komanda memorijske funkcije može se koristiti za pisanje u TH, TL, ili registar konfiguracije. Format registra konfiguracije je sljedeći:

0
R1
R0
1
1
1
1
1
MSBLSB

R1 i R0 određuju broj cifara preciznosti za konverziju temperature: R1R0 = “00”, 9-bitna preciznost, maksimalno vrijeme konverzije je 93,75 ms; R1R0 = “01”, 10-bitna preciznost, maksimalno vrijeme konverzije je 187,5 ms. R1R0 = “10”, 11-bitna preciznost, maksimalno vrijeme konverzije je 375ms. R1R0 = “11”, 12-bitna preciznost, maksimalno vrijeme konverzije je 750ms. Zadana vrijednost je 12-bitna preciznost kada nije programirana.

Registar velike brzine je 9-bajtna memorija. Prva dva bajta sadrže digitalnu informaciju o izmjerenoj temperaturi; 3, 4th, i 5. bajtovi su privremene kopije TH, TL, i konfiguracijskim registrima, respektivno, i osvježavaju se svaki put kada dođe do resetiranja pri uključivanju; 6, 7th, i 8. bajtovi se ne koriste i predstavljeni su kao sve logičke 1; 9. bajt čita CRC kod svih prethodnih 8 bajtova, koji se može koristiti za osiguravanje korektne komunikacije.

3. Radni redosled DS18B20
Tok radnog protokola prve linije DS18B20 je: inicijalizacija → instrukcija za rad ROM → instrukcija za rad sa memorijom → prijenos podataka. Njegova radna sekvenca uključuje sekvencu inicijalizacije, redoslijed pisanja i niz čitanja, kao što je prikazano na slici 3 (a) (b) (c).

(a) Redoslijed inicijalizacije
(c) Čitanje sekvence

Tipična shema povezivanja DS18B20 i mikroprocesora

Tipična shema povezivanja DS18B20 i mikroprocesora

Slika 3, DS18B20 dijagram radnog niza

4. Tipičan dizajn interfejsa DS18B20 i mikroračunara sa jednim čipom
Slika 4 uzima MCS-51 seriju mikroračunara s jednim čipom kao primjer za crtanje tipične veze između DS18B20 i mikroprocesora. Na slici 4 (a), DS18B20 usvaja parazitski način napajanja, i njegovi VDD i GND terminali su uzemljeni. Na slici 4 (b), DS18B20 usvaja režim eksternog napajanja, a njegov VDD terminal se napaja putem napajanja od 3V~5.5V.

a) Način rada parazitskog napajanja
(b) Način rada eksternog napajanja

DS18B20 radni vremenski dijagram

DS18B20 radni vremenski dijagram

Slika 4 Tipični dijagram povezivanja DS18B20 i mikroprocesora

Pod pretpostavkom da je frekvencija kristala koju koristi mikroračunarski sistem sa jednim čipom 12MHz, tri potprograma se pišu prema vremenu inicijalizacije, vrijeme pisanja i vrijeme čitanja DS18B20: INIT je inicijalizacijski potprogram; WRITE je pisanje (naredbu ili podatke) potprogram; READ je potprogram za čitanje podataka. Čitanje i pisanje svih podataka počinje od najnižeg bita.

DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:Clrdat
DJNZR2,INI11; Domaćin šalje resetni impuls za 3μs×200=600μs
SETBDAT; Domaćin pušta autobus, a linija porta se mijenja u ulaz
MOVR2,#30
IN12:DJNZR2,INI12; DS18B20 čeka 2μs×30=60μs
CLRC
Orlc,TO; Da li je linija podataka DS18B20 niska (puls postoji)?
JCINI10; DS18B20 nije spreman, ponovo inicijalizovati
MOVR6, #80
INI13: Orlc, TO
JCINI14; DS18B20 data linija ide visoko, inicijalizacija je uspješna
DJNZR6, INI13; Niski nivo linije podataka može trajati 3μs × 80 = 240μs
SYMPINI10; inicijalizacija nije uspjela, restart
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 odgovara najmanje 2 μs × 240 = 48 0μs
RET

;-------------------------
WRITE:CLREA
MOVR3,#8;Loop 8 puta, napisati bajt
WR11:SETBDAT
MOVR4,#8
RRCA;Bit pisanja se pomiče iz A u CY
Clrdat
WR12:DJNZR4,WR12
;Sačekajte 16 μs
MOVDAT,C;Komandna riječ se šalje na DS18B20 bit po bit
MOVR4,#20
WR13:DJNZR4,WR1 3
; Osigurajte da proces pisanja traje 60 μs
DJNZR3,WR11
; Nastavite prije slanja bajta
SETBDAT
RET

;------------------------
PROČITAJTE:CLREA
MOVR6,#8; Loop 8 puta, pročitaj bajt
RD11:Clrdat
MOVR4,#4
NOP; Nizak nivo traje 2 μs
SETBDAT; Postavite liniju porta na ulaz
RD12:DJNZR4,RD12
; Sačekajte 8μs
MOVC,OD T
;Host čita podatke DS18B20 bit po bit
RRCA;Očitani podaci se premeštaju u A
MOVR5,#30
RD13:DJNZR5,RD13
;Uvjerite se da proces čitanja traje 60 μs
DJNZR6,RD11
;Nakon čitanja bajta podataka, pohraniti u A
SETBDAT
RET
;-------------------------
Domaćin mora proći kroz tri koraka kako bi kontrolirao DS18B20 da bi završio konverziju temperature: inicijalizacija, ROM upute za rad, i uputstva za rad sa memorijom. DS18B20 se mora pokrenuti da bi započeo konverziju prije očitavanja vrijednosti konverzije temperature. Pod pretpostavkom da je samo jedan čip povezan na jednu liniju, koristi se zadana 12-bitna preciznost konverzije, i koristi se eksterno napajanje, može se napisati potprogram GETWD da završi konverziju i pročita vrijednost temperature.

Nadaren:LCALLINIT
MOVE,#0CCH
LCALLWRITE; pošalji skip ROM naredbu
MOVE,#44H
LCALLWRITE; poslati naredbu za početak konverzije
LCALLINIT
MOVE,#0CCH; pošalji skip ROM naredbu
LCALLWRITE
MOVE,#0 BEH; poslati naredbu za čitanje memorije
LCALLWRITE
LCALLREAD
MOVWDLSB,A
; poslati niski bajt vrijednosti temperature u WDLSB
LCALLREAD
MOVWDMSB,A
; poslati visoki bajt vrijednosti temperature u WDMSB
RET
……

Visoki bajt vrijednosti temperature koju je pročitala potprogram GETWD šalje se WDMSB jedinici, a niži bajt se šalje na WDLSB jedinicu. Zatim prema formatu reprezentacije bajta vrijednosti temperature i njegovog predznaka, stvarna vrijednost temperature može se dobiti jednostavnom transformacijom.

Ako je više DS18B20 spojeno na jednu liniju, je usvojen način povezivanja parazitnog napajanja, konfiguracija tačnosti konverzije, alarm visoke i niske granice, itd. su obavezne. Tada će pisanje potprograma GETWD biti komplikovanije. Zbog ograničenja prostora, ovaj odjeljak neće biti detaljno opisan. Molimo pogledajte relevantni sadržaj.

Uspješno smo primijenili DS18B20 na “kućno grijaće kupatilo” kontrolni sistem koji smo razvili. Njegova velika brzina konverzije, visoka tačnost konverzije, i jednostavan interfejs sa mikroprocesorom doneli su veliku pogodnost u radu na dizajnu hardvera, efektivno smanjenje troškova i skraćivanje razvojnih ciklusa.