MỤC ĐÍCH ĐỀ TÀI Nghiên cứu về giao thức 1-Wire, ứng dụng trong việc điều khiển và giám sát các thiết bị trên mạng 1Wire, theo phương thức Master – Slave.. Giới thiệu cảm biến DS18B20
Trang 1ĐỀ TÀI NCKH CẤP SINH VIÊN
Trang 2THUỘC NHÓM NGÀNH : KHOA HỌC KỸ THUẬT
NHÓM THỰC HIỆN : NGUYỄN MINH QUYỀN
TP HỒCHÍ MINH – 3/2010
Trang 3NỘI DUNG TRANG
TÓM TẮT ĐỀ TÀI 2
PHẦN I: ĐẶT VẤN ĐỀ 3
I LÝ DO CHỌN ĐỀ TÀI 3
II TÌNH HÌNH NGHIÊN CỨU 3
PHẦN II: GIẢI QUYẾT VẤN ĐỀ 4
I MỤC ĐÍCH ĐỀ TÀI 4
II PHƯƠNG PHÁP NGHIÊN CỨU 4
III NỘI DUNG
1 GIAO THỨC 1-WIRE 5
1.1 Giới thiệu về 1Wire 5
1.2 Tính năng và tiện ích của 1Wire 5
1.3 Giao thức 1Wire 5
1.4 Bốn hoạt động cơ bản trong Giao thức 1Wire 6
1.5 Quy trình giao tiếp với thiết bị 1Wire 6
1.6 Topo mạng 7
2 CẢM BIẾN NHIỆT ĐỘ DS18B20 8
2.1 Giới thiệu cảm biến DS18B20 8
2.2 Mô tả cảm biến DS18B20 8
2.3 Tổng quan về DS18B20 9
2.4 Các hoạt động của cảm biến DS18B20 9
2.5 Nguồn trong DS18B20 11
2.6 Mã 64 bit trong Lasered ROM 12
2.7 Bộ nhớ (MEMORY) 12
2.8 Thanh ghi cấu hình 13
2.9 Hệ thống Bus 1-Wire 14
3 ADDRESSABLE SWITCH DS2405 19
Trang 43.1 Tính năng của DS2405 19
3.2 Mô tả DS2405 19
3.3 Tổng quan về DS2405 19
3.4 Hệ thống Bus 1-Wire 20
4 EEPROM DS2433 22
4.1 Tính năng 22
4.2 Mô tả 22
4.3 Tổng quan về DS2433 22
4.4 Nguồn kí sinh (parasite power) 22
4.5 Cấu trúc phân tầng của mạng 1-Wire 23
4.6 64-BIT LASERED ROM 23
4.7 Bộ nhớ (Memory) 23
4.8 Thanh ghi địa chỉ và trạng thái 24
4.9 Các lệnh chức năng của EEPROM DS2433 24
5 THIẾT KẾ VÀ THI CÔNG MẠCH ỨNG DỤNG 27
5.1 Phần cứng 27
5.2 Sơ đồ nguyên lý và mạch in 29
5.3 Phần mềm 32
IV KẾT QUẢ ĐẠT ĐƢỢC 35
1 TÍNH KHOA HỌC 35
2 KHẢ NĂNG TRIỂN KHAI ỨNG DỤNG VÀO THỰC TẾ 35
3 HIỆU QUẢ KINH TẾ - XÃ HỘI 35
PHẦN III: KẾT LUẬN 36
I KẾT LUẬN 36
II ĐỀ NGHỊ 36
TÀI LIỆU THAM KHẢO 37
Trang 5TÓM TẮT ĐỀ TÀI
Nhóm thực hiện đề tài: “KHẢO SÁT VÀ ỨNG DỤNG CÁC THIẾT BỊ THEO
CHUẨN TRUYỀN 1-WIRE” nhằm tìm hiểu 1 cách chi tiết và có cái nhìn rõ ràng hơn
trong việc ứng dụng các thiết bị theo chuẩn 1Wire
Nội dung đề tài bao gồm:
Khảo sát giao thức 1-Wire, cách thức để 1 thiết bị 1Wire có thể được giao tiếp và
sử dụng trên mạng
Tìm hiểu datasheet, cấu trúc phần cứng, phần mềm giao tiếp với các thiết bị 1Wire
cụ thể như: Cảm biến nhiệt độ DS18B20, Addressable Switch DS2405, EEPROM DS2433
Thiết kế và thi công mạch ứng dụng Cảm biến DS18B20 trong việc giám sát và điều khiển nhiệt độ
Trang 6PHẦN I ĐẶT VẤN ĐỀ
I LÝ DO CHỌN ĐỀ TÀI
Mọi người đã biết nhiều về chuẩn I2C, RS232-RS485, SPI Nhưng chuẩn 1Wire thì vẫn còn khá mới mẻ trong giới Sinh Viên và đời sống Vì vậy nhóm quyết định thực hiện
đề tài: “KHẢO SÁT VÀ ỨNG DỤNG CÁC THIẾT BỊ THEO CHUẨN TRUYỀN
1-WIRE” nhằm tìm hiểu 1 cách chi tiết và có cái nhìn rõ ràng hơn trong việc ứng dụng các
thiết bị theo chuẩn 1Wire
II TÌNH HÌNH NGHIÊN CỨU
Chuẩn 1Wire do hãng Dalas Semiconductor phát triển 1-Wire là chuẩn công
nghiệp được chấp nhận và tồn tại song song với các chuẩn công nghiệp khác như I2C, RS232-RS485, SPI
Chuẩn 1Wire có nhiều ưu điểm hơn các chuẩn trước, sự nhỏ gọn của linh kiện, giao thức đơn giản, chặt chẽ Cho phép điều khiển và giám sát một cách tối ưu nhất
Tuy nhiên, chuẩn 1Wire vẫn còn là vấn đề khá mới mẻ ở chúng ta Các bạn Sinh Viên và mọi người vẫn chưa tìm hiểu rõ và cách thức ứng dụng các thiết bị này trong thực tiễn Nhằm đem lại hiệu quả cao trong công việc
Trang 7PHẦN II GIẢI QUYẾT VẤN ĐỀ
I MỤC ĐÍCH ĐỀ TÀI
Nghiên cứu về giao thức 1-Wire, ứng dụng trong việc điều khiển và giám sát các thiết bị trên mạng 1Wire, theo phương thức Master – Slave
II PHƯƠNG PHÁP NGHIÊN CỨU
Tham khảo tài liệu
Tham khảo ý kiến giáo viên hướng dẫn đề tài
Tham khảo ý kiến giáo viên khoa Điện-Điện Tử và các bạn cùng tìm hiểu về
1Wire
Phương pháp thực nghiệm
III NỘI DUNG
1 GIAO THỨC 1-WIRE
1.1 Giới thiệu về 1Wire
Giao thức: truyền thông trên cáp xoắn đôi với các linh kiện 1Wire trên mạng 1Wire
Mạng 1Wire được kết nối theo phương thức đa điểm Master\Slave, với 1 điện trở kéo lên nhằm cung cấp điện áp tối thiểu là 5V trên mạng
Mạng 1Wire gồm 3 thành phần chính:
1 Master được điều khiển bằng phần mềm (Vi điều khiển)
Dây dẫn và các đầu nối có liên quan
Các thiết bị 1Wire
1.2 Tính năng và tiện ích của 1Wire
Mỗi linh kiện 1Wire gồm bộ mã 64 bit duy nhất được lưu trữ trong ROM, được xem như địa chỉ trên mạng Cho phép truy xuất đến từng linh kiện riêng lẻ trong mạng Địa chỉ 64bit được chia làm 3 phần: 8 bit trọng số nhỏ nhất chứa Rom Code của họ 1Wire (family codes), cho phép nhận dạng kiểu của linh kiện đó (device type) 48 bit tiếp theo, chứa 1 chuỗi số liên tục duy nhất, là địa chỉ trên
mạng 1Wire 8 bit có trọng số lớn nhất chứa mã CRC (Cyclic Redundancy
Check)
Thiết kế với giao thức đơn giản cho phép vừa cung cấp tín hiệu điều khiển và nguồn
1.3 Giao thức 1Wire
Trang 8 Giao thức 1Wire sử dụng mức logic CMOS/TTL (maximum 0.8V cho logic “0”
và minimum 2.2V cho logic “1”)
Cả Master và Slave đều cho phép truyền dữ liệu nhưng theo chế độ bán song công (halfduplex) Master khởi tạo và điều khiển các Slave
Dữ liệu là chuỗi byte và chuỗi bit, với dữ liệu được đọc và được ghi bắt đầu từ bit có trọng số nhỏ nhất (LSB)
Tín hiệu truyền đi tuân thủ theo khe thời gian (time slots)
Đồng hồ hệ thống (System clock) là không cần thiết Mỗi linh kiện 1Wire có bộ dao động riêng, được đồng bộ với xung cạnh xuống (falling edge) của Master
1.4 Bốn hoạt động cơ bản trong Giao thức 1Wire
1.4.1 Bảng tóm tắt hoạt động của 1Wire
1.4.2 Dạng sóng trong giao thức 1Wire
1.5 Quy trình giao tiếp với thiết bị 1Wire
Trang 9Đầu tiên, Master sẽ ban hành lệnh “reset” để đồng bộ các thiết bị trên Bus Sau đó, Master sẽ chọn Slave muốn giao tiếp, bằng cách sử dụng Rom Code của mỗi Slave Một khi có Slave được chọn, các Slave khác sẽ bị bỏ qua, cho đến đi lệnh “reset “ khác được ban hành
Sau khi Slave được chọn, Master có thể ban hành các lệnh để đọc và ghi dữ liệu lên Slave đó Mặc dù, mỗi Slave có giao thức và chức năng sử dụng khác nhau Nhưng tất
cả Slave đều có cùng cách thức lựa chọn để giao tiếp
1.6 Topo mạng
1.6.1 Mạng 1Wire đơn giản: phạm vi giao tiếp của mạng lên tới 5m
1.6.2 Mạng 1Wire tiêu biểu: sử dụng cáp xoắn đôi UTP, chiều dài mạng có thể
lên tới 125m
Reset bus 1Wire
Chọn thiết
bị
Sử dụng các tập lệnh tương ứng với từng thiết bị
Trang 102 CẢM BIẾN NHIỆT ĐỘ DS18B20
2.1 Giới thiệu cảm biến DS18B20
Chỉ cần 1 chân duy nhất cho việc giao
tiếp trên 1-wire
Mỗi linh kiện có 1 mã 64-bit được lưu
trữ trong ROM
Có khả năng ứng dụng trong việc đo
lường nhiệt độ trong hệ thống đa điểm
phân tán (Multidrop Distributed)
Có thể được cấp nguồn từ đường dữ
liệu (Data Line) Nguồn cung cấp
Độ phân giải của nhiệt kế, cho phép người dùng tùy chọn từ 9-12 bit
Thời gian chuyển đổi tối đa là 750ms ( đối với data 12 bit)
Có 3 dạng đóng gói: 8-Pin SO (150 mils), 8-Pin μSOP, and 3-Pin TO-92 Packages
Ứng dụng trong điều khiển điều chỉnh nhiệt độ, hệ thống công nghiệp, sản xuất tiêu dùng, nhiệt kế và bất kì 1 hệ thống nào nhạy cảm với nhiệt độ
2.2 Mô tả cảm biến DS18B20
DS18B20 cung cấp 9-12 bit để đo nhiệt độ dưới dạng độ C và giao tiếp trên Bus
1 dây duy nhất với bộ xử lý trung tâm Nhiệt độ đo trong khoảng -55°C - +125°C 67°F - +257°F) Trong khoảng -10°C - +85°C , độ chính xác là ±0.5°C Ngoài ra, DS18B20 có thể rút nguồn trực tiếp từ đường dây dữ liệu => gọi là “nguồn kí sinh” (“parasite power”) Có thể thay thế cho việc sử dụng nguồn ngoài
(-Mỗi DS18B20 có 1 bộ mã 64-bit, cho phép nhiều DS18B20 thực hiện chức năng trên cùng Bus 1-Wire Vì vậy, dễ dàng sử dụng 1 vi xử lý để điều khiển nhiều DS18B20 phân tán trên 1 diện tích rộng Một ứng dụng có ích từ sử dụng tính năng này
bao gồm: điều khiển trong môi trường HVAC (Heating, Ventilating, and Air
Conditioning), hệ thống giám sát nhiệt độ bên trong tòa nhà, thiết bị, máy móc…
Trang 112.3 Tổng quan về DS18B20
Figure 1 trình bày sơ đồ khối của DS18B20 Bộ nhớ ROM 64 bit, lưu trữ Rom
Code của DS18B20 Bộ nhớ tạm (Scratchpad memory) bao gồm thanh ghi nhiệt độ 2 byte, lưu trữ dữ liệu số của cảm biến Ngoài ra, vùng đệm còn cho phép truy xuất tới 1 byte cao và thấp của thanh ghi cảnh báo (TH&TL) và 1 byte của thanh ghi cấu hình (configuration register) Thanh ghi cấu hình, cho phép người dùng thiết lập độ phân giải của bộ chuyển đổi nhiệt độ - số bao gồm 9, 10, 11, hay 12 bit Thanh ghi TH&TL
và thanh ghi cấu hình được chứa trong EEPROM, vì vậy dữ liệu sẽ được lưu giữ lại cho dù bị mất điện
DS18B20 sử dụng giao thức 1-Wire, thực hiện việc truyền thông trên Bus với chỉ
1 đường tín hiệu điều khiển Đường điều khiển cần 1 điện trở kéo lên vì tất cả các linh kiện được liên kết với Bus qua cổng 3 trạng thái hoặc cực máng để hở (3-state or open-drain) (chân DQ trong DS18B20) Trong hệ thống Bus này, vi xử lý (Master) xác định
và gán địa chỉ, bằng cách sử dụng mã 64 bit của mỗi IC Bởi vì mỗi IC chỉ có 1 mã duy nhất, nên số lượng IC được gán địa chỉ trên Bus coi như không có giới hạn
2.4 Các hoạt động của cảm biến DS18B20
2.4.1 Đo lường nhiệt độ
Chức năng cốt lõi của DS18B20 là chuyển đổi trực tiếp nhiệt độ sang giá trị số Độ phân giải của DS18B20 được cấu hình bởi người dùng từ 9, 10, 11, hay 12 bit Tương ứng với việc tăng nhiệt độ từ 0.5°C, 0.25°C, 0.125°C,và 0.0625°C Theo mặc định, độ
Trang 12phân giải khi cấp nguồn là 12 bit Để khởi tạo việc đo lường nhiệt độ và quá trình
chuyển đổi ADC, Master phải ban hành lệnh Convert T [44h] Sau quá trình chuyển
đổi, kết quả sẽ được lưu trữ trong thanh ghi nhiệt độ 2 byte trong bộ nhớ tạm và DS18B20 sẽ quay trở về trạng thái không tải (idle)
Dữ liệu ngõ ra được lưu trữ dưới dạng số bù 16 bit có dấu, trong thanh ghi nhiệt
độ (Figure 2) Bit dấu S (Sign bit) dùng chỉ báo nhiệt độ dương hay âm S=0 nếu nhiệt
đô dương và S=1 nếu nhiệt đô âm Nếu DS18B20 được cấu hình ở độ phân giải 12 bit, tất cả các bit trong thanh ghi nhiệt độ sẽ chứa giá trị hợp lệ Ở độ phân giải 11 bit, bit 0 thì không được xác định Ở độ phân giải 10 bit, bit 1 và bit 0 thì không được xác định
Ở độ phân giải 9 bit, bit 2, bit 1 và bit 0 thì không được xác định
Table 1 cho ví dụ về dữ liệu ngõ ra số và cách đọc nhiệt độ tương ứng, cho bộ chuyển đổi có độ phân giải 12 bit
Trang 132.4.2 Tín hiệu cảnh báo
Sau khi DS18B20 thực hiện quá trình chuyển đổi, giá trị nhiệt độ được so sánh với giá trị cảnh báo do người dùng định nghĩa, được lưu trong thanh ghi 1 byte TH& TL (Figure 3) Bit dấu S cho biết, nếu giá trị là dương thì S=0, và âm thì S=1 Giá trị T-
H&TL “không bay hơi” (EEPROM) vì vậy dữ liệu sẽ không bị mất khi linh kiện không được cấp nguồn TH&TL có thể được truy xuất thông qua byte 2, byte 3 của vùng đệm Chỉ có các bit từ 4 - 11 của thanh ghi nhiệt độ thì được sử dụng trong việc so sánh với TH& TL bởi vì TH& TL là 1 thanh ghi 8 bit Nếu nhiệt độ đo được thấp hơn hoặc bằng TL , hay cao hơn hoặc bằng TH , thì điều kiện xảy ra cảnh báo tồn tại và cờ cảnh báo sẽ được thiết lập bên trong DS18B20 Cờ này sẽ được cập nhật sau mỗi lần đo nhiệt độ, vì vậy nếu điều kiện cảnh báo xảy ra lần nữa, cờ báo sẽ turn off sau lần chuyển đồi nhiệt độ tiếp theo
Master có thể kiểm tra cờ cảnh báo của tất cả các DS18B20 trên Bus, bằng cách ban
hành lệnh Alarm Search [ECh] Bất kì DS18B20 với cờ cảnh báo được set sẽ đáp ứng
lại lệnh này, vì vậy Master có thể xác định chính xác DS18B20 xảy ra điều kiện cảnh báo Nếu điều kiện cảnh báo tồn tại và các thiết lập TH& TL có sự thay đổi, một quá trình chuyển đổi nhiệt độ khác nên được hoàn tất để điều kiện cảnh báo này có hiệu lực
2.5 Nguồn trong DS18B20
2.5.1 DS18B20 sử dụng nguồn kí sinh
Trang 14Nguồn kí sinh rất là hữu dụng trong các ứng dụng điều khiển nhiệt độ từ xa Figure
4, trình bày mạch điện điều khiển nguồn kí sinh của DS18B20, lấy nguồn từ Bus
1-Wire thông qua chân DQ khi Bus lên mức cao Một lượng điện tích bị mất đi khi Bus ở mức cao, và một số được lưu trữ trong tụ nguồn kí sinh trong DS18B20 (CPP), để cung cấp năng lượng khi Bus xuống mức thấp Khi DS18B20 được sử dụng ở mode nguồn
kí sinh, chân VDD phải được nối xuống mass
2.5.2 DS18B20 sử dụng nguồn ngoài
Ngoài ra DS18B20 có thể được cấp nguồn theo phương thức thông thường, đó
là kết nối nguồn bên ngoài tới chân VDD (Figure 5) Ưu điểm của phương pháp này là
MOSFET kéo lên là không cần thiết, và 1-Wire Bus có thể tự do mang những thông tin trong suốt thời gian xảy ra quá trình chuyển đổi nhiệt độ
Có 1 lời khuyên cho việc sử dụng nguồn kí sinh là không nên sử dụng với nhiệt độ trên 100°C vì DS18B20 có thể sẽ không thể duy trì được việc truyền thông, vì dòng rò cao có thể tồn tại ở nhiệt độ này Đối với những ứng dụng có nhiều mức nhiệt độ, lời khuyên tốt nhất là DS18B20 nên được cấp nguồn bởi bộ nguồn bên ngoài
2.6 Mã 64 bit trong Lasered ROM
Mỗi DS18B20 gồm có bộ mã 64 bit duy nhất, được lưu trữ trong ROM (Figure 6) 8
bit trọng số nhỏ nhất chứa Rom Code của họ DS18B20 là: 28h 48 bit tiếp theo, chứa 1
chuỗi số liên tục duy nhất 8 bit có trọng số lớn nhất chứa mã CRC
2.7 Bộ nhớ (MEMORY)
Trang 15Bộ nhớ DS18B20 được tổ chức như Figure 7 Bộ nhớ gồm 1 vùng nhớ tạm SRAM,
bộ nhớ EEPROM “không bay hơi” cho thanh ghi cảnh báo (TH& TL) và thanh ghi cấu hình
Dữ liệu sẽ được ghi tới byte 2,3,4 của vùng tạm bằng cách sử dụng lệnh Write Scratchpad [4Eh], dữ liệu truyền tới DS18B20 phải được bắt đầu với bit có trọng số
nhỏ nhất của byte 2 Để xác định dữ liệu có nguyên vẹn hay không, vùng tạm có thể
được đọc (lệnh Read Scratchpad [BEh]) sau khi dữ liệu được ghi Khi đang đọc vùng
tạm, dữ liệu được truyền trên 1-Wire Bus được bắt đầu với bit có trọng số nhỏ nhất của byte 0 Để truyền dữ liệu của TH& TL và thanh ghi định cấu hình, từ vùng tạm tới
EEPROM, Master phải ban hành lệnh Copy Scratchpad [48h]
Dữ liệu trong EEPROM vẫn còn được lưu trữ khi linh kiện bị mất điện Khi có điện,
dữ liệu trong EEPROM sẽ được nạp lại vào vị trí tương ứng trong vùng tạm Ngoài cách này ra, dữ liệu từ EEPROM có thể được nạp lại cho vùng tạm bất kì lúc nào, bằng
cách sử dụng lệnh Recall E 2
[B8h] Master có thể ra lệnh đọc khe thời gian, sau lệnh Recall E 2 , và DS18B20 sẽ báo tình trạng recall bằng cách truyền bit 0 khi trong quá
trình recall và 1 khi recall hoàn tất
2.8 Thanh ghi cấu hình (CONFIGURATION REGISTER)
Byte 4 của vùng nhớ tạm, chứa thanh ghi định cấu hình, được tổ chức như Figure 8
Người dùng có thể thiết lập độ phân giải của quá trình chuyển đổi trong DS18B20,
Trang 16bằng cách sử dụng bit R0 & R1 của thanh ghi này (Table 2) Theo mặc định, khi mới
cấp nguồn R0 = 1 & R1 = 1 (độ phân giải 12 bit) Nên nhớ rằng, có 1 sự liên quan trực
tiếp giữa độ phân giải và thời gian chuyển đổi
2.9 Hệ thống Bus 1-Wire (1-WIRE BUS SYSTEM)
Hệ thông Bus 1-Wire sử dụng 1 dây duy nhất, trong đó Master điều khiển một hay
nhiều Slave DS18B20 luôn luôn là Slave Khi chỉ có 1 Slave trên Bus, hệ thống đó gọi
là “đơn điểm” (single-drop) Hệ thống gọi là “đa điểm” (multidrop) khi có nhiều Slave
trên Bus Tất cả các lệnh và dữ liệu được truyền với bit đầu tiên là bit có trọng số nhỏ
nhất trên Bus 1-Wire
Tất cả có 3 vấn đề chính về hệ thông Bus 1-Wire, được đề cập đến như sau:
2.9.1 Cấu hình phần cứng (HARDWARE CONFIGURATION)
Hệ thông Bus 1-Wire, chỉ với 1 dây dữ liệu duy nhất Mỗi thiết bị (master or slave)
giao tiếp trên đường dữ liệu thông qua cổng có cực máng để hở hay 3 trạng thái
(open-drain or 3-state port) Điều này cho phép mỗi thiết bị có thể tự “giải phóng “ (release)
khỏi đường dữ liệu khi thiết bị đó không truyền dữ liệu, vì vậy Bus sẽ có thể để dành
Trang 17cho các thiết bị khác sử dụng Cổng 1-Wire trong DS18B20 (chân DQ) có cực máng
để hở với mạch điện tương đương được cho như Figure 10
Bus 1-Wire cần 1 điện trờ kéo lên bên ngoài xấp xỉ gần 5kΩ; vì vậy, trạng thái không tải của Bus 1-Wire là mức cao Nếu có bất kì 1 lí do gì mà cuộc giao dịch cần phải hoãn lại, Bus phải được trống ở trạng thái không tải, nếu cuộc giao dịch muốn nối lại Thời gian phục hồi vô tận có thể sẽ xảy ra giữa các bit quá dài, khi Bus 1-Wire ở
trạng thái không tích cực (mức “1”) trong suốt quá trình phục hồi Nếu Bus giữ mức
thấp trong khoảng thời gian lớn hơn 480μs, tất cả các linh kiện trên Bus sẽ được reset
2.9.2 Giao dịch tuần tự (TRANSACTION SEQUENCE)
Các bước cho việc truy xuất DS18B20 như sau:
Bước 1: Khởi tạo
Bước 2: Các lệnh trong ROM
Bước 3: Các lệnh chức năng trong DS18B20
Quy trình này vô cùng quan trọng mỗi khi muốn DS18B20 được truy xuất, và DS18B20 sẽ không đáp ứng lại khi bất kì bước nào trong quy trình này bị thiếu,
hay đảo lộn việc sắp xếp Tuy nhiên cũng có ngoại lệ đối với lệnh Search ROM [F0h] và Alarm Search [ECh]
a) Khởi tạo (INITIALIZATION)
Tất cả các cuộc giao dịch trên Bus 1-Wire đều được bắt đầu với việc khởi tạo Bao gồm việc truyền 1 xung reset từ Master theo sau là “xung báo hiện diện” (presence pulse) của Slave Xung báo hiện diện cho biết Slave nào đang trên Bus và sẵn sàng để hoạt động
b) Các lệnh trong ROM (ROM COMMANDS)
Sau khi Master phát hiện được xung báo hiện diện, nó có thể ban hành lệnh trong ROM Những lệnh này thực hiện trên bộ mã ROM 64 bit duy nhất cho mỗi Slave,
và cho phép Master chọn ra 1 thiết bị cụ thể nếu có nhiều thiết bị trên Bus 1-Wire Những lệnh này, ngoài ra còn cho phép Master xác định được bao nhiêu Slave và loại
gì đang hiện diện trên Bus, nếu bất kì Slave nào đang ở trong điều kiện xảy ra cảnh báo Có 5 lệnh ROM, và mỗi lệnh có chiều dài là 8 bit Master phải ban hành những
lệnh ROM thích hợp trước khi ban hành lệnh chức năng trong DS18B20
SEARCH ROM [F0h]
Trang 18Khi hệ thống được khởi tạo khi mới cấp nguồn, Master phải nhận dạng được ROM code của tất cả các Slave trên Bus, điều này cho phép Master xác định được số lượng Slave và kiểu của chúng Master phải nhớ (học) tất cả ROM code, thông qua 1 quá trình loại trừ và điều này đòi hỏi Master thực hiện chu kỳ Search ROM (lệnh Search ROM cho phép trao đổi dữ liệu) nhiều lần, rất cần thiết để nhận dạng hết các Slave
Nếu chỉ có duy nhất 1 Slave trên Bus, lệnh Read ROM sẽ được sử dụng trong quy trình
Search ROM Sau mỗi chu kỳ Search ROM, Master phải quay về bước 1 (Khởi tạo) trong giao dịch tuần tự
READ ROM [33h]
Lệnh này sử dụng khi chỉ có duy nhất 1 Slave trên Bus, cho phép Master đọc 64-bit
ROM code của Slave mà không cần thông qua thủ tục Search ROM Nếu lệnh này sử dụng khi có nhiều hơn 1 Slave trên Bus, xung đột dữ liệu sẽ xảy ra khi tất cả các Slave
cố gắng đáp ứng lại trong cùng 1 thời gian
MATCH ROM [55h]
Lệnh Match ROM cho phép Master liên kết đến 1 địa chỉ của Slave cụ thể trên Bus, đơn điểm hay đa điểm Chỉ có những Slave có 64-bit ROM code được ghép chính xác thì mới đáp ứng lại các lệnh chức năng được ban hành bởi Master Tất cả các Slave khác trên Bus sẽ phải chờ 1 xung reset
SKIP ROM [CCh]
Master có thể sử dụng lệnh này tới địa chỉ của tất cả các Slave trên Bus, một cách đồng thời mà không cần đưa ra bất kì một thông tin nào của ROM code Ví dụ: Master
có thể cho phép tất cả DS18B20 trên Bus thực hiện chuyển đổi nhiệt độ một cách đồng
thời, bằng cách ra lệnh Skip ROM theo sau lệnh Convert T [44h]
Chú ý: Lệnh Read Scratchpad [BEh] theo sau lệnh Skip ROM , chỉ khi có 1
Slave trên Bus Trong trường hợp này, thời gian có thể được tiết kiệm bằng cách cho
phép Master đọc từ Slave mà không cần gửi 64-bit ROM code của Slave đó Lệnh Skip ROM theo sau lệnh Read Scratchpad sẽ gây ra xung đột dữ liệu, nếu có nhiều hơn 1
Slave trên Bus, bởi vì nhiều Slave sẽ cố gắng truyền dữ liệu một cách đồng thời
ALARM SEARCH [ECh]
Chức năng của lệnh này thì giống với lệnh Search ROM, chỉ trừ việc chỉ có Slave
nào có cờ cảnh báo được thiết lập thì mới đáp ứng lại Lệnh này cho phép Master xác định nếu bất kì DS18B20 nào trải qua điều kiện cảnh báo, trong cuộc chuyển đổi nhiệt
Trang 19độ gần nhất Sau mỗi chu kỳ Alarm Search, Master phải quay về bước 1 (Khởi tạo) trong giao dịch tuần tự
c) Các lệnh chức năng trong DS18B20 (FUNCTION COMMANDS)
Sau khi Master sử dụng các lệnh ROM để truy xuất đến địa chỉ của Slave DS18B20
muốn giao tiếp, Master mới có thể ban hành các lệnh chức năng trong DS18B20 Những lệnh này cho phép Master ghi và đọc từ vùng nhớ tạm của DS18B20, khởi động quá trình chuyển đổi nhiệt độ và xác định chế độ nguồn cung cấp Các lệnh chức năng
trong DS18B20 được tóm tắt ở Table 3
CONVERT T [44h]
Lệnh này khởi động 1 quá trình chuyển đổi nhiệt độ riêng lẻ Sau quá trình chuyển đổi này, kết quả dữ liệu thu được sẽ được lưu trữ trong thanh ghi nhiệt độ 2-byte trong vùng nhớ tạm và DS18B20 quay trở về trạng thái không tải tiết kiệm năng lượng Nếu DS18B20 được cung cấp bởi bộ nguồn bên ngoài, Master có thể ra lệnh đọc khe thời
gian, sau khi lệnh Convert T và DS18B20 sẽ đáp ứng lại bằng cách truyền lên mức 0,
khi đang trong quá trình chuyển đổi nhiệt độ và bằng 1 khi chuyển đổi hoàn tất
READ SCRATCHPAD [BEH]
Lệnh này cho phép đọc toàn bộ vùng nhớ tạm, bao gồm cả byte CRC Master có thể dừng việc đọc bất kì lúc nào, nếu chỉ cần 1 phần dữ liệu của vùng nhớ tạm
Trang 20WRITE SCRATCHPAD [4Eh]
Lệnh này cho phép Master đọc nội dung của vùng tạm Dữ liệu truyền bắt đầu với bit
có trọng số nhỏ nhất của byte 0 và tiếp tục xuyên suốt qua vùng tạm cho tới byte 8(byte CRC) được đọc Master có thể ra lệnh reset để kết thúc việc đọc dữ liệu tại bất kì thời điểm nào, nếu chỉ có 1 phần dữ liệu trong vùng tạm là cần thiết