فناوری سنسور دما

طراحی عملکرد اندازه گیری دما سنسور دیجیتال دما DS18B20

عملکرد اندازه گیری دما سنسور دمای دیجیتال DS18B20

DS18B20 یک سنسور دمای دیجیتال 1 سیمه تولید شده توسط دالاس است, با یک بسته کوچک 3 پین TO-92. محدوده اندازه گیری دما -55 ~ + 125 ℃ است, و می توان آن را به دقت تبدیل A/D 9 بیتی تا 12 بیتی برنامه ریزی کرد. وضوح اندازه گیری دما می تواند به 0.0625 ℃ برسد, و دمای اندازه گیری شده به صورت سریال به صورت یک کمیت دیجیتال 16 بیتی با پسوند علامت خروجی می شود.. منبع تغذیه کار آن می تواند در انتهای راه دور معرفی شود یا توسط منبع تغذیه انگلی تولید شود. چندین DS18B20 را می توان به صورت موازی به یکدیگر متصل کرد 3 یا 2 خطوط. CPU برای برقراری ارتباط با بسیاری از DS18B20 تنها به یک خط پورت نیاز دارد, پورت های کمتری از ریزپردازنده را اشغال می کند, که می تواند تعداد زیادی لید و مدارهای منطقی را ذخیره کند. ویژگی های فوق DS18B20 را برای سیستم های تشخیص دمای چند نقطه ای در مسافت های طولانی بسیار مناسب می کند.

عملکرد اندازه گیری دما سنسور دمای دیجیتال DS18B20

عملکرد اندازه گیری دما سنسور دمای دیجیتال DS18B20

2. ساختار داخلی نمودار مدار DS18B20 ds18b20
ساختار داخلی DS18B20 در شکل نشان داده شده است 1, که عمدتاً شامل 4 قطعات: 64-رام بیت, سنسور دما, هشدار دمای غیر فرار TH و TL را تحریک می کند, و رجیسترهای پیکربندی. آرایش پین DS18B20 در شکل نشان داده شده است 2. DQ ترمینال ورودی/خروجی سیگنال دیجیتال است; GND زمین قدرت است; VDD ترمینال ورودی منبع تغذیه خارجی است (در حالت سیم کشی برق انگلی زمین شده است, شکل را ببینید 4).

شماره سریال 64 بیتی در رام قبل از خروج از کارخانه فوتو اچ می شود. می توان آن را به عنوان کد دنباله آدرس DS18B20 در نظر گرفت. شماره سریال 64 بیتی هر DS18B20 متفاوت است. کد بررسی افزونگی چرخه ای (CRC=X8+X5+X4+1) از رام 64 بیتی مرتب شده است. نقش رام این است که هر DS18B20 را متفاوت کند, به طوری که می توان چندین DS18B20 را به یک باس متصل کرد.

ساختار داخلی تراشه DS18B20

ساختار داخلی تراشه DS18B20

رقم 1, ساختار داخلی DS18B20

سنسور دما در DS18B20 اندازه گیری دما را کامل می کند, که در قالب قرائت های مکمل باینری با علامت بسط یافته 16 بیتی ارائه شده است, به شکل 0.0625 ℃/LSB بیان می شود, جایی که S بیت علامت است. به عنوان مثال, خروجی دیجیتال +125 ℃ 07D0H است, خروجی دیجیتال +25.0625 ℃ 0191H است, خروجی دیجیتال -25.0625 ℃ FF6FH است, و خروجی دیجیتال -55 ℃ FC90H است.

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

بایت کم مقدار دما
MSBLSB
اس
اس
اس
اس
اس
22
25
24

بایت درجه حرارت بالا
هشدار دمای بالا و پایین باعث TH و TL می شود, و رجیستر پیکربندی از یک بایت EEPROM تشکیل شده است. برای نوشتن در TH می توان از دستور تابع حافظه استفاده کرد, TL, یا ثبت پیکربندی. فرمت رجیستر پیکربندی به شرح زیر است:

0
R1
R0
1
1
1
1
1
MSBLSB

R1 و R0 تعداد ارقام دقت را برای تبدیل دما تعیین می کنند: R1R0 = “00”, 9-کمی دقت, حداکثر زمان تبدیل 93.75 میلی‌ثانیه است; R1R0 = “01”, 10-کمی دقت, حداکثر زمان تبدیل 187.5 میلی‌ثانیه است. R1R0 = “10”, 11-کمی دقت, حداکثر زمان تبدیل 375 میلی‌ثانیه است. R1R0 = “11”, 12-کمی دقت, حداکثر زمان تبدیل 750 میلی ثانیه است. زمانی که برنامه ریزی نشده باشد، پیش فرض دقت 12 بیتی است.

رجیستر پرسرعت یک حافظه 9 بایتی است. دو بایت اول حاوی اطلاعات دیجیتال دمای اندازه گیری شده است; 3, 4هفتم, و بایت 5 کپی موقت TH هستند, TL, و رجیسترهای پیکربندی, به ترتیب, و هر بار که بازنشانی روشن می شود، به روز می شوند; 6, 7هفتم, و بایت 8 استفاده نمی شود و به عنوان تمام منطق 1 نمایش داده می شود; بایت نهم کد CRC همه موارد قبلی را می خواند 8 بایت ها, که می تواند برای اطمینان از ارتباط صحیح استفاده شود.

3. دنباله کاری DS18B20
جریان پروتکل کاری خط اول DS18B20 است: مقداردهی اولیه → دستورالعمل عملیات ROM → دستورالعمل عملیات حافظه → انتقال داده. دنباله کاری آن شامل دنباله اولیه سازی است, دنباله بنویس و دنباله بخوان, همانطور که در شکل نشان داده شده است 3 (بوها) (شرح) (ج).

(بوها) توالی مقداردهی اولیه
(ج) دنباله را بخوانید

نمودار مدار اتصال معمولی DS18B20 و ریزپردازنده

نمودار مدار اتصال معمولی DS18B20 و ریزپردازنده

رقم 3, نمودار توالی کاری DS18B20

4. طراحی رابط معمولی DS18B20 و میکرو کامپیوتر تک تراشه
رقم 4 میکروکامپیوتر تک تراشه سری MCS-51 را به عنوان مثال برای ایجاد ارتباط معمولی بین DS18B20 و ریزپردازنده در نظر می گیرد.. در شکل 4 (بوها), DS18B20 از حالت منبع تغذیه انگلی استفاده می کند, و پایانه های VDD و GND آن به زمین متصل هستند. در شکل 4 (شرح), DS18B20 از حالت منبع تغذیه خارجی استفاده می کند, و ترمینال VDD آن توسط منبع تغذیه 3V~5.5V تغذیه می شود.

بوها) حالت کار منبع تغذیه انگلی
(شرح) حالت کار منبع تغذیه خارجی

نمودار زمان بندی کار DS18B20

نمودار زمان بندی کار DS18B20

رقم 4 نمودار اتصال معمولی DS18B20 و ریزپردازنده

با فرض اینکه فرکانس کریستالی استفاده شده توسط سیستم میکرو کامپیوتر تک تراشه 12 مگاهرتز است, سه زیر روال با توجه به زمان بندی اولیه نوشته شده است, زمان نوشتن و زمان خواندن DS18B20: INIT زیرروال اولیه سازی است; WRITE نوشتن است (دستور یا داده) زیر برنامه; READ زیرروال داده های خواندنی است. تمام خواندن و نوشتن داده ها از پایین ترین بیت شروع می شود.

DATEQUP1.0
……
INIT:CLREA
INI10:SETBDAT
MOVR2، #200
INI11:کلردات
DJNZR2، INI11; میزبان یک پالس تنظیم مجدد برای 3μs×200=600μs ارسال می کند
SETBDAT; میزبان اتوبوس را رها می کند, و خط پورت به ورودی تغییر می کند
MOVR2، #30
IN12:DJNZR2، INI12; DS18B20 منتظر 2μs×30=60μs است
CLRC
Orlc,که; آیا خط داده DS18B20 کم است؟ (نبض وجود دارد)?
JCINI10; DS18B20 آماده نیست, دوباره شروع کنید
MOVR6, #80
INI13: Orlc, که
JCINI14; خط داده DS18B20 بالا می رود, مقداردهی اولیه موفقیت آمیز است
DJNZR6, INI13; سطح پایین خط داده می تواند 3μs × طول بکشد 80 = 240μs
SYMPINI10; مقداردهی اولیه ناموفق بود, راه اندازی مجدد
INI14: MOVR2, #240
IN15: DJNZR2, INI15; DS18B20 برای حداقل 2μs × پاسخ می دهد 240 = 48 0μs
RET

;-----------------------------------------------------------------------------------
بنویس:CLREA
MOVR3، #8;حلقه 8 بار, یک بایت بنویس
WR11:SETBDAT
MOVR4، #8
RRCA;حرکت بیت از A به CY را بنویسید
کلردات
WR12:DJNZR4,WR12
;16μs صبر کنید
MOVDAT,سی;کلمه فرمان بیت به بیت به DS18B20 ارسال می شود
MOVR4، #20
WR13:DJNZR4، WR1 3
; اطمینان حاصل کنید که فرآیند نوشتن 60 میکرو ثانیه طول می کشد
DJNZR3,WR11
; قبل از ارسال یک بایت ادامه دهید
SETBDAT
RET

;--------------------------------------------------------------------------------------------
بخوانید:CLREA
MOVR6، #8; حلقه 8 بار, یک بایت بخوانید
RD11:کلردات
MOVR4،#4
نه; سطح پایین 2μs طول می کشد
SETBDAT; خط پورت را روی ورودی تنظیم کنید
RD12:DJNZR4,RD12
; 8μs صبر کنید
MOVC,از T
;میزبان داده های DS18B20 را بیت به بیت می خواند
RRCA;داده های خوانده شده به A منتقل می شوند
MOVR5، #30
RD13:DJNZR5,RD13
;اطمینان حاصل کنید که فرآیند خواندن 60 میکرو ثانیه طول می کشد
DJNZR6,RD11
;پس از خواندن یک بایت داده, آن را در A ذخیره کنید
SETBDAT
RET
;-----------------------------------------------------------------------------------
میزبان باید سه مرحله را برای کنترل DS18B20 طی کند تا تبدیل دما کامل شود: مقداردهی اولیه, دستورالعمل عملکرد رام, و دستورالعمل عملکرد حافظه. DS18B20 باید برای شروع تبدیل قبل از خواندن مقدار تبدیل دما شروع شود. با فرض اینکه فقط یک تراشه به یک خط متصل است, دقت تبدیل 12 بیتی پیش فرض استفاده می شود, و از منبع تغذیه خارجی استفاده می شود, یک زیر روال GETWD را می توان برای تکمیل یک تبدیل و خواندن مقدار دما نوشت.

با استعداد:LCALLINIT
حرکت کنید,#0CCH
LCALLWRITE; دستور skip ROM را ارسال کنید
حرکت کنید,#44 ساعت
LCALLWRITE; ارسال دستور تبدیل شروع
LCALLINIT
حرکت کنید,#0CCH; دستور skip ROM را ارسال کنید
LCALLWRITE
حرکت کنید,#0 BEH; دستور ارسال حافظه خواندن
LCALLWRITE
LCALLREAD
MOVWDLSB,بوها
; بایت کم مقدار دما را به WDLSB ارسال کنید
LCALLREAD
MOVWDMSB,بوها
; ارسال بایت بالا از مقدار دما به WDMSB
RET
……

بایت بالای مقدار دما که توسط زیر روال GETWD خوانده می شود به واحد WDMSB ارسال می شود, و بایت کم به واحد WDLSB ارسال می شود. سپس با توجه به فرمت نمایش بایت مقدار دما و بیت علامت آن, مقدار دمای واقعی را می توان از طریق تبدیل ساده به دست آورد.

اگر چند DS18B20 در یک خط وصل شده باشد, حالت اتصال منبع تغذیه انگلی اتخاذ شده است, پیکربندی دقت تبدیل, آلارم حد بالا و پایین, OTC. مورد نیاز هستند. سپس نوشتن زیربرنامه GETWD پیچیده تر خواهد شد. به دلیل محدودیت فضا, این بخش با جزئیات توضیح داده نخواهد شد. لطفا به مطالب مربوطه مراجعه فرمایید.

ما با موفقیت DS18B20 را به کار بردیم “حمام گرمایش خانگی” سیستم کنترلی که ما توسعه دادیم. سرعت تبدیل سریع آن, دقت تبدیل بالا, و رابط ساده با ریزپردازنده راحتی زیادی را برای طراحی سخت افزار به ارمغان آورده است, به طور موثر هزینه ها را کاهش داده و چرخه های توسعه را کوتاه می کند.