Chữ chạy

"Con đường đến với tri thức không dễ dàng, nhưng nếu chúng ta quyết đi sẽ đến được bến bờ tri thức !". Chào mừng các bạn đến với trang thông tin của Võ Hoàng Tâm - GV Khoa Điện Điện tử - Trường Đại học SPKT Vĩnh Long. Trang cung cấp thông tin - tài liệu học tập cho các bạn học viên và sinh viên. Chúc các bạn thành công trên hành trình đi tìm tri thức ...

Cơ bản về DS18B20 (Cảm biến nhiệt độ)

DS18B20 là IC cảm biến nhiệt độ bán dẫn, gồm 3 chân, đóng vỏ nhỏ gọn. Giao tiếp thông qua truyền thông 1 dây. Độ phân giải nhiệt độ lên tới 12 bít, dòng tiêu thụ rất thấp, giải điện áp sử dụng rộng 3 - 5.5V, kết nối được nhiều cảm biến chung trên 1 đường truyền. Ứng dụng trong đo đạc nhiệt độ chính xác và thu thập nhiệt độ nhiều điểm .
 Cảm biến nhiệt độ DS18B20 có những tính năng như sau:
- Theo chuẩn giao tiếp 1-wire, Kết nối nhiều cảm biến DS18B20 trên 1 đường truyền.
- Dãi nhiệt độ đo lường: -55°C to +125°C (-67°F to +257°F)
- Độ chính xác: ±0.5°C trong khoảng đo -10°C to +85°C.
- Độ phân giải 9 đến 12 bit có thể chương trình
- Mỗi thiết bị có mã định danh duy nhất 64 bit.
- Có thể dùng nguồn ký sinh (không cần cung cấp nguồn cho chip, chip lấy nguồn từ tín hiệu)
Sơ đồ chân
 Mã ROM 64 bit:
Mỗi DS18B20 đều có mã định danh với độ lớn 64 bit duy nhất được lưu trong ROM.
- 8 bit thấp nhất của ROM chứa đựng mã quy ước của họ dòng đo nhiệt độ 1 dây DS18B20 với mã là :28h.
- 48 bit tiếp theo là số serial duy nhất của thiết bị.
- 8 bit cuối cùng mà mã kiểm tra CRC tính toán từ 56 bit trước.
 Bộ nhớ
Bộ nhớ của DS18B20 bao gồm bộ nhớ nháp (SRAM scratchpad), thanh ghi lưu trữ kích hoạt cảnh báo cao và thấp (TH và TL) và thanh ghi cấu hình, cả hai thanh ghi này đều trang bị bộ nhớ EEPROM. Lưu ý rằng nếu nếu chức năng cảnh báo không được sử dụng thì thanh ghi TH và TL có thể được sử dụng như bộ nhớ đa mục đích.
Byte 0 và Byte 1 của bộ nhớ nháp chứa đựng LSB và MSB của thanh ghi nhiệt độ. Những Byte này chỉ có thể đọc. Byte 2 và 3 truy cập thanh ghi TH và TL . Byte 4 chứng đựng dữ liệu của thanh ghi cấu hình . Byte 5, 6 và 7 để dành riêng cho sử dụng bởi thiết bị, ta không thể ghi đến các byte này
Byte 8 chứa đựng mã CRC của byte 0 đến byte 7 của bộ nhớ nháp.
Dữ liệu trong các thanh ghi EEPROM không mất đi khi ngắt nguồn cấp; khi có nguồn cấp lại dữ liệu trong các thanh ghi này sẻ được nạp vào bộ nhớ nháp theo vị trí byte tương ứng. Dữ liệu này có thể nạp lại bằng lệnh từ EEPROM bằng lệnh E2 [B8h]
 Bộ nhớ SRAM scratchpad
Thanh ghi cấu hình:
Byte thứ 4 của bộ nhớ nháp chứa đựng thanh ghi cấu hình, với tổ chức như hình bên dưới. Người dùng có thể thiết lập độ phân giải của DS18B20 sử dụng bit R0 và R1. Khi cấp nguồn mặt định R0=1, R1=1 (độ phân giải 12 bit). Bit thứ 7 và bit 0 đến bít 4trong thanh ghi cấu hình được để dành riêng cho thiết bị và không thể ghi đè
 Bảng cấu hình độ phân giải và thời gian chuyển đổi tương ứng
R1R0
Độ phân giải
(Bit)
Thời gian chuyển đổi tối đa
00993.75ms(tCONV/8)
0110187.5ms(tCONV/4)
1011375ms(tCONV/2)
1112750ms(tCONV)
Các lệnh cơ bảng:
SEARCH ROM [F0h]
- Khi hệ thống đươc cấp nguồn, thiết bị đóng vai trò master phải xác định mã ROM của tất cả các thiết bị slave được đấu trên cùng bus, việc làm này cho phép thiết bị master xác định số lượng thiết bị salve và kiểu thiết bị
READ ROM (33h)
- Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết bị tớ cùng đáp ứng. Nó cho phép đọc 64 bit mã ROM (8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC) và không sử dụng quy trình Search Rom
MATCH ROM (55h)
- Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng nối vào. Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit vừa được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến DS1820 có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh này được sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảm biến một dây.
SKIP ROM (CCh)
- Thiết bị master có thể sử dungj lệnh này để gửi đến tất cả các thiết bị slave trên bus một các đồng thời mà không cần gửi mã ROM định danh của thiết bị. Ví dụ như thiết bị master ra lệnh cho tất cả các DS18B20 trên Bus chuyển đổi nhiệt độ một cách đồng thời bởi gửi lệnh SKIP ROM và lệnh CONVERT T (44h)
- Lưu ý rằng lệnh READ SCRATCHPAD có thể theo sau lệnh SKIP ROM chỉ khi trên bus chỉ có một thiết bị slave. Trong trường hợp này, ta tiết kiệm được thời gian bởi nó cho phép đọc từ thiết bị slave mà không cần gửi mã ROM của thiết bị. Trong trường hợp trên bus có nhiều thiết bị tớ nếu ta sử dụng 2 lệnh này sẻ xãy ra xung đột dữ liệu.
ALARM SEARCH (ECh)
- Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng. Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến.
- Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra các lệnh chức năng DS1820. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820. khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn. Các lệnh chức năng có thể được mô tả ngắn gọn như sau:
WRITE SCRATCHPAD (4Eh)
- Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820. Byte đầu tiên được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào thanh ghi TL (byte 3 của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuất hiện.
READ SCRATCHPAD (BEh)
- Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp. Quá trình đọc bắt đầu từ bit có ý nghĩa nhất của byte 0 và tiếp tục cho đến byte thứ 9 (byte 8 – CRC). Thiết bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc.
COPYSCRATCHPAD (48h)
- Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3), và thanh ghi cấu hình từ bộ nhớ nháp đến bộ nhớ EEPROM. Nếu cảm biến được sử dụng trong chế độ sử dụng nguồn ký sinh, trong 10us (tối đa) sau khi truyền lệnh này, thiết bị master phải cho phép một "strong pullup" lên bus.
CONVERT T (44h)
- Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân). Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp. Trong thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0.
READ POWER SUPPLY (B4h)
- Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồn như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và bằng 1 nếu cấp nguồn qua một đường dẫn riêng
Kiểu kết nối với vi xử lý
Luôn luôn phải có một điện trở treo 4.7kOhm lên nguồn Vcc với chân DQ của DS18b20.