Truyền thông với bộ cảm biến

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 40 - 41)

2.2.4.1. Khởi động cảm biến

Bước đầu tiên, bộ cảm biến được cấp nguồn trờn chõn VDD. Tốc độ của quá trình cấp nguồn không thấp hơn 1V/ms. Sau khi được cấp nguồn, bộ cảm biến cần 11ms để đi vào trạng thái Ngủ. Không có lệnh nào phải được truyền thông đi trước thời gian đó.

2.2.4.2. Gửi một lệnh.

Để khởi tạo một cuộc truyền thông, một dãy. Khởi động truyền thông (Transmission Start sequence) phải được phát ra. Nó bao gồm một sự đi xuống của đường DATA trong khi đường SCK là cao, kèm theo đó là một xung thấp trên SCK và đường DATA lên cao trở lại trong khi SCK vẫn ở trạng thái cao - tham khảo hình 2.16

Lệnh tiếp bao gồm ba bit địa chỉ (chỉ '000' là được hỗ trợ) và năm bit lệnh. SHT7x biểu thị sự thu nhận đúng đắn mỗi lệnh bằng cách kộo chõn DATA xuống thấp (bit ACK) sau sườn xuống của xung SCK thứ 8. Đường DATA được giải phóng (và đi vào trạng thái cao) sau sườn xuống của xung SCK thứ 9.

Lệnh

Reserved 0000x

Measure Temperature 00011

Measure Relative Humidity 00101

Read Status Register 00111

Write Status Register 00110

Reserved 0101x-1110x

Soft reset, resets the interface, clears the status register to

Default values. Wait minimum 11ms before next command 1110

Sau khi phát ra một lệnh đo ('00000101' đối với độ ẩm tương đối, '00000011' đối với nhiệt độ), bộ điều khiển phải đợi cho đến khi phép đo hoàn tất. Thời gian đợic cực đại là 20/80/320 ms đối với một phép đo 8/12/14 bit. Thời gian này thay đổi theo tốc độ của bộ dao động nội và có thể thấp hơn đến 30%. Để báo hiệu hoàn tất một phép đo, SHT7x kéo đường dữ liệu xuống thấp và đi vào chế độ nghỉ (Idle Mode). Bộ điều khiển phải đợi dấu hiệu Sẵn sàng dữ liệu (Data Ready) này trước khi khởi động SCK để đưa dữ liệu ra. Dữ liệu đo được lưu cho đến khi xuất ra, vì thế bộ điều khiển có thể tiếp tục với các nhiệm vụ khác và xuất dữ liệu lúc thích hợp.

2 byte của dữ liệu đo và một byte của kiểm t ra tổng CRC (CRC checksum) sẽ được truyền đi với byte MSB được truyền đi trước. Bộ vi điều khiển phải báo nhận mỗi byte bằng cách kéo đường DATA xuống thấp.

Truyền thông kết thúc sau bít báo nhận (acknowledge bit) của dữ liệu CRC. Nừu kiểm tra tổng CRC - 8 không sử dụng, bộ điều khiển có thể kết thúc quá trình truyền thông sau byte LSB bằng cách giữ ACK ở trạng thái cao. Thiết bị tự động quay trở về chế độ ngủ sau khi phép đo và truyền thông kết thúc.

Chó ý quan trọng: Để giữ cho nhiệt tự phát sinh nhỏ hơn 0.10 C, SHT7x phải không được làm việc lâu hơn 10% thời gian (chẳng hạn; tối đa chỉ một phép đo mỗi giây với độ chính xác 12 bit phải được thiết lậ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 40 - 41)