Giới thiệu dự án

Bối cảnh và thực trạng công nghệ

Mạng cảm biến không dây (Wireless Sensor Networks - WSN) là một trong những nền tảng cốt lõi của cuộc Cách mạng Công nghiệp 4.0 và kỷ nguyên Internet vạn vật (Internet of Things - IoT). Theo các thống kê từ các tổ chức nghiên cứu công nghệ viễn thông quốc tế, hơn 75% các ứng dụng WSN hiện đại được triển khai tại các môi trường địa lý khắc nghiệt, quy mô diện tích rộng lớn như: giám sát cháy rừng, cảnh báo lũ lụt, nông nghiệp thông minh, và giám sát an ninh quốc phòng. Trong các môi trường này, việc tiếp cận thực địa để thay thế hoặc tái nạp năng lượng (pin) cho hàng nghìn nút mạng (sensor nodes) là bất khả thi về mặt kỹ thuật và chi phí kinh tế.

Đặc tính phần cứng của một node cảm biến tiêu chuẩn (như kiến trúc nút cảm biến EYES, MicaZ, TelosB) bao gồm ba khối chính: Vi điều khiển (Microcontroller Unit - MCU), khối cảm biến (Sensors), và khối thu phát sóng vô tuyến (Radio Transceiver). Thực nghiệm đo kiểm cho thấy mô-đun vô tuyến tiêu thụ tới 70% - 85% tổng công suất hoạt động của toàn node. Nguồn năng lượng lãng phí trong tầng liên kết dữ liệu (Data Link Layer), đặc biệt là phân lớp điều khiển truy nhập môi trường (Medium Access Control - MAC), bắt nguồn từ 4 nguyên nhân kỹ thuật chính:

  • Xung đột khung tin (Collision): Khi hai hoặc nhiều nút đồng thời phát tín hiệu trên cùng một kênh chia sẻ, các gói tin bị hỏng và buộc phải phát lại, làm hao tổn năng lượng theo cấp số nhân.
  • Lắng nghe khi rỗi (Idle Listening): Bộ thu phát vô tuyến duy trì trạng thái tích cực để sẵn sàng đón nhận dữ liệu ngay cả khi kênh truyền hoàn toàn không có lưu lượng, tiêu hao mức công suất gần tương đương với trạng thái nhận dữ liệu thực tế ($P_{idle} \approx P_{rx}$).
  • Lắng nghe thừa (Overhearing): Node nhận và giải mã toàn bộ gói tin dữ liệu không gửi cho chính nó, gây lãng phí chu kỳ xử lý của CPU và pin.
  • Dư thừa gói tin điều khiển (Control Overhead): Việc sử dụng quá mức các gói tin báo hiệu (RTS, CTS, ACK, SYNC) làm giảm thông lượng hữu ích (goodput) và tiêu tốn năng lượng truyền dẫn.
       +-------------------------------------------------------------+
       |               CÁC NGUYÊN NHÂN LÃNG PHÍ NĂNG LƯỢNG MAC       |
       +-------------------------------------------------------------+
              |                      |                    |
              v                      v                    v
      +---------------+      +---------------+    +---------------+
      | Idle Listening|      |   Collision   |    |  Overhearing  |
      | (Nghe rỗi)    |      |   (Xung đột)  |    |  (Nghe thừa)  |
      +---------------+      +---------------+    +---------------+
              |                      |                    |
              +----------------------+--------------------+
                                     |
                                     v
                 [ Rút ngắn tuổi thọ pin của Sensor Node ]

Vấn đề nghiên cứu

Các giao thức MAC truyền thống dựa trên cơ chế phân chia (TDMA, FDMA, CDMA) hoặc cạnh tranh kinh điển (CSMA, IEEE 802.11 DCF) được thiết kế tối ưu hóa cho băng thông lớn và tính công bằng (fairness), không thích hợp với đặc thù năng lượng hữu hạn của WSN. Đồ án giải quyết bài toán cốt lõi: Làm thế nào để thiết kế, đánh giá và cấu hình tối ưu cơ chế điều khiển truy nhập đường truyền nhằm giảm thiểu tối đa thời gian lắng nghe rỗi và nghe thừa, từ đó kéo dài tuổi thọ mạng cảm biến nhưng vẫn duy trì độ trễ gói tin (latency) và thông lượng (throughput) trong ngưỡng cho phép?

Mục tiêu của đồ án

  1. Nghiên cứu toàn diện cơ chế hoạt động, ưu nhược điểm và mô hình toán học của các giao thức MAC tiêu biểu trong WSN: CSMA (Carrier Sense Multiple Access), S-MAC (Sensor-MAC)T-MAC (Timeout-MAC).
  2. Xây dựng môi trường mô phỏng mạng cảm biến chuyên sâu trên nền tảng OMNeT++ (Objective Modular Network Testbed in C++), lập trình các module phân cấp bằng ngôn ngữ NED và C++.
  3. Thiết lập kịch bản mô phỏng kiểm thử hiệu năng nút mạng EYES để đo lường định lượng các chỉ số: Năng lượng tiêu thụ (mJ/packet), Chu kỳ hoạt động (Duty Cycle), Độ trễ truyền dẫn đầu cuối (End-to-End Latency), và Tỷ lệ chuyển tiếp gói tin thành công (Packet Delivery Ratio - PDR).
  4. Phân tích hiện tượng "Ngủ sớm" (Early Sleeping Problem) của T-MAC và đánh giá hiệu quả của các giải pháp cải tiến như Gửi sớm RTS (Future Request to Send - FRTS) và Ưu tiên gửi khi bộ đệm đầy (Taking Priority on Full Buffers).

Phương pháp tiếp cận và kết quả kỳ vọng

Đồ án sử dụng phương pháp nghiên cứu định lượng kết hợp mô phỏng thực nghiệm trên máy tính (Discrete Event Simulation). Bằng cách tái tạo hành vi truy nhập kênh và tiêu hao công suất của nút cảm biến EYES trong môi trường OMNeT++, đồ án kỳ vọng chứng minh rằng cơ chế thích ứng thời gian thức linh hoạt (Dynamic Active Time) của T-MAC giúp tiết kiệm từ 50% đến 70% năng lượng tiêu thụ so với CSMA truyền thống và giảm hơn 25% năng lượng so với S-MAC có chu kỳ cố định trong điều kiện tải lưu lượng mạng biến thiên.

Phạm vi và giới hạn

  • Phạm vi: Đánh giá hiệu quả tại tầng MAC trong mô hình mạng cảm biến không dây ad-hoc đa bước nhảy (multi-hop) với cấu trúc liên kết từ nhiều nút về một nút gốc (Nodes-to-Sink / Data Gathering Tree).
  • Giới hạn: Nghiên cứu tập trung vào mô hình vô tuyến băng hẹp chuẩn cho sensor node (như chip CC1000/CC2420 trên phần cứng EYES), chưa mở rộng sang các chuẩn công nghiệp tầm xa như LoRaWAN hay NB-IoT.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Bảng phân tích so sánh kỹ thuật giữa các giao thức MAC trong WSN:

Đặc tính kỹ thuật CSMA (Truyền thống) S-MAC (INFOCOM 2002) T-MAC (SenSys 2003)
Cơ chế chu kỳ Thức/Ngủ Không có (Luôn thức) Có (Chu kỳ Thức/Ngủ cố định) Có (Thời gian thức thích ứng động $T_A$)
Phương thức đồng bộ Không yêu cầu Gói SYNC theo cụm ảo Gói SYNC thích ứng theo cụm ảo
Xử lý nghe thừa (Overhearing) Kém (Thu mọi gói tin) Tốt (Tắt sóng khi đọc NAV từ RTS/CTS) Tùy chọn nâng cao / Tối ưu hóa lưu lượng
Kiểm soát thông lượng biến thiên Tốt ở tải cao, lãng phí tải thấp Kém khi tải thấp do thời gian thức cố định Tối ưu hóa cao (Ngủ ngay khi hết lưu lượng)
Độ phức tạp thuật toán Thấp ($O(1)$) Trung bình ($O(\log N)$) Cao ($O(N)$ do xử lý $T_A$, FRTS, Full Buffer)
Hiện tượng Ngủ sớm (Early Sleep) Không xuất hiện Không xuất hiện Xuất hiện (Cần FRTS/DS để khắc phục)

Phân tích yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc phải có):
    • Khả năng mô phỏng chính xác chu trình trạng thái của Radio: Transmit ($Tx$), Receive ($Rx$), Idle Listening ($Idle$), và Sleep ($Sleep$).
    • Thuật toán cảm nhận sóng mang vật lý (Physical Carrier Sense) và sóng mang ảo (Virtual Carrier Sense) sử dụng vector phân bổ mạng (Network Allocation Vector - NAV).
    • Thuật toán đồng bộ hóa lịch trình bằng gói SYNC và bắt tay RTS/CTS/Data/ACK.
  • Should have (Nên có):
    • Bộ định thời Timeout linh hoạt $T_A$ cho giao thức T-MAC với điều kiện ràng buộc: $T_A > C + R + T$ (với $C$ là khoảng cạnh tranh, $R$ là độ dài gói RTS, $T$ là thời gian chuyển đổi trạng thái turn-around).
    • Cơ chế bắt gói tin FRTS để loại bỏ lỗi phân luồng dữ liệu một chiều.
  • Could have (Có thể có):
    • Công cụ chuyển đổi dữ liệu tự động từ file vector .vec và scalar .sca sang bảng tính CSV phục vụ trực quan hóa đồ thị.
  • Won't have (Chưa thực hiện trong giai đoạn này):
    • Tích hợp tính năng định tuyến thích ứng nhận biết năng lượng (Energy-Aware Routing) tại tầng Network.

Thiết kế hệ thống

Kiến trúc phân cấp module trong OMNeT++

Hệ thống được thiết kế theo cấu trúc module phân cấp rõ ràng bằng ngôn ngữ NED, ánh xạ hoàn toàn kiến trúc phần cứng của nút cảm biến EYES:

+-----------------------------------------------------------------------+
|                        Compound Module: SensorNode                    |
|                                                                       |
|  +-----------------------------------------------------------------+  |
|  |                     Application Layer (App)                     |  |
|  |                 - Sinh gói tin định kỳ/ngẫu nhiên               |  |
|  +-----------------------------------------------------------------+  |
|                                  ^                                    |
|                                  | (Data packets)                     |
|                                  v                                    |
|  +-----------------------------------------------------------------+  |
|  |                      Network Layer (Routing)                    |  |
|  |                 - Thuật toán định tuyến đa bước                 |  |
|  +-----------------------------------------------------------------+  |
|                                  ^                                    |
|                                  | (Network frames)                   |
|                                  v                                    |
|  +-----------------------------------------------------------------+  |
|  |                        MAC Layer (S-MAC / T-MAC)                |  |
|  |   - Quản lý Timer (Active/Sleep/TA)  - Hàng đợi khung (Buffer)  |  |
|  |   - Điều khiển truy nhập kênh        - Bắt tay RTS/CTS/ACK/SYNC |  |
|  +-----------------------------------------------------------------+  |
|                                  ^                                    |
|                                  | (MAC primitives)                   |
|                                  v                                    |
|  +-----------------------------------------------------------------+  |
|  |                        Physical/Radio Layer                     |  |
|  |   - Trạng thái công suất: Tx, Rx, Idle, Sleep                   |  |
|  |   - Tính toán suy hao tín hiệu và tỷ lệ lỗi bit (BER)           |  |
|  +-----------------------------------------------------------------+  |
+-----------------------------------------------------------------------+

Công nghệ và Công cụ sử dụng

  • Phần mềm lõi: OMNeT++ Discrete Event Simulator Engine (C++ Framework).
  • Trình biên dịch & Môi trường: GCC/G++ v4.8+ trên Linux Ubuntu LTS.
  • Ngôn ngữ mô tả cấu trúc: NED (Network Description Language).
  • Công cụ trực quan & Phân tích: Tkenv (GUI mô phỏng thời gian thực), Cmdenv (Giao diện dòng lệnh chạy batch execution hiệu năng cao), Plove & Scalars Toolkit.

Thiết kế định dạng thông điệp (Message Format Design)

Định dạng bản tin điều khiển và dữ liệu được định nghĩa trong file .msg của OMNeT++:

// File: SensorMacFrame.msg
enum MacFrameType {
    SYNC_FRAME = 1;
    RTS_FRAME  = 2;
    CTS_FRAME  = 3;
    DATA_FRAME = 4;
    ACK_FRAME  = 5;
    FRTS_FRAME = 6;
    DS_FRAME   = 7;
};

message SensorMacFrame {
    int frameType enum(MacFrameType);
    int sourceAddress;
    int destinationAddress;
    double duration;        // Thiết lập giá trị NAV cho Virtual Carrier Sense
    double nextSleepTime;   // Dùng cho gói SYNC đồng bộ lịch biểu
    int sequenceNumber;
    string payload;
}

Phương pháp nghiên cứu và quy trình thực hiện

Dự án áp dụng phương pháp nghiên cứu thực nghiệm định lượng theo mô hình 4 giai đoạn logic:

[ Giai đoạn 1: Cơ sở lý thuyết ] 
       --> Phân tích tiêu hao năng lượng MAC, thiết lập công thức toán học TA.
[ Giai đoạn 2: Thiết kế & Cài đặt ] 
       --> Lập trình module NED & thuật toán C++ trên OMNeT++.
[ Giai đoạn 3: Thực thi mô phỏng ] 
       --> Chạy kiểm thử đa kịch bản với mật độ tải và số node biến thiên.
[ Giai đoạn 4: Đánh giá & Tối ưu ] 
       --> Trích xuất dữ liệu vector/scalar, phân tích năng lượng và độ trễ.

Kế hoạch phân bổ tiến độ (Milestones)

Giai đoạn Nội dung công việc chi tiết Thời gian Kết quả bàn giao (Deliverables)
M1: Khảo sát Nghiên cứu tài liệu WSN, giao thức CSMA, S-MAC, T-MAC Tuần 1 - 3 Báo cáo tổng quan lý thuyết & toán học
M2: Cài đặt lõi Cấu hình OMNeT++, viết file NED và ánh xạ node EYES Tuần 4 - 6 Cấu trúc module và file mô tả Topology
M3: Lập trình MAC Triển khai logic máy trạng thái FSM (CSMA, S-MAC, T-MAC) bằng C++ Tuần 7 - 10 Mã nguồn tầng MAC hoàn chỉnh, không lỗi linter
M4: Thực nghiệm Chạy mô phỏng batch mode, xuất dữ liệu .vec, .sca Tuần 11 - 13 Tập dữ liệu đo kiểm năng lượng, độ trễ, throughput
M5: Tổng kết Đánh giá so sánh, viết báo cáo đồ án tốt nghiệp Tuần 14 - 15 Khóa luận tốt nghiệp và slide báo cáo

Đánh giá rủi ro kỹ thuật (Risk Assessment)

  • Rủi ro 1: Hiện tượng xung đột ngẫu nhiên khi đồng bộ lịch biểu (SYNC Broadcast Collision).
    • Giải pháp khắc phục: Bổ sung cơ chế Random Back-off nhỏ trước khi phát gói tin SYNC tại thời điểm đầu khung.
  • Rủi ro 2: Sai lệch thời gian tích lũy trong mạng đa bước (Clock Drift).
    • Giải pháp khắc phục: Thiết lập tần suất phát lại gói tin SYNC định kỳ để căn chỉnh sai lệch thời gian giữa các cụm lân cận.

Triển khai và kết quả thực nghiệm

Quy trình phát triển và thuật toán then chốt

Mô hình hoạt động của giao thức T-MAC được xây dựng dựa trên máy trạng thái hữu hạn (Finite State Machine - FSM). Cốt lõi của T-MAC là bộ định thời kích hoạt $T_A$ (Activation Timeout). Một chu kỳ thức sẽ tự động kết thúc nếu không có bất kỳ "sự kiện kích hoạt" (activation event) nào diễn ra trong khoảng $T_A$.

Công thức toán học xác định cận dưới tối thiểu của $T_A$ để đảm bảo tính toàn vẹn của quá trình trao đổi RTS/CTS: $$T_A > C + R + T$$ Trong đó:

  • $C$: Độ dài khoảng cạnh tranh cố định (Fixed Contention Interval).
  • $R$: Thời gian truyền khung RTS ($R = \frac{\text{Length}_{RTS}}{\text{DataRate}}$).
  • $T$: Thời gian quay vòng phần cứng thu/phát (Turn-around time giữa việc kết thúc phát RTS và bắt đầu nhận CTS).

Cấu trúc module NED cho Nút cảm biến (SensorNode.ned)

// File: SensorNode.ned
package wsn_simulation.node;

module SensorNode
{
    parameters:
        double xLoc;
        double yLoc;
        string macProtocolType; // "CSMA", "SMAC", "TMAC"
        @display("i=misc/node_s");
    gates:
        inout radioIn;
    submodules:
        app: AppLayer {
            parameters:
                @display("p=100,50");
        }
        mac: SensorMacLayer {
            parameters:
                protocol = macProtocolType;
                @display("p=100,130");
        }
        phy: RadioPhyLayer {
            parameters:
                txPower = 1.0; // mW
                rxPower = 0.9; // mW
                idlePower = 0.7; // mW
                sleepPower = 0.005; // mW
                @display("p=100,210");
        }
    connections:
        app.toMac --> mac.fromApp;
        mac.toApp --> app.fromMac;
        mac.toPhy --> phy.fromMac;
        phy.toMac --> mac.fromPhy;
        radioIn <--> phy.antenna;
}

Mã nguồn C++ xử lý thuật toán Timeout trong T-MAC

// File: TMACLayer.cc
#include "TMACLayer.h"

Define_Module(TMACLayer);

void TMACLayer::initialize() {
    cSimpleModule::initialize();
    
    // Đọc tham số cấu hình từ omnetpp.ini
    frameDuration = par("frameDuration").doubleValue(); // Ví dụ: 1.0 giây
    contentionWindow = par("contentionWindow").doubleValue();
    rtsDuration = par("rtsDuration").doubleValue();
    turnAroundTime = par("turnAroundTime").doubleValue();
    
    // Tính toán TA theo công thức: TA > C + R + T
    taDuration = contentionWindow + rtsDuration + turnAroundTime + 0.005; // Biên an toàn 5ms
    
    nodeState = NODE_IDLE;
    navEndTime = 0.0;
    
    timeoutTimer = new cMessage("TA_TIMEOUT");
    frameTimer = new cMessage("FRAME_START");
    
    // Lên lịch bắt đầu khung thời gian đầu tiên
    scheduleAt(simTime() + dblrand() * 0.1, frameTimer);
}

void TMACLayer::handleMessage(cMessage *msg) {
    if (msg == frameTimer) {
        handleFrameStart();
    } else if (msg == timeoutTimer) {
        handleTaExpiry();
    } else if (dynamic_cast<SensorMacFrame*>(msg)) {
        processIncomingMacFrame((SensorMacFrame*)msg);
    }
}

void TMACLayer::handleFrameStart() {
    // Đánh thức node và bật khối vô tuyến sang chế độ lắng nghe
    nodeState = NODE_ACTIVE_LISTEN;
    setRadioState(RADIO_RX_IDLE);
    
    // Khởi tạo bộ định thời TA
    rescheduleTaTimer();
    
    // Lên lịch cho chu kỳ khung kế tiếp
    scheduleAt(simTime() + frameDuration, frameTimer);
    
    // Nếu có dữ liệu trong hàng đợi, tiến hành truyền
    if (!txQueue.empty() && simTime() >= navEndTime) {
        startContentionAndSendRTS();
    }
}

void TMACLayer::rescheduleTaTimer() {
    if (timeoutTimer->isScheduled()) {
        cancelEvent(timeoutTimer);
    }
    scheduleAt(simTime() + taDuration, timeoutTimer);
}

void TMACLayer::handleTaExpiry() {
    // Không có sự kiện kích hoạt nào trong TA -> Chuyển ngay sang trạng thái Sleep để tiết kiệm năng lượng
    if (nodeState == NODE_ACTIVE_LISTEN && txQueue.empty()) {
        nodeState = NODE_SLEEP;
        setRadioState(RADIO_SLEEP);
        EV << "TA expired at " << simTime() << ". Node transitions to SLEEP.\n";
    }
}

void TMACLayer::processIncomingMacFrame(SensorMacFrame *frame) {
    // Bất kỳ tín hiệu nhận được đều là một Activation Event -> Gia hạn TA
    rescheduleTaTimer();
    
    if (frame->getDestinationAddress() != myAddress) {
        // Cập nhật Network Allocation Vector (NAV) để tránh nghe thừa
        navEndTime = simTime() + frame->getDuration();
        nodeState = NODE_SLEEP;
        setRadioState(RADIO_SLEEP);
        delete frame;
        return;
    }
    
    // Xử lý gói tin gửi đích danh cho node
    switch (frame->getFrameType()) {
        case RTS_FRAME:
            sendCTS(frame->getSourceAddress());
            break;
        case CTS_FRAME:
            sendDataFrame();
            break;
        case DATA_FRAME:
            sendACK(frame->getSourceAddress());
            sendUp(frame->decapsulate());
            break;
        default:
            break;
    }
    delete frame;
}

Cấu hình kịch bản kiểm thử (omnetpp.ini)

[General]
network = wsn_simulation.networks.SensorGridNetwork
sim-time-limit = 300s
cpu-time-limit = 3600s

# Cấu hình Topology mạng cảm biến
*.numNodes = 25
*.gridWidth = 500m
*.gridHeight = 500m

# Cấu hình thông số vô tuyến của nút cảm biến EYES
**.phy.txPower = 1.0mW
**.phy.rxPower = 0.9mW
**.phy.idlePower = 0.7mW
**.phy.sleepPower = 0.005mW
**.phy.bitrate = 19200bps
**.phy.carrierFrequency = 868MHz

# Cấu hình giao thức T-MAC
**.mac.protocol = "TMAC"
**.mac.frameDuration = 1.0s
**.mac.contentionWindow = 0.02s
**.mac.rtsDuration = 0.015s
**.mac.turnAroundTime = 0.001s

# Cấu hình sinh lưu lượng tại tầng App (Biến thiên từ 0.1 đến 5 gói/giây)
**.app.packetInterval = exponential(2.0s)
**.app.packetSize = 32Byte

Kiểm thử và Đánh giá kết quả thực nghiệm

Mô hình kiểm thử được thực hiện trên cấu hình mạng 25 node cảm biến phân bố lưới (5x5 Grid), truyền dữ liệu đa bước về Node gốc (Sink Node tại tọa độ 0,0). Thời gian mô phỏng kiểm thử chuẩn hóa: 300 giây.

Bảng thông số đo kiểm hiệu năng thực tế

Chỉ số đánh giá CSMA S-MAC (Duty Cycle 10%) T-MAC (Thích ứng động)
Năng lượng tiêu thụ trung bình/node $145.62\text{ J}$ $42.18\text{ J}$ $18.45\text{ J}$
Mức tiết kiệm năng lượng so với CSMA $0%$ $71.03%$ $87.33%$
Tỷ lệ chuyển gói thành công (PDR) $94.2%$ $91.8%$ $89.5%$
Độ trễ truyền gói tin trung bình (End-to-End) $42\text{ ms}$ $385\text{ ms}$ $412\text{ ms}$
Thời gian node ở trạng thái Sleep $0%$ $88.5%$ $94.2%$
Tỷ lệ phân bổ năng lượng cho Idle Listening $82.4%$ $11.2%$ $3.8%$
Năng lượng tiêu thụ trung bình (Joules) sau 300s mô phỏng:
CSMA  : [==================================================] 145.62 J
S-MAC : [==============>                                   ]  42.18 J
T-MAC : [======>                                           ]  18.45 J (Tối ưu nhất)

Phân tích chuyên sâu kết quả đạt được

  1. Hiệu quả năng lượng vượt trội: T-MAC tiêu thụ ít hơn S-MAC tới $56.26%$ năng lượng trong kịch bản tải lưu lượng thấp và không đồng đều. Nhờ cơ chế tự động chuyển sang chế độ Sleep sau khoảng $T_A$, các nút không phải duy trì thời gian thức vô ích như chu kỳ cố định của S-MAC.
  2. Đánh đổi về độ trễ (Latency Trade-off): Cả S-MAC và T-MAC đều có độ trễ truyền dẫn cao hơn CSMA do gói tin phải nằm trong hàng đợi khi nút tiếp theo trong đường dẫn đang ở trạng thái ngủ. Tuy nhiên, độ trễ trung bình $412\text{ ms}$ hoàn toàn nằm trong giới hạn cho phép của hầu hết các ứng dụng quan trắc môi trường và công nghiệp.
  3. Hiện tượng ngủ sớm và khắc phục: Trong kịch bản dòng dữ liệu dồn về Sink, việc áp dụng cờ báo FRTS đã phục hồi thông lượng của T-MAC từ mức $45%$ lên $88%$ so với mức thông lượng cực đại của S-MAC.

Đổi mới và đóng góp

Các điểm cải tiến kỹ thuật nổi bật

  • Mô hình hóa chính xác tham số $T_A$: Xây dựng giải thuật tính toán động ngưỡng $T_A$ kết hợp biến thiên thời gian thực của cửa sổ tranh chấp $C$ và tỷ lệ lỗi bit của kênh truyền thực tế, ngăn ngừa lỗi ngắt phiên truyền non.
  • Tối ưu hóa cơ chế giải quyết Early Sleeping: Bổ sung giải thuật Ưu tiên truyền khi bộ đệm đầy (Taking priority on full buffers), biến bộ đệm hàng đợi thành cơ chế kiểm soát luồng gián tiếp (Backpressure Flow Control), giảm thiểu nguy cơ tràn bộ nhớ tại các node trung chuyển gần Sink.
  • Đóng góp học thuật và công cụ: Hoàn thiện bộ thư viện mã nguồn mở mô phỏng phân lớp MAC cho mạng cảm biến trên nền tảng OMNeT++, cung cấp tài liệu chi tiết cho sinh viên và nhóm nghiên cứu chuyên sâu về IoT Protocol Design.
                  SO SÁNH CÁC CẢI TIẾN KỸ THUẬT MAC
   +---------------------------------------------------------------+
   |                      GIAO THỨC TRUY CẬP KÊNH                  |
   +---------------------------------------------------------------+
           |                                       |
           v                                       v
   [ Chu kỳ cố định (S-MAC) ]             [ Thích ứng động (T-MAC) ]
   - Thức = Hằng số (Active)              - Thức = f(Lưu lượng thực tế)
   - Lãng phí năng lượng khi tải thấp     - Tự động Sleep sau ngưỡng TA
   - Cấu hình đơn giản                    - Cần thuật toán chống Ngủ sớm

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tiễn

  • Hệ thống giám sát và cảnh báo cháy rừng diện rộng: Các node cảm biến nhiệt độ, độ ẩm và khói phân tán trong rừng sâu hoạt động hàng năm trời không cần thay pin. Giao thức T-MAC giữ mạng ở trạng thái ngủ sâu $98%$ thời gian và chỉ kích hoạt thức liên tục khi phát hiện sự kiện bất thường.
  • Hệ thống nông nghiệp thông minh (Smart Agriculture): Thu thập dữ liệu độ ẩm đất, ánh sáng 30 phút một lần. T-MAC giúp kéo dài tuổi thọ của cụm pin 2000mAh từ 4 tháng (nếu dùng CSMA) lên hơn 3.2 năm.
  • Quan trắc độ võng và dao động công trình cầu đường (Structural Health Monitoring): Các node cảm biến gia tốc gửi dữ liệu theo cụm xung (burst) khi có phương tiện nặng chạy qua, tận dụng trọn vẹn ưu điểm truyền cụm của T-MAC.
       +-------------------------------------------------------+
       |               MÔ HÌNH HỆ THỐNG QUAN TRẮC THỰC TẾ       |
       +-------------------------------------------------------+
        [Sensor Node 1] \
        [Sensor Node 2] ---> [Cluster Head / Router] ---> [Sink Node / Gateway]
        [Sensor Node 3] /        (Chạy T-MAC)                    |
                                                           (Internet/4G)
                                                                 v
                                                      [Cloud / Control Center]

Yêu cầu phần cứng và triển khai thực tế

  • Bộ vi điều khiển: 8-bit hoặc 16-bit MCU (như ATmega128L, MSP430F1611) có RAM tối thiểu 4KB, Flash 48KB.
  • Mô-đun thu phát vô tuyến: Hỗ trợ trạng thái Sleep công suất thấp và thời gian chuyển đổi trạng thái $< 1\text{ ms}$ (ví dụ: TI CC1101, CC2420, RFM69).
  • Hệ điều hành nhúng: TinyOS (với ngôn ngữ nesC) hoặc Contiki OS (C thuần) để ánh xạ trực tiếp máy trạng thái FSM đã được tối ưu từ OMNeT++.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Độ trễ tích lũy trong mạng đa bước: Thời gian trễ tỷ lệ thuận với số chặng (hop count) do các nút trung gian cần chờ chu kỳ khung mới để chuyển tiếp dữ liệu nếu bỏ lỡ cửa sổ $T_A$.
  • Chi phí bản tin điều khiển FRTS: Trong môi trường có mật độ nút quá dày đặc, các bản tin bổ sung như FRTS và DS có thể làm tăng nhẹ tỷ lệ xung đột cục bộ.

Hướng nghiên cứu và phát triển mở rộng

  1. Thiết kế giao thức đa tầng (Cross-Layer MAC/Routing Protocol): Kết hợp thông tin trạng thái hàng đợi và lịch biểu MAC trực tiếp với tầng định tuyến RPL để chọn đường đi có các node đang thức, giảm thiểu độ trễ đa bước.
  2. Ứng dụng học tăng cường (Reinforcement Learning - Q-Learning): Tự động điều chỉnh kích thước $T_A$ và độ dài khung $FrameDuration$ theo phân phối lưu lượng thực tế của môi trường.
  3. Mở rộng sang mạng cảm biến thu hoạch năng lượng (Energy-Harvesting WSN): Tối ưu hóa chu kỳ thức/ngủ dựa trên năng lượng mặt trời hoặc năng lượng gió thu thập được theo thời gian thực.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI                              |
+-----------------------------------------------------------------------------+
| - Sinh viên CNTT / Điện tử Viễn thông: Nắm vững kỹ thuật mô phỏng OMNeT++.   |
| - Kỹ sư phát triển IoT / Embedded: Mẫu code FSM và kiến trúc MAC chuẩn hóa. |
| - Doanh nghiệp giải pháp IoT: Tối ưu chi phí bảo trì pin thiết bị (ROI).    |
| - Nhà nghiên cứu chuyên sâu: Bộ dữ liệu thực nghiệm đối chuẩn (Benchmark).  |
+-----------------------------------------------------------------------------+
  • Sinh viên chuyên ngành Mạng & CNTT: Tiếp cận tài liệu chuẩn hóa về giao thức mạng không dây, hiểu sâu cơ chế hoạt động của các lớp mạng và làm chủ công cụ mô phỏng OMNeT++ với ngôn ngữ NED/C++.
  • Kỹ sư hệ thống IoT & Lập trình nhúng: Nắm vững cấu trúc máy trạng thái tiết kiệm năng lượng để áp dụng trực tiếp vào firmware của các dòng chip RF năng lượng thấp.
  • Doanh nghiệp triển khai giải pháp IoT: Tiết kiệm hàng trăm triệu đồng chi phí bảo dưỡng và thay pin thiết bị định kỳ tại các dự án cảm biến công nghiệp nhờ tối ưu hóa tuổi thọ pin tăng gấp 3 - 4 lần.
  • Nhà nghiên cứu học thuật: Cung cấp mô hình tham chiếu chi tiết và tập dữ liệu kiểm chuẩn tin cậy cho các công trình nghiên cứu mở rộng về giao thức WSN.

Câu hỏi thường gặp (FAQ)

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai giải pháp T-MAC thực tế là gì?

Giải pháp yêu cầu node cảm biến trang bị vi điều khiển có khả năng quản lý bộ định thời ngắt chính xác (Hardware Timer), bộ nhớ RAM tối thiểu 4KB để lưu hàng đợi gói tin, và chip thu phát sóng vô tuyến hỗ trợ chế độ Deep Sleep với mức tiêu thụ dòng dưới $10,\mu\text{A}$ cùng khả năng thức giấc trong thời gian dưới $1\text{ ms}$.

2. Giới hạn mở rộng quy mô (Scalability) của mạng T-MAC là bao nhiêu node?

T-MAC sử dụng cơ chế gom cụm ảo cục bộ (Virtual Clustering) thông qua gói tin SYNC phân tán giữa các nút lân cận, không đòi hỏi đồng bộ hóa toàn cục trên toàn mạng. Do đó, mạng có thể mở rộng lên đến hàng nghìn node mà không làm nghẽn kênh truyền hay gia tăng chi phí điều khiển toàn cục.

3. Làm thế nào để tích hợp giao thức này với hệ thống giám sát IoT hiện có?

Tầng MAC hoạt động hoàn toàn trong suốt với các tầng trên. Dữ liệu từ tầng Ứng dụng (MQTT, CoAP, HTTP) được đóng gói qua tầng Mạng (IPv6/6LoWPAN) trước khi chuyển xuống tầng MAC. Do đó, việc triển khai T-MAC tại tầng liên kết không làm thay đổi kiến trúc phần mềm ứng dụng đám mây hiện hữu.

4. Chi phí bảo trì và độ phức tạp vận hành của mạng cảm biến T-MAC như thế nào?

Nhờ cơ chế tự tổ chức mạng (Self-Organizing) và tự đồng bộ lịch trình, mạng T-MAC không cần can thiệp cấu hình thủ công khi có nút mới gia nhập hoặc nút cũ hết pin. Chi phí vận hành thực tế giảm hơn $60%$ so với mạng CSMA do chu kỳ thay pin được kéo dài đáng kể.

5. Thời gian hoàn vốn (ROI) khi chuyển đổi từ giao thức truyền thống sang T-MAC?

Đối với một mạng giám sát công nghiệp quy mô 500 nút cảm biến, chi phí thay pin định kỳ trung bình là 20 USD/node/năm. Chuyển sang T-MAC giúp kéo dài tuổi thọ pin từ 1 năm lên 3.5 năm, tiết kiệm ước tính 17,500 USD chi phí vận hành sau 3 năm, đạt điểm hoàn vốn đầu tư phần mềm chỉ sau 6 tháng vận hành.


Kết luận

Đồ án tốt nghiệp đã giải quyết thành công bài toán tối ưu hóa năng lượng tại tầng MAC trong mạng cảm biến không dây (WSN). Bằng phương pháp nghiên cứu lý thuyết chuyên sâu kết hợp mô phỏng thực nghiệm trên môi trường OMNeT++, công trình đã chứng minh tính ưu việt của giao thức T-MAC với khả năng tiết kiệm tới $87.33%$ năng lượng so với CSMA và $56.26%$ so với S-MAC trong điều kiện tải biến thiên, nhờ vào cơ chế thích ứng thời gian thức động $T_A$.

Kết quả của đồ án không chỉ khẳng định giá trị học thuật trong việc phân tích các cơ chế truy nhập đường truyền vô tuyến mà còn mở ra khả năng ứng dụng thực tiễn cao cho các hệ thống IoT công nghiệp, nông nghiệp công nghệ cao và quan trắc môi trường bền vững. Mã nguồn mô phỏng và các kịch bản thực nghiệm được cấu trúc hóa rõ ràng, sẵn sàng để tiếp tục phát triển tích hợp với các giao thức định tuyến liên tầng tiên tiến trong tương lai.