Hình 2.2 minh hoạ sơ đồ khối của DS18B20, và chức năng các chân được mô tả trong Bảng 2.1. Bộ nhớ ROM 64-bit lưu trữ mà số duy nhất của thiết bị. bộ nhớ Scratchpad chứa thanh ghi nhiệt độ 2 byte trong đó có lưu trữ đầu ra số từ cảm biến nhiệt độ. Thêm vào đó, bộ nhớ scrat chpad cung cấp khả năng truy nhập đến các thanh ghi cảnh báo cận trên và dưới 1 - byte ( TH và TL) và thanh ghi cấu hình 1 - byte. Các thanh ghi TH và TL, và thanh ghi cấu hình là bất biến (EEPROM), vì thế chúng vẫn lưu dữ liệu khi tắt nguồn cấp cho thiết bị.
DS18B20 sử dụng giao thức bus 1 - Dây độc quyền của hãng Dallas với khả năng thực hiện truyền thông trên bus bằng cách sử dụng chỉ một tín hiệu điều khiển. Đường điều khiển yêu cầu một điện trở pullup yếu vì tất cả các thiết bị được nối đến bus thông qua một cổng 3 - trạng thái ( chính là chân DQ của DS18B20). Trong hệ thống bus này, vi điều khiển ( thiết bị chủ hoặc bus chủ) nhận dạng và định địa chỉ tất cả các thiết bị trên bus sử dụng mã 64 - bit duy nhất của mỗi thiết bị. Vì mỗi thiết bị có một mã duy nhất nên số các thiết bị có thể được định địa chỉ trên một bus hầu nh là không bị giới hạn. Phần giao thức bus 1 - Dây được trình bày chi tiết trong phần Hệ thống bus 1 - Dây.
Một tính năng khác của DS18B20 là khả năng hoạt động mà không cần nguồn ngoài. Thay vào đó, nguồn được cấp thông qua điện trở pullup 1 - Dây nối với DQ khi bus ở trạng tháu cao. Điện tích lấy được từ bus 1 - Dây sẽ cung cấp nguồn cho DS18B20 khi bus ở trạng tháu cao, và một phần điện tích này được lưu trên tụ nguồn ký sinh ( Cpp) để cung cấp điện khi bus ở trạng tháu thấp. Phương pháp lấy nguồn từ bus 1- Dây được gọi là " Nguồn ký sinh".
2.1.3 Hoạt động đo nhiệt độ
Chức năng chính của DS18B20 là cảm biến nhiệt động với khả năng xuất trực tiếp ra tín hiệu số. Độ phân giải của bộ cảm biến nhiệt độ là 9,10,11 hoặc 12 bit
( cho phép người dùng cấu hình), tương ứng với bước nhảy 050C, 0.250C, 0.1250C, 0.06250C. Khi bật nguồn, độ phân giải mặc định là 12 bit và DS18B20 ở trạng thái nghỉ điện áp thấp. Để khởi tạo một phép đo nhiệt độ và chuyển đổi A/D, thiết bị chủ phải phát ra một lệnh Convert T [44h]. Sau khi chuyển đổi, dữ liệu kết quả được lưu trong thanh ghi nhiệt độ 2 - byte trong bộ nhớ scratchpad và DS18B20 trở
về trạng thái nghỉ của nó. Nếu DS 18B20 được cấp nguồn ngoài, thiết bị chủ có thể phát ra "các khe thời gian đọc" (tham khảo phần Hệ thống bus 1 - Dây) sau lệnh Convert T và DS18B20 sẽ trả lời bằng cách truyền bit 0 trong khi đang chuyển đổi và truyền bit 1 hoàn tất chuyển đổi. Nếu DS18B20 được cấp nguồn ký
sinh, kỹ thuật thông báo này không thể được sử dụng vì bus phải được kéo lên trạng thái cao bởi một điện trở khoẻ trong suốt quá trình biến đổi. Các yêu cầu đối với bus trong chế độ nguồn ký sinh được giải thích chi tiết trong phần Cấp nguồn cho DS18B20.
Dữ liệu ra của DS18B20 được hiệu chỉnh theo thang Celsius. Dữ liệu về nhiệt độ được lưu dưới dạng một số bù hai 16 - bit trong thanh ghi nhiệt độ (tham khoả Hình 2.3). Bit dấu S chỉ ra nhiệt độ là dương hay âm: S=0 là dương và S=1 là âm. Nếu DS18B20 được cấu hình ở độ phân giỉa 12-bit, thì tất cả các bít trong thanh ghi nhiệt độ sẽ chứa dữ liệu hợp lệ. Với độ phân giải 11-bit, bit 0 không xác định. Với độ phân giải 10 bit, bit 0 và 1 không xác định, và với độ phân giải 9 bit các bit 0, 1, và 2 không xác định. Bảng 2.2 đưa ra ví dụ của dữ liệu (dạng số) và nhiệt độ tương ứng ở độ phân giải 12-bit.
BIT 7 BIT 6 BIT 5 BIT4 BIT3 BIT2 BIT1 BIT0
23 22 21 20 2-1 2-2 2-3 2-4
BIT15 BIT14 BIT13 BIT12 BIT11 BIT10 BIT9 BIT8
S S S S S 26 25 24
S: bit dấu
Hình 2.3. Thanh ghi nhiệt độ
Nhiệt độ (0C) Đầu ra dạng số (nhị phân) Dầu ra dạng số (hex)
+125 0000 0111 1101 0000 07D0h +85* 0000 0101 0101 0000 0550h +25.0625 0000 0000 1010 0001 0191h +10.125 0000 0000 0000 0010 00A2h +0.5 0000 0000 0000 1000 0008h 0 0000 0000 0000 0000 0000h -0.5 1111 1111 1111 0000 FFF8h -10.125 1111 1111 0101 1110 FF5Eh -25.0625 1111 1110 0110 1111 FE6Fh
-55 1111 1100 1001 0000 FC90h
Bảng 2.2. Quan hệ Nhiệt độ/Dữ liệu * Giá trị reset của thanh ghi nhiệt độ là +850C