đo nhiệt độ CC1010EM
Phần này sẽ thiết kế giải thuật để lập trình cho vi điều khiển CC1010 tự động chuyển chế độ làm việc để tiết kiệm năng lƣợng. Cụ thể đã lựa chọn CC1010EM để thử nghiệm, CC1010EM là module gồm vi điều khiển CC1010 và đầu cảm biến nhiệt độ, nó có thể hoạt động độc lập nhƣ một nút mạng hoàn chỉnh. Chƣơng trình đo và truyền thông tin nhiệt độ viết cho CC1010EM đã đƣợc hãng Chipcon cung cấp, tuy nhiên trong đó chƣa có yếu tố tiết kiệm năng lƣợng.
Dƣới đây sẽ đƣa ra thuật toán để tiết kiệm năng lƣợng cho CC1010EM tƣơng ứng với hai giải pháp đã nêu trong chƣơng hai.
Thuật toán cho giải pháp 1: chuyển sang chế độ nghỉ, thức dậy sau mỗi khoảng thời gian nhất định
Hình 3.2. Thuật toán chuyển đổi giữa chế độ tích cực và chế độ nghỉ
- Khởi tạo ADC - Khởi tạo RF - Về chế độ nghỉ
- Đánh thức CC1010 - Đo nhiệt độ, xử lý số liệu - Truyền số liệu - Trở về chế độ nghỉ N Y Đến thời điểm phát số liệu Start
- Bước 1: Khởi tạo Khởi tạo ADC:
Đặt bộ biến đổi ADC về chế độ đơn (10 bit). Đặt điện áp tham chiếu là 1.25V.
Khởi tạo RF:
Thiết lập một trong các tần số RF: 433MHz, 868MHz, 915MHz. Cách điều chế tín hiệu: mã hoá Manchester
Công suất phát: 4 dBm
Tốc độ truyền dữ liệu: 2,4 kbps
Về chế độ nghỉ:
Thiết lập giá trị của bit PCON.IDLE = 01h. - Bước 2
Thời điểm phát số liệu là thời điểm xung nhịp của đồng hồ thời gian thực RTC đã đếm đƣợc 15s sau khi nút mạng chuyển về chế độ nghỉ.
Nếu True : nút mạng sẽ chuyển sang trạng thái của bƣớc 3. Nếu False : nút mạng quay trở lại trạng thái nghỉ.
- Bước 3
Wake up C1010: Nút mạng thức dậy và chuyển sang chế độ tích cực, giá trị của bit PCON.IDLE thay đổi.
Thu thập số liệu (cảm nhận): Cảm biến sẽ thực hiện chức năng cảm biến, thu thập thông tin về nhiệt độ, sau đó đƣa tín hiệu ở dạng tƣơng tự về cho vi điều khiển. Tại vi điều khiển, ADC sẽ chuyển tín hiệu sang dạng số rồi đọc giá trị vừa chuyển đổi.
Phát số liệu cho nút gốc: Bộ thu phát RF bật TX để thực hiện truyền số liệu cảm nhận đƣợc về nút gốc.
Trở về chế độ nghỉ: Thiết lập giá trị cho bit PCON.IDLE = 1
Thuật toán cho giải pháp 2: chuyển về chế độ tắt nguồn, thức dậy khi ADC vƣợt ngƣỡng
Hình 3.3. Thuật toán chuyển đổi giữa chế độ tích cực và chế độ tắt nguồn
- Giai đoạn 1: Khởi tạo Khởi tạo ADC:
- Khởi tạo ADC, định ngƣỡng - Khởi tạo RF - Về chế độ tắt nguồn ADC vƣợt ngƣỡng - Đánh thức CC1010 - Truyền số liệu - Trở về chế độ tắt nguồn Start N Y
Mode, Voltage Reference, Run, Analog Input,...
Gán thanh ghi ADTRH (ADC Threshhold Register) giá trị ngƣỡng Cho phép ngắt từ ADC
Khởi tạo RF:
Thiết lập một trong các tần số RF: 433MHz, 868MHz, 915MHz. Cách điều chế tín hiệu: mã hoá Manchester
Công suất phát: 4 dBm
Tốc độ truyền dữ liệu: 2,4 kbps
Về chế độ tắt nguồn:
Thiết lập PCON.STOP = 01h
- Giai đoạn 2: Chế độ tắt nguồn tiết kiệm năng lượng
Cho đến khi giá trị của ADC chƣa vƣợt qua ngƣỡng đã đặt trƣớc thì node mạng vẫn ở chế độ tắt nguồn tiết kiệm năng lƣợng.
Khi giá trị vƣợt qua ngƣỡng thì sẽ chuyển sang giai đoạn 3. - Giai đoạn 3: Về chế độ tích cực
Nút mạng chuyển sang chế độ tích cực: reset thanh ghi PCON, sau reset PCON.STOP = 00h, nút mạng ở chế độ tích cực.
Nút truyền số liệu.
Về chế độ tắt nguồn: thiết lập PCON.STOP = 01h.
Kết luận
Trên đây vừa nêu hai thuật toán có thể lập trình để tiết kiệm năng lƣợng cho nút mạng CC1010. Tuy nhiên do hạn chế về thời gian nên tác giả chỉ
chọn viết phần mềm nhúng tƣơng ứng và chạy thử nghiệm cho một trong hai giải pháp, cụ thể ở đây chọn giải pháp lập trình cho trƣờng hợp chuyển nút mạng về chế độ nghỉ và đánh thức sau mỗi khoảng thời gian. Chi tiết về phần mềm nhúng này đƣợc trình bày sau đây.