DS18B20 ir 1 vadu digitālais temperatūras sensors, ko ražo DALLAS, ar 3 kontaktu TO-92 mazo iepakojumu. Temperatūras mērīšanas diapazons ir -55 ℃ ~ + 125 ℃, un to var ieprogrammēt uz 9 bitu ~ 12 bitu A/D konversijas precizitāti. Temperatūras mērīšanas izšķirtspēja var sasniegt 0,0625 ℃, un izmērītā temperatūra tiek sērijveidā izvadīta 16 bitu ciparu formātā ar zīmes paplašinājumu. Tās darba barošanas avotu var ievadīt attālinātā galā vai ģenerēt ar parazītu barošanas avotu. Vairākus DS18B20 var savienot paralēli 3 vai 2 līnijas. CPU ir nepieciešama tikai viena porta līnija, lai sazinātos ar daudziem DS18B20, aizņem mazāk mikroprocesora portu, kas var ietaupīt daudz vadu un loģisko shēmu. Iepriekš minētie raksturlielumi padara DS18B20 ļoti piemērotu liela attāluma daudzpunktu temperatūras noteikšanas sistēmām.
2. DS18B20 ds18b20 shēmas iekšējā struktūra
DS18B20 iekšējā struktūra ir parādīta attēlā 1, kas galvenokārt sastāv no 4 daļas: 64-bitu ROM, temperatūras sensors, nepastāvīgas temperatūras trauksmes signāls iedarbina TH un TL, un konfigurācijas reģistri. DS18B20 tapu izvietojums ir parādīts attēlā 2. DQ ir digitālā signāla ievades/izvades spaile; GND ir barošanas zemējums; VDD ir ārējā barošanas avota ievades spaile (iezemēts parazitārās strāvas vadu režīmā, skatīt attēlu 4).
64 bitu sērijas numurs ROM ir fotoizgravēts pirms rūpnīcas atstāšanas. To var uzskatīt par DS18B20 adreses secības kodu. Katra DS18B20 64 bitu sērijas numurs ir atšķirīgs. Cikliskās atlaišanas pārbaudes kods (CRC=X8+X5+X4+1) 64 bitu ROM ir sakārtots. ROM uzdevums ir padarīt katru DS18B20 atšķirīgu, lai vienai kopnei varētu pievienot vairākus DS18B20.
attēls 1, DS18B20 iekšējā struktūra
Temperatūras sensors DS18B20 pabeidz temperatūras mērīšanu, kas tiek nodrošināts 16 bitu zīmju paplašināta binārā komplementa nolasījumu veidā, izteikts 0,0625℃/LSB formā, kur S ir zīmes bits. Piemēram, +125℃ digitālā izeja ir 07D0H, digitālā izeja +25,0625℃ ir 0191H, digitālā izeja -25,0625 ℃ ir FF6FH, un digitālā izeja -55 ℃ ir FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Temperatūras vērtības zems baits
MSBLSB
S
S
S
S
S
22
25
24
Augsts temperatūras vērtības baits
Augstas un zemas temperatūras trauksmes signāls iedarbina TH un TL, un konfigurācijas reģistrs sastāv no viena EEPROM baita. Lai rakstītu uz TH, var izmantot atmiņas funkcijas komandu, TL, vai konfigurācijas reģistru. Konfigurācijas reģistra formāts ir šāds:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 un R0 nosaka temperatūras pārveidošanas precizitātes ciparu skaitu: R1R0 = “00”, 9-bitu precizitāte, maksimālais konversijas laiks ir 93,75 ms; R1R0 = “01”, 10-bitu precizitāte, maksimālais konvertēšanas laiks ir 187,5 ms. R1R0 = “10”, 11-bitu precizitāte, maksimālais konvertēšanas laiks ir 375 ms. R1R0 = “11”, 12-bitu precizitāte, maksimālais konvertēšanas laiks ir 750 ms. Noklusējums ir 12 bitu precizitāte, ja tas nav ieprogrammēts.
Ātrgaitas reģistrs ir 9 baitu atmiņa. Pirmie divi baiti satur digitālo informāciju par izmērīto temperatūru; 3, 4th, un 5. baiti ir pagaidu TH kopijas, TL, un konfigurācijas reģistri, attiecīgi, un tiek atsvaidzināti katru reizi, kad notiek ieslēgšanas atiestatīšana; 6, 7th, un 8. baiti netiek izmantoti un tiek attēloti kā visi loģiskie 1; 9. baits nolasa visu iepriekšējo CRC kodu 8 baiti, ko var izmantot pareizas komunikācijas nodrošināšanai.
3. DS18B20 darba secība
DS18B20 pirmās rindas darba protokola plūsma ir: inicializācija → ROM darbības instrukcija → atmiņas darbības instrukcija → datu pārraide. Tās darba secība ietver inicializācijas secību, rakstīšanas secība un lasīšanas secība, Kā parādīts attēlā 3 (a) (b) (c).
(a) Inicializācijas secība
(c) Lasīšanas secība
attēls 3, DS18B20 darba secības diagramma
4. Tipisks interfeisa dizains DS18B20 un vienas mikroshēmas mikrodatoram
attēls 4 izmanto MCS-51 sērijas vienas mikroshēmas mikrodatoru kā piemēru, lai izveidotu tipisku savienojumu starp DS18B20 un mikroprocesoru. Attēlā 4 (a), DS18B20 izmanto parazitārās barošanas avota režīmu, un tā VDD un GND spailes ir iezemētas. Attēlā 4 (b), DS18B20 izmanto ārējā barošanas avota režīmu, un tā VDD spaile tiek darbināta ar 3V ~ 5,5V barošanas avotu.
a) Parazitārās barošanas avota darba režīms
(b) Ārējā barošanas avota darba režīms
attēls 4 Tipiska DS18B20 un mikroprocesora savienojuma shēma
Pieņemot, ka kristāla frekvence, ko izmanto vienas mikroshēmas mikrodatoru sistēma, ir 12MHz, trīs apakšprogrammas tiek uzrakstītas atbilstoši inicializācijas laikam, DS18B20 rakstīšanas un lasīšanas laiks: INIT ir inicializācijas apakšprogramma; RAKSTI ir rakstīšana (komanda vai dati) apakšprogramma; READ ir datu lasīšanas apakšprogramma. Visa datu lasīšana un rakstīšana sākas no zemākā bita.
DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2,#200
INI11:Clrdat
DJNZR2,INI11; Saimnieks nosūta atiestatīšanas impulsu 3 μs × 200 = 600 μs
SETBDAT; Saimnieks atbrīvo autobusu, un porta līnija tiek mainīta uz ievadi
MOVR2,#30
IN12:DJNZR2, INI12; DS18B20 gaida 2μs × 30=60μs
CLRC
Orlc,TAS; Vai DS18B20 datu līnija ir zema (impulss pastāv)?
JCINI10; DS18B20 nav gatavs, atkārtoti inicializēt
MOVR6, #80
INI13: Orlc, TAS
JCINI14; DS18B20 datu līnija ir augsta, inicializācija ir veiksmīga
DJNZR6, INI13; datu līnijas zemais līmenis var ilgt 3 μs × 80 = 240 μs
SIMPINI10; inicializācija neizdevās, restartēt
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 reaģē vismaz 2 μs × 240 = 48 0μs
RET
;-----------------
RAKSTIET:CLREA
MOVR3,#8;Cilpa 8 reizes, uzrakstiet baitu
WR11:SETBDAT
MOVR4,#8
RRCA;Rakstīt bitu pārvietojas no A uz CY
Clrdat
WR12:DJNZR4, WR12
;Pagaidiet 16 μs
MOVDAT,C;Komandas vārds tiek nosūtīts uz DS18B20 pa bitiem
MOVR4,#20
WR13:DJNZR4, WR1 3
; Pārliecinieties, vai rakstīšanas process ilgst 60 μs
DJNZR3, WR11
; Turpiniet pirms baita nosūtīšanas
SETBDAT
RET
;----------------
LASĪT:CLREA
MOVR6,#8; Cilpa 8 reizes, lasīt baitu
RD11:Clrdat
MOVR4,#4
NOP; Zems līmenis ilgst 2 μs
SETBDAT; Iestatiet ievades porta līniju
RD12:DJNZR4, RD12
; Pagaidiet 8 μs
MOVC,NO T
;Resursdators nolasa DS18B20 datus pa bitiem
RRCA;Nolasītie dati tiek pārvietoti uz A
MOVR5,#30
RD13:DJNZR5,RD13
;Pārliecinieties, ka lasīšanas process ilgst 60 μs
DJNZR6,RD11
;Pēc datu baita nolasīšanas, glabājiet to A
SETBDAT
RET
;-----------------
Lai vadītu DS18B20 un pabeigtu temperatūras pārveidošanu, saimniekdatoram ir jāveic trīs darbības: inicializācija, ROM darbības instrukcijas, un atmiņas darbības instrukcijas. DS18B20 ir jāiedarbina, lai sāktu konvertēšanu pirms temperatūras pārveidošanas vērtības nolasīšanas. Pieņemot, ka vienai līnijai ir pievienota tikai viena mikroshēma, tiek izmantota noklusējuma 12 bitu konversijas precizitāte, un tiek izmantots ārējais barošanas avots, apakšprogrammu GETWD var uzrakstīt, lai pabeigtu konvertēšanu un nolasītu temperatūras vērtību.
Apdāvināts:LCALLINIT
PĀRVIETOT,#0CCH
LCALLWRITE; nosūtīt izlaist ROM komandu
PĀRVIETOT,# 44h
LCALLWRITE; nosūtiet konvertēšanas sākšanas komandu
LCALLINIT
PĀRVIETOT,#0CCH; nosūtīt izlaist ROM komandu
LCALLWRITE
PĀRVIETOT,#0 BEH; nosūtīt lasīšanas atmiņas komandu
LCALLWRITE
LCALLREAD
MOVWDLSB,Izšķirt
; nosūtīt zemu temperatūras vērtības baitu uz WDLSB
LCALLREAD
MOVWDMSB,Izšķirt
; nosūtīt augstu temperatūras vērtības baitu uz WDMSB
RET
……
Augstais temperatūras vērtības baits, ko nolasa apakšprogramma GETWD, tiek nosūtīts uz WDMSB vienību, un zemais baits tiek nosūtīts uz WDLSB vienību. Pēc tam atbilstoši temperatūras vērtības baita un tā zīmes bita attēlojuma formātam, faktisko temperatūras vērtību var iegūt, vienkārši pārveidojot.
Ja vienā līnijā ir pievienoti vairāki DS18B20, tiek pieņemts parazitārās barošanas avota savienojuma režīms, konversijas precizitātes konfigurācija, augsta un zema ierobežojuma trauksme, utt.. ir nepieciešami. Tad apakšprogrammas GETWD rakstīšana būs sarežģītāka. Vietas ierobežojumu dēļ, šī sadaļa netiks detalizēti aprakstīta. Lūdzu, skatiet attiecīgo saturu.
Mēs esam veiksmīgi piemērojuši DS18B20 “mājsaimniecības apkures vanna” mūsu izstrādātā kontroles sistēma. Tā ātrais konversijas ātrums, augsta konversijas precizitāte, un vienkārša saskarne ar mikroprocesoru ir nodrošinājusi lielas ērtības aparatūras projektēšanas darbā, efektīvi samazinot izmaksas un saīsinot izstrādes ciklus.
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



