Truyền và xử lý tín hiệu số bằng chuẩn 1-dây cho cảm biến nhiệt độ

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng hệ thống đo đạc, thu thập và xử lý tín hiệu số các thông số môi trường từ xa qua mạng ethernet trên nền linux nhúng (Trang 29 - 35)

CHƢƠNG 2 : ĐỐI TƢỢNG VÀ PHƢƠNG PHÁP NGHIÊN CỨU

2.2 Nhiệt độ và cảm biến đo nhiệt độ

2.2.4 Truyền và xử lý tín hiệu số bằng chuẩn 1-dây cho cảm biến nhiệt độ

DS18B20

Mỗi cảm biến nhiệt độ DS18B20 có một dãy mã 64 bit duy nhất đƣợc lƣu trữ trong bộ nhớ ROM từ khi sản xuất bằng kỹ thuật laser (chỉ đọc, khơng xóa đƣợc). Ý nghĩa của 64 bit đƣợc chia ra thành 3 nhóm, trong đó:

Tám bit đầu tiên là mã định danh họ của thiết bị, mã của DS18B20 là 28h. 48 bit tiếp theo là mã số xuất xƣởng duy nhất, nghĩa là mỗi cảm biến DS18B20

Tám bit có cuối là byte mã kiểm tra CRC (cyclic redundancy check), byte này đƣợc tính tốn từ 56 bit đầu tiên của dãy mã trên ROM.

Để truy cập lên cảm biến một dây DS18B20 ta phải sử dụng hai nhóm lệnh: các lệnh ROM và các lệnh chức năng (function commands) bộ nhớ, các lệnh này có thể đƣợc mơ tả ngắn gọn nhƣ sau:

Sau khi thiết bị chủ (thƣờng là một vi điều khiển) phát hiện ra một xung presence, nó có thể xuất ra một lệnh ROM. Có 5 loại lệnh ROM, mỗi lệnh dài 8 bit. Thiết bị chủ phải đƣa ra lệnh ROM thích hợp trƣớc khi đƣa ra một lệnh chức năng để giao tiếp với cảm biến DS18B20.

Các lệnh ROM

- READ ROM (33h)

Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xƣởng, 8 bit kiểm tra CRC. Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS18B20, 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.

- 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 DS18B20 cụ thể khi trên bus có nhiều cảm biến DS18B20 cùng nối vào. Chỉ có DS18B20 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 DS18B20 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)

Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của DS18B20 mà không cần gửi chuỗi mã 64 bit ROM. Nhƣ vậy sẽ tiết kiệm

đƣợc thời gian chờ đợi nhƣng chỉ mang hiệu quả khi trên bus chỉ có một cảm biến.

- SEARCH ROM (F0h)

Lệnh này cho phép bộ điều khiển bus có thể dị tìm đƣợc số lƣợng thành viên thiết bị đang đƣợc đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu trình dị tìm.

- 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 DS18B20 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.

Lệnh chức năng bộ nhớ:

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 DS18B20. 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 DS18B20, 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 các byte dữ liệu vào các byte có thể ghi đƣợc của bộ nhớ nháp của DS18B20. Byte đầu tiên đƣợc ghi vào byte 2 (thanh ghi TH của bộ nhớ nháp) còn byte thứ hai đƣợc ghi vào byte 3 (thanh ghi TL 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ác byte này dừng đƣợc ghi 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 (byte0 và byte 1 chứa giá trị nhiệt độ đƣợc chuyển đổi) và tiếp tục cho đến byte 8 (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ào bộ nhớ EEPROM.

- 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. Thời gian chuyển đổi không quá 200 ms, 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 DS18B20 đ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.

Dữ liệu đƣợc truyền hoặc nhận (nếu có) thì đƣợc truyền ngay sau mỗi lệnh đƣợc gửi đến thiết bị. Các lệnh đƣợc gửi theo sau một xung reset (và xung presence)

Nếu có nhiều thiết bị 1-dây nối trên cùng bus, đƣợc điều khiển bở một bộ điều khiển thì việc điều khiển từng thiết bị đƣợc chỉ định bằng ROM CODE của từng thiết bị đó. Và sau mỗi lệnh đƣợc truyền đi cùng với ROM CODE của thiết

bị nhận lệnh. Riêng trƣờng hợp chỉ có một thiết bị trên bus thì sử dụng lệnh Skip ROM và khơng cần tới ROM CODE nữa.

Với hệ thống nhiều thiết bị cùng đƣợc nối trên cùng một đƣờng bus thì chúng đƣợc gọi tới bằng ROM CODE của từng thiết bị. Bắt đầu bằng Reset, Match rom, 64 bit romcode tiếp sau là lệnh. Nhƣ vậy bộ điều khiển có thể gọi và điều khiển từng thiết bị riêng lẻ trong hệ thống thơng qua Rom Code của từng thiết bị đó. Điều này tránh đƣợc xung đột khi tất cả các thiết bị đều đƣợc nối trên cùng một dây Bus. Điều này đòi hỏi hệ thống phải có đƣợc thơng tin về Rom Code của những thiết bị đƣợc kết nối vào Bus.

Mô tả việc giao tiếp hệ thống với nhiều thiết bị nhƣ sau:

Đầu tiên là xung reset tất cả các thiết bị, sau đó là xung trả lời của các thiết bị (xung presence). Tiếp theo bộ điều khiển đƣa ra lệnh Match Rom, theo sau đó là 64 Bit Rom Code định danh của thiết bị mà bộ điều khiển muốn giao tiếp. Sau đó là lệnh chức năng. Khi này chỉ có thiết bị có Rom Code đƣợc gọi mới trả lời.

Hình 2.4 giản đồ xung của quá trình kết nối, gửi lệnh gọi thiết bị bằng Rom Code của bộ điều khiển giao tiếp 1-dây.

Hình 2.5 Sơ đồ khối miêu tả hoạt động của hệ thiết bị sử dụng giao tiếp 1-dây

Đánh giá giao tiếp 1-dây và cảm biến nhiệt độ DS18B20:

Giao tiếp 1-dây là một trong những giao tiếp có cấu hình đơn giản nhất, chỉ cần 1 dây bus dữ liệu (và đất). Có khả năng truyền xa và kết nối rất nhiều thiết bị chỉ với một đƣờng dây. Có chi phí thấp, độ tin cậy cao. Giao tiếp 1-dây rất phù hợp với việc kết nối nhiều thiết bị, với khoảng cách khá lớn. Tuy nhiên giao tiếp 1-dây có nhƣợc điểm là tốc độ truyền dữ liệu thấp (nhỏ hơn 200kbps), chỉ phù hợp với cơng việc địi hỏi tốc độ chậm. Các công việc đo đạc thu thập số liệu nhƣ đo thông số môi trƣờng rất phù hợp với giao tiếp 1-dây.

Cảm biến nhiệt độ DS18B20 là một trong những cảm biến nhiệt độ mơi trƣờng phổ biến nhất hiện nay. Nó mang những ƣu điểm nhƣ nhỏ gọn, độ chính xác cao, đƣợc chuẩn hóa sẵn, sử dụng giao tiếp 1-dây rất đơn giản trong việc lắp đặt, bảo dƣỡng, dễ dàng kết nối lắp đặt nhiều cảm biến ở nhiều vị trí độ chính

Bộ điều khiển: gửi xung reset, lệnh, mã ROM tới các thiết bị... và sẵn sàng nhận lại dữ liệu.

thiết bị 1 thiết bị 2 thiết bị ... N thiết bị đƣợc gọi

(theo ROM CODE) thiết bị đƣợc gọi, trả lời lại

bằng xung (Presence). Và bắt đầu truyền dữ liệu (nếu lệnh điều kiểu yêu cầu)

xác, độ phân giải, độ tin cậy hồn tồn đáp ứng đƣợc cơng việc đo nhiệt độ của môi trƣờng. Tuy nhiên cảm biến này có thể khơng đáp ứng đƣợc các yêu cầu trong việc đo nhiệt độ ngoài nhiệt độ môi trƣờng, yêu cầu đo đƣợc nhiệt độ cao hơn 125o

C và cần đáp ứng nhanh.

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng hệ thống đo đạc, thu thập và xử lý tín hiệu số các thông số môi trường từ xa qua mạng ethernet trên nền linux nhúng (Trang 29 - 35)

Tải bản đầy đủ (PDF)

(86 trang)