DS18B20 adalah sensor suhu digital 1 kabel yang diproduksi oleh DALLAS, dengan paket kecil TO-92 3-pin. Rentang pengukuran suhu adalah -55℃~+125℃, dan dapat diprogram dengan akurasi konversi A/D 9-bit~12-bit. Resolusi pengukuran suhu bisa mencapai 0,0625℃, dan suhu yang diukur dikeluarkan secara serial dalam bentuk besaran digital 16-bit dengan ekstensi tanda. Catu daya yang berfungsi dapat dimasukkan dari jarak jauh atau dihasilkan oleh catu daya parasit. Beberapa DS18B20 dapat dihubungkan secara paralel 3 atau 2 garis. CPU hanya memerlukan satu jalur port untuk berkomunikasi dengan banyak DS18B20, menempati lebih sedikit port mikroprosesor, yang dapat menghemat banyak lead dan rangkaian logika. Karakteristik di atas membuat DS18B20 sangat cocok untuk sistem deteksi suhu multi-titik jarak jauh.
2. Struktur internal diagram sirkuit DS18B20 ds18b20
Struktur internal DS18B20 ditunjukkan pada Gambar 1, yang sebagian besar terdiri dari 4 bagian: 64-sedikit ROM, sensor suhu, alarm suhu non-volatil memicu TH dan TL, dan register konfigurasi. Susunan pin DS18B20 ditunjukkan pada Gambar 2. DQ adalah terminal input/output sinyal digital; GND adalah landasan kekuatan; VDD adalah terminal masukan catu daya eksternal (didasarkan pada mode kabel daya parasit, lihat Gambar 4).
Nomor seri 64-bit dalam ROM difoto sebelum meninggalkan pabrik. Ini dapat dianggap sebagai kode urutan alamat DS18B20. Nomor seri 64-bit setiap DS18B20 berbeda-beda. Kode pemeriksaan redundansi siklik (KKR=X8+X5+X4+1) ROM 64-bit diatur. Peran ROM adalah membuat setiap DS18B20 berbeda, sehingga beberapa DS18B20 dapat dihubungkan ke satu bus.
Angka 1, struktur internal DS18B20
Sensor suhu di DS18B20 melengkapi pengukuran suhu, yang disediakan dalam bentuk pembacaan komplemen biner yang diperluas tanda 16-bit, dinyatakan dalam bentuk 0,0625℃/LSB, dimana S adalah bit tanda. Misalnya, keluaran digital +125℃ adalah 07D0H, keluaran digital +25.0625℃ adalah 0191H, keluaran digital -25.0625℃ adalah FF6FH, dan keluaran digital -55℃ adalah FC90H.
23
22
21
20
2-1
2-2
2-3
2-4
Nilai suhu byte rendah
MSBLSB
S
S
S
S
S
22
25
24
Nilai suhu byte tinggi
Alarm suhu tinggi dan rendah memicu TH dan TL, dan register konfigurasi terdiri dari satu byte EEPROM. Perintah fungsi memori dapat digunakan untuk menulis ke TH, TL, atau register konfigurasi. Format register konfigurasi adalah sebagai berikut:
0
R1
R0
1
1
1
1
1
MSBLSB
R1 dan R0 menentukan jumlah digit presisi untuk konversi suhu: R1R0 = “00”, 9-sedikit presisi, waktu konversi maksimum adalah 93,75ms; R1R0 = “01”, 10-sedikit presisi, waktu konversi maksimum adalah 187,5ms. R1R0 = “10”, 11-sedikit presisi, waktu konversi maksimum adalah 375ms. R1R0 = “11”, 12-sedikit presisi, waktu konversi maksimum adalah 750ms. Standarnya adalah presisi 12-bit jika tidak diprogram.
Register berkecepatan tinggi adalah memori 9-byte. Dua byte pertama berisi informasi digital suhu yang diukur; ke 3, 4th, dan byte ke-5 adalah salinan sementara TH, TL, dan register konfigurasi, masing-masing, dan disegarkan setiap kali pengaturan ulang penyalaan terjadi; tanggal 6, 7th, dan byte ke-8 tidak digunakan dan direpresentasikan sebagai semua logika 1; byte ke-9 membaca kode CRC dari semua sebelumnya 8 byte, yang dapat digunakan untuk memastikan komunikasi yang benar.
3. Urutan kerja DS18B20
Alur protokol kerja lini pertama DS18B20 adalah: inisialisasi → instruksi pengoperasian ROM → instruksi pengoperasian memori → transmisi data. Urutan kerjanya mencakup urutan inisialisasi, menulis urutan dan membaca urutan, seperti yang ditunjukkan pada gambar 3 (A) (B) (C).
(A) Urutan inisialisasi
(C) Baca urutan
Angka 3, Diagram urutan kerja DS18B20
4. Desain antarmuka khas DS18B20 dan komputer mikro chip tunggal
Angka 4 mengambil mikrokomputer chip tunggal seri MCS-51 sebagai contoh untuk menggambar hubungan khas antara DS18B20 dan mikroprosesor. Pada Gambar 4 (A), DS18B20 mengadopsi mode catu daya parasit, dan terminal VDD dan GND-nya di-ground. Pada Gambar 4 (B), DS18B20 mengadopsi mode catu daya eksternal, dan terminal VDD-nya ditenagai oleh catu daya 3V~5.5V.
A) Mode kerja catu daya parasit
(B) Mode kerja catu daya eksternal
Angka 4 Diagram koneksi khas DS18B20 dan mikroprosesor
Dengan asumsi frekuensi kristal yang digunakan oleh sistem mikrokomputer chip tunggal adalah 12MHz, tiga subrutin ditulis sesuai dengan waktu inisialisasi, waktu tulis dan waktu baca DS18B20: INIT adalah subrutin inisialisasi; MENULIS adalah menulis (perintah atau data) subrutin; READ adalah subrutin membaca data. Semua pembacaan dan penulisan data dimulai dari bit paling bawah.
TANGGALQUP1.0
......
INIT:KREA
INI10:SETBDAT
MOVR2,#200
INI11:Clrdat
DJNZR2, INI11; Host mengirimkan pulsa reset sebesar 3μs×200=600μs
SETBDAT; Tuan rumah melepaskan bus, dan jalur port diubah menjadi input
MOVR2,#30
DALAM12:DJNZR2, INI12; DS18B20 menunggu 2μs×30=60μs
CLRC
Orlc,ITU; Apakah jalur data DS18B20 rendah (pulsa ada)?
JCINI10; DS18B20 belum siap, inisialisasi ulang
MOVR6, #80
INI13: Orlc, ITU
JCINI14; DS18B20 data line goes high, initialization is successful
DJNZR6, INI13; data line low level can last for 3μs × 80 = 240μs
SJMPINI10; initialization failed, restart
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 responds for at least 2μs × 240 = 48 0μs
RET
;-------------------------
WRITE:KREA
MOVR3,#8;Lingkaran 8 kali, write a byte
WR11:SETBDAT
MOVR4,#8
RRCA;Write bit moves from A to CY
Clrdat
WR12:DJNZR4,WR12
;Wait 16μs
MOVDAT,C;Command word is sent to DS18B20 bit by bit
MOVR4,#20
WR13:DJNZR4,WR1 3
; Ensure that the write process lasts for 60μs
DJNZR3,WR11
; Continue before sending a byte
SETBDAT
RET
;------------------------
MEMBACA:KREA
MOVR6,#8; Lingkaran 8 kali, membaca satu byte
RD11:Clrdat
MOVR4,#4
TIDAK; Level rendah berlangsung selama 2μs
SETBDAT; Atur jalur port ke input
RD12:DJNZR4,RD12
; Tunggu 8μs
MOVC,DARI T
;Tuan rumah membaca data DS18B20 sedikit demi sedikit
RRCA;Data yang dibaca dipindahkan ke A
MOVR5,#30
RD13:DJNZR5,RD13
;Pastikan proses pembacaan berlangsung 60μs
DJNZR6,RD11
;Setelah membaca satu byte data, simpan di A
SETBDAT
RET
;-------------------------
Tuan rumah harus melalui tiga langkah untuk mengontrol DS18B20 untuk menyelesaikan konversi suhu: inisialisasi, Petunjuk pengoperasian ROM, dan instruksi pengoperasian memori. DS18B20 harus dimulai untuk memulai konversi sebelum membaca nilai konversi suhu. Dengan asumsi hanya satu chip yang terhubung ke satu saluran, akurasi konversi 12-bit default digunakan, dan catu daya eksternal digunakan, GETWD subrutin dapat ditulis untuk menyelesaikan konversi dan membaca nilai suhu.
Berbakat:LCALLINIT
BERGERAK,#0CCH
TULIS LCALL; kirim lewati perintah ROM
BERGERAK,#44 jam
TULIS LCALL; kirim perintah mulai konversi
LCALLINIT
BERGERAK,#0CCH; kirim lewati perintah ROM
TULIS LCALL
BERGERAK,#0 BEH; kirim perintah baca memori
TULIS LCALL
LCALLBACA
MOVWDLSB,A
; kirim nilai suhu byte rendah ke WDLSB
LCALLBACA
MOVWDMSB,A
; kirim nilai suhu byte tinggi ke WDMSB
RET
......
Nilai suhu byte tinggi yang dibaca oleh subrutin GETWD dikirim ke unit WDMSB, dan byte rendah dikirim ke unit WDLSB. Kemudian sesuai dengan format representasi nilai suhu byte dan bit tandanya, nilai suhu sebenarnya dapat diperoleh melalui transformasi sederhana.
Jika beberapa DS18B20 terhubung pada satu saluran, mode koneksi catu daya parasit diadopsi, konfigurasi akurasi konversi, alarm batas tinggi dan rendah, dll.. diperlukan. Maka penulisan subrutin GETWD akan menjadi lebih rumit. Karena keterbatasan ruang, bagian ini tidak akan dijelaskan secara rinci. Silakan merujuk ke konten yang relevan.
Kami telah berhasil menerapkan DS18B20 ke “bak mandi pemanas rumah tangga” sistem kontrol yang kami kembangkan. Kecepatan konversinya yang cepat, akurasi konversi yang tinggi, dan antarmuka sederhana dengan mikroprosesor telah memberikan kemudahan luar biasa pada pekerjaan desain perangkat keras, secara efektif mengurangi biaya dan memperpendek siklus pengembangan.
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



