Đo cường độ dòng điện của các nút mạng các trạng thái : ngủ,

Một phần của tài liệu LUẬN VĂN:MẠNG CẢM NAHANJ KHÔNG DÂY VÀ ĐÁNH GIÁ BẰNG THỰC NGHIỆM MỘT SỐ THÔI SỐ QUA ĐiỀU KHIỂN THAAM NHẬP MÔI TRƯỜNG pot (Trang 54 - 100)

dữ liệu ở chế độ lập lịch tập trung.

a. Chế độ lập lịch tập trung

Lập lịch tập trung là một trong nhiều cách tổ chức hoạt động của các nút mạng trong mạng WSN. Với lập lịch tập trung, hoạt động của mạng sẽ do nút cơ sở điều khiển. Tất cả các nút cảm nhận khác trong mạng sẽ hoạt động theo yêu cầu của nút mạng cơ sở, các yêu cầu điều khiển này đã được nút mạng cơ sở sắp xếp cố định và trở thành một lịch trình hoạt động cho mạng đó.

 Hoạt động:

 Nút cơ sở: Sẽ lần lượt yêu cầu từng nút mạng gửi dữ liệu truyền về. Mỗi nút mạng khi nhận được yêu cầu sẽ phải gửi dữ liệu phản hồi về cho nút cơ sở.

Ban đầu, nút cơ sở gửi yêu cầu tới một nút cảm nhận n (NútID=n). Sau khi gửi gói tin yêu cầu nút n ra ngoài môi trường thì các nút mạng khác cũng đều nhận được yêu cầu đó chứ không riêng nút n nhận được. Tiếp theo nút mạng cơ sở chuyển sang chế độ nhận dữ liệu từ nút mạng cảm nhận truyền về. Lúc này, nút mạng cơ sở sẽ nhận dữ liệu, nếu nhận không thành công thì nhận lại lần nữa. Tuy nhiên, quá trình nhận lại này sẽ được giới hạn về mặt thời gian. Tức là với mỗi một nút cảm nhận, nút cơ sở chỉ dành cho một lượng thời gian nhất định, nếu sau khoảng thời gian đó mà vẫn không nhận được gói dữ liệu truyền về thì tức là nút mạng được yêu cầu đó đã không nhận được yêu cầu hoặc là gói dữ liệu truyền vễ đã gặp phải lỗi truyền nào đó ngoài môi trường dẫn tới nút cơ sở không thể nhận được. Lúc này nút cơ sở sẽ phải bỏ qua nút đó để chuyển tiếp sang yêu cầu nút khác. Nếu trong thời gian đó mà nút cơ sở nhận được thành công gói dữ liệu của nút cảm nhận truyền về thì sẽ tiến hành xử lý gói tin và hiển thị hoặc lưu trữ dữ liệu nhận được đó. Sau khi xử lý xong gói tin, trước khi chuyển sang yêu cầu nút tiếp theo (n+1) thì nút cơ sở sẽ trễ một khoảng tdelay. Lý do phải có khoảng trễ này sẽ được giải thích tại phần hoạt động của nút cảm nhận. Như vậy là nút cơ sở đã hoàn thành việc yêu cầu và nhận gói tin từ một nút cảm nhận trong mạng. Sau đó nút cơ sở sẽ tăng thêm 1 vào địa chỉ của nút sẽ yêu cầu, tức là sẽ yêu cầu nút cảm nhận tiếp theo. Quá trình được lặp lại liên tục, nút cơ sở yêu cầu và nhận dữ liệu của lần lượt từng nút trong mạng, sau khi hết một lượt lại tiến hành quay lại với nút đầu

tiên.

while (TRUE) {

for(i=1;i<max;i++) // max là số nút mạng {

tbcTransmit(i,0xFF);// gửi yêu cầu cho nút I, loại gói tin điều khiển t = (int) sppGetTime(); // lấy thời gian trước khi nhận

do{ //Nếu nhận không thành công sẽ nhận lại cho //toi khi hết 800ms thì thôi.

tbcReceive();

}while((RXI.status != SPP_RX_FINISHED)&&( ((int) sppGetTime()-t)<80)); tbcPrintTable(); // xử lý gói tin

delay(10000);//Thời gian Master đợi các Slave tính toán, xử lý dữ liệu }

}

Giải thuật của nút cơ sở:

Hình 3.9 Giải thuật nút cơ sở

Khởi tạo

Addr = 1 Gửi yêu cầu

Nhận dữ liệu Nhận ok? & tRx<0.8s Xử lý Trễ Addr++ Addr>max? Đ S S Đ

 Nút cảm nhận: Luôn ở trạng thái sẵn sàng nhận yêu cầu của nút cơ sở. Ngay sau khi nhận được yêu cầu sẽ tiến hành gửi dữ liệu trở về.

Ban đầu, nút cảm nhận sẽ luôn ở trong trạng thái nhận dữ liệu, nếu nhận không thành công thì nhận lại cho tới khi nhận được gói dữ liệu thành công. Sau khi nhận được gói, nút cảm nhận tiến hành tách từng trường dữ liệu của gói đã nhận được và kiểm tra xem đó có phải nút cơ sở yêu cầu chính nó hay không. Nếu đúng thì nút cảm nhận sẽ trễ một khoảng thời gian ngắn rồi mới tiến hành gửi dữ liệu trở về cho nút cơ sở. Rồi sau đó lại quay trở lại quá trình nhận yêu cầu để chờ tín hiệu yêu cầu lần tiếp theo. Nếu gói tin nhận được không phải gói yêu cầu nó gửi dữ liệu thì có 2 khả năng: hoặc đó là gói tin yêu cầu của nút cơ sở tới một nút khác, hoặc đó là gói tin dữ liệu của một nút cảm nhận khác đang truyền về. Khi đó, nó sẽ quay trở lại việc nhận dữ liệu từ môi trường. Nhưng sau mỗi quá trình nhận thì nút cảm nhận lại phải tiến hành tách các trường dữ liệu trong gói tin nhận được và kiểm tra các trường đó. Các công việc này sẽ tốn một khoảng thời gian và khiến cho nút cảm nhận quay trở lại quá trình nhận yêu cầu muộn hơn nút cảm nhận vừa nhận được yêu cầu và đã gửi dữ liệu đi. Và cũng chính vì quá trình xử lý mất một khoảng thời gian nên nút cơ sở phải trễ đi một khoảng để khi gửi tin yêu cầu thì các nút cảm nhận khác có thể nhận được. Giải thuật nút cảm nhận: Hình 3.10 Giải thuật nút cảm nhận Đ Khởi tạo Nhận yêu cầu Nhận ok?

Kiểm tra địa chỉ

Trễ Truyền dữ liệu

Đ

S

while (TRUE) { do{ tbcReceive(); }while(RXI.status != SPP_RX_FINISHED); if((nútTarget[n]==1)&& (nútType[n]==0xFF)) { delay(20000); // Trễ để tbcTransmit(0xFFFF,0xFF00); } } Ơ b. Lập lịch tập trung kết hợp với lịch ngủ:

Trên thực tế, mạng cảm nhận không dây là mạng có tần suất truyền nhận thấp. Các gói tin truyền trong mạng không đòi hỏi phải có tốc độ nhanh. Trong một số ứng dụng như theo dõi thông tin từ môi trường thì thậm chí còn được sắp xếp một lịch hoạt động và lịch ngủ đều đặn theo chu kỳ. Việc đưa lịch ngủ vào quá trình hoạt động với

2 1 3 4 Nút cơ sở Master RS232 Các nút cảm nhận (Slave) Các nút cảm nhận (Slave) Các nút cảm nhận (Slave) Các nút cảm nhận (Slave)

thời gian hợp lý sẽ giải quyết được vấn đề tiết kiệm năng lượng mà lại không ảnh hưởng tới việc giám sát thông tin môi trường của mạng.

Ý tưởng cho mô hình này như sau: Nút cơ sở sẽ có một lịch hoạt động và lịch nghỉ đan xen nhau và cố định về mặt thời gian. Các nút cảm nhận khác sẽ phải có biện pháp nào đó để có thể hoạt động và nghỉ gần như trùng khớp với lịch hoạt động và lịch nghỉ của nút cơ sở. Như vậy thì toàn mạng sẽ có một khoảng thời gian hoạt động và thơi gian nghỉ tương đối là đều đặn. Trong thời gian hoạt động, mạng sẽ hoạt động dựa trên cơ chế lập lịch tập trung mà ta đã giới thiệu ở trên. Trên thực tế, khoảng thời gian hoạt động và nghỉ của các nút mạng sẽ phụ thuộc vào các yếu tố: yêu cầu đòi hỏi của ứng dụng cho phép thời gian nghỉ là bao lâu, số lượng nút mạng cảm nhận là bao nhiêu sẽ yêu cầu một khoảng thời gian hoạt động tối thiểu đủ để nút cơ sở thu thập dữ liệu có thể thu thập dữ liệu từ tất cả các nút trong mạng.

Giải quyết bài toán: Ta thấy, nút cơ sở sẽ một quá trình hoạt động khá đơn giản, đan xen giữa làm việc và nghỉ. Vấn đề khó khăn ở đây đó là làm sao để các nút cảm nhận có thể cùng làm việc và cùng nghỉ với nút cơ sở một cách tương đối chính xác. Các nút cảm nhận hoàn toàn tách biệt với nút cơ sở và chỉ có thể giao tiếp bằng truyền nhận không dây khiến cho việc đồng bộ thời gian giữa các nút mạng ở đây gặp nhiều khó khăn. Giản đồ mô tả quá trình hoạt động của các nút trong mạng như sau sẽ giải quyết được vấn đề khó khăn đó:

Hình 3.11. Thời gian hoạt động và ngủ của nút mạng Master và Slaver

- Quá trình làm việc của nút cơ sở: nút cơ sở sẽ hoạt động đều đặn với thời gian làm việc là tactive và sẽ nghỉ một khoảng tsleep. Sau đó lại lặp lại quá trình làm việc và nghỉ. Trong quá trình làm việc, nút cơ sở sẽ hoạt động với cơ chế lập lịch tập trung như đã đưa ra ở trên.

Giải thuật cho nút cơ sở:

N tx tsl tactive tsleep T Master Slaver

Hình 3.12 Giải thuật nút cơ sở trong lập lịch tập trung kết hợp với lịch ngủ

Đoạn chương trình viết cho chu trình hoạt động, sau chu trình này là chuyển sang chế độ nghỉ: Thời gian nhận tối đa dành cho một nút là không quá 800ms, tổng số nút cảm nhận là max, tổng thời gian làm việc là time_active.

t3 = (int)sppGetTime(); do{ for(i=1;i<max;i++) { tbcTransmit(i,0xFF); Đ Khởi tạo Addr = 1 Gửi yêu cầu Nhận dữ liệu Nhận ok? & tRx<0.8s Xử lý Trễ Addr++ S Đ Addr > N Nghỉ tsleep S

t2 = (int) sppGetTime(); do{

tbcReceive();

}while((RXI.status != SPP_RX_FINISHED)&&( ((int) sppGetTime()- t2)<80)); tbcPrintTable(); delay(10000); if(((int)sppGetTime()-t3)>time_active) break; }

}while( ((int)sppGetTime()-t3) < time_active );

-Nút cảm nhận: cũng sẽ có khoảng thời gian làm việc và khoảng nghỉ đan xen lẫn nhau. Tuy nhiên để có thể đồng bộ thời gian với hoạt động của nút cơ sở thì nút cảm nhận sẽ phải mất một khoảng thời gian làm việc nhiều hơn chu kỳ làm việc bình thường để xác định điểm làm việc trùng với nút cơ sở.

Ngay sau khi được khởi động, nút cơ sở sẽ tiến hành việc bám vào chu trình làm việc của nút cơ sở. Nút cảm nhận sẽ tiến hành nhận gói tin, nếu nhận lỗi thì nhận lại, tới khi nào nhận thành công (có thể là nút mạng cơ sở gửi yêu cầu một nút nào đó, có thể là một nút mạng cảm nhận đang truyền dữ liệu về) thì chứng tỏ mạng đang trong khoảng thời gian làm việc. Lúc này nút cơ sở đó mới bắt đầu đi vào một chu trình làm việc cụ thể.

Chu trình làm việc của nút cảm nhận sẽ được chia làm N chu trình làm việc nhỏ. Trong đó có chu kỳ đầu tiên sẽ khác biệt so với các chu kỳ còn lại và (N-1) các chu kỳ tiếp theo sẽ giống nhau.

Chu kỳ đầu tiên: nút cảm nhận sẽ nhận gói tin yêu cầu và đáp ứng các yêu cầu nhận được theo đúng như cơ chế lập lịch tập trung cho nút mạng cảm nhận đã giới thiệu ở trên. Tuy nhiên, đây chính là chu kỳ làm việc để nút cảm nhận có thể xác định được thời điểm làm việc và thời điểm nghỉ của mình trong các chu kỳ tiếp theo. Việc xác định được làm như sau: Nút cảm nhận hoạt động bình thường, nhưng nếu khi nhận yêu cầu lỗi thì bắt đầu lấy thời gian tại thời điểm đó lưu vào một biến t1. Sau mỗi một lần nhận gói tin không thành công thì sẽ tiến hành kiểm tra xem lần nhận trước đó có thành công hay không. Nếu có thì tiến hành lấy thời gian tại thời điểm hiện tại vào t1. Nếu trước đó cũng không nhận thành công thì tiến hành kiểm tra khoảng thời gian hiện tại so với t1, nếu như vượt tx thì

chuyển qua trạng thái ngủ. Như vậy tx là khoảng thời gian mà nút cảm nhận liên tiếp không nhận thành công một gói tin nào. Điều đó cũng có nghĩa là các nút mạng đã trong trạng thái nghỉ được một khoảng tx. Sau đó nút cảm nhận sẽ chuyển sang trạng thái ngủ, nhưng sẽ ngủ với một khoảng thời gian tsl = tsleep – tx.

Khi hết thời gian ngủ cũng là hết chu kỳ làm việc đầu tiên. Khi nút cảm nhận này thức dậy, lúc đó các nút mạng khác cũng thức dậy cùng lúc. Như vậy chu kỳ này đã hoàn thành được nhiệm vụ xác định mốc thời gian.

N-1 chu kỳ hoạt động tiếp theo: Nút cảm nhận sẽ hoạt động đều đặn với tactive và tsleep giống như nút cơ sở.

Ta có thể thấy ở đây các khoảng thời gian giữa nút cơ sở và nút cảm nhận chỉ được xác định chính xác ở chu kỳ đầu tiên và các chu kỳ sau sẽ là tương đối. Sau một lượng lớn chu kỳ làm việc sẽ có thể dẫn tới một sai số lớn về mặt thời gian giữa các nút. Chính vì thế mà sau mỗi N chu kỳ làm việc mà lại phải tiến hành lặp lại việc xác định mốc thời gian. Với việc làm này, ta đã giải quyết được hoàn toàn vấn đề đồng bộ thời gian giữa các nút cảm nhận và nút cơ sở.

Chương trình cho nút mạng cảm nhận với một số giá trị cụ thể: do{ tbcReceive(); }while(RXI.status != SPP_RX_FINISHED); while (TRUE) { do{ tbcReceive(); if(RXI.status != SPP_RX_FINISHED) { if(i==0) t1 = (int)sppGetTime(); i++; } }while((RXI.status != SPP_RX_FINISHED)&&(((int)sppGetTime()- t1)<1000)); //tx = 10s

i=0;

tbcPrintTable(); //xử lý, nếu đúng yêu cầu thì gủi dữ liệu. if( ( (int)sppGetTime()-t1 )>1000 ) { t2 = (int)sppGetTime(); do{}while( ((int)sppGetTime()-t2)<1000); //tsl = 10s for(i=1;i<30;i++) //N = 30 { t1 = (int)sppGetTime(); do{ t2 = (int)sppGetTime(); do{ tbcReceive(); }while((RXI.status != SPP_RX_FINISHED)&&(((int)sppGetTime()-t2)<80)); tbcPrintTable(); }while(((int)sppGetTime()-t1)<2000); //tactive = 20s t2 = (int)sppGetTime();

do{}while( ((int)sppGetTime()-t2)<2000); //tsleep = 20s }

} }

Giải thuật cho nút cảm nhận như sau:

Hình 3.15 Giải thuật nút cảm nhận trong lập lịch tập trung kết hợp với lịch ngủ

Đ Đ Đ Khởi tạo Nhận Nhận ok? Nhận ok? i=0 Nghỉ (tsleep-tx) Đ S S Nhận yêu cầu Đ i!=0? S Đ Kiểm tra địa chỉ S i++ t1=sppGetTim Truyền dữ liệu Trễ j=0 t2=sppGetTime Đ Nhận ok? i=0 S Nhận yêu cầu Đ Kiểm tra địa chỉ S Truyền dữ liệu Trễ Đ (sppGetTime- t2)>tactive S Nghỉ tsleep j++ j>N Đ S (sppGetTime-t1)>tx S

c. Đo dòng điện tiêu thụ của nút mạng trong chế độ lập lịch tập trung

* Các bước chuẩn bị thí nghiệm

 Nạp phần mềm lập lịch cho các nút mạng

 Chuẩn bị đồng hồ đo Hioki 3803 Digital Hitester sai số 1.5%

 Osillo… * Tiến hành đo đạc

Ta sẽ bố trí tiến hành đo dòng điện tiêu thụ của nút mạng ở các trạng thái ngủ, truyền, nhận và không truyền, không nhận tín hiệu.

- Tiến hành đo dòng điện tiêu thụ của nút mạng lúc nút mạng nhận dữ liệu - Tiến hành đo dòng điện tiêu thụ của nút mạng lúc nút mạng truyền dữ liệu - Tiến hành đo dòng điện tiêu thụ của nút mạng lúc nút mạng ngủ

- Tiến hành đo dòng điện tiêu thụ của nút mạng lúc nút mạng không truyền không nhận dữ liệu

a. Tiến hành đo dòng điện tiêu thụ của nút mạng lúc nút mạng nhận dữ liệu

Cho nút mạng hoạt động ở chế độ nhận dữ liệu, nạp chương trình cho nó luôn ở chế độ nhận, sau đó tiến hành đo cường độ dòng điện.

Bao gồm các thủ tục:

+ Thiết đặt chế độ hoạt động cho module RF

+ Cho phép module RF bắt đầu thu tín hiệu (không quan tâm đến dữ liệu thu được) + Chương trình lặp vô hạn include <chipcon/hal.h> void main() { // X-tal frequency: 14.745600 MHz // RF frequency A: 868.277200 MHz Rx // RF frequency B: 868.277200 MHz Tx // RX Mode: Low side LO

// Data rate: 2.

#include <chipcon/reg1010.h> #include <chipcon/cc1010eb.h> #4 kBaud

// Data Format: Manchester // RF output power: 4 dBm // IF/RSSI: RSSI Enabled

RF_RXTXPAIR_SETTINGS code RF_SETTINGS = { 0x4B, 0x2F, 0x15, // Modem 0, 1 and 2: Manchester 0x75, 0xA0, 0x00, // Freq A

0x58, 0x32, 0x8D, // Freq B 0x01, 0xAB, // FSEP 1 and 0 0x40, // PLL_RX 0x30, // PLL_TX 0x6C, // CURRENT_RX 0xF3, // CURRENT_TX 0x32, // FREND 0xFF, // PA_POW => 4 dBm 0x00, // MATCH 0x00, // PRESCALER };

// Căn chỉnh vùng nhớ con trỏ dữ liệu

RF_RXTXPAIR_CALDATA xdata RF_CALDATA;

WDT_ENABLE(FALSE);

// Set optimum settings for speed and low power consumption MEM_NO_WAIT_STATES();

// Calibrate

halRFCalib(&RF_SETTINGS, &RF_CALDATA);

// Kích hoạt modum RF trong chế độ nhận

halRFSetRxTxOff(RF_RX, &RF_SETTINGS, &RF_CALDATA); RF_START_RX();// Bắt đầu nhận dữ liệu

// Endless loop

while (TRUE);// Lặp nhận vô hạn. }

Cách đo dòng điện trên sơ đồ mạch :

CC1010 sử dụng nguồn nuôi 3V3, điện áp này được tạo ra từ jump test1 (được đánh dấu đỏ

Một phần của tài liệu LUẬN VĂN:MẠNG CẢM NAHANJ KHÔNG DÂY VÀ ĐÁNH GIÁ BẰNG THỰC NGHIỆM MỘT SỐ THÔI SỐ QUA ĐiỀU KHIỂN THAAM NHẬP MÔI TRƯỜNG pot (Trang 54 - 100)

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

(100 trang)