Tiến hành thực nghiệm

Một phần của tài liệu Mạng cảm nhận không dây và đánh giá bằng thực nghiệm một số thông số qua điều khiển thâm nhập môi trường (Trang 47)

3.4.1 Sơ đồ thực nghiệm

Hỡnh 3.4 Sơ đồ thực nghiệm mạng WSN

Nỳt CC1010 nối trực tiếp với mỏy tớnh qua cổng RS232 (gọi là nỳt cơ sở) nhận kết quả từ nỳt cảm nhận (cú thể di động xa nỳt cơ sở). Nỳt cơ sở sẽ phỏt tớn hiệu yờu cầu thu thập dữ liệu từ cỏc nỳt cảm nhận theo nguyờn tắc hỏi vũng, cỏc nỳt cảm nhận sau khi nhận được yờu cầu từ nỳt cơ sở sẽ gửi trả lời

Thớ nghiệm tiến hành cỏc phộp đo sau :

1.Khoảng cỏch D lớn nhất cú để nỳt cảm nhõn và nỳt cơ sở cũn cú thể truyền tớn hiệu được cho nhau.

2.Thời gian truyền nhận dữ liệu giữa nỳt cảm nhận và nỳt cơ sở.

3.Đo cường độ dũng điện của cỏc nỳt mạng cỏc trạng thỏi : ngủ, truyền, nhận dữ liệu ở chế độ lập lịch tập trung.

3.4.1.1 Xỏc định khoảng cỏch D lớn nhất giữa cỏc nỳt mạng để chỳng cũn cú thể truyền nhận cú hiệu quả :

a. Chuẩn bị thớ nghiệm :

- Địa điểm đo : tại sõn trường Đại Học Cụng Nghệ - Nạp phần mềm nhỳng cho cỏc nỳt mạng.

- Chuẩn bị cỏc phụ kiện : thước dõy, mỏy ảnh…

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)

Hỡnh 3.5 Nạp phần mềm cho nỳt mạng WSN

b. Mụ tả quỏ trỡnh đo đạc : Dựng thước dõy để xỏc định cỏc mốc cần đo, khởi động cỏc nỳt mạng. Nỳt cơ sở phỏt tớn hiệu tại một vị trớ cố định, sau đú ta di chuyển nỳt mạng cảm nhận trờn cỏc mốc xỏc định trước, quan sỏt kết quả trờn màn hỡnh LED của nỳt mạng cơ sở.

c. Kết quả đo :

Lần đo thứ Khoảng cỏch (M)

Số gúi yờu cầu nỳt cơ sở truyền đi Số gúi trả lời nỳt cơ sở nhận được Tỉ lệ % nhận được 1 50 100 100 100% 90 100 100 100% 95 100 80 80% 110 100 0 0% 2 50 100 100 100% 90 100 100 100% 95 100 80 80% 96 100 77 77% 97 100 74 74% 100 100 70 70% 105 100 5 5% 3 94 100 100 100 100 100 79 79% 102 100 0 0%

Bảng 3.1 Bảng số liệu đo khoảng cỏch truyền tớn hiệu giữa cỏc nỳt mạng

d. Kết luận :

 Đo ngoài trời khoảng cỏch D giữa nỳt cơ sở và nỳt cảm nhận : D < 95m : nhận 100%

95m < D < 100m : nhận 70% - 80%

Cụng suất phỏt của chip C1010 với nguồn nuụi 3.3V truyền với khoảng cỏch D<100 cỏc nỳt mạng cũn nhận được tớn hiệu.

3.4.1.2 Xỏc định thời gian truyền nhận dữ liệu giữa nỳt cảm nhận và nỳt cơ sở của mạng WSN trờn cơ sở CC1010.

a. Cỏc bước chuẩn bị thớ nghiệm: - Nạp phần mềm cho cỏc nỳt mạng

- Nối nỳt mạng cơ sở giao tiếp với mỏy tớnh qua cổng RS232 - Chạy phần mềm .. để đún kết quả

b. Mụ tả thớ nghiệm và quỏ trỡnh đo

- Sử dụng bộ định thời tớch hợp sẵn trong vi điều khiển CC1010.

- Cấu trỳc của gúi dữ liệu đó được sử dụng trong chương trỡnh cú dạng như sau: 7 byte 2 byte 2 byte 2 byte 2 byte 2 byte

Preamble NỳtID Data Target Type CRC Trong đú:

Preamble : cỏc byte dẫn đường dựng để đồng bộ ngưỡng cho bộ thu RF NỳtID: Địa chỉ của nỳt truyền.

Data: Thụng tin dữ liệu truyền về. Target: Địa chỉ nỳt nhận.

Type: Loại gúi dữ liệu (điều khiển/dữ liệu).

CRC : Byte chứa thụng tin kiểm tra lỗi dư thừa vũng.

. Quy trỡnh truyền nhận : bao gồm hai pha Phase 1: pha truyền

 Truyền 7 byte dẫn đường

 Truyền từng byte và tớnh CRC cho hết 8 byte  Truyền 2 byte CRC

Phase 2 : Pha nhận

 Nhận 7 byte dẫn đường  Nhận 8 byte dữ liệu  Nhận 2 byte CRC

 Kiểm tra CRC

Cỏc bước sử dụng timer để đo, ở đõy sử dụng timer0

 Khởi tạo timer0 chạy ở chế độ định thời, bộ đếm timer0 sẽ tăng lờn mỗi chu kỳ mỏy(0.2713às, với tần số thạch anh là 14,746Mhz). Với CC1010 thỡ một chu kỳ mỏy = 4 chu kỳ thạch anh

 Gọi hàm truyền, đồng thời kớch hoạt timer0 bắt đầu đếm.  Khi hàm truyền kết thỳc thỡ cho timer0 dừng đếm.

 Giỏ trị đếm được của timer0 được lưu lại, nhõn với 0.2713às và hiển thị lờn màn hỡnh.

 Làm tương tự với cỏc phộp đo khỏc (như đo thời gian nhận, tớnh CRC…)

Chương trỡnh khởi tạo timer0: // Khởi tạo timer0 mode 1

TMOD = (TMOD&0xF0)|0x01;

INT_ENABLE(INUM_TIMER0, INT_ON); INT_GLOBAL_ENABLE(TRUE);

// Cỏc biến đếm

byte xdata counter = 0; ulong xdata timeout; word xdata tCounter;

unsigned int xdata value = 0;

//Reset biến đếm và cho timer chạy tại thời điểm bắt đầu đo counter = 0;

TH0 = 0x00; TL0 = 0x00; TF0 = 0;

TIMER0_RUN(TRUE);

// Dừng timer khi kết thỳc đo và in ra thụng bỏo về thời gian đếm được TIMER0_RUN(FALSE);

value = TH0;// thanh ghi đếm của Timer 0 value <<= 8;

value |= TL0;

fTemp = (value*0.2713 + 65535*counter); //

printf("\n\nThoi gian đếm được là: %4.1f us", fTemp); // Hàm ngắt timer0 để tăng biến đếm mỗi khi tmer0 tràn

// Timer0 sẽ đếm từ 0, giỏ trị đếm tăng lờn mỗi 0.2713us, giỏ trị đếm đạt 65535 thỡ timer0 tràn, bỏo ngắt

void TIMER0_ISR() interrupt INUM_TIMER0 { // Reset the timer to generate another interrupt INT_SETFLAG (INUM_TIMER0, INT_CLR);

TIMER0_RUN(FALSE); TH0 = 0x00; TL0 = 0x00; TIMER0_RUN(TRUE); counter++; } // TIMER0_ISR

Chƣơng trỡnh đo thời gian từ nỳt truyền đến nỳt nhận

counter = 0; TH0 = 0x00; TL0 = 0x00; TF0 = 0;

TIMER0_RUN(TRUE);

// Tổng thời gian từ lỳc bắt đầu truyền đến lỳc hết hàm truyền

halRFSendPacket2(PREAMBLE_BYTE_COUNT, txDataBuffer.buffer, PACKET_LENGTH); TIMER0_RUN(FALSE); value = TH0; value <<= 8; value |= TL0;

fTemp = (value*0.2713 + 65535*counter);

printf("\n\nThoi gian truyen het 7 byte preamale + 8 byte data + 2 byte CRC16: %4.1f us", fTemp);

Hỡnh 3.7 Thời gian truyền hết 17 byte dữ liệu từ nỳt truyền đến nỳt nhận Xỏc định thời gian nhận và xử lý dữ liệu tại nỳt nhận

counter = 0; TH0 = 0x00; TL0 = 0x00; TF0 = 0;

TIMER0_RUN(TRUE);

// Tổng thời gian từ lỳc bắt đầu nhận đến lỳc hết hàm nhận

halRFReceivePacket2(byte timeOut, byte* packetData, byte maxLength);

TIMER0_RUN(FALSE); value = TH0;

value <<= 8; value |= TL0;

fTemp = (value*0.2713 + 65535*counter);

printf("\n\nThoi gian nhan het 7 byte preamale + 8 byte data + 2 byte CRC16: %4.1f us", fTemp);

Kết quả đo thời gian nỳt nhận và phõn tớch dữ liệu: 138ms

Hỡnh 3.8 Thời gian truyền hết 17 byte dữ liệu từ nỳt truyền đến nỳt nhận d. Kết luận

Vậy Tổng thời gian thời gian nỳt truyền bắt đầu gửi dữ liệu 17 byte cho đến khi nỳt nhận nhận và phõn tớch xong dữ liệu là : 137 + 138 = 275 ms

3.4.1.3 Đo cường độ dũng điện của cỏc nỳt mạng cỏc trạng thỏi : ngủ, truyền, nhận dữ liệu ở chế độ lập lịch tập trung. 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 đú.

 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ở

 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

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 Đ

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 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); } } Ơ Đ 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 S Nỳt cơ sở RS232

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 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,

Một phần của tài liệu Mạng cảm nhận không dây và đánh giá bằng thực nghiệm một số thông số qua điều khiển thâm nhập môi trường (Trang 47)

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

(101 trang)