Quy trình giao tiếp

Một phần của tài liệu đồ án kiến trúc xây dựng mô hình thiết kế nhà thông minh do Quỹ tài trợ Joseph Rowntree của Mỹ thực hiện (Trang 33 - 36)

Quy trình giao tác để truy nhập DS18B20 diễn ra như sau:

Bước 1: Khởi tạo

Bước 2: Lệnh ROM (tiếp theo bởi bất kỳ sự trao đổi dữ liệu nào)

Bước 3: Lệnh hàm DS18B20 (tiếp theo bởi bất kỳ sự trao đổi dữ liệu nào) Việc tuân theo quy trình này mỗi lần truy nhập DS18B20 là rất quan trọng, vì DS18B20 sẽ không đáp lại nếu bất kỳ bước nào trong quy trình trên bị thiếu hoặc không theo thứ tự ở trên. Ngoại trừ duy nhất đối với quy tắc này là các lệnh Search ROM [F0h] và Alarm Search [Ech]. Sau khi phát ra bất kỳ lệnh nào trong 2 lệnh trên, thiết bị chủ phải quay trở về bước 1 trong quy trình trên.

Khởi tạo

Tất cả các giao dịch trên bus 1-Dây bắt đầu với quy trình khởi tạo (intialization). Quy trình khởi tạo bao gồm một xung xác lập lại (reset) được truyền đi bởi bus chủ và tiếp đó là các xung hiện (presence pulse) được truyền đi bởi các thiết bị phụ. Xung hiện giúp bus chủ biết rằng các thiết bị phụ (DS18B20) đang có mặt trên bus và sẵn sàng hoạt động. Việc định thời cho xung xác lập lại (reset) và xung hiện đuợc trình bày chi tiết trong phần báo hiệu 1-Dây.

Các lệnh ROM (ROM Commads)

Sau khi bus chủ đã phát hiện ra một xung hiện, nó có thể phát ra một lệnh ROM. Các lệnh này tác động trờn cỏc mó 64 - bit duy nhất của mỗi thiết bi phụ và cho phép bus chủ chọn ra một thiết bị cụ thể nếu có nhiều thiết bị bus 1 - Dõy. Cỏc lệnh này cũng cho phép thiết bị chủ xác định số lượng và loại thiết bị

có mặt trên bus hoặc xác định thiết bị nào đang ở trạng thái cảnh báo (alarm conditon). Có năm lệnh ROM, và mỗi lệnh dài 8 bit. Thiết bị chủ phải phát ra một lệnh ROM thích hợp trước khi phát ra một lệnh hàm DS18B20. Đồ thị luồng ở Hình 3.1 trong phần phụ lực 3 minh họa cho hoạt động của các lệnh ROM.

SEARCH ROM [F0]

Khi một hệ thống được cấp nguồn khởi tạo, thiết bị chủ phải nhận dạng cỏc mó ROM của tất cả các thiết bị trên bus để nó xác định số lượng và kiểu các thiết bị phụ. Như được trình bày trong phụ lục 2, lệnh SEARCH ROM sẽ thực giúp thực hiện các công việc nói trên.

READ ROM [33h]

Lệnh này có thể chỉ được sử dụng khi có một thiết bị phụ trên bus. Nó cho phép bus chủ đọc mã ROM 64 bit mà không sử dụng thủ tục Search ROM. Nếu lệnh này được sử dụng khi có nhiều hơn một thiết bị phụ trên bus, một sự đụng độ dữ liệu sẽ xảy ra khi tất cả các thiết bị phụ thực hiện đáp trả cùng một lúc.

MATCH ROM [55h]

Lệnh Match ROM kèm theo sau nó là một chuỗi mà ROM 64-bit cho phép bus chủ định địa chỉ nào mà phù hợp chính xác với chuỗi mã ROM 64 bit thì mới trả lời lệnh hàm phát ra từ bus chủ; tất cả các thiết bị phụ khỏc trờn bus chủ sẽ chờ đợi một xung xác lập lại (reset)

SKIP ROM [CCh]

Thiết bị chủ có thể sử dụng lệnh này để định địa chỉ tất cả các thiết bị trên bus một cách đồng thời mà không phải phát ra bất kỳ thông tin nào về mã ROM. Ví dụ, thiết bị chủ có thể làm cho tất cả DS18B20 trên bus phải thực hiện việc chuyển đổi nhiệt độ đồng thời bằng cách gửi đi một lệnh Skip ROM và theo sau là một lệnh Convert T [44h].

Lưu ý rằng lệnh Read Scratchpad [BEh] có thể đi lền theo sau lệnh Skip ROM nếu và chỉ nếu có một thiết bị phụ trên bus. Trong trường hợp này, thời gian được

tiết kiệm bằng cách cho phép thiết bị chủ đọc từ thiết bị phụ mà không phải gửi đi mã ROM 64- bit của thiết bị phụ.

ALARM SEARCH [ECh]

Hoạt động của lệnh này giống hệt hoạt động của lệnh Search ROM ngoại trừ một việc, đó là chỉ có các thiết bị phụ với một tập cờ cảnh báo (alarm flag) mới trả lời. Lệnh này cho phép thiết bị chủ xác định có DS18B20 nào đang ở trạng thái cảnh báo trong quá trình chuyển đổi gần đây nhất không.

Các lệnh hàm DS18B20

Sau khi bus chủ sử dụng một lệnh ROM để định địa chỉ của DS18B20 mà nó giao tiếp, thiết bị chủ có thể phát ra một trong các lệnh hàm DS18B20. Các lệnh này cho phép thiết bị chủ đọc tới hoặc ghi từ bộ nhớ Scratchpad của DS18B20, khởi tạo chuyển đổi nhiệt độ và xác định chế độ nguồn điện cấp. Các lệnh hàm DS18B20 được minh họa trong Hình 3.2 ở Phụ lục 3

CONVERT T [44h]

Lệnh này khở tạo một quá trình chuyển đổi nhiệt độ. Sau khi chuyển đổi, dữ liệu nhiệt độ kết quả được lưu trữ trong thanh ghi nhiệt độ 2-byte nằm trong bộ nhớ scatchpad và DS18B20 quay về trạng thái nghỉ điện áp thấp của nó. Tham khảo phần Hoạt động do nhiệt độ và Cấp nguồn cho DS18B20 để biết thêm thông tin về việc sử dụng lệnh này.

WRITE SCRATCHPAD [4Eh]

Lệnh này cho phép thiết bị chủ ghi 3 byte dữ liệu tới bộ nhớ scratchpad của DS18B20. Byte dữ liệu đầu tiên được ghi vào trong thanh TL (byte thứ 3 của scratchpad). Dữ liệu phải được truyền đi sao cho bit ý nghĩa thấp nhất được truyền đi trước. Tất cả 3 byte phải được ghi trước khi thiết bị chủ phát ra một xung xác lập lại (reset), nếu không dữ liệu sẽ bị lỗi.

READ SCRATCHPAD [BEh]

Lệnh này cho phép thiết bị chủ đọc nội dung của bộ nhớ scratchpad. Việc truyền dữ liệu bắt đầu với bit ý nghĩa thấp nhất của byte 0 và tiếp tục cho đến khi

byte thứ 9 (byte thứ 8 - CRC) được đọc. Thiết bị chủ có thể phát ra xung xác lập lại (reset) để kết thúc việc đọc tại bất kỳ thời điểm nào nếu chỉ một phần của dữ liệu scratchpad được yêu cầu.

COPY SCRATCH [48]

Lệnh này sao chép nội dung của thanh ghi TH, TL và thanh ghi cấu hình của bộ nhớ scratchpad (byte 2,3 và 4) tới EEPROM. Tham khỏa phần Cõpos nguồn cho DS18B20 để biết thêm thông tin về việc sử dụng lệnh này.

RECLL E2 [E8h]

Lệnh này khôi phục lại (recall) các giá trị kích hoạt cảnh baois (TH vàTL ) và dữ liệu cấu hình từ EEPROM và các vị trí dữ liệu trong byte 2, 3, và 4 tương ứng trong bộ nhớ Scratchpad. Thiết bị chủ có thể phát ra các khe thời gian đọc theo sau lệnh Recall E2 và DS18B20 sẽ chỉ ra trạng thái khội phục bằng cách truyền bit 0 trong khi quá trình khôi phục xảy ra một cách tự động lúc bật nguồn, vì thế dữ liệu hợp lệ là sẵn sàng trong bộ nhớ scratchpad ngay khi nguồn được cấp cho thiết bị.

READ POWER SUPPYLY [B4h]

Thiết bị chủ phát ra lệnh này và tiếp theo sau là một khe thời gian đọc để xác định có DS18B20 nào trên bus đang sử dụng nguồn ký sinh hay không. Trong khoảng thời gian của khe thời gian đọc, DS18B20 mà được cấp nguồn ngoài sẽ cho phép bus vẫn ở trạng thái cao. Tham khảo phần Cấp nguồn cho DS18B20 để biết thêm thông tin về việc sử dụng lệnh này.

Một phần của tài liệu đồ án kiến trúc xây dựng mô hình thiết kế nhà thông minh do Quỹ tài trợ Joseph Rowntree của Mỹ thực hiện (Trang 33 - 36)

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

(82 trang)
w