Úvod do znalosti snímača teploty DS18B20
DS18B20 je bežne používaný digitálny snímač teploty. Vydáva digitálne signály, má vlastnosti malej veľkosti, nízka hardvérová réžia, silná schopnosť proti rušeniu, vysoká presnosť, a je široko používaný.
Úvod k snímaču teploty DS18B20
Technické vlastnosti:
①. Jedinečný režim rozhrania s jedným vodičom. Keď je DS18B20 pripojený k mikroprocesoru, iba 1 drôt je potrebný na realizáciu obojsmernej komunikácie medzi mikroprocesorom a DS18B20.
②. Rozsah merania teploty -55℃~+125℃, inherentná chyba merania teploty 1℃.
③. Podpora viacbodovej sieťovej funkcie. Viacnásobné DS18B20 je možné pripojiť paralelne iba na tri vodiče, a maximálne 8 možno pripojiť paralelne na realizáciu viacbodového merania teploty. Ak je číslo príliš veľké, napájacie napätie bude príliš nízke, čo vedie k nestabilnému prenosu signálu.
④. Pracovný napájací zdroj: 3.0~5,5V/DC (možno použiť parazitné napájanie dátovej linky).
⑤. Počas používania nie sú potrebné žiadne periférne komponenty.
⑥. Výsledky merania sa prenášajú sériovo v 9~12-bitovej digitálnej forme.
⑦. Priemer ochrannej rúrky z nehrdzavejúcej ocele je Φ6.
⑧. Je vhodný na meranie teploty rôznych stredných priemyselných potrubí DN15~25, DN40~DN250 a zariadenia v úzkych priestoroch.
⑨. Štandardné montážne závity M10X1, M12X1,5, G1/2” sú voliteľné.
⑩. PVC kábel je pripojený priamo alebo je pripojená nemecká guľová spojovacia skrinka, čo je vhodné na prepojenie s iným elektrickým zariadením.
DS18B20 princíp časovania čítania a zápisu a merania teploty:
Princíp merania teploty DS18B20 je znázornený na obrázku 1. Frekvencia oscilácií kryštálového oscilátora s nízkym teplotným koeficientom na obrázku je málo ovplyvnená teplotou, a používa sa na generovanie impulzného signálu s pevnou frekvenciou, ktorý sa má poslať do počítadla 1. Frekvencia oscilácií kryštálového oscilátora s vysokým teplotným koeficientom sa výrazne mení s teplotou, a generovaný signál sa používa ako impulzný vstup počítadla 2. Počítadlo 1 a teplotný register sú prednastavené na základnú hodnotu zodpovedajúcu -55 ℃. Počítadlo 1 odčíta impulzný signál generovaný kryštálovým oscilátorom s nízkym teplotným koeficientom. Keď je prednastavená hodnota počítadla 1 sa zníži na 0, hodnota teplotného registra sa zvýši o 1, a predvoľba počítadla 1 bude znovu načítaný. Počítadlo 1 reštartuje, aby počítal impulzný signál generovaný kryštálovým oscilátorom s nízkym teplotným koeficientom, a cyklus pokračuje až do počítadla 2 počíta do 0, zastavenie akumulácie hodnoty teplotného registra. V tomto čase, hodnota v teplotnom registri je nameraná teplota. Spádový akumulátor sa používa na kompenzáciu a korekciu nelinearity v procese merania teploty, a jeho výstup slúži na korekciu prednastavenej hodnoty počítadla 1.
Obrázok 1 je nasledovný:
2. Schéma zapojenia DS18B20 a MCU
3. Definícia pinov DS18B20:
DQ: Vstup/výstup dát. Otvorte odtokové 1-vodičové rozhranie. Môže tiež poskytnúť napájanie zariadenia pri použití v režime parazitného napájania VDD: kladné napájanie GND: napájacie uzemnenie 4. Úvod do internej analýzy DS18B20:
Vyššie uvedený obrázok ukazuje blokovú schému DS18B20, a 64-bitová ROM ukladá jedinečný sériový kód zariadenia. Vyrovnávacia pamäť obsahuje 2 bajtov teplotných registrov, ktoré uchovávajú digitálny výstup teplotného snímača. Navyše, vyrovnávacia pamäť poskytuje prístup k 1-bajtovým horným a dolným registrom spúšťania alarmov (TH a TL) a 1-bajtové konfiguračné registre. Konfiguračný register umožňuje užívateľovi nastaviť rozlíšenie teploty na digitálny prevod na 9, 10, 11, alebo 12 bitov. TH, TL, a konfiguračné registre sú energeticky nezávislé (EEPROM), takže budú uchovávať údaje, keď je zariadenie vypnuté. DS18B20 využíva jedinečný 1-wire bus protokol Maxim, ktorý využíva riadiaci signál. Riadiaca linka vyžaduje slabý pull-up rezistor, pretože všetky zariadenia sú pripojené k zbernici cez 3-stavový alebo open-drain port (DQ pin v prípade DS18B20). V tomto zbernicovom systéme je mikroprocesor (majster) používa jedinečný 64-bitový kód pre každé zariadenie. Pretože každé zariadenie má jedinečný kód, počet zariadení, ktoré je možné adresovať na jednej zbernici, je prakticky neobmedzený.
Formát teplotného registra
Vzťah medzi teplotou a údajmi
Prevádzkový poplachový signál
Potom, čo DS18B20 vykoná teplotnú konverziu, porovnáva hodnotu teploty s užívateľom definovanou hodnotou spustenia alarmu dvoch doplnkov uloženou v 1-bajtových registroch TH a TL. Znamienko udáva, či je hodnota kladná alebo záporná: kladné S=0, záporné S=1. Registre TH a TL sú energeticky nezávislé (EEPROM) a preto nie sú prchavé, keď je zariadenie vypnuté. TH a TL je možné pristupovať cez bajty 2 a 3 pamäte.
Formát registra TH a TL:
Schéma napájania DS18B20 pomocou externého zdroja
64-bitový laserový kód pamäte iba na čítanie:
Každý DS18B20 obsahuje jedinečný 64-bitový kód uložený v ROM. Najmenej významné 8 bity kódu ROM obsahujú jednovodičový rodinný kód DS18B20: 28h. Ďalšie 48 bity obsahujú jedinečné sériové číslo. Najvýraznejšie 8 bity obsahujú cyklickú kontrolu redundancie (CRC) byte, ktorý sa počíta od prvého 56 bitov kódu ROM.
Pamäťová mapa DS18B20
Konfiguračný register:
Obrázok 2
Byte 4 pamäte obsahuje konfiguračný register, ktorý je usporiadaný tak, ako je znázornené na obrázku 2. Užívateľ tu môže nastaviť rozlíšenie prevodu DS18B20 pomocou bitov R0 a R1, ako je uvedené v tabuľke 2. Predvolené hodnoty pri zapnutí pre tieto bity sú R0 = 1 a R1= 1 (12-bitové rozlíšenie). Všimnite si, že existuje priamy vzťah medzi rozlíšením a časom konverzie. Bit 7 a bitov 0 do 4 v konfiguračnom registri sú vyhradené pre interné použitie zariadenia a nie je možné ich prepísať.
Tabuľka 2 Konfigurácia rozlíšenia teplomera
Generácia CRC
Bajt CRC je súčasťou 64-bitového kódu ROM DS18B20 a nachádza sa v 9. byte zápisníka.. Kód ROM CRC sa počíta z prvého 56 bitov kódu ROM a je obsiahnutý v najvýznamnejšom byte ROM. CRC zápisníka sa vypočíta na základe údajov uložených v zápisníku, takže sa zmení, keď sa zmenia údaje v zápisníku. CRC poskytuje hostiteľovi zbernice metódu overovania údajov pri čítaní údajov z DS18B20. Po overení správnosti načítania údajov, master zbernice musí prepočítať CRC z prijatých dát a potom túto hodnotu porovnať s ROM kódom CRC (pre čítanie ROM) alebo zápisník CRC (na čítanie zo zápisníka). Ak sa vypočítaný CRC zhoduje s prečítaným CRC, údaje boli prijaté správne. Rozhodnutie porovnať hodnoty CRC a pokračovať je výlučne na rozhodnutí majstra zbernice. Vo vnútri DS18B20 nie je žiadny obvod, ktorý by bránil vykonaniu sekvencie príkazov, ak:
DS18B20 CRC (ROM alebo zápisník) sa nezhoduje s hodnotou vygenerovanou masterom zbernice.
Ekvivalentná polynomická funkcia pre CRC je:
CRC = X8 + X5 + X4 + 1
Master zbernice môže prepočítať CRC a porovnať ho s hodnotou CRC DS18B20 pomocou:
Generátor polynómov je znázornený na obrázku 3. Obvod obsahuje posuvný register a brány yihuo, a bity posuvného registra sa inicializujú 0. Najmenej významný bit kódu ROM alebo najmenej významný bit bajtu 0 v zápisníku by sa mali posúvať do posuvného registra jeden po druhom. Po preradení bit 56 z ROM alebo najvýznamnejšieho bitu bajtu 7 zo zápisníka, generátor polynómov bude obsahovať prepočítané CRC. Ďalej, 8-bitový kód ROM alebo signál CRC v zápisníku DS18B20 musí byť posunutý do obvodu. V tomto bode, ak je prepočítaný CRC správny, posuvný register bude mať všetky 0.
Obrázok 3: Generátor CRC
Vložka. Prístup k DS18B20:
Postupnosť prístupu k DS18B20 je nasledovná:
Krok 1. Inicializácia;
Krok 2. príkaz ROM (po ktorej nasleduje výmena všetkých potrebných údajov);
Krok 3. Príkaz funkcie DS18B20 (po ktorej nasleduje výmena všetkých potrebných údajov);
Poznámka: Táto sekvencia sa použije pri každom prístupe k DS18B20, pretože DS18B20 nebude reagovať, ak niektorý krok v poradí chýba alebo je mimo prevádzky. Výnimkou z tohto pravidla je Search ROM [F0h] a Alarm Search [Ech] príkazy. Po vydaní týchto dvoch príkazov ROM, hostiteľ sa musí vrátiť na krok 1 v poradí.
(Vyššie uvedený úvod je preložený z oficiálnej príručky)
Príkaz ROM
1, Prečítajte si ROM [33h]
2, Zápas ROM [55h]
3, Preskočiť ROM [CCh]
4, Alarm Search [Ech]
Príkaz funkcie DS18B20
1, Previesť teplotu [44h]
2, Napíšte Scratchpad (pamäť) [4Eh]
3, Prečítajte si Zápisník (pamäť) [BEh]
4, Kopírovať aplikáciu Scratchpad (pamäť [48h]
5, Znovu prebudiť E2 [B8h]
6, Prečítajte si Sila [B4h]
(Podrobný popis vyššie uvedených príkazov, pozri oficiálny manuál)
VI. Prístup k časovaniu DS18B20
Počas procesu inicializácie, zbernicový master vyšle resetovací impulz (TX) nízku úroveň po dobu aspoň 480 µs potiahnutím zbernice 1-Wire. Potom, master zbernice uvoľní zbernicu a prejde do režimu príjmu (RX). Po uvoľnení autobusu, 5kΩ pull-up rezistor ťahá 1-Wire zbernicu vysoko. Keď DS18B20 zaznamená túto stúpajúcu hranu, čaká 15 µs až 60 µs a potom odošle impulz prítomnosti stiahnutím 1-Wire zbernice na nízku úroveň na 60 µs až 240 µs.
Časovanie inicializácie:
Existujú dva typy časových úsekov zápisu: “Napíšte 1” časové úseky a “Napíšte 0” časové úseky. Zbernica používa Write 1 časový úsek na napísanie logiky 1 na DS18B20 a zápis 0 časový úsek na napísanie logiky 0 na DS18B20. Všetky časové úseky zápisu musia trvať aspoň 60 µs s dobou obnovy aspoň 1 µs medzi jednotlivými časovými úsekmi zápisu. Obidva typy časových slotov zápisu sú iniciované master stiahnutím 1-Wire zbernice na nízku úroveň (pozri obrázok 14). Ak chcete vygenerovať zápis 1 časový úsek, po stiahnutí zbernice 1-Wire nízko, master zbernice musí uvoľniť zbernicu 1-Wire do 15 µs. Po uvoľnení autobusu, 5kΩ pull-up rezistor ťahá zbernicu vysoko. Generovať a
Napíšte 0 časový úsek, po stiahnutí 1-Wire vedenia nízko, master zbernice musí pokračovať v udržiavaní zbernice v nízkej polohe počas trvania časového úseku (aspoň 60 µs). DS18B20 vzorkuje 1-Wire zbernicu v rámci okna 15 µs až 60 µs potom, čo master iniciuje časový slot zápisu. Ak je zbernica vysoká počas vzorkovacieho okna, a 1 je zapísaný na DS18B20. Ak je čiara nízka, a 0 je zapísaný na DS18B20.
Poznámka: Timeslot je časť sériového samomultiplexovania informácií o časovom slote vyhradená pre jeden kanál.
Obrázok 14 je nasledovný:
Prečítajte si časový úsek:
DS18B20 môže odosielať údaje hostiteľovi iba vtedy, keď hostiteľ vydá časový úsek čítania. Preto, hostiteľ musí vygenerovať časový úsek čítania ihneď po vydaní príkazu na čítanie pamäte [BEh] alebo zdroj napájania na čítanie [B4h] príkaz, aby DS18B20 poskytol požadované údaje. Prípadne, hostiteľ môže vygenerovať časový úsek čítania po vydaní príkazu Convert T [44h] alebo Odvolanie E2 [B8h] príkaz na zistenie stavu. Všetky časové úseky čítania musia trvať aspoň 60 µs s minimálnym časom obnovy 1 µs medzi časovými úsekmi. Časový úsek čítania je iniciovaný tak, že master potiahne zbernicu 1-Wire na nízku úroveň, aby ju udržal na nízkej úrovni aspoň 1 µs, a potom zbernicu uvoľní (pozri obrázok 14). Potom, čo master spustí časový úsek čítania, DS18B20 začne na zbernici posielať buď 1s alebo 0s. DS18B20 posiela a 1 držaním autobusu vysoko a posiela a 0 potiahnutím autobusu nízko. Keď a 0 je odoslaná, DS18B20 uvoľní zbernicu pridržaním zbernice vysoko. Časový úsek sa skončí a zbernica je ťahaná odporom stiahnutá späť do stavu vysokého pokoja.
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
















