1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây

105 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên Cứu Đánh Giá Một Số Giao Thức Tiết Kiệm Năng Lượng Ở Lớp Mac Cho Mạng Cảm Biến Không Dây
Tác giả Phạm Thanh Long
Người hướng dẫn TS. Lê Minh Tuấn
Trường học Đại học Mở Hà Nội
Chuyên ngành Công nghệ điện tử Thông tin
Thể loại luận văn tốt nghiệp
Thành phố Hà Nội
Định dạng
Số trang 105
Dung lượng 3,67 MB

Nội dung

Luận văn tốt nghiệp LỜI CAM ĐOAN Tôi xin cam đoan đề tài luận văn tốt nghiệp Thạc sỹ “Nghiên cứu đánh giá số giao thức tiết kiệm lượng lớp Mac cho mạng cảm biến không dây” cơng trình nghiên cứu tơi với hướng dẫn khoa học Thầy giáo TS Lê Minh Tuấn giúp đỡ anh chị đồng nghiệp VNPT Hà Nội Các kết nghiên cứu có tính độc lập riêng, không chép tài liệu Các tài liệu tham khảo, sử dụng luận văn có nguồn gốc rõ ràng, với thực tiễn Tôi xin chịu trách nhiệm với lời cam đoan Tác giả PHẠM THANH LONG Trang Luận văn tốt nghiệp LỜI CẢM ƠN Em xin bày tỏ lòng cảm ơn sâu sắc tới Thầy giáo TS Lê Minh Tuấn tận tình hướng dẫn, bảo định hướng cho em suốt trình thực luận văn Em xin chân thành cảm ơn thầy cô Khoa Công nghệ điện tử Thông tin thuộc Đại học Mở Hà Nội chia sẻ động viên giúp em vượt qua khó khăn để hồn thành tốt cơng việc nghiên cứu Sau em xin cảm ơn tất thầy cơ, bạn bè đóng góp ý kiến cho đề tài em tốt Học viên thực hiện: Phạm Thanh Long Trang Luận văn tốt nghiệp MỤC LỤC - LỜI CAM ĐOAN…………………………………………………………………… - LỜI CẢM ƠN………………………………………………………………………… - MỤC LỤC…………………………………………………………………………… - DANH SÁCH CÁC CHỮ VIẾT TẮT…………………………………………………5 - DANH SÁCH HÌNH VẼ………………………………………………………………7 - DANH SÁCH BẢNG BIỂU………………………………………………………… - LỜI NÓI ĐẦU…………………………………………………………………………10 CHƯƠNG 1: TỔNG QUAN VỀ MẠNG CẢM BIẾN KHƠNG DÂY………………….12 1.1 Giới thiệu……………………………………………………………………… 12 1.1.1 Giới thiệu Mơ hình mạng cảm biến khơng dây……………………………12 1.1.2 Đặc điểm mạng cảm biến không dây………………………………………13 1.2 Cấu trúc mạng cảm biến……………………………………………………… 14 1.2.1 Kiến trúc giao thức mạng cảm biến không dây……………………………… 14 1.2.1.1 Lớp vật lý……………………………………………………………… 15 1.2.1.2 Lớp liên kết liệu…………………………………………………… 17 1.2.1.3 Lớp mạng……………………………………………………………… 17 1.2.1.4 Lớp truyền tải……………………………………………………………18 1.2.1.5 Lớp ứng dụng……………………………………………………………18 1.2.2 Phân loại giao thức định tuyến WSN…………………………………….18 1.2.3 Cấu trúc mạng cảm biến không dây……………………………………………19 1.3 Một số thách thức cần giải cho MAC………………………………… 21 1.4 Vấn đề tối ưu lượng mạng cảm biến không dây…………………25 1.5 Nghiên cứu, phát triển ứng dụng công nghệ WSN… …………… 26 1.5.1 Tính đa dạng thiết kế sử dụng……………………………………… 26 1.5.2 Ứng dụng mạng cảm biến không dây…………………………………… 27 1.5.2.1 Ứng dụng nông nghiệp, lâm nghiệp………………………………27 1.5.2.2 Ứng dụng y tế…………………………………………………… 28 1.5.2.3 Ứng dụng giám sát môi trường …………………………………29 1.5.2.4 Ứng dụng WSNs giao thông ………………………………… 29 1.5.2.5 Ứng dụng gia đình……………………………………………….30 1.5.2.6 Ứng dụng quân đội………………………………………………31 1.5.2.7 Ứng dụng cơng nghiệp - tự động hóa……………………………32 Kết luận Chương 1………………………………………………………………… 32 Trang Luận văn tốt nghiệp CHƯƠNG 2: CÁC GIAO THỨC ĐỊNH TUYẾN, ĐIỀU KHIỂN TRUY NHẬP CỦA LỚP MAC NHẰM TIẾT KIỆM NĂNG LƯỢNG CHO MẠNG WSNs ……………33 2.1 Tiết kiệm lượng lớp mạng WSN ……… 33 2.2 Giao thức ARPEES … 35 2.2.1 Đặc điểm … 35 2.2.2 Hai pha hoạt động … 36 2.3 Giao thức EMRP…… 43 2.3.1 Pha thiết lập 43 2.3.2 Pha thành lập nhóm chọn nhóm trưởng 45 2.3.3 Pha truyền tải liệu 46 2.4 Tổng quan tiết kiệm lượng giao thức lớp MAC………… 50 2.4.1 Giao thức XT - MAC 50 2.4.1.1 Giao thức MAC cho hệ thống định vị WSN 50 2.4.1.2 Mô tả giao thức XT-MAC 51 2.4.1.3 Hoạt động hệ thống định vị XT-MAC 53 2.4.2 Giao thức B - MAC 55 2.4.3 Giao thức MAC theo chuẩn ZigBee/IEEE802.15.4 61 2.4.3.1 Tầng vật lý ZigBee/IEEE 802.15.4 62 2.4.3.2 Tầng điều khiển liệu ZigBee/IEEE 802.15.4 MAC 63 Kết luận Chương .71 CHƯƠNG - MÔ PHỎNG VÀ ĐÁNH GIÁ MỘT SỐ GIAO THỨC TIẾT KIỆM NĂNG LƯỢNG TRONG WSN BẰNG PHẦN MỀM OMNET++ 72 3.1 Giới thiệu chung OMNET++ 72 3.1.1 Các thành phần OMNET++ 72 3.1.2 Mơ hình OMNET++ 73 3.2 Xây dựng mơ hình mơ WSN Omnet++ 74 3.3 Mô đánh giá hiệu lượng giao thức WSN 77 3.3.1 Đánh giá hiệu lượng giao thức định tuyến ARPEES EMRP 77 3.3.2 Đánh giá hiệu lượng giao thức XT–MAC, B–MAC IEEE 802.15.4 80 3.3.3 Đánh giá hiệu WSN đa kiện sử dụng EARPM 72 Kết luận Chương .84 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 84 TÀI LIỆU THAM KHẢO 87 PHỤ LỤC 88 Trang Luận văn tốt nghiệp DANH SÁCH CÁC CHỮ VIẾT TẮT Kí hiệu Tiếng anh Tiếng Việt A ARPEES Adaptive Routing Protocol with Energy-Efficiency and EventClustering for Wireless Sensor Networks Giao thức định tuyến thích nghi với hiệu lượng phân cụm theo kiện cho mạng cảm biến không dây B BS Base Station Trạm gốc BI Beacon interval Khoảng mốc báo BO Beacon Order Đặt mốc báo C CH Cluster Head Cụm trưởng CSMA/CA Carrier Sensor Multiple Access with collision Avoidance Cảm nhận sóng mang đa truy nhập tránh xung đột CCA Clear Channel Assessment Đánh giá kênh rõ ràng E EAR Energy Aware Routing Định tuyến nhận biết lượng EMRP Energy-Awared Meshed Routing Protocol Giao thức định tuyến mạng lưới nhận biết lượng G GTS Khe thời gian đảm bảo Guaranteed Time Slots I IEEE Institute of Electrical and Electronics Engineers Viện kĩ thuật điện điện tử Trang Luận văn tốt nghiệp L LPL Nghe công suất thấp Listen Power Low M MAC Điều khiển truy nhập đa phương tiện Media Access Control O OMNeT Objective Modular Network Testbed Mạng thử nghiệm mô đun đối tượng P PHY Physica Vật lý PAN Personal Area Network Mạng khu vực cá nhân R RN Nút chuyển tiếp Relay Node S SPIN Sensor Protocol for Information via Negotiation Giao thức cảm nhận thông tin thông qua đàm phán T TDMA Time Division multiple Access Đa truy nhập phân chia theo thời gian W WSN Wireless Sensor Network Mạng cảm biến không dây Trang Luận văn tốt nghiệp DANH SÁCH HÌNH VẼ Hình 1.1: Mơ hình mạng cảm biến khơng dây 13 Hình 1.2: Kiến trúc giao thức mạng cảm biến 15 Hình 1.3: Phân chia kênh vơ tuyến dải 24Ghz 16 Hình 1.4: Phân loại giao thức định tuyến cho mạng cảm biến khơng dây 18 Hình 1.5: Ứng dụng hệ thống cảm biến không dây nông nghiệp 27 Hình 1.6: Ứng dụng chăm sóc sức khỏe 28 Hình 1.7: Ứng dụng mơi trường 29 Hình 1.8: Ứng dụng hệ thống cảm biến giao thông 30 Hình 1.9: Ứng dụng hệ thống cảm biến dân dụng 31 Hình 1.10: Ứng dụng hệ thống cảm biến quân đội 31 Hình 2.1: Lưu đồ trạng thái thứ 38 Hình 2.2: Thành cụm dựa kiện thuật toán lựa chọn cụm trưởng 39 Hình 2.3: Lưu đồ giao thức ARPEES pha thứ hai 42 Hình 2.4: Mơ tả ví dụ hàm lựa chọn nút chuyển tiếp 42 Hình 2.5: Mơ hình mạng EMRP với liên kết dạng lưới sau pha thiết lập 45 Hình 2.6: Mơ hình mạng hai mức liên kết EMRP 47 Hình 2.7: Lưu đồ hoạt động pha truyền tải liệu EMRP 49 Hình 2.8: Lưu đồ hoạt động XT-MAC 52 Hình 2.9: Lưu đồ hoạt động XT-MAC kết hợp với EMRP 54 Hình 2.10: Clear Channel Assessment (CCA) 56 Hình 2.11: Mơ hình giao thức ZigBee 61 Hình 2.12: Sơ đồ điều chế 63 Hình 2.13: Cấu trúc siêu khung 64 Hình 2.14: Lưu đồ thuật tốn đa truy nhập kênh CSMA-CA 67 Hình 3.1: Đồ thị so sánh lượng lại giao thức ARPEES EMRP 79 Hình 3.2: Đồ thị so sánh lượng lại giao thức MAC 81 Trang Luận văn tốt nghiệp Hình 3.3: So sánh thời gian sống mạng WSN đa kiện sử dụng EARPM so với DRPDS………………………………………………………………………………82 Hình 3.4: Số lượng nút chết thời gian sống mạng WSN đa kiện sử dụng EARPM so với DRPDS .82 Hình 3.5: Phân tích tỷ lệ lỗi gói ba loại gói liệu mạng WSN đa kiện sử dụng EARPM DRPDS………………………………………………………… 83 Hình 3.6: Phân tích độ trễ ba loại gói liệu mạng WSN đa kiện sử dụng EARPM.…………………………………………………………………………….83 Trang Luận văn tốt nghiệp DANH SÁCH BẢNG BIỂU Bảng 2.1: hoạt động ứng dụng giám sát sử dụng thu phát CC1000 58 Bảng 2.2: Dải tần số theo chuẩn IEEE 802.15.4 62 Bảng 2.3: Định dạng khung MAC 71 Bảng 3.1: Năng lượng cịn lại mạng sau chạy mơ sử dụng giao thức định tuyến ARPEES 78 Bảng 3.2: Năng lượng cịn lại mạng sau chạy mơ sử dụng giao thức định tuyến EMRP 79 Bảng 3.3: Năng lượng lại mạng sử dụng giao thức XT-MAC 80 Bảng 3.4: Năng lượng lại mạng sử dụng giao thức B-MAC 80 Bảng 3.5: Năng lượng lại mạng sử dụng giao thức MAC chuẩn 802.15.4 81 Trang Luận văn tốt nghiệp LỜI NĨI ĐẦU Mạng khơng dây xu phát triển hứa hẹn thay nhiều ứng dụng sử dụng mạng có dây Mạng cảm nhận khơng dây (Wireless Sensor Networks – WSN) đời dựa sở ứng dụng thành tựu cao công nghệ chế tạo linh kiện vi điện tử công nghệ thông tin WSN sử dụng với nhiều mục đích khác nhau, quân sự, dân công nghiệp, với đặc điểm chung bật không cần thao tác người Tuy nhiên mạng cảm ứng phải đối mặt với nhiều thách thức, thách thức lớn nguồn lượng bị giới hạn, khả xử lý thấp, giá thành thấp, giải thơng bé, tín hiệu yếu hoạt động tần số chia sẻ Hiện nhiều nhà nghiên cứu tập trung vào việc cải thiện khả sử dụng hiệu lượng mạng cảm biến lĩnh vực khác Vì vậy, trình tìm hiểu nghiên cứu mạng cảm biến không dây, em lựa chọn đề tài “Nghiên cứu đánh giá số giao thức tiết kiệm lượng lớp Mac cho mạng cảm biến không dây” Luận văn gồm nội dung sau đây: Chương 1: “Tổng quan mạng cảm biến không dây” đưa định nghĩa bản, cấu trúc, ứng dụng đặc điểm WSN Chương trình bày vấn đề lượng WSN từ rút lý lựa chọn đề tài Ngồi trình bày lý thuyết quản lý lượng mạng cảm biến không dây Chương 2: “Tiết kiệm lượng lớp mạng nói chung lớp MAC nói riêng” Đầu tiên trình bày nguyên tắc chung tiết kiệm lương giao thức định tuyến Sau sâu vào tìm hiểu kỹ thuật tiết kiệm lượng số giao thức định tuyến ARPEES EMRP Tiếp theo trình bày nguyên tắc chung tiết kiệm lượng giao thức MAC Sau sâu vào tìm hiểu kỹ thuật tiết kiệm lượng số giao thức MAC XT-MAC, B-MAC giao thức MAC chuẩn 802.15.4 Trang 10 Luận văn tốt nghiệp PacketARPEES *pkt; while (!outQueue.isEmpty()) { pkt = check_and_cast(outQueue.pop()); if (pkt->getPkType() == PK_PAYLOAD_TO_BS) { if (bsAddr > 0) { pkt->setDesMacAddr(bsAddr); pkt->setPreambleFlag(false); } else if (rnAddr > 0) { pkt->setDesMacAddr(rnAddr); } else { EV setSrcMacAddr(getMacAddr()); pkt->setByteLength(pkt->getPkSize()); sendPacket(pkt); } void NetARPEES::sendRelayInfo(PacketARPEES* reqPkt) { if (reqPkt == NULL) return; PacketARPEES_RelayInfo *pkt = new PacketARPEES_RelayInfo(); pkt->setTxType(TX_PPP); pkt->setPkType(PK_RELAY_INFO); pkt->setSrcMacAddr(getMacAddr()); pkt->setDesMacAddr(reqPkt->getSrcMacAddr()); if (par("isBaseStation").boolValue() == true) { pkt->setBsFlag(true); } else { pkt->setBsFlag(false); } pkt->setEnergy(((Energy*) getParentModule()->getSubmodule("energy"))>getCapacity()); Mobility *mob = (Mobility*) getParentModule()>getSubmodule("mobility"); pkt->setPosX(mob->getX()); pkt->setPosY(mob->getX()); pkt->setDBS(dBS); pkt->setByteLength(pkt->getPkSize()); sendPacket(pkt); delete reqPkt; } void NetARPEES::considerRelay(PacketARPEES_RelayInfo *ri) { Mobility *mob = (Mobility*) getParentModule()>getSubmodule("mobility"); Trang 91 Luận văn tốt nghiệp double dRc = distance(mob->getX(), mob->getY(), ri->getPosX(), ri>getPosY()); if (rnAddr getSrcMacAddr(); enerRn = ri->getEnergy(); dRnBs = ri->getDBS(); dRn = dRc; } else { double a1 = assessRelay(enerRn, dRn, dBS, dRnBs); double a2 = assessRelay(ri->getEnergy(), dRc, dBS, ri->getDBS()); if (a2 > a1) { rnAddr = ri->getSrcMacAddr(); enerRn = ri->getEnergy(); dRnBs = ri->getDBS(); dRn = dRc; } } } double NetARPEES::assessRelay(double ener, double dRc, double dBs, double dRcBs) { double cosa = (dRc * dRc + dBs * dBs - dRcBs * dRcBs) / (2 * dRcBs * dBs); return ener * dRc / dRcBs * cosa; } b) Giao thức định tuyến EMRP: #include "netemrp.h" #include "packetemrp_m.h" #include "messagecr_m.h" #include "messagetracking_m.h" #include "link.h" #include "link802154.h" #include "energy.h" #include "mobility.h" #include "worldutil.h" #include "msgkind.h" #include "statcollector.h" Define_Module(NetEMRP); void NetEMRP::initialize() { if (!par("isBaseStation").boolValue()) { scheduleAt(uniform(0, par("initInterval").doubleValue()), initTimer); } scheduleAt(0, radioOnTimer); } void NetEMRP::handleMessage(cMessage *msg) { if (msg->isSelfMessage()) { if (msg == radioOnTimer) { Trang 92 Luận văn tốt nghiệp Link802154 *link = check_and_cast(getModuleByPath("^.link")); if (par("isBaseStation").boolValue()) { link->forceRadioOn(-1); } else { link->forceRadioOn(par("initInterval").doubleValue()); } } else if (msg == initTimer) { requestRelay(true); } else if (msg->getKind() == RES_RELAY) { sendRelayInfo((PacketEMRP*) msg->getContextPointer()); delete msg; } else if (msg->getKind() == EMRP_WAIT_RELAY) { if (bsAddr > || rnAddr > 0) { sendMsgDown((MessageCR*) msg->getContextPointer()); } else { EV incLostMTRbyNet(); delete (MessageCR*) msg->getContextPointer(); } delete msg; } else if (msg == waitEnergyInfoTimeout) { rnAddr = 0; updateRelayEnergy(NULL); } } else { if (msg->getArrivalGate() == gate("appGate$i")) { recvMessage((MessageCR*) msg); } else if (msg->getArrivalGate() == gate("linkGate$i")) { recvPacket((PacketEMRP*) msg); } } } NetEMRP::NetEMRP() { bsAddr = 0; rnAddr = 0; bnAddr = 0; enerRn = 0; dRnBs = 0; enerBn = 0; dBnBs = 0; radioOnTimer = new cMessage("RadioOnTimer"); initTimer = new cMessage("InitEmrpTimer"); waitEnergyInfoTimeout = new cMessage("WaitEnergyInfoTimeout"); } NetEMRP::~NetEMRP() { cancelAndDelete(radioOnTimer); cancelAndDelete(initTimer); cancelAndDelete(waitEnergyInfoTimeout); } Trang 93 Luận văn tốt nghiệp void NetEMRP::recvMessage(MessageCR *msg) { sendMsgDown(msg); } void NetEMRP::recvPacket(PacketEMRP *pkt) { StatCollector *sc = check_and_cast(getModuleByPath("sc")); if (pkt->getPkType() != PK_PAYLOAD_TO_BS || (pkt->getPkType() == PK_PAYLOAD_TO_BS && par("isBaseStation").boolValue())) { sc->incRecvPacket(); } if (pkt->getHopLimit() < 0) { StatCollector *sc = check_and_cast(getModuleByPath("sc")); sc->incLostPacket(); EV getPkType() == PK_PAYLOAD_TO_BS) { sc->incLostMTRbyNet(); } delete pkt; return; } else { pkt->setHopLimit(pkt->getHopLimit() - 1); } if (pkt->getPkType() == PK_REQ_RELAY) { if (par("isBaseStation").boolValue() || bsAddr >= || !(rnAddr > && pkt->getSrcMacAddr() == rnAddr)) { cMessage *resRelayTimer = new cMessage("ResRelayTimer"); resRelayTimer->setKind(RES_RELAY); resRelayTimer->setContextPointer(pkt->dup()); scheduleAt(simTime() + uniform(0, par("resRelayPeriod").doubleValue()), resRelayTimer); } delete pkt; } else if (pkt->getPkType() == PK_RELAY_INFO) { PacketEMRP_RelayInfo *ri = check_and_cast(pkt); if (ri->getBsFlag() == true) { bsAddr = ri->getSrcMacAddr(); } else { if (bsAddr isScheduled()) cancelEvent(waitEnergyInfoTimeout); delete pkt; } else if (pkt->getPkType() == PK_ENERGY_INFO) { Trang 94 Luận văn tốt nghiệp updateRelayEnergy(check_and_cast(pkt)); if (waitEnergyInfoTimeout->isScheduled()) cancelEvent(waitEnergyInfoTimeout); delete pkt; } else if (pkt->getPkType() == PK_PAYLOAD_TO_AN) { MessageCR *msg = (MessageCR*) pkt->decapsulate(); send(msg, "appGate$o"); delete pkt; } else if (pkt->getPkType() == PK_PAYLOAD_TO_BS) { if (par("isBaseStation").boolValue() == true) { MessageCR *msg = (MessageCR*) pkt->decapsulate(); send(msg, "appGate$o"); sendEnergyInfo(pkt->getSrcMacAddr(), 0); delete pkt; } else { int sender = pkt->getSrcMacAddr(); if (bsAddr getBitLength()); if (!waitEnergyInfoTimeout->isScheduled()) { scheduleAt(simTime() + par("waitEnergyInfoTimeout").doubleValue(), waitEnergyInfoTimeout); } pkt->setSrcMacAddr(getMacAddr()); if (bsAddr > 0) { pkt->setPreambleFlag(false); pkt->setDesMacAddr(bsAddr); } else { pkt->setDesMacAddr(rnAddr); } sendPacket(pkt); } } } } void NetEMRP::sendPacket(PacketCR *pkt) { StatCollector *sc = check_and_cast(getModuleByPath("sc")); std::cerr setPkType(PK_REQ_RELAY); pkt->setSrcMacAddr(getMacAddr()); pkt->setDesMacAddr(BROADCAST_ADDR); pkt->setByteLength(pkt->getPkSize()); sendPacket(pkt); } void NetEMRP::sendRelayInfo(PacketEMRP *reqPkt) { if (reqPkt == NULL) return; PacketEMRP_RelayInfo *pkt = new PacketEMRP_RelayInfo(); pkt->setTxType(TX_PPP); pkt->setPkType(PK_RELAY_INFO); pkt->setSrcMacAddr(getMacAddr()); pkt->setDesMacAddr(reqPkt->getSrcMacAddr()); if (par("isBaseStation").boolValue()) { pkt->setBsFlag(true); } else { pkt->setBsFlag(false); } pkt->setEnergy(((Energy*) getParentModule()->getSubmodule("energy"))>getCapacity()); Mobility *mob = (Mobility*) getParentModule()>getSubmodule("mobility"); pkt->setPosX(mob->getX()); pkt->setPosY(mob->getX()); pkt->setDBS(dBS); pkt->setByteLength(pkt->getPkSize()); sendPacket(pkt); delete reqPkt; } bool NetEMRP::considerRelay(PacketEMRP_RelayInfo *ri) { Mobility *mob = (Mobility*) getParentModule()>getSubmodule("mobility"); double dRc = distance(mob->getX(), mob->getY(), ri->getPosX(), ri>getPosY()); if (rnAddr getSrcMacAddr(); enerRn = ri->getEnergy(); dRnBs = ri->getDBS(); dRn = dRc; return true; } else { double a1 = assessRelay(enerRn, dRn, dBS, dRnBs); Trang 96 Luận văn tốt nghiệp double a2 = assessRelay(ri->getEnergy(), dRc, dBS, ri->getDBS()); if (a2 > a1) { rnAddr = ri->getSrcMacAddr(); enerRn = ri->getEnergy(); dRnBs = ri->getDBS(); dRn = dRc; return true; } else { return false; } } } bool NetEMRP::considerBackup(PacketEMRP_RelayInfo *ri) { Mobility *mob = (Mobility*) getParentModule()>getSubmodule("mobility"); double dRc = distance(mob->getX(), mob->getY(), ri->getPosX(), ri>getPosY()); if (bnAddr getSrcMacAddr(); enerBn = ri->getEnergy(); dBnBs = ri->getDBS(); dBn = dRc; return true; } else { double a1 = assessRelay(enerBn, dBn, dBS, dBnBs); double a2 = assessRelay(ri->getEnergy(), dRc, dBS, ri->getDBS()); if (a2 > a1) { bnAddr = ri->getSrcMacAddr(); enerBn = ri->getEnergy(); dBnBs = ri->getDBS(); dBn = dRc; return true; } else { return false; } } } double NetEMRP::assessRelay(double ener, double dRc, double dBs, double dRcBs) { double cosa = (dRc*dRc + dBs*dBs - dRcBs*dRcBs) / (2 * dRcBs * dBs); return ener / dRcBs * cosa; } void NetEMRP::sendEnergyInfo(int addr, int bitLen) { PacketEMRP_EnergyInfo *ei = new PacketEMRP_EnergyInfo("EnergyInfo"); ei->setTxType(TX_PPP); ei->setPkType(PK_ENERGY_INFO); ei->setSrcMacAddr(getMacAddr()); ei->setDesMacAddr(addr); Energy *energy = check_and_cast(getParentModule()>getSubmodule("energy")); ei->setRemainEnergy(energy->getCapacity()); ei->setByteLength(ei->getPkSize()); Trang 97 Luận văn tốt nghiệp sendPacket(ei); } void NetEMRP::updateRelayEnergy(PacketEMRP_EnergyInfo *ei) { if (bsAddr > 0) return; if (ei != NULL) enerRn = ei->getRemainEnergy(); if (enerRn < par("criticalEnergy").doubleValue() || rnAddr getRoutingType() == RT_TO_BS && bsAddr setContextPointer(msg); scheduleAt(simTime() + par("resRelayPeriod").doubleValue(), waitRelayMsg); requestRelay(); return; } PacketEMRP *pkt = new PacketEMRP(); if (msg->getRoutingType() == RT_TO_AN) { pkt->setTxType(TX_PPP); pkt->setPkType(PK_PAYLOAD_TO_AN); pkt->setDesMacAddr(msg->getDesMacAddr()); } else if (msg->getRoutingType() == RT_TO_BS) { pkt->setTxType(TX_PPP); pkt->setPkType(PK_PAYLOAD_TO_BS); Trang 98 Luận văn tốt nghiệp if (bsAddr > 0) { pkt->setDesMacAddr(bsAddr); } else { pkt->setDesMacAddr(rnAddr); } if (!waitEnergyInfoTimeout->isScheduled()) { scheduleAt(simTime() + par("waitEnergyInfoTimeout").doubleValue(), waitEnergyInfoTimeout); } } else if (msg->getRoutingType() == RT_BROADCAST) { pkt->setTxType(TX_BROADCAST); pkt->setPkType(PK_PAYLOAD_TO_AN); pkt->setDesMacAddr(BROADCAST_ADDR); } pkt->setSrcMacAddr(getMacAddr()); if (msg->getRoutingType() == RT_TO_BS && bsAddr > 0) { pkt->setPreambleFlag(false); } else { pkt->setPreambleFlag(msg->getPreambleFlag()); } pkt->setByteLength(pkt->getPkSize()); pkt->encapsulate(msg); sendPacket(pkt); } c) Giao thức XT-MAC: #include "linkxtmac.h" #include "packetcr_m.h" #include "app.h" #include "channelutil.h" #include "statcollector.h" Define_Module(LinkXTMAC); void LinkXTMAC::setActive() { if (radioMode == RADIO_OFF) { // Turn radio on setRadioMode(RADIO_ON); } isActive = true; if (!forcedOn) { cancelEvent(dcSleepTimer); scheduleAt(simTime() + par("activeTime"), dcSleepTimer); } updateDisplay(); } void LinkXTMAC::handleMessage(cMessage *msg) { if (msg->isSelfMessage()) { if (msg == strobeTimer) { prepareStrobe(); Trang 99 Luận văn tốt nghiệp startSending(); } else if (msg == backoffTimer) { scheduleAt(simTime() + par("ccaDur").doubleValue(), ccaTimer); } else if (msg == ccaTimer) { performCCA(); } else if (msg == releaseChannelTimer) { releaseChannel(); finishSending(); } else if (msg == rxConsumeTimer) { double period = par("rxConsumingPeriod"); useEnergyRx(period); rxConsumeTimer->setTimestamp(); scheduleAt(simTime() + period, rxConsumeTimer); } else if (msg == dcListenTimer) { setRadioMode(RADIO_ON); } else if (msg == dcSleepTimer) { if (isActive) { isActive = false; forcedOn = false; updateDisplay(); } setRadioMode(RADIO_OFF); } } else { if (msg->getArrivalGate() == gate("netGate$i")) { if (radioMode == RADIO_FULL_OFF) { delete msg; EV getArrivalGate() == gate("radioIn")) { Frame802154 *frame = check_and_cast(msg); recvFrame(frame); } } } void LinkXTMAC::setRadioMode(int mode) { Enter_Method("setRadioMode"); if (mode == RADIO_OFF || mode == RADIO_ON || mode == RADIO_FULL_OFF) { radioMode = mode; if (mode == RADIO_ON) { if (!rxConsumeTimer->isScheduled()) { rxConsumeTimer->setTimestamp(); scheduleAt(simTime() + par("rxConsumingPeriod").doubleValue(), rxConsumeTimer); } cancelEvent(dcSleepTimer); cancelEvent(dcListenTimer); Trang 100 Luận văn tốt nghiệp scheduleAt(simTime() + par("lR").doubleValue(), dcSleepTimer); } else if (mode == RADIO_OFF) { cancelEvent(strobeTimer); cancelEvent(dcSleepTimer); cancelEvent(dcListenTimer); nStrobe = 0; cPacket *pkt; while (!outQueue.isEmpty()) { pkt = outQueue.pop(); delete pkt; getParentModule()->bubble("Frame discarded"); } if (outFrame != NULL) { delete outFrame; outFrame = NULL; getParentModule()->bubble("Frame discarded"); } if (txFrame != NULL) { delete txFrame; txFrame = NULL; getParentModule()->bubble("Frame discarded"); } if (rxConsumeTimer->isScheduled()) { double onTime = SIMTIME_DBL(simTime() - rxConsumeTimer>getTimestamp()); if (onTime > 0) { useEnergyRx(onTime); } cancelEvent(rxConsumeTimer); } cancelEvent(dcListenTimer); scheduleAt(simTime() + par("sR").doubleValue(), dcListenTimer); } else if (mode == RADIO_FULL_OFF) { EV isScheduled()) { double onTime = SIMTIME_DBL(simTime() - rxConsumeTimer>getTimestamp()); if (onTime > 0) { useEnergyRx(onTime); } cancelEvent(rxConsumeTimer); } poweroff(); } } } void LinkXTMAC::poweroff() { nStrobe = 0; cancelEvent(strobeTimer); cancelEvent(dcSleepTimer); Trang 101 Luận văn tốt nghiệp cancelEvent(dcListenTimer); Link802154::poweroff(); updateDisplay(); } void LinkXTMAC::updateDisplay() { cDisplayString &ds = getParentModule()->getDisplayString(); switch (radioMode) { case RADIO_FULL_OFF: ds.setTagArg("i", 1, "black"); break; case RADIO_ON: if (isActive) { ds.setTagArg("i", 1, "green"); } else { ds.setTagArg("i", 1, "yellow"); } break; } } void LinkXTMAC::queueFrame(Frame802154 *frame) { outQueue.insert(frame); prepareSending(); } void LinkXTMAC::recvFrame(Frame802154* frame) { if (simInFrameLoss(frame)) return; // The frame is lost StatCollector *sc = check_and_cast(getModuleByPath("sc")); if (frame->getType() == FR_PAYLOAD) { setActive(); send(frame->decapsulate(), "netGate$o"); sc->incRecvFrame(); delete frame; } else if (frame->getType() == FR_PREAMBLE) { getParentModule()->bubble("Get strobe"); if (frame->getDesAddr() == macAddress) { setActive(); sendStrobeAck(frame); } else if (frame->getDesAddr() == BROADCAST_ADDR) { setActive(); } delete frame; } else if (frame->getType() == FR_PREAMBLE_ACK) { setActive(); getParentModule()->bubble("Receive strobe ACK"); nStrobe = 0; cancelEvent(strobeTimer); if (outFrame != NULL && outFrame->getType() == FR_PREAMBLE) { delete outFrame; outFrame = NULL; } if (txFrame != NULL && txFrame->getType() == FR_PREAMBLE) { cancelEvent(backoffTimer); Trang 102 Luận văn tốt nghiệp cancelEvent(ccaTimer); delete txFrame; txFrame = NULL; } startSending(); delete frame; } } void LinkXTMAC::prepareSending() { if (strobeTimer->isScheduled() || backoffTimer->isScheduled() || ccaTimer->isScheduled() || releaseChannelTimer->isScheduled()) { return; } if (!outQueue.isEmpty()) { Frame802154 *frame = check_and_cast(outQueue.front()); Packet802154 *pkt = (Packet802154*) frame>getEncapsulatedPacket(); if (frame->getType() == FR_PAYLOAD && pkt != NULL && pkt->getPreambleFlag()) { nStrobe = (int) ceil(par("sR").doubleValue() / par("strobePeriod").doubleValue()); EV setSrcAddr(macAddress); strobe->setDesAddr(payload->getDesAddr()); strobe->setByteLength( par("fldFrameControl").longValue() + par("fldSequenceId").longValue() + par("fldDesAddr").longValue() + par("fldSrcAddr").longValue() + par("fldFooter").longValue() + par("phyHeaderSize").longValue()); outQueue.insertBefore(payload, strobe); } void LinkXTMAC::sendStrobeAck(Frame802154 *strobe) { Trang 103 Luận văn tốt nghiệp if (strobe->getDesAddr() == macAddress || strobe->getDesAddr() == BROADCAST_ADDR) { EVsetType(FR_PREAMBLE_ACK); ack->setSrcAddr(macAddress); ack->setDesAddr(strobe->getSrcAddr()); ack->setByteLength( par("fldFrameControl").longValue() + par("fldSequenceId").longValue() + par("fldDesAddr").longValue() + par("fldSrcAddr").longValue() + par("fldFooter").longValue() + par("phyHeaderSize").longValue()); queueFrame(ack); } } void LinkXTMAC::finishSending() { if (nStrobe > 0) { nStrobe ; if (nStrobe > 0) { scheduleAt(simTime() + par("strobePeriod").doubleValue(), strobeTimer); } else { startSending(); } } else { prepareSending(); } } LinkXTMAC::LinkXTMAC() { isActive = true; forcedOn = false; nStrobe = 0; strobeTimer = new cMessage("StrobeTimer"); dcListenTimer = new cMessage("DcListenTimer"); dcSleepTimer = new cMessage("DcSleepTimer"); } LinkXTMAC::~LinkXTMAC() { cancelAndDelete(strobeTimer); cancelAndDelete(dcListenTimer); cancelAndDelete(dcSleepTimer); } void LinkXTMAC::forceRadioOn(double duration) { Enter_Method("forceRadioOn"); isActive = true; forcedOn = true; setRadioMode(RADIO_ON); cancelEvent(dcSleepTimer); if (duration >= 0) { Trang 104 Luận văn tốt nghiệp scheduleAt(simTime() + duration, dcSleepTimer); } updateDisplay(); } Trang 105 ... lựa chọn đề tài ? ?Nghiên cứu đánh giá số giao thức tiết kiệm lượng lớp Mac cho mạng cảm biến không dây? ?? Luận văn gồm nội dung sau đây: Chương 1: “Tổng quan mạng cảm biến không dây? ?? đưa định nghĩa... ưu lượng mạng cảm biến không dây Trong mạng cảm biến không dây, việc tối ưu lượng tiêu thụ giúp cho việc kéo dài thời gian sống mạng, nút cảm biến Bởi vậy, vấn đề tối ưu lượng mạng cảm biến không. .. thách thức trình nghiên cứu lĩnh vực hệ thống mạng cảm biến không dây Dưới số thách thức cần phải giải nghiên cứu phát triển giao thức định tuyến cho mạng cảm biến không dây: Thời gian sống dự

Ngày đăng: 13/10/2022, 09:12

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Mơ hình mạng cảm biến khơng dây. - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.1 Mơ hình mạng cảm biến khơng dây (Trang 13)
Hình 1.3 Phân chia kênh vô tuyến trong dải 24Ghz. - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.3 Phân chia kênh vô tuyến trong dải 24Ghz (Trang 16)
Hình 1.5: Ứng dụng hệ thống cảm biến không dây trong nông nghiệp - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.5 Ứng dụng hệ thống cảm biến không dây trong nông nghiệp (Trang 27)
Hình 1.6 Ứng dụng trong chăm sóc sức khỏe - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.6 Ứng dụng trong chăm sóc sức khỏe (Trang 28)
Hình 1.7 Ứng dụng trong mơi trường - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.7 Ứng dụng trong mơi trường (Trang 29)
Hình 1.8 Ứng dụng hệ thống cảm biến trong giao thông - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.8 Ứng dụng hệ thống cảm biến trong giao thông (Trang 30)
Hình 1.10 Ứng dụng trong quân đội - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.10 Ứng dụng trong quân đội (Trang 31)
Hình 1.9 Ứng dụng hệ thống cảm biến trong dân dụng - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 1.9 Ứng dụng hệ thống cảm biến trong dân dụng (Trang 31)
Hình 2.1: Lưu đồ của trạng thái thứ nhất - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.1 Lưu đồ của trạng thái thứ nhất (Trang 38)
Hình 2.2: Thành cụm dựa trên sự kiện và thuật toán lựa chọn cụm trưởng Trong hình 2.2a: nút từ N1 đến N9 xác định sự kiện và chuyển sang trạng  thái hoạt động sau đó quảng bá các bản tin REQ_CLUSTER để trao đổi thông  tin - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.2 Thành cụm dựa trên sự kiện và thuật toán lựa chọn cụm trưởng Trong hình 2.2a: nút từ N1 đến N9 xác định sự kiện và chuyển sang trạng thái hoạt động sau đó quảng bá các bản tin REQ_CLUSTER để trao đổi thông tin (Trang 39)
Hình 2.3: Lưu đồ của giao thức ARPEES trong pha thứ hai - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.3 Lưu đồ của giao thức ARPEES trong pha thứ hai (Trang 42)
Hình 2.4: Mơ tả 1 ví dụ về hàm lựa chọn nút chuyển tiếp - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.4 Mơ tả 1 ví dụ về hàm lựa chọn nút chuyển tiếp (Trang 42)
Hình 2.5: Mơ hình mạng EMRP với liên kết dạng lưới sau pha thiết lập - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.5 Mơ hình mạng EMRP với liên kết dạng lưới sau pha thiết lập (Trang 45)
Hình 2.6: Mơ hình mạng hai mức liên kết trong EMRP - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.6 Mơ hình mạng hai mức liên kết trong EMRP (Trang 47)
Hình 2.7: Lưu đồ hoạt động pha truyền tải dữ liệu của EMRP (Nguồn: trong [3])  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.7 Lưu đồ hoạt động pha truyền tải dữ liệu của EMRP (Nguồn: trong [3]) (Trang 49)
Hoạt động của XT-MAC được mô tả ở hình 2.8 dưới đây: - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
o ạt động của XT-MAC được mô tả ở hình 2.8 dưới đây: (Trang 52)
Hình 2.9: Lưu đồ hoạt động của XT-MAC kết hợp với EMRP (Nguồn: trong [3])  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.9 Lưu đồ hoạt động của XT-MAC kết hợp với EMRP (Nguồn: trong [3]) (Trang 54)
Hình 2.10: Clear Channel Assessment (CCA) hiệu quả cho một kênh không dây điển hình (Nguồn: trong [4])  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.10 Clear Channel Assessment (CCA) hiệu quả cho một kênh không dây điển hình (Nguồn: trong [4]) (Trang 56)
Bảng 2.1: Hoạt động cơ bản của một ứng dụng giám sát sử dụng một bộ thu phát CC1000 (Nguồn: trong [4])  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Bảng 2.1 Hoạt động cơ bản của một ứng dụng giám sát sử dụng một bộ thu phát CC1000 (Nguồn: trong [4]) (Trang 58)
Hình 2.11: Mơ hình giao thức của ZigBee - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.11 Mơ hình giao thức của ZigBee (Trang 61)
Bảng 2.2: Dải tần số theo chuẩn IEEE802.15.4 Điều chế tín hiệu của tầng PHY tại dải số 2.4 GHz  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Bảng 2.2 Dải tần số theo chuẩn IEEE802.15.4 Điều chế tín hiệu của tầng PHY tại dải số 2.4 GHz (Trang 62)
Hình 2.12: Sơ đồ điều chế - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.12 Sơ đồ điều chế (Trang 63)
Hình 2.13: Cấu trúc siêu khung - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.13 Cấu trúc siêu khung (Trang 64)
Hình 2.14: Lưu đồ thuật tốn đa truy nhập kênh CSMA-CA - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 2.14 Lưu đồ thuật tốn đa truy nhập kênh CSMA-CA (Trang 67)
Bảng 3.1: Năng lượng cịn lại của mạng sau khi chạy mơ phỏng sử dụng giao thức định tuyến ARPEES  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Bảng 3.1 Năng lượng cịn lại của mạng sau khi chạy mơ phỏng sử dụng giao thức định tuyến ARPEES (Trang 78)
Bảng 3.2: Năng lượng còn lại của mạng sau khi chạy mô phỏng sử dụng giao thức định tuyến EMRP  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Bảng 3.2 Năng lượng còn lại của mạng sau khi chạy mô phỏng sử dụng giao thức định tuyến EMRP (Trang 78)
Hình 3.1: Đồ thị so sánh năng lượng còn lại củ a2 giao thức ARPEES và EMRP         Quan sát trên đồ thị hình 3.1 ta thấy:  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 3.1 Đồ thị so sánh năng lượng còn lại củ a2 giao thức ARPEES và EMRP Quan sát trên đồ thị hình 3.1 ta thấy: (Trang 79)
Bảng 3.3: Năng lượng còn lại của mạng khi sử dụng giao thức XT-MAC - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Bảng 3.3 Năng lượng còn lại của mạng khi sử dụng giao thức XT-MAC (Trang 80)
Bảng 3.4: Năng lượng còn lại của mạng khi sử dụng giao thức B-MAC - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Bảng 3.4 Năng lượng còn lại của mạng khi sử dụng giao thức B-MAC (Trang 80)
Hình 3.5: Phân tích tỷ lệ lỗi gói của ba loại gói dữ liệu trong mạng WSN đa sự kiện sử dụng EARPM và DRPDS  - Nghiên cứu đánh giá một số giao thức tiết kiệm năng lượng ở lớp mac cho mạng cảm biến không dây
Hình 3.5 Phân tích tỷ lệ lỗi gói của ba loại gói dữ liệu trong mạng WSN đa sự kiện sử dụng EARPM và DRPDS (Trang 83)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w