ZigBee Final thesis

Document Sample
ZigBee Final thesis Powered By Docstoc
					                                        MỤC LỤC


DANH MỤC TỪ VIẾT TẮT----------------------------------------------------------- 3
DANH MỤC HÌNH VẼ ----------------------------------------------------------------- 5
DANH MỤC BẢNG BIỂU ------------------------------------------------------------- 7
LỜI MỞ ĐẦU ----------------------------------------------------------------------------- 8
CHƯƠNG I -------------------------------------------------------------------------------- 9
CƠ SỞ LÝ THUYẾT -------------------------------------------------------------------- 9
 1.1 Công nghệ ZigBee ----------------------------------------------------------------- 9
     1.1.1 Khái niệm về công nghệ ZigBee -------------------------------------------- 9
     1.1.2 Mối quan hệ giữa ZigBee và chuẩn IEEE 802.15.4 --------------------- 10
     1.1.3 Tầng PHY --------------------------------------------------------------------- 11
     1.1.4 Tầng MAC -------------------------------------------------------------------- 14
     1.1.5 Tầng NWK -------------------------------------------------------------------- 20
     1.1.6 Tầng APL --------------------------------------------------------------------- 34
  1.2 Phần mềm mô phỏng ------------------------------------------------------------- 36
     1.2.1 Phần mềm NS-2 -------------------------------------------------------------- 36
     1.2.2 Phần mềm OPNET----------------------------------------------------------- 40
CHƯƠNG II MÔ PHỎNG MẠNG KHÔNG DÂY ZIGBEE BẰNG
PHẦN MỀM NETWORK SIMULATOR-2 --------------------------------------- 43
 2.1 Mục đích mô phỏng --------------------------------------------------------------- 43
  2.2 Thông tin cơ bản ------------------------------------------------------------------ 44
     2.2.1 Môi trường mô phỏng ------------------------------------------------------- 44
     2.2.2 Tham số ----------------------------------------------------------------------- 44
     2.2.3 Tính toán tham số ban đầu đưa vào kịch bản ---------------------------- 45
     2.2.4 Mô đun phần mềm ZigBee ------------------------------------------------- 48
     2.2.5 Cấu trúc xử lý ---------------------------------------------------------------- 50
     2.2.6 Hoạt động tổng quát của nút mạng và định tuyến ----------------------- 58
  2.3 Phân tích kết quả ------------------------------------------------------------------ 60
  2.4 Kết luận ----------------------------------------------------------------------------- 61
CHƯƠNG III MÔ PHỎNG MẠNG KHÔNG DÂY ZIGBEE BẰNG
PHẦN MỀM OPNET 14.5 ------------------------------------------------------------ 62


                                                                                             1
  3.1 Mục đích mô phỏng --------------------------------------------------------------- 62
  3.2 Cấu hình mô phỏng --------------------------------------------------------------- 62
     3.2.1 Tạo giao diện mô phỏng và cấu trúc mạng ------------------------------- 62
     3.2.2 Cấu hình thiết bị -------------------------------------------------------------- 65
     3.2.3 Cấu hình thống kê------------------------------------------------------------ 67
     3.2.4 Định trình lập lịch------------------------------------------------------------ 68
     3.2.5 Chạy mô phỏng--------------------------------------------------------------- 68
  3.3 Phân tích kết quả ------------------------------------------------------------------ 69
     3.3.1 Mô phỏng tình huống 1 ----------------------------------------------------- 69
     3.3.2 Mô phỏng tình huống 2 ----------------------------------------------------- 73
     3.3.3 Mô phỏng tình huống 3 ----------------------------------------------------- 76
  3.4 Kết luận ----------------------------------------------------------------------------- 77
KẾT LUẬN ------------------------------------------------------------------------------- 79
TÀI LIỆU THAM KHẢO ------------------------------------------------------------- 80




                                                                                             2
                       DANH MỤC TỪ VIẾT TẮT


APL         Application Layer             Tầng ứng dụng
APS         Application Support           Tầng con hỗ trợ ứng dụng
            Sublayer
BRT         Broadcast Retry Timer         Bộ định thời lặp lại quảng bá
BTR         Broadcast Transaction         Bản ghi giao dịch quảng bá
            Record
BTT         Broadcast Transaction Table   Bảng giao dịch quảng bá
CAP         Contention Access Period      Giai đoạn truy nhập có xung đột
CCA         Clear Channel Assessment      Sự đánh giá độ thoáng kênh truyền
CFP         Contention-Free Period        Giai đoạn truy nhập tự do xung đột
CSMA/ CA Carrier Sense Multiple           Đa truy cập nhận biết sóng mang
            Access with Collision         tránh xung đột
            Avoidance
ED          Energy Detection              Cơ chế xác định mức năng lượng
FFD         Full-Function Device          Thiết bị đầy đủ chức năng
GTS         Guaranteed Time Slot          Khe thời gian bảo đảm
IFS         Interframe Spacing            Không gian liên khung
LQI         Link Quality Indicator        Chỉ thị chất lượng liên kết
LR-WPAN     Low-Rate Wireless Personal    Mạng cá nhân không dây tốc độ
            Area Network                  thấp
MAC         Medium Access Control         Tầng điều khiển truy nhập phương
                                          tiện
NWK         Network Layer                 Tầng mạng
OSI         Open Systems                  Mô hình liên kết các hệ thống mở
            Interconnection
PHY         Physical Layer                Tầng vật lý
POS         Personal Operating Space      Không gian hoạt động cá nhân
PSDU PHY Service Data Unit                Đơn vị dữ liệu dịch vụ



                                                                             3
QOS    Quality of Service        Chất lượng dịch vụ
RF     Radio Frequency           Tần số radio
RFD    Reduced Function Device   Thiết bị giảm thiểu chức năng
RX     Receiver                  Thiết bị nhận
SAP    Service Access Point      Điểm truy nhập dịch vụ
SNR    Signal-to-Noise Ratio     Tỷ lệ tín hiệu/ nhiễu
TRX    Transceiver               Thiết bị truyền nhận
TX     Transmitter               Thiết bị truyền
WLAN   Wireless Local Area       Mạng cục bộ không dây
       Network
ZDO    ZigBee Device Object      Đối tượng thiết bị ZigBee




                                                                 4
                            DANH MỤC HÌNH VẼ


Hình 1-1    Các dịch vụ được cung cấp bởi ZigBee
Hình 1-2    Các tầng giao thức mạng không dây ZigBee
Hình 1-3    Cấu trúc siêu khung
Hình 1-4    Hẹn giờ siêu khung vào và ra
Hình 1-5    Lưu đồ thuật toán CSMA/CA
Hình 1-6    Truyền thông được khởi tạo bởi một thiết bị phi thành viên
Hinh 1-7    Truyền thông n - 1
Hình 1-8    Mối quan hệ giữa nút con và nút cha trong một mạng hình cây
Hình 1-9    Ví dụ về cấp phát địa chỉ mặc định
Hình 1-10   Phân tích chi phí đường đi
Hình 1-11   Phát hiện tuyến đường unicast với thiết bị nguồn và
            thiết bị đích
Hình 1-12   Sửa chữa tuyến đường trong một mạng hình lưới
Hình 1-13   ZDO đóng vai trò như một giao diện giữa khung ứng dụng và tầng
            con APS
Hình 1-14   Định dạng lệnh mô tả sơ lược thiết bị ZigBee
Hình 1-15   NS-2 dưới góc độ người dùng
Hình 1-16   Sự tương đồng giữa C++ và Otcl
Hình 1-17   Mô hình kiến trúc NS-2
Hình 1-18   Giao diện mô phỏng của OPNET
Hình 2-1    Màn hình mô phỏng
Hình 2-2    Cấu trúc xử lý
Hình 2-3    Hoạt động trao đổi thông tin của nút mạng
Hình 3-1    Tạo dự án mới trong OPNET
Hình 3-2    Giao diện chọn kích thước môi trường mô phỏng
Hình 3-3    Bảng lựa chọn các thiết bị mạng không dây ZigBee
Hình 3-4    Cấu trúc mạng mô phỏng
Hình 3-5    Giá trị các thuộc tính của một nút



                                                                          5
Hình 3-6    Lựa chọn số liệu cần thống kê
Hình 3-7    Định trình thời gian hoạt động của các nút mạng
Hình 3-8    Cấu hình mô phỏng
Hình 3-9    Kịch bản mô phỏng tình huống 1
Hình 3-10   Kết quả thống kê số lượng gói tin đã gửi của PAN Coordinator tại
            tầng APL
Hình 3-11   Kết quả thống kê số lượng gói tin nhận của PAN Coordinator tại
            tầng APL
Hình 3-12   Gói tin đi từ Node 1 qua PAN Coordinator đến Node 2
Hình 3-13   Biểu đồ thống kê ETE của Node 1 so với Node 3 và Node 4
Hình 3-14   Cấu trúc mạng bổ sung với Node 5 hoạt động ở chế độ VBR
Hình 3-15   Kết quả thống kê từ Node 5 và PAN Coordinator
Hình 3-16   Kết quả phân tích độ trễ ETE của Node 5 so với Node 1 và 3
Hình 3-17   Cấu trúc mạng bổ sung với sự tham gia của nút mạng mới
Hình 3-18   Kết quả thống kê thời điểm Node 6 gửi và PAN Coordinator nhận




                                                                            6
                      DANH MỤC BẢNG BIỂU


Bảng 1-1   Hằng số PHY
Bảng 1-2   Thuộc tính PHY PIB
Bảng 1-3   Bảng định tuyến
Bảng 1-4   Bảng phát hiện tuyến đường
Bảng 1-5   Bảng hàng xóm
Bảng 2-1   Môi trường mô phỏng
Bảng 2-2   Tham số nút mạng hình sao
Bảng 2-3   Tham số vật lý
Bảng 2-4   Tham số định tuyến
Bảng 2-5   Độ suy hao tín hiệu của ăng ten TwoRayGround
Bảng 3-1   Giá trị thuộc tính Application Traffic cho các nút mạng
Bảng 3-2   Lựa chọn các tầng thống kê theo các nút mạng




                                                                     7
                                LỜI MỞ ĐẦU


      ZigBee là một công nghệ mạng không dây ra đời năm 2003 với đặc điểm
là: mức năng lượng tiêu thụ và giá thành thấp, đa năng và dễ dàng mở rộng.
ZigBee hỗ trợ việc quản lý, điều khiển cho các thiết bị gia dụng, công nghiệp,
chăm sóc sức khỏe đặc biệt là cho nhu cầu cho các ngôi nhà thông minh.
      Trên thế giới, công nghệ ZigBee đã trở nên phổ biến vì giá thành rẻ, dễ
triển khai và linh hoạt. Rất nhiều công ty như Alliance, Freescale, Atmel, …tham
gia vào việc cung cấp các thiết bị mạng để triển khai lắp đặt. Các tập đoàn lớn
như SamSung, Nokia, Panasonic, … đang chú ý đến ZigBee như là một mạng
điều khiển quan trọng cho các sản phẩm của mình. Tại Việt Nam, bước đầu đã
tiếp cận với công nghệ ZigBee tại các diễn đàn về thiết bị điện tử. Công ty I-
Solution có trụ sở tại Hà Nội đã đề cập đến ZigBee như là một công nghệ mới
cho việc tự động hóa cho các biệt thự ở Việt Nam.
      Qua đó, nhu cầu về nắm bắt công nghệ ZigBee và triển khai xây dựng hệ
thống mạng quản lý nhà thông minh đang là thị trường hấp dẫn tại Việt Nam.
Hiện tại, là một sinh viên nên việc sở hữu một bộ kit để phát triển công nghệ này
là không khả thi nên mục tiêu của đề tài là nắm được công nghệ ZigBee và từ đó
áp dụng vào mô phỏng trên hai phần mềm là NS-2 và OPNET.
      Phương pháp nghiên cứu chủ yếu là sưu tầm tài liệu trên mạng và các dự
án nghiên cứu có liên quan để tổng hợp phân tích. Sau đó, từ các kiến thức tiếp
thu được tiến hành mô phỏng để phân tích khả năng hoạt động của mạng không
dây ZigBee.
      Đóng góp của đề tài là báo cáo lý thuyết về công nghệ ZigBee và kiến
thức về hai phần mềm NS-2 và OPNET, mô phỏng hoạt động của mạng hình sao
ZigBee trên hai phần mềm này với các yêu cầu mô phỏng khác nhau. Từ đó, hiểu
được hoạt động và phân tích, đánh giá hoạt động của mạng không dây ZigBee.
      Bố cục của đồ án:
 CHƯƠNG I: CƠ SỞ LÝ THUYẾT
 CHƯƠNG II: MÔ PHỎNG MẠNG KHÔNG DÂY ZIGBEE BẰNG PHẦN MỀM NS-2
 CHƯƠNG III: MÔ PHỎNG MẠNG KHÔNG DÂY ZIGBEE BẰNG PHẦN MỀM OPNET


                                                                               8
                                  CHƯƠNG I
                             CƠ SỞ LÝ THUYẾT


1.1 Công nghệ ZigBee
1.1.1 Khái niệm về công nghệ ZigBee
       ZigBee là một chuẩn định nghĩa một tập hợp các giao thức truyền thông
cho mạng tốc độ thấp và tầm ngắn. Thiết bị ZigBee hoạt động trong tần số
868MHz, 915 MHz và 2,4 GHz. Tốc độ truyền dữ liệu tối đa là 250 Kb/s. ZigBee
nhắm đến mục tiêu chính là các ứng dụng sử dụng pin khi tốc độ dữ liệu thấp, chi
phí thấp và thời gian sử dụng pin lâu dài. Trong nhiều ứng dụng ZigBee, tổng
thời gian các thiết bị hoạt động chủ động với nhau là rất giới hạn, thiết bị sử dụng
phần lớn thời gian trong chế độ chờ, hay còn gọi là chế độ ngủ đông. Kết quả là
các thiết bị dạng ZigBee có thể hoạt động trong vài năm trước khi phải thay pin.


                          Tự động công trình kiến trúc

                                 Điều khiển từ xa

                               Quản lý năng lượng

                               Chăm sóc sức khỏe

                                Tự động gia dụng

                                 Thiết bị nhập liệu

                                  Dịch vụ bán lẻ

                                Dịch vụ viễn thông

                                       3D Sync
               Hình 1-1: Các dịch vụ được cung cấp bởi ZigBee




                                                                                   9
1.1.2 Mối quan hệ giữa ZigBee và chuẩn IEEE 802.15.4
      Một trong các cách thiết lập mạng truyền thông là sử dụng khái niệm các
lớp mạng, mỗi lớp có trách nhiệm và chức năng rõ ràng trong mạng. Các lớp
thông thường chỉ cho qua dữ liệu và lệnh đến tầng trên hay dưới nó.
      Các lớp giao thức mạng không dây ZigBee dựa trên mô hình tham chiếu
cơ bản OSI. Việc chia giao thức mạng thành các lớp có rất nhiều lợi ích, nếu giao
thức thay đổi theo thời gian, nó sẽ dễ dàng hơn khi thay thế hoặc lớp mà bị ảnh
hưởng thay đổi sẽ được thay đổi thay vì toàn bộ giao thức. Tương tự khi phát
triển một ứng dụng, lớp thấp hơn của giao thức vẫn độc lập so với ứng dụng và
có thể được cung cấp từ một nhà phát hành thứ ba và mọi thứ sẽ hoàn thành mà
chỉ cần thay đổi lớp ứng dụng của giao thức.




            Hình 1-2: Các tầng giao thức mạng không dây ZigBee

      Trong hình 1-2 hai tầng mạng dưới cùng được định nghĩa bởi chuẩn IEEE
802.15.4. Chuẩn này được phát triển bởi tổ chức chuẩn IEEE 802 và phát hành
đầu tiên vào năm 2003.
      Chuẩn ZigBee chỉ định nghĩa cho lớp mạng, ứng dụng và bảo mật của
giao thức và thừa nhận các lớp PHY và MAC của IEEE 802.15.4 như là một
phần của giao thức mạng không dây ZigBee. Do đó, bất kỳ thiết bị tương tự
ZigBee nào cũng tuân thủ chuẩn IEEE 802.15.4.


                                                                              10
       Chuẩn IEEE 802.15.4 được phát triển độc lập với chuẩn ZigBee, và nó có
thể xây dựng mạng không dây tầm ngắn hoàn toàn dựa trên chuẩn IEEE 802.15.4
và không bao gồm các lớp đặc thù của ZigBee. Trong trường hợp này, người
dùng phát triển giao thức lớp ứng dụng mạng của riêng họ ở tầng trên của lớp
PHY và MAC trong chuẩn IEEE 802.15.4. Những lớp ứng dụng mạng tùy chỉnh
này đơn giản hơn các lớp giao thức ZigBee và hướng mục tiêu vào các ứng dụng
đặc thù.

1.1.3 Tầng PHY
1.1.3.1 Cơ chế xác định mức năng lượng (ED)
       Khi một thiết bị muốn truyền tín hiệu, ban đầu nó đi vào chế độ nhận tín
hiệu để xác định và giới hạn mức năng lượng tín hiệu trong kênh truyền mong
đợi. Tác vụ này được biết như là một sự xác định năng lượng (ED). Trong ED,
thiết bị nhận không cố gắng giải mã tín hiệu mà chỉ xác định mức năng lượng tín
hiệu bị giới hạn. Nếu có một tín hiệu đã sẵn sàng trong dải mong đợi, ED không
biết được là nó có phải là một tín hiệu của chuẩn IEEE 802.15.4 hay là không.
Năng lượng tín hiệu trong băng tần mong đợi trung bình là 8 chu kỳ ký hiệu.
       Tầng MAC yêu cầu tầng PHY thực hiện ED, tầng PHY trả về một số
nguyên 8 bit chỉ định mức năng lượng nằm trong kênh tần số mong đợi. Mức
năng lượng chính xác phải lớn hơn hoặc bằng 6 dB.

1.1.3.2 Cơ chế dò tìm sóng mang (CS)
       Tương tự như cơ chế ED, cơ chế dò tìm sóng mang là một cách kiểm tra
xem kênh tần số có sẵn sàng để sử dụng hay không. Trong CS, khi một thiết bị
muốn truyền thông điệp, ban đầu nó đi vào chế độ nhận tín hiệu để xác định kiểu
của bất kỳ tín hiệu có thể nào mà hiện tại đang nằm trong kênh tín hiệu đòi hỏi,
nhưng tương phản với ED, CS là tín hiệu được giải điều chế kiểm tra là tín hiệu
điều chế hay phân bố là tuân thủ đặc tính của PHY mà hiện đang được dùng
trong thiết bị. Nếu tín hiệu đang chiếm giữ tuân thủ theo dạng PHY IEEE
802.15.4, thiết bị sẽ chọn xem xét là kênh bận mà không quan tâm tới mức năng
lượng tín hiệu.



                                                                              11
1.1.3.3 Chỉ thị chất lượng liên kết (LQI)
       Chỉ thị chất lượng liên kết (LQI-Link Quality Indication) là việc chỉ định
chất lượng của gói tin dữ liệu được nhận bởi thiết bị nhận. Độ mạnh tín hiệu nhận
được (RSS) có thể được sử dụng như là việc tính toán chất lượng sóng. RSS là
việc đo đạc tổng năng lượng của tín hiệu nhận được. Tỷ số của năng lượng tín
hiệu đòi hỏi so với tổng năng lượng nhiễu trong băng thông (tỷ số tín hiệu/nhiễu
SNR-Signal to Noise Ratio) là một cách khác để đánh giá chất lượng tín hiệu.
Như là một luật tổng quát, SNR cao hơn đồng nghĩa với việc lỗi trong các gói tin
thấp hơn. Do đó, một tín hiệu với SNR cao được coi là một tín hiệu chất lượng
cao. Chất lượng liên kết còn có thể được ước lượng sử dụng cả mức năng lượng
tín hiệu và tỷ lệ tín hiệu so với nhiễu.
       Sự đánh giá LQI được thực hiện cho mỗi gói tin nhận được, LQI phải có ít
nhất 8 mức duy nhất. LQI được báo cáo cho tầng MAC và sẵn sàng cho tầng
NWK và APL các kiểu phân tích. Ví dụ, tầng NWK có thể sử dụng mức LQI
được báo cáo của thiết bị trong mạng để xem xét con đường nào được chọn để
định tuyến thông điệp. Nói chung, con đường với toàn bộ LQI cao nhất có cơ hội
cao hơn trong việc chuyển thông điệp tới đích. LQI chỉ là một trong các yếu tố
trong việc lựa chon con đường để định tuyến. Những yếu tố khác, ví dụ như xem
xét tính hiệu quả của năng lượng định tuyến, cũng có thể ảnh hưởng đến sự lựa
chọn định tuyến.

1.1.3.4 Đánh giá độ thoáng kênh truyền
       Trong bước đầu tiên của cơ chế truy cập kênh truyền CSMA/CA, tầng
MAC yêu cầu tầng PHY thực hiện đánh giá độ thoáng kênh truyền (CCA) để
đảm bảo rằng kênh truyền không bị đang sử dụng bởi một thiết bị nào khác. CCA
là một phần của dịch vụ quản lý của tầng PHY. Trong CCA, kết quả của ED hay
CS có thể được sử dụng để xem xét một kênh tần số có được xem là sẵn sàng hay
bận. Quá trình CCA phải là một chu kỳ 8 ký hiệu.
       Có 3 chế độ CCA, một PHY tuân thủ IEEE 802.15.4 phải có khả năng
thực hiện bất kỳ một trong 3 chế độ này:




                                                                              12
    Chế độ CCA 1: Chỉ xem xét kết quả của ED, nếu mức năng lượng trên
ngưỡng ED, kênh được xem là bận. Ngưỡng ED có thể được thiết lập bởi nhà sản
xuất.
    Chế độ CCA 2: Chỉ sử dụng kết quả của CS, và kênh truyền được xem là
bận chỉ khi nếu tín hiệu đang chiếm là tuân thủ với PHY của thiết bị mà thực
hiện CCA.
    Chế độ CCA 3: Chế độ này là một sự kết hợp logic (AND/ OR) của chế
độ 1 và 2, tầng PHY có thể sử dụng những tiêu chí sau đây để xác định là kênh
có bị bận hay không.
        Mức năng lượng xác định được là trên ngưỡng và sóng mang tuân thủ
chuẩn được đánh giá.
1.1.3.5 Hằng số và các thuộc tính tầng PHY
        Các hằng số định nghĩa các đặc tính như kích thước tối đa của một khung
hay khoảng thời gian của một sự kiện. Mỗi tầng của giao thức đều có các hằng số
của chúng. Tầng PHY chỉ có hai hằng số, hằng số PHY aMaxPHYPacketSize chỉ
định là đơn vị dữ liệu dịch vụ PHY (PSDU) không dược phép vượt quá 127
octet. Hằng số thời gian turnaround là thời gian một thiết bị truyền nhận cần để
chuyển từ chế độ truyền (TX) sang chế độ nhận (RX), và ngược lại với khoảng
thởi gian là ít hơn 12 ký hiệu.

                             Bảng 1-1: Hằng số PHY
         Hằng số                          Nội dung                    Giá trị
 aMaxPHYPacketSize         Kích thước PSDU được cho phép (octet)       127
                           Thời gian quay vòng RX thành TX và TX
 aTurnaroundTime           thanh RX tối đa được cho phép (chu kỳ ký     12
                           hiệu)


        Trong các tầng giao thức MAC và PHY, tất cả hằng số đều có tiền tố “a”,
trong tầng NWK và APL các hằng số có tiền tố “nwkc” và “apsc” đại diện và
không bị thay đổi trong suốt khoảng thời gian hoạt động.


                                                                                13
                        Bảng 1-2: Thuộc tính PHY PIB
          Thuộc tính                                 Nội dung
 PhyCurrentChannel                Kênh tần số thực hiện
 phyChannelsSupported †           Mảng các kênh sẵn sàng và không sẵn sàng
 phyTransmitPower*                Nguồn ra thiết bị truyền (dBm)
 PhyCCAMode                       Chế độ CCA thực hiện (1-3)
 PhyCurrentPage                   Trang kênh PHY hiện tại
                                  Số lượng tối đa của các biểu tượng trong
 phyMaxFrameDuration †
                                  khung (55, 212, 266, 1064)
                                  Thởi gian tồn tại của header đồng bộ hóa
 phySHRDuration †
                                  (SHR) (3,7, 10, 40)
                                  Số lượng các ký hiệu trong mỗi octet cho
 phySymbolsPerOctet †
                                  PHY hiện tại (0.4, 1.6, 2, 8)



       Các thuộc tính là các giá trị mà có thể thay đổi trong khi hoạt động. Các
thuộc tính tầng PHY chứa trong thông tin cơ bản PAN PHY (PHY-PIB). Các
thuộc tính được đòi hỏi quản lý bởi các dịch vụ PHY và được đánh dấu bởi dấu
trâm là các thuộc tính chỉ đọc, tầng cao hơn có thể đọc các thuộc tính chỉ đọc,
nhưng chỉ tầng PHY là có thể thay đổi chúng. Các thuộc tính được đánh dấu bởi
dấu sao “*” có các bit đặc biệt mà chi đọc. Các bit không được đánh dấu chỉ đọc có
thể được đọc hoặc ghi bởi tầng trên nó. Chỉ tầng PHY mới có thể thay đổi các bit chỉ
đọc.

1.1.4 Tầng MAC
1.1.4.1 Hoạt động của chế độ cho phép đèn hiệu và cấu trúc siêu khung
       Một lợi ích của mạng chế độ cho phép đèn hiệu là khả năng của khe thời
gian bảo đảm (GTS). Khung đèn hiệu là các khung MAC chứa thông tin đèn hiệu
như thời gian cự ly giữa các khung đèn hiệu và số lượng GTS.




                                                                                 14
                        Hình 1-3: Cấu trúc siêu khung


      Khi thực hiện chế độ cho phép đèn hiệu, nó có thể sử dụng một cấu trúc
siêu khung như trong hình 1-3, được bao phủ bởi hai khung đèn hiệu. Có thể có
đến 3 kiểu giai đoạn trong một siêu khung: giai đoạn truy cập tranh chấp (CAP),
giai đoạn tự do tranh chấp (CFP) và giai đoạn không hoạt động.
      Trong giai đoạn CAP, tất cả các thiết bị muốn truyền cần sử dụng cơ chế
CSMA/CA để có khả năng truy cập đến một kênh tần số sẵn sàng một cách công
bằng với tất cả các thiết bị trong cùng một mạng. Thiết bị đầu tiên bắt đầu sử
dụng một kênh sẵn sàng sẽ sử dụng nó cho chính thiết bị đó cho đến khi việc
truyền hiện tại của nó hoàn thành. Nếu thiết bị tìm ra kênh truyền bị bận, nó quay
lại trong một khoảng thời gian ngẫu nhiên và thử lại. Khung lệnh MAC phải
được truyền trong quá trình CAP.
      Không có bảo đảm nào trong khoảng thời gian CAP cho bất kỳ thiết bị
nào có thể sử dụng một kênh tần số chính xác khi nó cần. CFP, trái ngược với
CAP, bảo đảm một khe thời gian cho một thiết bị đặc biệt và do đó thiết bị không
cần sử dụng CSMA/CA để truy cập kênh truyền và CSMA/CA cũng không được
cho phép trong CFP.
      Sự kết hợp của CAP và CFP được biết là giai đoạn kích hoạt và được chia
thành 16 khe thời gian bằng nhau. Khung đèn hiệu luôn bắt đầu tại điểm bắt đầu
của khe thời gian đầu tiên. Có thể lên đến 7 GTS trong CFP. Mỗi GTS có thể
chiếm một hay nhiều hơn một khe thời gian. Một siêu khung có thể tùy chọn là
có một giai đoạn không hoạt động, cho phép thiết bị chuyển vào chế độ tiết kiệm

                                                                               15
năng lượng và bộ phối hợp có thể bật tắt mạch truyền nhận của nó để bảo toàn
năng lượng pin.
      Cấu trúc của siêu khung được định nghĩa bởi bộ phối hợp và được cấu
hình bởi tầng NWK sử dụng gốc MLME-START.request. Khoảng thời gian giữa
hai tín hiệu đèn hiệu liên tiếp (BI) được quyết định bởi giá trị của thuộc tính
macBeaconOrder (BO) và hằng số aBaseSuperframeDuration sử dụng biểu thức:
      BI = aBaseSuperframeDuration * 2BO (Ký hiệu)
      Thuộc tính BO có thể có bất kỳ giá trị nào từ 0–14 trong mạng chế độ đèn
hiệu, nếu giá trị của nó được đặt là 15 mạng được xem xét là mạng không cho
phép chế độ đèn hiệu và không có siêu khung nào được áp dụng.
      Chiều dài của giai đoạn kích hoạt của siêu khung được hiểu là giai đoạn
siêu khung (SD), được tính toán từ phương trình sau:
      SD = aBaseSuperframeDuratio * 2SO (Ký hiệu)
      SO chính là thuộc tính macSuperframeOrder. Giai đoạn siêu khung không
thể vượt quá các khoảng đèn hiệu liền kề, do đó giá trị của SO thường nhỏ hơn
hoặc bằng BO. Trong mạng không cho phép chế độ đèn hiệu, bộ phối hợp không
truyền đèn hiệu trừ khi nó nhận một lệnh yêu cầu đèn hiệu từ một thiết bị trong
mạng của nó với mục đích là định vị bộ phối hợp. Bộ phối hợp PAN trong mạng
không cho phép chế độ đèn hiệu đặt giá trị của SO là 15.




                   Hình 1-4: Hẹn giờ siêu khung vào và ra


                                                                            16
      Trong một mạng cho phép chế độ đèn hiệu, bất kỳ bộ phối hợp nào, thêm
vào các bộ phối hợp PAN, có tùy chọn để truyền đèn hiệu và tạo ra siêu khung
của nó. Hình 1-4 chỉ ra thời gian được yêu cầu khi cả bộ phối hợp PAN và một
bộ phối hợp khác trong cùng một mạng đang truyền đèn hiệu. Bộ phối hợp có thể
bắt đầu truyền đèn hiệu của nó chỉ trong giai đoạn không hoạt động của siêu
khung bộ phối hợp PAN. Đèn hiệu bộ phối hợp PAN được ám chỉ đến một đèn
hiệu được nhận. Đèn hiệu của bất kỳ bộ phối hợp nào khác được biết như là đèn
hiệu được truyền. Giai đoạn hoạt động cả hai siêu khung phải có chiều dài tương
đương. Bộ phối hợp, khác với một bộ phối hợp PAN, chỉ truyền một đèn hiệu chỉ
rõ sự bắt đầu của siêu khung của nó và kết thúc siêu khung có thể tương đồng với
kết thúc của siêu khung bộ phối hợp PAN.
      Nếu một thiết bị không sử dụng các GTS của nó cho một khoảng thời gian
được mở rộng, GTS của nó sẽ hết hạn và bộ phối hợp có thể phân công GTS đặc
biệt cho một thiết bị khác. Giai đoạn không hoạt động mà sẽ là kết quả là sự hết
hạn GTS thường là một số nguyên gấp đôi chiều dài một siêu khung. Giá trị của
nó nhân (n) phụ thuộc vào macBeaconOrder:
      n = 2(8 - macBeaconOrder) nếu 0 <= macBeaconOrder <= 8
      n=1                 nếu 8 <= macBeaconOrder <= 14
1.1.4.2 Không gian liên khung
      Trong khi truyền dữ liệu từ một thiết bị đến một thiết bị khác, thiết bị
truyền phải đợi trong thời gian ngắn giữa các khung được truyền liên tục của nó
để cho phép thiết bị nhận xử lý khung nhận được trước khi khung tiếp theo đến
được biết là khoảng cách liên khung (IFS). Chiều dài của IFS phụ thuộc vào kích
thước khung được truyền. Các MPDU với các kích thước nhỏ hơn hay bằng
aMaxSIFSFrameSize được xem xét là khung ngắn. Một khung dài là một MPDU
với kích thước vượt quá số octet của aMaxSIFSFrameSize.
      Giai đoạn chờ đợi sau mỗi khung ngắn được ám chỉ là một IFS ngắn
(SIFS). Giá trị tối thiểu của SIFS là macMinSIFSPeriod. Tương tự một khung dài
theo sau bởi một IFS dài (LIFS) với giá trị tối thiểu là chiều dài




                                                                             17
macMinLIFSPeriod. Giá trị của macMinSIFSPeriod và macMinLIFSPeriod là 12
và 14 ký hiệu.
1.1.4.3 Cơ chế CSMA/CA
       Cơ chế truy cập kênh truyền được hỗ trợ bởi tầng MAC trong chuẩn IEEE
802.15.4 là CSMA/CA, khi một thiết bị muốn truyền nó sẽ thực hiện một CCA
để đảm bảo rằng kênh truyền không bận sau đó nó sẽ truyền tín hiệu của nó.
       Truy cập kênh truyền trong giai đoạn tự do xung đột (CFP). Truyền ngay
sau khi thông báo một lệnh yêu cầu dữ liệu. Nói cách khác, nếu một thiết bị yêu
cầu dữ liệu từ một bộ phối hợp, bộ phối hợp truyền thông báo ngay lập tức sau đó
mà không thực hiện CSMA/CA giữa 2 lần truyền, thậm chí trong giai đoạn truy
cập xung đột (CAP).
       Có hai kiểu CSMA/CA: có khe và không có khe. CSMA/CA có khe được
ám chỉ tới việc thực thi CSMA/CA trong khi có một cấu trúc siêu khung trong
đó. Một siêu khung chia giai đoạn hoạt động ra thành 16 khe thời gian bằng
nhau. Giai đoạn lặp lại của thuật toán CSMA/CA cần được sắp hàng thành các
khe thời gian riêng biệt. Thuật toán CSMA/CA không có khe được sử dụng khi
không có cấu trúc siêu khung, thông thường, không có khe lặp lại yêu cầu. Một
mạng không cho phép chế độ đèn hiệu thường sử dụng thuật toán CSMA/CA
không có khe để truy cập kênh truyền.
       Nếu CCA xác định được một kênh truyền bận, thiết bị sẽ lặp lại trong một
khoảng thời gian ngẫu nhiên. Khoảng thời gian lặp lại ngẫu nhiên trong cả
CSMA/CA có khe và không có khe là một số nguyên là tích của đơn vị khoảng
thời gian lặp lại aUnitBackoffPeriod ký hiệu.
       Hình 1-5 thể hiện lưu đồ của thuật toán CSMA/CA. Có 3 biến được sử
dụng trong thuật toán là: số mũ lặp lại (BE), số lần lặp lại (NB) và chiều dài cửa
sổ xung đột (CW). Biến BE quyết định khoảng cho phép cho khoảng thời gian
lặp lại khi kênh truyền bận. Khoảng thời gian lặp lại là một số nguyên nằm trong
khoảng 0 – (2BE-1) nhân với đơn vị thời gian lặp lại:
       Thời gian lặp lại = (Một số ngẫu nhiên trong khoảng 0 – (2BE - 1)) *
aUnitBackoffPeriod



                                                                               18
               Bắt đầu


                               S
               Có khe?

                         Đ
           NB=0, CW=2                                            NB=0, BE=macMinBE


                               Đ
                Năng
                                       BE=min(2, macMinBE)
             lượng pin?


                         S
         BE = macMinBE


    Xác định giới hạn giai đoạn
             quay lui


     Đợi trong khoảng thời gian                               Đợi trong khoảng thời gian
    ngẫu nhiên: (0->2Be-1) * giai                            ngẫu nhiên: (0->2Be-1) * giai
       đoạn quay lui đơn vị                                     đoạn quay lui đơn vị


           Thực hiện CCA
        (theo cơ chế có khe)                                         Thực hiện CCA



                                   Đ
            Kênh rỗi?                                                                 Đ
                                                                       Kênh rỗi?

                     S
                                                                              S
    CW=2, NB=NB+1,
    BE=min(BE+1, macMaxBE)
                                       CW=CW-1                         NB=NB+1,
                                                                 BE=min(BE+1, macMaxBE)


S
          NB>macMaxC                                 S       S
          SMSBackoff?                                                 NB>macMaxC
                                          CW=0                        SMSBackoffs?

                                          ?
                   Đ                           Đ
                                                                              Đ

            Thất bại                    Thành công                      Thất bại             Thành công

                                   Hình 1-5: Lưu đồ thuật toán CSMA/CA

                                                                                                  19
      Giá trị khởi tạo của BE bằng với macMinBE trong một truy cập kênh
truyền CSMA/CA không có khe. Trong CSMA/CA có khe lựa chọn tùy chọn sự
mở rộng tuổi thọ pin (BLE) trong cấu trúc siêu khung ảnh hưởng đến giá trị của
BE. Nếu tùy chọn BLE được kích hoạt, bộ phối hợp tắt bộ nhận tín hiệu của nó
trong một khoảng thời gian bằng với các macBattLifeExPeriod theo sau việc
truyền khung đèn hiệu, để bảo toàn năng lượng. Trong trường hợp này, dải giá trị
của khoảng thời gian lặp lại giới hạn trong ít hơn 2 và giá trị của macMinBe:
      BE = min (2, macMinBE)
      Nếu tùy chọn BLE không được lựa chọn, bộ phối hợp hoạt động trong
toàn bộ CAP và giá trị của BE bằng macMinBE. Giá trị của BE được tăng mỗi
khi một CCA thực hiện và kênh truyền bận, nhưng giá trị BE không thể vượt quá
macMaxBE.
      NB là một bộ đếm mà cập nhập số lần thiết bị lặp lại và thử lại cơ chế truy
cập kênh truyền. Khi bắt đầu thuật toán giá trị của NB được đặt là 0 và giá trị
tăng lên một khi thiết bị phải lặp lại do kênh truyền bận. Khi NB đạt đến giá trị
macMaxCSMABackoff và kênh vẫn không được truy cập thành công, thuật toán
CSMA/CA kết thúc và báo cáo truy cập kênh truyền lỗi cho tầng NWK.
      Biến cửa sổ xung đột (CW) quyết định số lượng khoảng thời gian lặp lại
mà kênh truyền phải sẵn sàng trước khi bắt đầu truyền. Ví dụ CW = 2, thiết bị chỉ
bắt đầu truyền sau 2 kết quả lặp lại liên tiếp trong một kênh hiện hữu. CW chỉ
được sử dụng trong thuật toán CSMA/CA có khe. Nếu quá trình truyền không thể
hoàn thành trước khoảng thời gian được cho phép, tầng MAC sẽ đợi đến khi bắt
đầu CAP tiếp theo và thử lại thuật toán truy cập kênh truyền CSMA/CA lần nữa.

1.1.5 Tầng NWK
1.1.5.1 Truyền thông broadcast
      Trong truyền thông quảng bá, thông điệp có mục đích được truyền bởi
một thiết bị mà đang lắng nghe một kênh tần số đặc biệt, chú ý địa chỉ của chúng
hay định danh PAN. Mỗi khi một thiết bị nhận một gói, nó sẽ kiểm tra địa chỉ
đích được cung cấp trong gói để phê duyệt là thiết bị có ý định nhận gói hay
không. Để quảng bá trong mạng IEEE 802.15.4 chế độ địa chỉ ngắn được sử


                                                                                20
dụng và địa chỉ đích được đặt là 0xffff. Địa chỉ này được chấp nhận bởi tất cả các
thiết bị mà nhận gói như địa chỉ của chúng. Định danh PAN cũng có thể được đặt
là 0xffff. Thiết bị nhận sẽ chấp nhận 0xffff như là một định danh PAN hợp lệ.
Địa chỉ MAC 0xffff được biết như là địa chỉ quảng bá.
        Một bộ phối hợp ZigBee và các bộ định tuyến ZigBee duy trì bản ghi của
tất cả thông điệp mà chúng quảng bá trong một bảng gọi là bảng giao dịch quảng
bá (BTT). Bản ghi tự nó không thể được biết là bản ghi giao dịch quảng bá
(BTR) và chứa số hiệu chuỗi và địa chỉ nguồn của khung quảng bá. Mỗi router
ZigBee được có khả năng đệm ít nhất một khung tại tầng NWK. Khả năng đệm
giúp cho việc truyền lại các quảng bá này. Mỗi BTR cho phép chỉ một khoảng
thời    gian   giới   hạn   và   sẽ   hết   hạn   sau   khoảng    thời   gian   là
nwkNetworkBroadcastDelivery-Time (giây) từ nó tạo ra. Một BTR bị hết hạn có
thể bị ghi đè nếu một BTR mới đang được tạo và BTT đầy. Nếu một thiết bị đầu
cuối ZigBee không giữ bộ nhận của nó trong chế độ ON trong khi thiết bị trong
trạng thái chờ, thiết bị không chuyển tiếp thông điệp quảng bá hay bảo trì một
BTT. Nếu một bộ định tuyến ZigBee với macRxOnWhenIdle được đặt là FALSE
nhận một thông điệp quảng bá, nó sẽ không sử dụng cơ chế quảng bá. Thay vào
đó, nó sẽ sử dụng unicast để chuyển tiếp thông điệp mà không có độ trễ nào cho
các hàng xóm của nó một cách riêng rẽ. Trường address chứa địa chỉ của thiết bị
có mục đích và không phải địa chỉ quảng bá. Trong thời gian quảng bá, thông
điệp được chuyển tiếp bởi nhiều thiết bị và có khả năng xuất hiện xung đột về nút
ẩn. Để giảm thiểu, tầng NWK yêu cầu là trước mỗi lần truyền lại thiết bị phải đợi
trong một khoảng thời gian ngẫu nhiên gọi là broadcast jitter, chiều dài của nó
phải nhỏ hơn giá trị của thuộc tính nwkcMaxBroadcastJitter theo đơn vị mili
giây.

1.1.5.2 Truyền thông multicast
        Trong multicast một thiết bị chuyển thông điệp đến một nhóm thiết bị
trong cùng mạng thay vì toàn bộ mạng. Trong ứng dụng điều khiển đèn, khi
truyền một khung đơn đến một thiết bị hoạt động như một công tắc có thể bật tắt
một nhóm đèn.


                                                                                21
       Mỗi nhóm được định nghĩa bởi một ID nhóm là một địa chỉ 16 bit
multicast. Một thiết bị có thể là thành viên của một hay nhiều nhóm. Mỗi thiết bị
giữ danh sách của các thành viên nhóm multicast trong một bảng gọi là bảng
multicast (nwkGroupIDTable).
       Một thiết bị phi là thành viên của một nhóm multicast nào thì có thể sử
dụng multicast để đến các thành viên bằng hai chế độ là chế độ thành viên và chế
độ phi thành viên. Trong chế độ thành viên, một multicast được khởi tạo bởi một
thiết bị thành viên và gửi cho các thành viên của nhóm multicast. Trong chế độ
phi thành viên, một thiết bị mà không là thành viên của một nhóm multicast định
tuyến thông điệp đến một thành viên nhóm multicast, mà từ đó nó sẽ được gửi
đến các thành viên trong nhóm của nó.
       Khung dữ liệu tầng NWK có một trường là multicast mode mà phân biệt
là khung này đang được truyền bởi một thiết bị là thiết bị thành viên hay phi
thành viên.




   Hình 1-6: Truyền thông được khởi tạo bởi một thiết bị phi thành viên


       Trong hình 1-6 là một thiết bị phi thành viên khởi tạo một multicast, nó
tạo ra một khung dữ liệu NWK và đặt trường multicast mode là không thành
viên. Giả sử một bộ định tuyến khám phá đã thực hiện trước khi truyền thì thiết
bị nguồn biết được địa chỉ của hop tiếp theo có nghĩa là nó đã thiết lập định tuyến
đẫn khung đến một thiêt bị thành viên bằng cách unicast liên tiếp. Thiết bị tiếp
theo nhận khung từ một thiết bị phi thành viên và lại chuyển tiếp cho thiết bị tiếp
theo sử dụng unicast cho đến khi khung được nhận bởi một thành viên của một
nhóm multicast. Thiết bị này sẽ chuyển giá trị trường multicast mode thành chế


                                                                                22
độ thành viên và gửi cho các thành viên của nó bằng cách broadcast. Trong chế
độ này không có thừa nhận bị động.
         Với broadcast cả thành viên và không thành viên sẽ broadcast lại khung
được nhận nếu BBT của nó không đầy và nó không broadcast trước đó chính
khung này. Trong multicast có thể giới hạn số lần một khung multicast được
broadcast lại bởi các thiết bị phi thành viên. Khung broadcast có trường là
nomember radius mà sẽ giảm đi mỗi khi khung được broadcast lại bởi một thiết
bị phi thành viên, khi nó bằng 0 thì sẽ không được broadcast lại nữa. Có một
ngoại lệ là khi trường này đặt là 007 thì nó sẽ không bị giới hạn. Trong chuẩn
ZigBee chỉ có khung dữ liệu mới được truyền multicast còn khung lệnh thì
không.

1.1.5.3 Truyền thông many to one
         Kịch bản truyền thông cho một thiết bị nhận các thông điệp từ nhiều thiết
bị trong cùng một mạng. Thiết bị nhận được gọi là sink và sẽ thiết lập các định
tuyến từ tất cả các bộ định tuyến ZigBee và bộ phối hợp ZigBee trong vùng bán
kính.




                          Hình 1-7: Truyền thông n – 1


1.1.5.4 Cấu trúc phân cấp dạng cây
         Một mạng hình cây bắt đầu từ một bộ phối hợp ZigBee đóng vai trò như
là gốc của cây. Một bộ phối hợp ZigBee hay là bộ định tuyến có thể đóng vai trò


                                                                               23
là các thiết bị cha và chấp nhận kết hợp từ các thiết bị con khác trong mạng. Một
thiết bị đầu cuối ZigBee chỉ có thể là thiết bị con bởi vì nó thiếu khả năng định
tuyến.
         Độ sâu của mạng được định nghĩa như là số lượng tối đa các hop được đòi
hỏi cho một khung để đến được bộ phối hợp ZigBee nếu chỉ sử dụng liên kết
cha/con. Độ sâu của cha đến con của nó là 1 vì chỉ có một hop và độ sâu của bộ
phối hợp Zigbee đến chính nó là 0.
         Chuẩn ZigBee cung cấp một cơ chế cấp phát địa chỉ cho các thiết bị trong
một mạng cây, được biết là cấp phát địa chỉ được phân phối mặc định. Tuy nhiên
các nhà phát triển ứng dụng được cho phép sử dụng phương thức cấp phát địa chỉ
của họ. Khi bộ phối hợp ZigBee bắt đầu thiết lập mạng, nếu thuộc tính
nwkUseTreeAddrAlloc được đặt là TRUE thì bộ phối hợp sẽ sử dụng sơ đồ đánh
địa chỉ được phân phối mặc định. Trong chế độ đánh địa chỉ này bộ phối hợp
ZigBee cung cấp cho mỗi cha tiềm năng của nó một khối địa chỉ mạng con. Thiết
bị cha sẽ gán các địa chỉ này cho các thiết bị con của nó. Bộ phối hợp ZigBee
quyết định số lượng tối đa của các thiết bị con được cho phép cho mỗi cha. Nếu
thuộc tính nwkUseTreeAddrAlloc được đặt là FALSE, tầng APL cung cấp việc
đánh địa chỉ người dùng tự định nghĩa cho tầng NWK.




  Hình 1-8: Mối quan hệ giữa nút con và nút cha trong một mạng hình cây




                                                                              24
      Sự cấp phát địa chỉ mặc định sử dụng chiều sâu và số lượng tối đa các con
để cấp phát địa chỉ. Các thông số ảnh hưởng đến việc cấp phát địa chỉ là như sau:
      Lm Chiều sâu mạng tối đa (nwkMaxDepth)
      Cm Số lượng con tối đa một cha có thể chấp nhận (nwkMaxChildren)
      Rm Số lượng con có khả năng định tuyến tối đa một cha có thể chấp nhận
(nwkMaxRouters)
      d Chiều sâu của một thiết bị trong mạng
      Trong hình 1-9 là sơ đồ cấp phát địa chỉ khi Lm = 3, Cm = Rm = 2. Việc
đánh địa chỉ bắt đầu với việc gán địa chỉ 0 (addr = 0) cho bộ phối hợp ZigBee.
Để quyết định địa chỉ cho phần còn lại của các thiết bị một hàm đơn giản
(Cskip(d)) được sử dụng:




      Tại mỗi độ sâu, sự khác biệt giữa các địa chỉ trong bất kỳ 2 thiết bị có khả
năng định tuyến nào là một số nguyên tích của giá trị Cskip của cha của nó.




                Hình 1-9: Ví dụ về cấp phát địa chỉ mặc định




                                                                               25
       Cskip(d) có thể hữu dụng khi một thiết bị được mong đợi chuyển tiếp một
thông điệp đến một đích thay mặt cho một thiết bị khác. Thiết bị chuyển tiếp cần
biết khi nào thiết bị đích là một con cháu của thiết bị chuyển tiếp. Nếu thiết bị
chuyển tiếp tại độ sâu d và địa chỉ của nó là A, thiết bị đích với một địa chỉ đích
là B là một con cháu của thiết bị chuyển tiếp nếu mối quan hệ sau là đúng:
                              A < D < A + Cskip(d-1)
       Sau khi nhận ra đích là con cháu của thiết bị, bước tiếp theo là tính toán
địa chỉ hop tiếp theo, nếu đích là một trong các con thiết bị, địa chỉ của hop tiếp
theo đơn giản là bằng địa chỉ đích. Nếu đích không là con nhưng là một con cháu
thì địa chỉ của hop tiếp theo được tính toán từ phương trình sau:

                          ế                                      * Cskip(d)

       Ví dụ khi thiết bị Y đóng vai trò như là một bộ định tuyến để chuyển tiếp
thông điệp đến địa chỉ đích 11, địa chỉ hop tiếp theo sẽ là 9.

1.1.5.5 Cấu trúc hình lưới
       Trong mô hình lưới, không có mối quan hệ phân cấp. Bất kỳ thiết bị nào
trong mạng lưới được cho phép nỗ lực liên lạc bất kỳ thiết bị nào khác trực tiếp
hoặc lợi dụng các thiết bị có khả năng định tuyến để chuyển tiếp thông điệp nhân
danh thiết bị khởi tạo thông điệp. Trong mạng hình lưới, định tuyến từ thiết bị
nguồn đến thiết bị đích được thiết tạo ra khi có yêu cầu và có thể được thay đổi
nếu môi trường thay đổi. Khả năng của mạng dạng lưới là tạo ra và thay đổi định
tuyến ngay lập tức tăng tính linh hoạt cho các kết nối không dây.

1.1.5.6 Định tuyến
       Định tuyến là một quá trình lựa chọn đường dẫn thông qua các thông điệp
được chuyển tiếp đến thiết bị đích. Bộ phối hợp ZigBee và các bộ định tuyến có
trách nhiệm khám phá và duy trì các định tuyến trong một mạng. Một thiết bị đầu
cuối ZigBee không thể thực hiện phát hiện định tuyến và bộ phối hợp ZigBee hay
một bộ định tuyến sẽ thực hiện phát hiện nhân danh thiết bị đầu cuối.
       Chiều dài (L) của một con đường được định nghĩa là số thiết bị trong con
đường đó.



                                                                                26
                       Hình 1-10: Phân tích chi phí đường đi


        Các tham số như chất lượng liên kết, số lượng hop và sự xem xét bảo tồn
năng lượng có thể được sử dụng để xem xét con đường tối ưu cho mỗi kịch bản
định tuyến, để đơn giản hóa, mỗi liên kết gắn với một chi phí liên kết. Giá trị chi
phí liên kết thấp hơn được xem là khả năng chuyển gói thành công cao hơn.
        Chi phí của mỗi liên kết là tập giá trị C{[Di,Di+1]} như trong hình. Có hai
cách khác nhau để xem xét chi phí liên kết. Chuẩn ZigBee sử dụng phương trình
sau:




        C{l} là chi phí của liên kết l. Khả năng thành công của gói chuyển tiếp
trên liên kết l là Pl, giá trị chi phí thường là số nguyên trong khoảng 0-7. Ví dụ
nếu Pl là 80% thì chi phí của liên kết là 2.
        Một phương pháp đơn giản để tính toán chi phí liên kết là sử dụng bảng:

                            Bảng 1-3: Bảng định tuyến
                            Kích
       Tên trường                                      Nội dung
                            thước
 Destination address        2 byte    Tuyến đường sẽ dẫn đến địa chỉ đích.
                                      Trạng thái của tuyến đường có thể là một
                                      trong các giá trị sau: ACTIVE,
 Status                     3 bit
                                      DISCOVERY_UNDERWAY,
                                      DISCOVERY_FAILD, INACTIVE,



                                                                                27
                                       VALIDATION_UNDERWAY.
                                       Nếu đích đã phát hành một yêu cầu tuyến
 Many-to-one                1 bit      đường many to one, trường này được đặt là
                                       1.
 Route record                          Nếu cờ này được đặt, tuyến đường chuyển
                            1 bit
 required                              gói sẽ được ghi lại chuyển cho thiết bị đích.
                                       Cờ này được đặt nếu địa chỉ đích là một ID
 Group ID flag              1 bit
                                       nhóm.
                                       Đây là một địa chỉ mạng 16 bit của hop tiếp
 Next-hop address          2 byte
                                       theo trong tuyến đường này.


       Để so sánh các con đường khác nhau, mỗi đường được gắn với một chi
phí đường đi C{P} đơn giản là sự tổng hợp các chi phí của các liên kết mà hình
thành con đường đó.




       Định tuyến với chi phí đường đi thấp nhất sẽ có cơ hội tốt nhất thành công
của chuyển gói.
       Bộ phối hợp ZigBee và các bộ định tuyến tạo ra và duy trì các bảng định
tuyến, dùng để quyết định hop tiếp theo khi định tuyến một thông điệp đến một
đích cụ thể. Trường status xem xét trạng thái của truyến đường.
       Một bảng khác cũng có liên quan đến định tuyến là bảng phát hiện định
tuyến và được sử dụng để tìm ra các bộ định tuyến mới, chứa các chi phí đường
dẫn, địa chỉ của thiết bị mà được yêu cầu định tuyến (thiết bị nguồn) và địa chỉ
của thiết bị cuối mà đã chuyển tiếp đến thiết bị hiện tại.

                     Bảng 1-4: Bảng phát hiện tuyến đường
                        Kích
    Tên trường                                        Nội dung
                       thước
 Route request ID      1 byte       Số hiệu chuỗi định danh một yêu cầu tuyến



                                                                                  28
                               đường. Mỗi tuyến đường từ thiết bị nguồn đến
                               thiết bị đích có một ID yêu cầu tuyến đường
                               duy nhất.
                               Địa chỉ mạng 16 bit của thiết bị nguồn nơi phát
Source address       2 byte
                               ra yêu cầu tuyến đường.
                               Địa chỉ mạng 16 bit của thiết bị gửi là thiết bị
                               gửi yêu cầu tuyến đường nhân danh thiết bị
                               nguồn. Địa chỉ này sẽ dùng để gửi lệnh trả lời
Sender address       2 byte    tuyến đường trở lại thiết bị nguồn. Nếu yêu cầu
                               tuyến đường tương tự được nhận từ nhiều thiết
                               bị gửi, địa chỉ của thiết bị gửi có tổng chi phí
                               đường đi thấp nhất sẽ được giữ ở đây.
                               Chi phí đường đi được thu thập từ thiết bị
                               nguồn đến thiết bị hiện tại. Trường này được
Forward cost         1 byte
                               cập nhật khi lệnh yêu cầu tuyến đường đang
                               được gửi đến thiết bị đích.
                               Chi phí đường đi được thu thập từ thiết bị
                               nguồn đến thiết bị đích. Trường này được cập
Residual cost        1 byte
                               nhật khi lệnh trả lời tuyến đường đang được gửi
                               đến thiết bị nguồn.
                               Nội dung của bảng phát hiện tuyến đường sau
Expiration time      2 byte    một khoảng thời gian. Giá trị khởi tạo của
                               trường này bằng nwkcRouteDiscoveryTime.


      Nội dung của bảng phát hiện định tuyến tương phản với bảng định tuyến
là nó tạm thời và sẽ hết hạn sau nwkcRouteDiscoveryTime mili giây.
      Một thiết bị trong mạng không dây ZigBee cũng duy trì một bảng các
hàng xóm chứa thông tin về các thiết bị trong dải truyền của nó. Bảng này được
cập nhật mỗi khi thiết bị nhận một gói từ một trong các hàng xóm của nó và hữu
dụng khi thiết bị muốn tìm một bộ định tuyến bên cạnh hay tham gia lại vào


                                                                             29
mạng. Thiết bị cũng sử dụng bảng thiết bị hàng xóm khi nó tìm kiếm một cha
mới.

                            Bảng 1-5: Bảng hàng xóm
         Tên trường                                Nội dung
 Extended address               Địa chỉ IEEE 802.15.4 64 bit.
 Network address                Địa chỉ mạng 16 bit.
                                Bộ phối hợp, bộ định tuyến ZigBee và thiết bị
 Device type
                                đầu cuối.
                                Nếu thiết bị nhận giữ bộ nhận của nó ON trong
 RxOnWhenIdle
                                chế độ chờ, trường này được đặt là TRUE.
                                Trường này xem xét mối quan hệ của hàng xóm
 Relationship                   với thiết bị là cha, con, anh chị em, con trước,
                                hay không có quan hệ gì cả.
                                Giá trị cao của trường này chỉ ra là nhiều nỗ lực
 Transmit failure
                                truyền trước đây bị kết quả lỗi.
 LQI                            Ước lượng chất lượng liên kết.
 Incoming beacon timestamp      Thời gian của đèn hiệu cuối cùng được nhận.
                                Trường này xem xét hàng xóm có khả năng là
 Potential parent
                                một cha hay không.


       Cơ chế cho một mạng hình cây được gọi là định tuyến phân cấp. Nếu
thuộc tính nwkUseTreeRouting được đặt là TRUE, thiết bị sẽ có khả năng sử
dụng định tuyến phân cấp.

1.1.5.7 Phát hiện đường
       Tầng APL có thể yêu cầu tầng NWK phát hiện các tuyến đường cho
truyền thông unicast, multicast và many to one. Nếu như yêu cầu phát hiện tuyến
đường chứa địa chỉ của một thiết bị riêng lẻ như là địa chỉ đích tầng NWK sẽ
thực hiện một phát hiện tuyến đường unicast. Một tuyến đường unicast thường
bắt đầu từ một địa chỉ nguồn đơn và kết thúc tại một địa chỉ đích đơn. Phát hiện



                                                                               30
tuyến đường multicast sẽ được khởi tạo nếu địa chỉ đích ID nhóm 16 bit của một
nhóm multicast. Cuối cùng, nếu tầng APL không cung cấp bất kỳ địa chỉ đích
nào, tầng NWK sẽ giả sử là tầng APL đã yêu cầu một phát hiện tuyến đường
many to one.




Hình 1-11: Phát hiện tuyến đường unicast với thiết bị nguồn và thiết bị đích


      Hình 1-11 chỉ ra một kịch bản ví dụ phát hiện tuyến đường, thiết bị A
muốn tìm một tuyến đường đến thiết bị F, nó bắt đầu một phát hiện tuyến đường
bằng cách quảng bá một lệnh yêu cầu tuyến đường. Khung lệnh yêu cầu tuyến
đường chứa định danh yêu cầu tuyến đường, địa chỉ đích và trường path-cost.
Trường route-request identifier là một số hiệu chuỗi 8 bit để yêu cầu tuyến đường
và được tăng lên 1 mỗi khi tầng NWK phát hành một yêu cầu tuyến đường.
Trường path-cost được sử dụng để thu thập tổng chi phí đường đi của mỗi tuyến
đường. Thiết bị A sẽ đặt giá trị của trường path-cost là 0 trước khi quảng bá lệnh
yêu cầu tuyến đường.
      Nếu một thiết bị đã nhận lệnh yêu cầu tuyến đường là một thiết bị đầu
cuối ZigBee, nó sẽ bỏ qua các lệnh yêu cầu tuyến đường vì nó không có khả
năng định tuyến. Như hình vẽ chỉ có các thiết bị được bố trí giữa thiết bị A và
thiết bị F là các bộ phối hợp ZigBee hoặc là các bộ định tuyến ZigBee. Thiết bị B
là một bộ định tuyến ZigBee và nếu thiết bị B có khả năng định tuyến (bảng định
tuyến không đầy), nó bổ sung chi phí đường đi từ thiết bị A đến thiết bị B cho
trường path-cost của lệnh yêu cầu tuyến đường và quảng bá một lệnh yêu cầu


                                                                               31
tuyến đường. Nếu bảng phát hiện tuyến đường thiết bị B không chứa định danh
yêu cầu tuyến đường này và địa chỉ nguồn, thiết bị B sẽ cập nhật bảng phát hiện
tuyến đường tương ứng.




        Hình 1-12: Sửa chữa tuyến đường trong một mạng hình lưới


       Nếu bảng định tuyến thiết bị B đầy và địa chỉ đích không trong bảng định
tuyến, giả sử là mạng dựa trên định tuyến phân cấp và lệnh yêu cầu tuyến đường
được nhận từ một đường dẫn hợp lệ, thiết bị B sẽ unicast lệnh yêu cầu tuyến
đường dọc theo cây nhưng nếu bảng định tuyến thiết bị B đầy và yêu cầu tuyến
đường không được nhận dọc theo đường đi hợp lệ, thiết bị B sẽ đơn giản bỏ qua
lệnh yêu cầu tuyến đường.
       Thiết bị C cũng là một bộ phối hợp ZigBee và sẽ đóng vai trò để thiết bị B
khi nhận lệnh yêu cầu tuyến đường. Quảng bá từ thiết bị B và C có thể đến được
thiết bị D và E. Thiết bị D và E sẽ quảng bá lại yêu cầu tuyến đường một lần nữa,
giả sử chúng có khả năng định tuyến. Tương tự như các định tuyến khác, mỗi
thiết bị bắt đầu một quàng bá với một trễ ngẫu nhiên.
       Thiết bị D có thể nhận cùng một lệnh yêu cầu tuyến đường từ các thiết bị
chuyển tiếp khác nhau. Thiết bị D sẽ đảm bảo rằng bảng phát hiện tuyến đường
của nó là được cập nhật để chứa chi phí đường đi thấp nhất từ thiết bị gửi đến
thiết bị D. Nó sẽ giúp thiết bị D khi nó là thời gian để liên hệ lại kết quả của phát
hiện tuyến đường thẳng đến thiết bị A. Tại thời gian đó thiết bị D lựa chọn hop
tiếp theo của nó từ bảng phát hiện tuyến đường dựa trên chi phí đường đi thấp
nhất hướng đến thiết bị A.



                                                                                  32
       Quảng bá liên tục đươc lặp lại cho đến khi lệnh yêu cầu tuyến đường được
nhận bởi đích có mục đích là thiết bị F, nó sẽ sử dụng toàn bộ chi phí đường đi
thu thập được của mỗi lệnh yêu cầu tuyến đường được nhận để lựa chọn đường
dẫn tối ưu từ thiết bị A đến thiết bị F. Thiết bị F sẽ chọn thiết bị D hoặc E như là
hop tiếp theo của nó để truyền lệnh trả lời tuyến đường trở lại thiết bị A. Ví dụ
nếu thiết bị D là hop tiếp theo thì nó sẽ sử dụng bảng phát hiện tuyến đường để
tìm hop tiếp theo chuyển tiếp lệnh trả lời tuyến đường lại cho thiết bị A.
       Tuyến đường từ thiết bị nguồn A đến thiết bị đích F được gọi là tuyến
đường về phía trước. Tuyến đường từ thiết bị F đến thiết bị A được xem là tuyến
đường quay lại. Định tuyến có thể là đối xứng hoặc bất đối xứng. Khi định tuyến
đối xứng được lựa chọn bởi việc thiết lập nwkSymLink thành TRUE các tuyến
đường đi và về là đồng nhất như việc truyền từ A đến F sử dụng chung các thiết
bị để chuyển tiếp. Nếu giá trị của nwkSymLink được đặt là FALSE thiết bị F cần
một phát hiện tuyến đường riêng để tìm một tuyến đường đến thiết bị A.
       Phát hiện tuyến đường multicast tương tự như sử dụng unicast, bắt đầu với
một lệnh yêu cầu tuyến đường bởi thiết bị nguồn, nó sẽ tạo ra một bảng tuyến
đường hoặc cập nhật một giá trị tồn tại sẵn để phản ánh sự thật là phát hiện tuyến
đường là đang thực hiện.
       Bất cứ thiết bị nào nhận một quảng báo mà có khả năng định tuyến sẽ so
sánh IP nhóm multicast được cung cấp bởi khung quảng bá với các địa chỉ ID
nhóm trong bảng multicast của nó để biết nếu thiết bị làm một thành viên của
nhóm multicast được yêu cầu. Nếu thiết bị nhận không là thành viên của nhóm
multicast được yêu cầu nó sẽ xử lý phát hiện tuyến đường multicast này tương tự
như một phát hiện tuyến đường unicast nhung địa chỉ đích được đặt là ID nhóm
multicast. Nếu thiết bị nhận là một thành viên của nhóm multicast được yêu cầu
nó sẽ tạo mới hoặc cập nhật bảng phát hiện tuyến đường cho yêu cầu phát hiện
tuyến đường mới này. Nếu thiết bị thành viên này đã có trong bảng phát hiện
tuyến đường tương ứng với địa chỉ thiết bị nguồn và cùng định danh yêu cầu
tuyến đường, thiết bị thành viên sẽ giữ tuyến đường mà có chi phí đường đi nhỏ




                                                                                 33
nhất. Thiết bị thành viên sẽ gửi một lệnh tin vào tuyến đường thẳng đến thiết bị
nguồn tương tự như một phát hiện tuyến đường unicast.

1.1.6 Tầng APL
1.1.6.1 Khung ứng dụng
       Chuẩn ZigBee cung cấp tùy chọn để sử dụng các mô tả sơ lược ứng dụng
trong phát triển một ứng dụng cho phép hoạt động liên hợp giữa các sản phẩm
được phát triển bởi các nhà phát hành khác nhau cho một ứng dụng cụ thể.
       Mỗi mô tả sơ lược ứng dụng được định nghĩa bởi một giá trị 16 bit được
biết như là định danh mô tả sơ lược. Một nhà phát hành đã phát triển một mô tả
có thể yêu cầu một định danh mô tả từ ZigBee Alliance, họ sẽ định giá mô tả ứng
dụng được gợi ý và nếu phù hợp với các hướng dẫn của Alliance thì định danh
cấu hình đó sẽ được phát hành. Mô tả ứng dụng được đặt tên sau khi ứng dụng
tương ứng của chúng được sử dụng.
       Một phần khác của một ứng dụng ZigBee là các miêu tả thiết bị, cung cấp
thông tin có liên quan về chính thiết bị đó ví dụ như: băng tần tần số được hỗ trợ,
kiểu logic của thiết bị (bộ phối hợp, bộ định tuyến hay là thiết bị đầu cuối) và
năng lượng yêu cầu của pin. Mỗi miêu tả thiết bị được định danh bởi một giá trị
16 bit. Mô tả ứng dụng ZigBee sử dụng khái niệm về cấu trúc dữ liệu được miêu
tả. Trong phương pháp này thay vì bao gồm dữ liệu trong miêu tả ứng dụng, một
giá trị 16 bit được giữ và đóng vai trò như một con trỏ đến vị trí của dữ liệu. Khi
một thiết bị phát hiện ra sự hiện diện của một thiết bị khác trong mạng mô tả thiết
bị được truyền để cung cấp thông tin cơ bản có liên quan đến thiết bị mới.

1.1.6.2 Các đối tượng thiết bị ZigBee
       Hình 1-13 chỉ ra các đối tượng thiết bị ZigBee như là một giao diện giữa
tầng APS và khung ứng dụng có trách nhiệm khởi tạo APS, NWK và cung cấp
dịch vụ an ninh (SSP). Tương tự như mô tả ứng dụng được định nghĩa trong
khung ứng dụng, có một mô tả sơ lược được định nghĩa cho ZDO mà được biết
như là mô tả ngắn gọn thiết bị ZigBee (ZDP) hay mô tả thiết bị đơn giản. Mô tả
sơ lược thiết bị chứa miêu tả thiết bị và các cluster nhưng các cluster mô tả thiết



                                                                                34
bị không sử dụng các thuộc tính. ZDO tự nó có các thuộc tính cấu hình nhưng
các thuộc tính này không được chứa trong mô tả thiết bị.


                                  Nền ứng dụng
                             Mô tả sơ lược ứng dụng



                          Đối tượng thiết bị ZigBee (ZDO)

                          Mô tả sơ lược thiết bị ZigBee



                                  Tầng con APS

  Hình 1-13: ZDO đóng vai trò như một giao diện giữa khung ứng dụng và
                                   tầng con APS


       Điểm khác nhau còn lại giữa mô tả thiết bị và mô tả ứng dụng là mô tả
ứng dụng được tạo ra cho một ứng dụng đặc thù bất cứ đâu mô tả thiết bị định
nghĩa khả năng hỗ trợ bởi tất cả thiết bị ZigBee. Mô tả sơ lược thiết bị chỉ có
miêu tả thiết bị. Các cluster được chia thành 2 nhóm bắt buộc và tùy chọn.
       Lệnh mô tả thiết bị ZigBee được gửi sử dụng dịch vụ dữ liệu APS định
dạng của nó mô tả trong hình 1-24.


                    Số chuỗi giao dịch              Dữ liệu giao dịch

           Hình 1-14: Định dạng lệnh mô tả sơ lược thiết bị ZigBee


       Phần thứ nhất là một số hiệu giao dịch 8 bit. Bất kỳ đối tương ứng dụng
nào duy trì một bộ đếm và tăng mỗi khi có một giao dịch mới được truyền. Nội
dung của bộ đếm này được sao chép vào trường transaction sequence number của
lệnh ZDP. Dữ liệu giao dịch chứa trong lệnh của nó và bất kỳ dữ liệu nào được
liên hệ với lệnh.

                                                                             35
      Có hai nhóm chính của các lệnh là các dịch vụ client và các dịch vụ
server. Các lệnh ZDP trong mỗi nhóm được chia thành 3 nhóm: phát hiện dịch vụ
và thiết bị, quản lý liên kết và quản lý mạng. Các lệnh trong 3 nhóm này từ 3 đối
tượng trong ZDO là thiết bị và đối tượng phát hiện dịch vụ, đối tượng quản lý
liên kết và đối tượng quản lý mạng.
      Lệnh phát hiện dịch vụ và thiết bị cho phép một thiết bị để yêu cầu thông
tin như là địa chỉ NWK và danh sách miêu tả của các thiết bị khác trong mạng.
Chúng cũng cho phép một thiết bị lưu trữ miêu tả của nó trong thiết bị đệm phát
hiện chính hay cấu hình miêu tả người dùng của một thiết bị khác trong mạng.
Lệnh quản lý liên kết cho phép thiết bị tạo ra hoặc gỡ bỏ các mối quan hệ liên
kết, lưu trữ các bảng liên kết trên một thiết bị bảng liên kết chính, tạo các bảng
liên kết dự phòng và phục hồi lại các bảng liên kết dự phòng được lưu trữ trước
đó. Các lệnh quản lý mạng được sử dụng để định danh các mạng lân cận, yêu cầu
nội dung các bảng định tuyến và hàng xóm và quản lý các thiết bị gia nhập và rời
khỏi trong mạng.
      Có thêm hai đối tượng trong ZDO là quản lý mạng và quản lý an ninh.
Quản lý mạng chứa các gốc mạng có liên hệ với giao diện với NLME. Đối
tượng quản lý an ninh chứa các gốc an ninh có liên hệ với giao diện với thực thể
quản lý tầng APS (APSME).

1.2 Phần mềm mô phỏng
1.2.1 Phần mềm NS-2
1.2.1.1 Giới thiệu
      NS-2 là bộ công cụ mô phỏng mạng điều khiển theo các sự kiện rời rạc,
được xây dựng và phát triển bởi trường đại học Berkeley – M , cho phép mô
phỏng nhiều kiểu mạng IP khác nhau, mô phỏng các giao thức mạng: TCP, UDP
cũng như các dạng nguồn lưu lượng: FTP, Telnet, Web, CBR,         BR, mô phỏng
các hàng đợi trong các bộ định tuyến: DropTail, RED, CBQ, mô phỏng các giải
thuật định tuyến. Ngoài ra NS-2 còn cho phép thực hiện việc phát đa luồng và
một số giao thức lớp MAC đối với mô phỏng LAN.




                                                                               36
      NS-2 được xây dựng bằng ngôn ngữ lập trình hệ thống C++ và ngôn ngữ
mô phỏng Otcl. Otcl là dạng ngôn ngữ kịch bản Tcl được mở rộng theo mô hình
hướng đối tượng.




                    Hình 1-15: NS-2 dưới góc độ người dùng


      Hình 1-15 chỉ ra kiến trúc chung của công cụ mô phỏng NS-2. Trong hình
vẽ này, người sử dụng thiết kế, triển khai các mô phỏng bằng các câu lệnh Tcl, sử
dụng các đối tượng mô phỏng từ thư viện Otcl, các bộ định trình sự kiện và phần
lớn các đối tượng mạng được xây dựng bằng C++ và các đối tượng này vẫn có
thể được sử dụng như là các đối tượng Octl thông qua các liên kết.




                   Hình 1-16: Sự tương đồng giữa C++ và Otcl




                                                                              37
      Toàn bộ các thành phần trong hình 1-17, kết hợp lại tạo nên một bộ công
cụ mô phỏng mạng NS-2 là một bộ thông dịch Tcl được mở rộng hướng đối
tượng và một tập các thư viện đối tượng mô phỏng mạng.




                     Hình 1-17: Mô hình kiến trúc NS-2


1.2.1.2 Mô phỏng mạng không dây ZigBee trong NS-2
      NS-2 hỗ trợ mô phỏng mạng không dây. Mạng không dây là một đối
tượng nút NS-2 cơ bản mà được bổ sung các chức năng như khả năng chuyển
động, truyền và nhận dữ liệu trên một kênh truyền, cho phép nó được sử dụng để
tạo môi trường mô phỏng không dây và di động.
      Có năm giao thức định tuyến hiện tại đang được hỗ trợ bởi NS-2 là:
Destination Sequence Distance Vector (DSDV), Dynamic Source Routing
(DSR), Temporally Ordered Routing Algorithm (TORA), Adhoc On-Demand
Distance Vector (AODV) và Protocol for Unified Multicasting Through
Announcement (PUMA).
      Các định nghĩa DSD , AODV, TORA, DSR, hay PUMA và id là giá trị
cho mỗi mobilenode. Việc sử dụng các API cũ không còn thích hợp nữa nên các
API mới được mô tả như sau:
      $ns_node-config-adhocRouting$opt(adhocRouting)
      -llType$opt(ll)
      -macType$opt(mac)
      -ifqType$opt(ifq)



                                                                           38
       -ifqLen$opt(ifqlen)
       -antType$opt(ant)
       -propInstance[new$opt(prop)]
       -phyType$opt(netif)
       -channel[new$opt(chan)]
       -topoInstance$topo
       -wiredRoutingOFF
       -agentTraceON
       -routerTraceOFF
       -macTraceOFF

       Các API phía trên được cấu hình cho một nút không dây với tất cả các giá
trị đã cho của giao thức định tuyến adhoc, ngăn xếp mạng, kênh truyền, mô hình
phát sóng với việc bật tắt định tuyến có dây và không dây và bật tắt quá trình truy
vết tại các mức độ khác nhau.
       Ngăn xếp mạng cho một nút không dây bao gồm một lớp liên kết (LL –
Link layer), một module ARP được kết nối đến LL, một hàng đợi ưu tiên giao
diện (Ifq – Interface priority queue), một tầng MAC, một giao diện mạng (netIF),
tất cả được kết nối đến kênh truyền. Các thành phần mạng đó được tạo ra và kết
nối với nhau trong Otcl.
       Để phục vụ cho việc mô phỏng mạng không dây ZigBee, NS cung cấp
một thư viện wpan để dành cho mục đích này. Có ba loại nút mạng không dây
ZigBee được hỗ trợ theo chuẩn WPAN IEEE 802.15.4 là:
    PAN Coordinator.
    FFD- Full Function Device.
    RFD- Reduce Function Device.
Theo đó, NS-2 hỗ trợ các đặc điểm sau của mạng không dây ZigBee
    Chế độ cho phép đèn hiệu và không cho phép đèn hiệu.
    Cấu trúc mạng hình sao và hình cây.
    Truy vết đèn hiệu và đồng bộ hóa.
    Liên kết và phân ly.
    Cơ chế xác định mức năng lượng ED - Energy Detection.
    Cơ chế CCA – Clear Channel Assessment.
    Xác định chất lương liên kết LQD - Link Quality Detection.
    Hỗ trợ đa kênh truyền, đa dải tần (2,4 GHz; 915 MHz; 868 MHz).
    Quét kênh truyền (ED, chủ động, bị động, mất kết nối).



                                                                                39
1.2.2 Phần mềm OPNET
1.2.2.1 Giới thiệu
      OPNET là một công cụ mô phỏng mạng sự kiện mức cao. Lý do để chọn
OPNET là sự phổ biến của nó, đồng thời OPNET hỗ trợ mô phỏng mạng WSN
tốt (cụ thể là tốt hơn NS2). Một đặc điểm nữa là OPNET tuy là phần mềm
thương mại, nhưng miễn phí cho các trường Đại học hay Học viện. Và sau cùng,
cũng quan trọng nhất, là kể từ phiên bản 14.5 trở đi OPNET có hỗ trợ thư viện
cho Zigbee. Tuy thư viện này không đầy đủ như bản miêu tả k thuật của Zigbee
Alliance 2006, nhưng rất phù hợp với các sản phẩm bán ra của các hãng như TI,
Freescale, Atmel, hay Microchip… là chỉ hỗ trợ phương thức giao tiếp
CSMA/CA không chia khe.




                 Hình 1-18: Giao diện mô phỏng của OPNET


      Với những người chưa biết nhiều về mạng máy tính thì việc bắt đầu làm
việc với các mạng, đặc biệt là mạng không dây, có lẽ sẽ thắc mắc nhiều về các
giao thức, cách hoạt động… iệc tìm hiểu các vấn đề này sẽ mất nhiều thời gian.
Nếu bắt buộc phải dùng những thứ này để làm đồ án, hay một dự án nho nhỏ nào


                                                                           40
đấy, như điều khiển một con rô bốt, hay thu thập dữ liệu gì đó, có thể “nhắm mắt
làm liều” cũng cho ra kết quả. Nhưng để “làm thật”, khảo sát độ trễ, tin cậy, bảo
mật, ổn định thì cần tốn nhiều công sức tìm hiểu.Việc mô phỏng giúp chúng ta
tiếp cận nhanh và rẻ hơn đến mạng không dây ZigBee.

1.2.2.2 Mô phỏng mạng không dây ZigBee trong OPNET
        Phần mềm mô phỏng chứa các thư viện công nghệ mạng và các giao thức
truyền thông như: TCP/TP, HTTP, OSPF, ATM, frame relay, IP-QoS, 802.11,
802.16 hoặc thậm chí cả WiMAX. Các thư viện trên cung cấp các khối xây dựng
để dùng cho việc tạo ra các mô hình mạng. Một trong số các mô đun hỗ trợ trong
OPNET là mô đun không dây. Nó mở rộng chức năng của OPNET với việc mô
hình hóa, mô phỏng và phân tích các mạng không dây. Các nhà lập trình thứ ba
đã dựa trên mô đun không dây này để xây dựng nên mô hình mô phỏng open-ZB
nhằm hỗ trợ việc mô phỏng mạng không dây ZigBee. Mô hình mô phỏng này
thực hiện trên các tầng MAC và PHY mà được định nghĩa bởi chuẩn IEEE
802.15.4 (2003). Từ đó, OPNET khi được bổ sung thư viện open-ZB có thể hỗ
trợ cấu trúc mạng hình sao và hình cây mà trong đó các truyền thông được thiết
lập giữa các thiết bị được gọi là các thiết bị đầu cuối và một bộ điều khiển trung
tâm được gọi là bộ phối hợp PAN, cùng với các bộ định tuyến ZigBee. Mỗi thiết
bị thực hiện trong mạng phải có một địa chỉ duy nhất. Có bốn loại nút mạng
trong mô hình mô phỏng open-ZB là:
    Zigbee_coordinator.
    Zigbee_end_device.
    ZigBee_router.
    Zigbee_station_adv.
     Tất cả các nút trên đều hỗ trợ hai chức năng là khả năng di động và cố
định.
        Cấu trúc của các nút cảm biến IEEE 802.15.4 được sử dụng trong mô hình
mô phỏng được cấu thành từ bốn khối chức năng như sau:
        Tầng PHY chứa một bộ truyền (tx) và nhận (rx) sóng radio không dây
tuân theo chuẩn IEEE 802.15.4, thực hiện tại dải tần 2,4 GHz và có tốc độ truyền



                                                                               41
dữ liệu vào khoảng 250 kbps. Nguồn truyền được thiết lập mức tiêu thụ 1mW và
sử dụng k thuật điều biến là (QPSK-Quadrature Phase Shift Keying).
          Tầng MAC thực hiện cơ chế CSMA/CA và GTS có khe. Lưu thông dữ
liệu GTS đến từ tầng ứng dụng được lưu vào một bộ đệm với một dung lượng
được được chỉ định và được chuyển đến mạng khi GTS tương ứng được kích
hoạt. Các khung dữ liệu không giới hạn thời gian được lưu trong một bộ đệm
không giới hạn và dựa trên thuật toán CSMA/CA có chia khe được truyền đến
mạng trong suốt giai đoạn CAP hoạt động. Tầng này cũng có trách nhiệm sinh ra
các khung đèn hiệu và đồng bộ mạng khi một nút cho trước đóng vai trò như bộ
phối hợp PAN.
          Tầng APL bao gồm hai bộ phát sinh lưu thông dữ liệu và một Traffic
Sink. Bộ Traffic Source sinh ra các khung được thừa nhận và không được thừa
nhận và được truyền trong suốt giai đoạn CAP (được sử dụng trong cơ chế
CSMA/CA có khe). Bộ GTS Traffic Source có thể cung cấp các khung dữ liệu
không giới hạn thời gian được thừa nhận hoặc không được thừa nhận sử dụng cơ
chế GTS. Bộ Traffic Sink nhận các khung được chuyển tiếp từ các tầng thấp hơn
và thực hiện các thống kê mạng.
          Mô đun nguồn tính toán mức năng lượng tiêu thụ và mức năng lượng còn
lại.
          Các chức năng được hỗ trợ trong phiên bản open-ZB 2.1:
        Thống kê kết quả mô phỏng theo các tầng mạng.
        Giao thức tầng MAC CSMA/CA không có khe.
        Các đặc tính tầng PHY.
    Việc sinh các dữ liệu ứng dụng được thừa nhận hoặc không được thừa
nhận được truyền trong giai đoạn CAP.
      Các đặc điểm không được hỗ trợ:
        Chế độ cho phép đèn hiệu.
        Giao thức tầng MAC CSMA/CA có khe.
        Quản lý PAN (kết hợp và phân ly).
        Tầng NWK.




                                                                           42
                                CHƯƠNG II
  MÔ PHỎNG MẠNG KHÔNG DÂY ZIGBEE BẰNG PHẦN MỀM
              NETWORK SIMULATOR-2


2.1 Mục đích mô phỏng
      Mô phỏng minh họa hoạt động đồng bộ hóa các thiết trong mạng cấu trúc
hình sao cho phép chế độ đèn hiệu. Như đã trình bày trong chương 1, chế độ này
cho phép các thiết bị trong mạng truyền thông tin với nhau theo sau các khoảng
thời gian được quy định trong siêu khung được quy định bởi bộ phối hợp PAN.
Bộ phối hợp (PAN Coor) đóng vai trò là thiết bị trung tâm phát ra các siêu khung
nhằm đồng bộ đồng hồ thời gian các thiết bị khác có trong mạng. Các thiết bị
trong mạng khi khởi động sẽ nhận các gói tin chứa các tham số BO và SO để
thực hiện đồng bộ với PAN Coor.
      Các thiết bị ở đây là từ nút [1] đến nút [6] là các thiết bị dàng FFD (Full
Function Device) có khả năng liên kết với bộ phối hợp (nút [0]). Hoạt động của
kịch bản mô phỏng nằm ở tầng MAC.




                        Hình 2-1: Màn hình mô phỏng




                                                                              43
      Sau khi các thiết bị được đồng bộ quá trình trao đổi của các thiết bị với bộ
phối hợp PAN có thể được thực hiện một cách đồng bộ hóa theo thời gian, tức là
khi một thiết bị muốn truyền tin thì nó sẽ đợi đến thời điểm dành cho nó và
truyền tin mà không phải đợi các thiết bị khác mà có thể đang chiếm lĩnh đường
truyền.

2.2 Thông tin cơ bản
2.2.1 Môi trường mô phỏng
      Kịch bản mô phỏng thực hiện việc minh họa hoạt động đồng bộ hóa 6
thiết bị mạng với bộ phối hợp trung tâm. Quá trình mô phỏng sau khi thực hiện
trong NS-2 được chuyển sang giao diện đồ họa NAM nhằm thể hiện trực quan
quá trình hoạt động đồng bộ và trao đổi dữ liệu trong mạng. Phiên bản phần mềm
mô phỏng NS-2 là phiên bản mới nhất 2.34 trên nền tảng hệ điều hành Kubuntu
với những đặc điểm hỗ trợ cho việc mô phỏng mạng không dây ZigBee như đã
được trình bày trong Chương I.

                       Bảng 2-1: Môi trường mô phỏng
                 Đặc điểm                                Chi tiết
  Giao diện                               TCL
  Phiên bản                               All in one 2.34
  Môi trường                              Kubuntu 10.04.1



2.2.2 Tham số
2.2.2.1 Tham số nút mạng

                    Bảng 2-2: Tham số nút mạng hình sao
                 Tham số                                    Giá trị
  Loại lưu thông                          CBR, FTP, Poisson
  Số lượng nút                            7
  Số bộ phối hợp                          1 (Nút [0])
  Số thiết bị FFD                         6 (Nút [1], …, [6])


                                                                               44
  Khả năng di chuyển                      0
  Vị trí nút                              Tự cấu hình
  Chiều lưu thông                         Nút <-> Bộ phối hợp
  Kích thước gói                          70 byte
  Chế độ đèn hiệu                         Bật
  BO                                      3
  SO                                      3


2.2.2.2 Tham số vật lý

                            Bảng 2-3: Tham số vật lý
                  Tham số                               Giá trị
  Mô hình phát sóng radio                 Two-Ray Ground
  Loại ăng ten                            OmniAntenna
  Phạm vi truyền                          15 m
  Khoảng cách giữa các nút                ~10 m
  Diện tích                               50 x 50 m2


2.2.2.3 Tham số tầng định tuyến

                         Bảng 2-4: Tham số định tuyến
                  Tham số                               Giá trị
  Kiểu hàng đợi                           DropTail
  Chiều dài hàng đợi                      150



2.2.3 Tính toán tham số ban đầu đưa vào kịch bản
2.2.3.1 Mức độ suy hao tín hiệu theo khoảng cách
       Dựa vào công thức tính toán của phần mềm NS-2




                                                                  45
Trong đó:
Pr – Mức độ tín hiệu tại thiết bị nhận (W)
Pt – Mức độ tín hiệu tại thiết bị truyền (W)
Gt – Độ khuếch đại tại thiết bị truyền
Gr – Độ khuếch đại tại thiết bị nhận
ht – Độ cao ăng ten của thiết bị truyền (m)
hr – Độ cao ăng ten của thiết bị nhận (m)
L – Suy hao đường truyền
d – Khoảng cách truyền (m)
Các giá trị ban đầu:
Pt = 0.001 (W); Gt = 1; Gr = 1; ht = 1,5 m; hr = 1,5 m; L = 1.
Sau khi tính toán ta có bảng giá trị sau:

  Bảng 2-5: Độ suy hao tín hiệu của ăng ten TwoRayGround
  Khoảng cách (d)                               Giá trị (Pr)
         5m                  8,1 e -6 (W)
         9m                  7,71604 e -7 (W)
        10 m                 5,0625 e -7 (W)
        11 m                 3,45775 e -7 (W)
        12 m                 2,44140 e -7 (W)
        13 m                 1,77252 e -7 (W)
        14 m                 1,31781 e -7 (W)
        15 m                 1 e -7 (W)
        16 m                 7,72476 e -8 (W)
        20 m                 3,16406 e -8 (W)
        25 m                 1,296 e -8 (W)
        30 m                 6,25 e -9 (W)
        35 m                 3,37359 e -9 (W)
        40 m                 1,97753 e -9 (W)




                                                                 46
      Sau khi các giá trị được tính toán, ta đưa các kết quả này vào kịch bản mô
phỏng:
      set   dist(5m)    8.1000e-06
      set   dist(9m)    7.71604e-07
      set   dist(10m)   5.0625e-07
      set   dist(11m)   3.45775e-07
      set   dist(12m)   2.44140e-07
      set   dist(13m)   1.77252e-07
      set   dist(14m)   1.31781e-07
      set   dist(15m)   1.0000e-07
      set   dist(16m)   7.72476e-08
      set   dist(20m)   3.16406e-08
      set   dist(25m)   1.2960e-08
      set   dist(30m)   6.2500e-09
      set   dist(35m)   3.37359e-09
      set   dist(40m)   1.97753e-09

      Việc đo mức ED của thiết bị nhận có mục đích cho việc sử dụng bởi một
tầng mạng như là một phần của một thuật toán lựa chọn kênh truyền. Nó là một
sự ước lượng của độ mạnh của tín hiệu nhận được trong băng thông của một
kênh IEEE 802.15.4. Giá trị ngưỡng năng lượng EDThresh_ xác định mức năng
lượng mà với các giá trị lớn hơn nó sẽ chỉ định là kênh truyền đang bận và nhỏ
hơn nó cho biết là kênh truyền thoáng cho các thiết bị truyền. Tương tự,
CSThresh_ chỉ định khả năng sóng mang của một nút mạng. Nó là tín hiệu năng
lượng thấp nhất mà thiết bị nhận có thể xác định được. Tuy nhiên, trong mã
nguồn, giá trị EDThresh_ không bao giờ được đề cập đến và cơ chế đánh giá độ
thoáng kênh truyền sẽ chuyển sang sử dụng CSThresh_ như là ngưỡng để đánh
giá độ thoáng kênh truyền.
      Giá trị của CSThresh_ được chọn dựa trên không gian hoạt động cá nhân
của các thiết bị. Trong một vài trường hợp, thiết bị nhận có thể không đủ nhậy
cảm, nên giá trị ngưỡng năng lượng của thiết bị nhận RXThresh_ phải lớn hơn
CSThresh_
      Phy/WirelessPhy set CSThresh_ $dist(15m)
      Phy/WirelessPhy set RXThresh_ $dist(15m)

2.2.3.2 Thời gian truyền siêu khung theo dải tần
      Các thiết bị trong mạng cho phép chế độ đèn hiệu được đồng bộ hóa với
nhau theo siêu khung. Cấu trúc của siêu khung được quy định bằng hai giá trị SO
và BO để xác định thời gian truyền siêu khung trong tổng thời gian truyền một

                                                                             47
khung đèn hiệu. Với các giá trị ban đầu là SO = BO = 3 và mạng đang hoạt động
tại dải tần 2,4 GHz ta tính được thời gian để truyền siêu khung như sau:
       Giá trị ban đầu: SO=BO=3; aBaseSlotDurarion=60 (Biểu tượng);
NumberofSuperframeSlots =16.
       BI = aBaseSuperframeDuration * (2^BO) = (aBaseSlotDuration *
NumberofSuperframeSlots) * (2^BO) = 60 * 16 * 2^3 = 7680 (Biểu tượng)
       Với tốc độ truyền dữ liệu tại băng tần 2,4 GHz là 250 kbps thì ta có:
       BI = 7680 / 250000 = 0,03072 (s)
       SD = BI = 7680 (Biểu tượng) và SD = BI = 0,03072 (s)
       Ta có aBaseSuperframeDuration = BI / 16 = 1,92 e -3 (s)
       InactiveProtion = BI – SD = 0

2.2.4 Mô đun phần mềm ZigBee
       Khi chạy kịch bản mô phỏng tcl cho hai mạng bằng dòng lệnh
       $ns ZigBee[Star/Tree].tcl –traffic [cbr/poisson/ftp]

       Chúng ta lựa chọn bộ phát sinh lưu thông ngay từ tham số dòng lệnh để ra
quyết định cho bộ mô phỏng về sau có thể lựa chọn bộ phát sinh lưu thông một
cách phù hợp với mục đích mô phỏng.
       Việc lựa chọn tham số bộ phát sinh lưu thông được thực hiện bằng hàm
sau:
       proc getCmdArgu {argc argv} {
               global val
               for {set i 0} {$i < $argc} {incr i} {
                       set arg [lindex $argv $i]
                       if {[string range $arg 0 0] != "-"} continue
                       set name [string range $arg 1 end]
                       set val($name) [lindex $argv [expr $i+1]]
               }
       }
       getCmdArgu $argc $argv

       Hàm này sẽ đọc dòng lệnh và tách ra phần tham số lựa chọn bộ phát sinh
lưu thông.
       Ban đầu, khi kịch bản bắt đầu được gọi, nó sẽ thực hiện việc xác định các
biến toàn cục cho việc mô phỏng, các biến này bao gồm các thông số như: loại
ăng ten, kiểu mô hình phát sóng, giao diện mạng, loại hàng đợi, số lượng nút


                                                                               48
mạng, … iệc thiết lập này là bắt buộc để bộ mô phỏng có thể làm tham số đầu
vào.
       set   val(chan)              Channel/WirelessChannel
       set   val(prop)              Propagation/TwoRayGround
       set   val(netif)             Phy/WirelessPhy/802_15_4
       set   val(mac)               Mac/802_15_4
       set   val(ifq)               Queue/DropTail/PriQueue
       set   val(ll)                LL
       set   val(ant)               Antenna/OmniAntenna
       set   val(ifqlen)            150
       set   val(nn)                7
       set   val(rp)                AODV
       set   val(x)                 50
       set   val(y)                 50

       Như đã trình bày ở Chương II, bộ định trình là một phần quan trọng của
mô phỏng vì nó thiết lập các mốc thời gian cho các sự kiện mô phỏng. Trong các
kịch bản mô phỏng, các mốc thời gian cơ bản được thiết lập như sau:
       set   appTime1               7.0   ;
       set   appTime2               7.1   ;
       set   appTime3               7.2   ;
       set   appTime4               7.3   ;
       set   appTime5               7.4   ;
       set   appTime6               7.5   ;
       set   stopTime               100   ;

       Một đối tượng mô phỏng mới được thiết lập trong kịch bản:
       set ns_              [new Simulator]

       Một cấu trúc mạng mới cũng cũng được thiết lập là môi trường hoạt động
của các thiết bị mạng:
       set topo       [new Topography]
       $topo load_flatgrid $val(x) $val(y)

       Kích thước của cấu trúc mạng phụ thuộc vào hai giá trị x và y trong khai
báo biến toàn cục.
       Sau khi cấu hình các nút (việc cấu hình chi tiết các nút trình bày ở phần
sau) và xác định thời điểm bật các thiết bị với vai trò của nó trong mạng, ta thiết
lập việc tái thực hiện mô phỏng khi mô phỏng kết thúc như sau:
       for {set i 0} {$i < $val(nn) } {incr i} {
           $ns_ at $stopTime "$node_($i) reset";
       }

       Như đã khai báo bộ định thời với các mốc thởi gian ở trên, trong đó ta đã
khai báo thời gian kết thúc mô phỏng cho kịch bản, những hoạt động của bộ mô

                                                                                49
phỏng khi đến thời điểm kết thúc được khai báo trong hàm stop và được gọi ra
bằng phát biểu:
      $ns_ at $stopTime "stop"
      $ns_ at $stopTime "puts \"NS EXITING...\n\""
      $ns_ at $stopTime "$ns_ halt"

      Hàm stop khai báo các hoạt động trước khi kết thúc hoàn toàn quá trình
mô phỏng. Kết quả mô phỏng được đưa vào các tập tin truy vết và gọi bộ ứng
dụng trực quan NAM.
      proc stop {} {
          global ns_ tracefd appTime1 val env
          $ns_ flush-trace
          close $tracefd
          set hasDISPLAY 0
          foreach index [array names env] {
              #puts "$index: $env($index)"
              if { ("$index" == "DISPLAY") && ("$env($index)" !=
"") } {
                      set hasDISPLAY 1
              }
          }
          if { ("$val(nam)" == "ZigBeeStar.nam") && ("$hasDISPLAY"
== "1") } {
            exec nam ZigBeeStar.nam &
          }
      }

      Sau khi hoàn thành các thủ tục khai báo cũng như xác định giai đoạn kết
thúc mô phỏng, kịch bản mô phỏng được chính thức khai báo hoạt động như sau:
      puts "\nStarting Simulation..."
      $ns_ run


2.2.5 Cấu trúc xử lý
      Cấu trúc xử lý chỉ rõ quá trình mô phỏng để sinh ra các kết quả thống kê
cuối cùng. Ngoài ra lưu đồ còn giải thích về chương trình, các tham số được
truyền và chi tiết về tổ chức của cấu trúc lập trình để tạo ra môi trường mô phỏng
mà từ đó sinh ra các kết quả dạng đồ họa.




                                                                               50
                                       Bắt đầu




                         FPT          Poisson         CBR



        StarCoor.scn                 Lưu thông              ZigBeeStar.tcl



                                        NS


                                  ZigBeeStar.nam


                                       NAM


                                      Kết thúc

                               Hình 2-2: Cấu trúc xử lý


2.2.5.1 ZigBeeStar.tcl
      Là tập tin chứa các tham số và biến giúp cho việc thay đổi kịch bản mạng,
thiết lập và điều khiển quá trình mô phỏng của mạng hình sao (ZigBeeStar.tcl).
Thiết lập các thông số như loại kênh truyền, mô hình phát sóng, chiều dài hàng
đợi, thời điểm khởi động nút, yêu cầu hướng dẫn, yêu cầu siêu khung, thời điểm
bắt đầu và kết thúc mô phỏng, chứa các giá trị ban đầu hiện tại, chiều cao của ăng
ten và một số các tham số đặc tả cho việc mô phỏng mạng WPAN được ám chỉ
trong các câu lệnh TCL.




                                                                               51
2.2.5.2 StarCoor.scn
       Tập tin: StarCoor.scn chứa tọa độ của các thiết bị trong cấu trúc mạng.
Đây là tập tin chứa thông tin về vị trí các nút mạng, giữ vị trí của tất cả các nút
xung quanh bộ phối hợp.
2.2.5.3 FTP
       FTP hoạt động bằng việc tăng cường việc đếm các gói sẵn sàng được gửi
bởi tác nhân truyền TCP. Quá trình truyền gói tin thực sự của các gói sẵn sàng
vẫn được điều khiển bởi luồng của TCP và thuật toán điều khiển xung đột.
       Các phương thức của FTP được thực hiện trong Otcl là:
       attach-agent: Gắn một đối tượng ứng dụng FTP vào tác nhân.
       start: Khởi động ứng dụng FTP bằng việc gọi hàm gửi của tác nhân TCP.
       stop: Dừng việc gửi gói tin.
       produce n: Đặt bộ đếm cho các gói được gửi đến n
       producemore n: Tăng bộ đếm của các gói được gửi bởi n.
       send n: Tương tự như producemore nhưng gửi n byte thay vì n gói tin.
       Khai báo cho ứng dụng FTP phát sinh lưu thông được sử dụng trong kịch
bản bằng các tạo hàm ftptraffic với các tham số để xác định nguồn, đích của lưu
thông và thời điểm bắt đầu phát sinh:
       proc ftptraffic { src dst starttime } {
       global ns_ node_
          set tcp($src) [new Agent/TCP]
          eval \$tcp($src) set packetSize_ 50
          set sink($dst) [new Agent/TCPSink]
          eval $ns_ attach-agent \$node_($src) \$tcp($src)
          eval $ns_ attach-agent \$node_($dst) \$sink($dst)
          eval $ns_ connect \$tcp($src) \$sink($dst)
          set ftp($src) [new Application/FTP]
          eval \$ftp($src) attach-agent \$tcp($src)
          $ns_ at $starttime "$ftp($src) start"
       }

       Trong mỗi kịch bản việc sử dụng bộ phát sinh lưu lượng nào cần phải
được khai báo từ dòng lệnh khi gọi tập tin tcl như đã trình bày ở trên. Ta có thể
gọi bộ phát sinh lưu thông như sau:
       $ns ZigBee[Star/Tree].tcl –traffic ftp

       Tham số về quyết định lựa chọn bộ phát sinh fpt sẽ được lưu trong giá trị
biến toàn cục.


                                                                                52
       set val(traffic) ftp

       Bộ mô phỏng sẽ kiểm tra trong kịch bản là bộ phát sinh lưu thông nào
được truyền vào bằng cách kiểm tra giá trị biến traffic:
      if { "$val(traffic)" == "ftp" } {
         puts "\nTraffic: ftp"
         #Mac/802_15_4 wpanCmd ack4data off
         puts [format "Acknowledgement for data: %s" [Mac/802_15_4
wpanCmd ack4data]]
         $ns_ at $appTime1 "Mac/802_15_4 wpanNam PlaybackRate
0.20ms"
         $ns_ at [expr $appTime1 + 0.5] "Mac/802_15_4 wpanNam
PlaybackRate 1.5ms"
         ftptraffic 0 1 $appTime1
         ftptraffic 0 3 $appTime3
         ftptraffic 0 5 $appTime5
         $ns_ at $appTime1 "$ns_ trace-annotate \"(at $appTime1)
ftp traffic from node 0 to node 1\""
         $ns_ at $appTime3 "$ns_ trace-annotate \"(at $appTime3)
ftp traffic from node 0 to node 3\""
         $ns_ at $appTime5 "$ns_ trace-annotate \"(at $appTime5)
ftp traffic from node 0 to node 5\""
         …
      }

       Trên đây là các xử lý và điều khiển lưu thông với bộ phát sinh lưu lượng
FTP. Để minh họa hoạt động này, kịch bản gọi hàm fpttraffic tại 3 thời điểm như
sau:
       ftptraffic 0 1 $appTime1
       ftptraffic 0 3 $appTime3
       ftptraffic 0 5 $appTime5

       Tại 3 thời điểm từ nút 0 sẽ phát sinh các gói tin đến các nút mạng lần lượt
là 1, 3, 5. Các gói tin truyền qua lại giữa các nút mạng là các thông báo, gói tin
tcp, gói tin tcp, …Để phân biệt một cách rõ ràng các lợi gói tin này, ta quy định
màu sắc cho các luồng truyền gói tin:
       Mac/802_15_4    wpanNam   FlowClr   -p   AODV -c tomato
       Mac/802_15_4    wpanNam   FlowClr   -p   ARP -c green
       Mac/802_15_4    wpanNam   FlowClr   -p   MAC -s 0 -d -1 -c navy
       Mac/802_15_4    wpanNam   FlowClr   -p   tcp -s 0 -d 1 -c blue
       Mac/802_15_4    wpanNam   FlowClr   -p   ack -s 1 -d 0 -c blue
       Mac/802_15_4    wpanNam   FlowClr   -p   tcp -s 0 -d 3 -c green4
       Mac/802_15_4    wpanNam   FlowClr   -p   ack -s 3 -d 0 -c green4
       Mac/802_15_4    wpanNam   FlowClr   -p   tcp -s 0 -d 5 -c cyan4
       Mac/802_15_4    wpanNam   FlowClr   -p   ack -s 5 -d 0 -c cyan4




                                                                               53
2.2.5.4 Poisson
         Một đối tượng Poisson được khởi tạo bởi lớp Application/Traffic/Poisson.
Việc phát sinh gói tin là một quá trình Poisson: thời gian giữa các gói thành công
được sinh ra một cách độc lập với một phân bố hàm mũ mà giá trị là interval_.
Các biến thành viên quan trọng như là tham số là:
         rate_: Tốc độ gửi gói tin (bit/s), giá trị mặc định là 1Mb/s.
         interval_: Thời gian phát sinh các gói liên tục (giây).
         packetSize_: Kích thước gói của các gói tin được sinh ra, giá trị mặc định
là 500 byte.
       maxpkts_: Số lượng các gói tin tối đa được gửi, giá trị mặc định là 268,
435, 456.
       Trong mô phỏng ta gọi đối tượng Poisson tương tự như FPT ở trên qua
việc cung cấp trong tham số dòng lệnh.
         Khi khai báo việc sử dụng Poisson ta sử dụng hàm Poissontraffic với các
tham số về nguồn, đích, thời gian giữa các gói và thời điểm bắt đầu khởi tạo lưu
thông.
      proc poissontraffic { src dst interval starttime } {
         global ns_ node_
         set udp($src) [new Agent/UDP]
         eval $ns_ attach-agent \$node_($src) \$udp($src)
         set null($dst) [new Agent/Null]
         eval $ns_ attach-agent \$node_($dst) \$null($dst)
         set expl($src) [new Application/Traffic/Exponential]
         eval \$expl($src) set packetSize_ 70
         eval \$expl($src) set burst_time_ 0
         eval \$expl($src) set idle_time_ [expr $interval*1000.0-
70.0*8/250]ms    ;# idle_time + pkt_tx_time = interval
         eval \$expl($src) set rate_ 250k
         eval \$expl($src) attach-agent \$udp($src)
         eval $ns_ connect \$udp($src) \$null($dst)
         $ns_ at $starttime "$expl($src) start"
      }

         Khi mô phỏng, NS-2 cũng kiểm tra trong kịch bản Tcl giá trị của biến
traffic được truyền. Khi giá trị là Poison hoặc CBR thì thực hiện các bước sau:
         puts "\nTraffic: $val(traffic)"
         #Mac/802_15_4 wpanCmd ack4data on
         puts [format "Acknowledgement for data: %s" [Mac/802_15_4
wpanCmd ack4data]]
         $ns_ at $appTime1 "Mac/802_15_4 wpanNam PlaybackRate
0.5ms"
         $ns_ at [expr $appTime1 + 0.5] "Mac/802_15_4 wpanNam
PlaybackRate 1.5ms"


                                                                                  54
         $val(traffic)traffic 0 1 0.6 $appTime1
         $val(traffic)traffic 3 0 0.6 $appTime3
         $val(traffic)traffic 0 5 0.6 $appTime5
         $ns_ at $appTime1 "$ns_ trace-annotate \"(at $appTime1)
$val(traffic) traffic from node 0 to node 1\""
         $ns_ at $appTime3 "$ns_ trace-annotate \"(at $appTime3)
$val(traffic) traffic from node 3 to node 0\""
         $ns_ at $appTime5 "$ns_ trace-annotate \"(at $appTime5)
$val(traffic) traffic from node 0 to node 5\""
         Mac/802_15_4 wpanNam FlowClr -p AODV -c tomato
         Mac/802_15_4 wpanNam FlowClr -p ARP -c green
         Mac/802_15_4 wpanNam FlowClr -p MAC -s 0 -d -1 -c navy
         if { "$val(traffic)" == "cbr" } {
            set pktType cbr
         } else {
            set pktType exp
         }
       Mac/802_15_4 wpanNam FlowClr -p $pktType -s 0 -d 1 -c blue
       Mac/802_15_4 wpanNam FlowClr -p $pktType -s 3 -d 0 -c green4
       Mac/802_15_4 wpanNam FlowClr -p $pktType -s 0 -d 5 -c cyan4

      Các lưu thông phát sinh giữa các nút mạng sẽ được thiết lập theo các thời
điểm ở trên và màu sắc của các lưu thông cũng được chỉ định rõ.
2.2.5.5 CBR
      Bộ phát sinh lưu thông sinh ra các lưu thông với tốc độ cố định. Các gói
có kích thước là hằng số. Một cách tùy chọn, một vài sự hòa trộn ngẫu nhiên có
thể được cho phép trong khoảng thời gian đi của các gói tin.
      Một đối tượng CBR nằm trong lớp Otcl: Application/Traffic/CBR. Các
biến thành viên tham số hóa đối tượng này như sau:
       rate_: Tốc độ gửi gói tin.
       interval_: Khoảng thời gian giữa các gói tin.
       packetSize_: Kích thước cố định của các gói được sinh ra.
       random_: Cờ chỉ định cho phép hay không việc hòa trộn ngẫu nhiên trong
các thời gian đến được định thời. Giá trị mặc định là off.
       maxpkts_: Số lượng các gói tối đa được gửi, mặc định là 228.
       Việc sử dụng hàm CBRtraffic để phát sinh lưu lượng trong kịch bản cũng
tương tự như Poisson về các tham số đầu vào:
      proc cbrtraffic { src dst interval starttime } {
         global ns_ node_
         set udp_($src) [new Agent/UDP]
         eval $ns_ attach-agent \$node_($src) \$udp_($src)
         set null_($dst) [new Agent/Null]
         eval $ns_ attach-agent \$node_($dst) \$null_($dst)
         set cbr_($src) [new Application/Traffic/CBR]



                                                                            55
           eval \$cbr_($src) set packetSize_ 70
           eval \$cbr_($src) set interval_ $interval
           eval \$cbr_($src) set random_ 0
           #eval \$cbr_($src) set maxpkts_ 10000
           eval \$cbr_($src) attach-agent \$udp_($src)
           eval $ns_ connect \$udp_($src) \$null_($dst)
           $ns_ at $starttime "$cbr_($src) start"
       }

2.2.5.6 NAM
       Khi kết thúc mô phỏng, nếu các script Tcl (OTcl) đầu vào yêu cầu thì NS-
2 sẽ tạo ra các tập tin văn bản lưu chi tiết dữ liệu mô phỏng. Dữ liệu đó có thể
được dùng cho việc phân tích hay được dùng như đầu vào cho các công cụ trình
diễn mô phỏng đồ họa NAM.
       NAM thực hiện lại những sự kiện từ tập tin lần vết nam (nam tracefile).
Tập tin này có thể là khổng lồ khi thời gian mô phỏng lớn và sự kiện xảy ra
nhiều. Vì thế, phải hết sức cẩn thận. Ngoài ra, cần chú ý rằng các thông tin đồ
họa lại không được dùng để phân tích mô phỏng một cách chính xác.
       Có thể tóm tắt các tính năng của NAM như sau:
    Cung cấp trình diễn ảo cho mạng đã được tạo.
    Có thể thi hành trực tiếp từ kịch bản Tcl.
    NAM có giao diện đồ hoạ bắt mắt của CD player với các điều khiển bao
gồm play (chạy), stop (ngưng), fast forward (chạy tiếp nhanh), rw (lùi lại), pause
(tạm ngưng), điều khiển tốc độ trình diễn và tính năng giám sát packet.
     Biểu diễn thông tin như throughput (thông lượng), số packet trên từng
link.
    Cung cấp giao diện rê và thả cho việc tạo ra các topology (mô hình).
   Trước khi muốn sử dụng NAM trong kịch bản mô phỏng, ta cần khai báo việc
tạo tập tin NAM và tập tin truy vết:
       set tracefd     [open ./ZigBeeStar.tr w]
       $ns_ trace-all $tracefd
       if { "$val(nam)" == "ZigBeeStar.nam" } {
               set namtrace     [open ./$val(nam) w]
               $ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
       }

      $ns_ puts-nam-traceall {# nam4wpan #};# Thong bao cho NAM la
co mot tap tin truy vet cho mang wpan




                                                                               56
         Tên tập tin NAM được lưu trong biến toàn cục nam trong quá trình thiết
lập biến toàn cục của mô phỏng. Bộ truy vết NAM sẽ thiết lập một tập tin dạng
văn bản cho quá trình mô phỏng.
         set namtrace           [open ./$val(nam) w]

         Kiểu mạng không dây cũng phải được xác định trong quá trình thiết lập
cho NAM để phân biệt với các mạng khác như mạng có dây hoặc mạng vệ tinh.
         $ns_ namtrace-all-wireless $namtrace $val(x) $val(y)

         Không gian mô phỏng được giới hạn tuân theo giá trị hai biến toàn cục là
x và y. Trong quá trình mô phỏng, hoạt động của các nút mạng được giám sát bởi
bộ God mà được khai báo như sau
         set god_ [create-god $val(nn)]
         set chan_1_ [new $val(chan)]

         Một thành phần không thể thiếu để tạo nên một hình ảnh mô phỏng trực
quan cho NAM là các nút mạng. Trong kịch bản, vị trí của các nút mạng được
quy định bằng 3 tọa độ X, Y, Z trong đó, nếu mô phỏng trên một mặt phẳng thì
giá trị của Z = 0. Các tọa độ này được lưu trong một tập tin dạng văn bản riêng
để tiện điều chỉnh khi cần thiết. Việc đưa tọa độ của các nút mạng đó vào kịch
bản NS-2 khá đơn giản bằng việc gọi thẳng đến đường dẫn tập tin như sau:
         source ./StarCoor.scn

         Nội dung của tập tin scn có dạng:
         $node_(0)   set   X_   25
         $node_(0)   set   Y_   25
         $node_(0)   set   Z_   0
         $node_(1)   set   X_   20
         $node_(1)   set   Y_   16.34
         $node_(1)   set   Z_   0
         $node_(2)   set   X_   15
         …

         Sau khi các nút mạng được xác định tọa độ trong cấu trúc mạng, kích
thước của chúng được quy định bằng cách duyệt lại danh sách các nút và đặt kích
thước.
         for {set i 0} {$i < $val(nn)} {incr i} {
               $ns_ initial_node_pos $node_($i) 2
         }




                                                                              57
      Trước khi kết thúc mô phỏng, các kết quả thu thập được trong quá trình
thực hiện kịch bản phải được gom lại đưa vào tập tin NAM.
      $ns_ flush-trace
      close $tracefd
      set hasDISPLAY 0
      foreach index [array names env] {
              #puts "$index: $env($index)"
              if { ("$index" == "DISPLAY") && ("$env($index)" !=
"") } {
                       set hasDISPLAY 1
              }
            }
            if { ("$val(nam)" == "ZigBeeStar.nam") && ("$hasDISPLAY"
== "1") }       {
            exec nam ZigBeeStar.nam &
            #exec xgraph -column 1 2 ZigBee.tr &
            #exec awk -f avg_throughtput.awk ZigBee.tr
      }

      Sau cùng là gọi bộ NAM thực thi tập tin truy vết NAM đã được tạo ra
trước đó.
      exec nam ZigBeeStar.nam


2.2.6 Hoạt động tổng quát của nút mạng và định tuyến
      Trong cấu hình các thuộc tính cho các nút mạng, trong trường hợp một
cấu trúc mạng có số lượng nút mạng lớn thì ta không thể cấu hình cho từng nút
mạng và đưa toàn bộ vào kịch bản mô phỏng vì sẽ làm tăng kích thước và dài
dòng không cần thiết. Để khắc phục, ta thiết lập các thông số coi như là một
khung tổng quát.
      $ns_ node-config -adhocRouting $val(rp) \
                 -llType $val(ll) \
                 -macType $val(mac) \
                 -ifqType $val(ifq) \
                 -ifqLen $val(ifqlen) \
                 -antType $val(ant) \
                 -propType $val(prop) \
                 -phyType $val(netif) \
                 -topoInstance $topo \
                 -agentTrace OFF \
                 -routerTrace OFF \
                 -macTrace ON \
                 -movementTrace OFF \
                      #-energyModel "EnergyModel" \
                      #-initialEnergy 1 \
                      #-rxPower 0.3 \
                      #-txPower 0.3 \
                 -channel $chan_1_



                                                                          58
        Sau đó dùng vòng lặp thiết lập các thông số cho từng nút mạng theo các
thông số này.
        for {set i 0} {$i < $val(nn) } {incr i} {
              set node_($i) [$ns_ node]
              $node_($i) random-motion 0  ;
        }

        Tại đây, nếu muốn thiết lập các thiết bị theo tọa độ để chủ động trong thiết
kế thì có thể tắt chức năng đặt tọa độ ngẫu nhiên mặc định cho các nút mạng như
trên.
        Bộ phối hợp của mạng được bật với dòng lệnh dưới đây:
        $ns_ at 0.0 "$node_(0) sscs startPANCoord"

        Lệnh này được dùng để chỉ rõ việc bắt đầu thời gian cho thiết bị cùng với
các tham số khởi tạo khác như BO, SO, BT…
        Chức năng này hướng trực tiếp đến tập tin nguồn tương ứng đến tầng sscs
và các lệnh từ các hàm kịch bản tcl được giải mã trong hàm
        Int SSCS802_15_4::Command Sẽ chiết xuất các lệnh và các tham số được
truyền và cuối cùng hàm có trách nhiệm vụ khởi động bộ phối hợp.
         oid SSCS802_15_4::startPANCoord được truyền với các tham số này và
được thực thi. Hàm này quyết định bước hiện tại dựa trên một tập hợp các bước
được định nghĩa trước, như ở đây là các bước tương ứng để bắt đầu bộ phối hợp
và bắt đầu các thiết bị khác. Trong bước đầu tiên, nó sẽ cho phép các đặc tính của
nó như việc thiết lập BO và SO, xác thực để truyền các hướng dẫn, gán một
macShortAddress cho chính nó và cuối cùng quét các kênh để thiết lập một
mạng.
        Trong bước đầu tiên để hình thành một mạng, nó lưu lại địa chỉ ngắn của
nó vào giá trị của thuộc tính PIB, macShortAddress bằng việc gọi hàm
Mac802_15_4::MLME_SET_request.
        Hàm Mac802_15_4::MLME_SET_confirm xác nhận trạng thái của nỗ lực
để viết vào giá trị MAC PIB, trả lời là thành công hay thất bại với một lý do phù
hợp. Nút mạng sau đó sẽ gọi hàm, Mac802_15_4::MLME_SET_request để thực
hiện một hành động quét trên tất cả các kênh được hỗ trợ theo kiểu chủ động hay
là bị động và kết hợp với một kênh truyền để thiết lập một mạng PAN. Một lần


                                                                                 59
nữa cơ chế quét kênh truyền được gọi ra trong một kiểu tuyến tính. Trong bước
đầu tiên, việc truyền các hướng dẫn bị hủy bỏ bằng việc thiết lập giá trị của BO =
15 và kết thúc bất kỳ phiên CSMA/CA đang chạy nào sau đó cơ chế quét dựa
trên kiểu quét được chọn mà được truyền như là tham số của hàm. Các kiểu quét
được chọn có thể là một trong các kiểu sau:
    Quét ED.
    Quét tích cực/bị động.
    Quét thiết bị mất kết nối.
     Kịch bản sử dụng giao thức định tuyến AODV cho mạng hình sao. Từ đây
có thể không chuyển tiếp dữ liệu trong một kiến trúc sao IEEE 802.15.4, hop tiếp
theo đến đích sẽ chính là bản thân đích. Do đó không cần bất kỳ quyết định nào
nếu thông tin nào đó trong bảng định tuyến bị mất. Thông tin có thể được gửi
trực tiếp mà không cần tra bảng định tuyến.

2.3 Phân tích kết quả
      Qua việc tạo ra kịch bản mô phỏng ta thấy được hoạt động của các nút
mạng [1] ..[6] với bộ phối hợp [0] cho đến khi mạng đạt được trạng thái hội tụ.
Hoạt động cụ thể của truyền thông giữa một thiết bị với bộ phối hợp PAN được
thể hiện như sau:


Bộ phối hợp PAN                                        Thiết bị (RFD)
          Quét kênh truyền
          Truyền khung đèn hiệu
          Khởi tạo bộ phối hợp PAN
                          Yêu cầu liên kết                    Quét kênh truyền
                       Lệnh yêu cầu liên kết
                     Xác nhận lệnh yêu cầu liên kết

                         Lệnh yêu cầu dữ liệu
                      Xác nhận lệnh yêu dữ liệu
                                 kết
                      Xác nhận lệnh yêu cầu liên kết
                                                              Kết nối thành công
                                                              Đồng bộ hóa

            Hình 2-3: Hoạt động trao đổi thông tin của nút mạng


                                                                                   60
      Các nút mạng sẽ thực hiện một loạt các thủ tục để truy nhập kênh truyền
và đối với các thiết bị đầu cuối ZigBee chúng sẽ gửi các yêu cầu để có thể kết nối
được với bộ phối hợp PAN như hình minh họa trên. Các thiết bị sẽ xen kẽ thực
hiện các thủ tục và gửi các yêu cầu cũng như nhận các gói tin đồng bộ cho đến
khi toàn bộ mạng nhận diện được bộ phối hợp PAN và được đồng bộ hóa.
      Sau khi mạng được đồng bộ, quá trình truyền dữ liệu giữa các thiết bị với
bộ phối hợp được minh họa bằng một trong số các lưu thông FTP, CBR hoặc
Poisson.

2.4 Kết luận
      Qua quá trình tạo kịch bản và theo dõi hoạt động mô phỏng mạng hình sao
ZigBee, ta hiểu rõ được quá trình trao đổi thông tin giữa các nút mạng trong quá
trình đồng bộ hóa đồng hồ thời gian với bộ phối hợp PAN. NS-2 có khả năng hỗ
trợ mạng không dây ZigBee ở chế độ đèn hiệu. Song song với đó, ta nhận thấy
thiếu sót của NS-2 là tính trực quan và khả năng hỗ trợ định tuyến cho các mạng
hình cây.




                                                                               61
                               CHƯƠNG III
  MÔ PHỎNG MẠNG KHÔNG DÂY ZIGBEE BẰNG PHẦN MỀM
                   OPNET 14.5


3.1 Mục đích mô phỏng
      Mô phỏng cấu trúc mạng hình sao của mạng không dây ZigBee bằng phần
mềm OPNET và hướng đến sự đa dạng về khả năng hoạt động của thiết bị mạng.
Môi trường mạng mô phỏng sử dụng hai loại thiết bị chính của ZigBee mà được
OPNET hỗ trợ là bộ phối hợp PAN và thiết bị đầu cuối mạng.
      Kết quả mô phỏng là phân tích đánh giá các tình huống sau:
    Tình huống lưu thông giữa các nút mạng với bộ phối hợp PAN và giữa
các nút mạng với nhau.
    Khả năng hỗ trợ của ZigBee với các thiết bị có tốc độ truyền thông biến
đổi.
     Tình huống khi có một thiết bị mới xuất hiện và tham gia truyền thông
trong mạng.
       Hiện tại, phần mềm OPNET phiên bản 14.5 chưa hỗ trợ chế độ đèn hiệu
nên ta chỉ có thể mô phỏng với cơ chế truy nhập kênh truyền là CSMA/CA
không có khe.

3.2 Cấu hình mô phỏng
3.2.1 Tạo giao diện mô phỏng và cấu trúc mạng
      Tạo một dự án mới bằng cách vào File/New trong cửa sổ giao diện.




                  Hình 3-1: Tạo dự án mới trong OPNET


                                                                         62
      Khi đó sẽ xuất hiện một cửa sổ yêu cầu ta đặt tên cho dự án. Sau khi đặt
tên, sẽ có các cửa sổ nhanh yêu cầu thiết lập môi trường cho mô phỏng. Một cách
mặc định ta chọn Next nhưng riêng tại cửa sổ lựa chọn kích thước môi trường thì
ta phải chọn là Office như hình vẽ và sau đó Next đến khi Finish.




         Hình 3-2: Giao diện chọn kích thước môi trường mô phỏng


      Tiếp đó, sẽ có một cửa sổ mới bao gồm kích thước mặt bằng của mô
phỏng và bảng lựa chọn các thiết bị, ta tìm đến thiết bị ZigBee để bổ sung vào
cấu trúc mạng:




        Hình 3-3: Bảng lựa chọn các thiết bị mạng không dây ZigBee



                                                                            63
      Sau khi kéo thả hai loại thiết bị là zigbee_coordinator (fixed node) và
zigbee_end_device (fixed node) vào mặt bằng mạng ta có cấu trúc mạng như sau:




                     Hình 3-4: Cấu trúc mạng mô phỏng


      Trong mô phỏng ta chỉ sử dụng nút mạng cố định nên lựa chọn loại
fixednode. Trong đó, đứng ở trung tâm là bộ phối hợp PAN và được đặt tên là
PAN Coordinator, các nút mạng Node 1, Node 2, Node 3, Node 4, Node 5, Node
6 là các thiết bị đầu cuối. Như hình vẽ chỉ ra các lưu thông mạng, Node 1 sẽ gửi
gói tin sang cho Node 2 qua PAN Coordinator, Node 3 và Node 4 gửi gói tin về
PAN Coordinator, Node 5 phát sinh lưu thông biến thiên tại chế độ VBR, Node 6
là nút mạng mới tham gia vào mạng. Riêng bộ PAN Coordinator không phát sinh
bất kỳ gói tin nào đến các thiết bị trong mạng mà chỉ nhận dữ liệu.




                                                                             64
3.2.2 Cấu hình thiết bị
      Để cấu hình cho các thiết bị ta chuột phải vào một thiết bị và chọn Edit
Attributes. Một bảng thuộc tính xuất hiện như sau:




                 Hình 3-5: Giá trị các thuộc tính của một nút

      Trong đó, các thuộc tính của một nút mạng được phân chia theo các tầng
mạng theo chuẩn ZigBee. Các thuộc tính tầng MAC, NWK và PHY của các thiết
bị từ Node 1 đến Node 4 ta để mặc định. Riêng PAN Coordinator ta đặt thuộc
tính NWK là Default star network để mô phỏng mạng hình sao. Các thuộc tính
của các nút mạng theo Application Traffic được thiết lập theo bảng sau:




                                                                           65
         Bảng 3-1: Giá trị thuộc tính Application Traffic cho các nút mạng
              PAN
                           Node 1      Node 2      Node 3      Node 4      Node 5      Node 6
              Coor
                                                     PAN         PAN         PAN         PAN
Destination   No Traffic    Node 2     No Trafic
                                                    Coor.       Coor.       Coor.        Coor.
Packet         Constant    Constant    Constant    Constant    Constant    Fast_nor    Constant
Inter. Time      (1.0)       (1.0)       (1.0)       (1.0)       (1.0)     mal (1.3)     (1.0)
                                                                                       Uniform
               Uniform     Uniform     Uniform     Uniform     Uniform     Uniform
Start time                                                                             (1800.180
                (20.21)     (20.21)     (20.21)     (20.21)     (20.21)    (600.601)
                                                                                          1)

Stoptime        Infinity    Infinity    Infinity    Infinity    Infinity     1000        2400



          Để thiết lập các cấu hình cho các tình huống đã nêu trong phần mục đích,
ta phải thiết lập thuộc tính cho các nút mạng như bảng trên.
     PAN Coordinator: Để phục vụ mục đích thống kê phân tích nên nút mạng
này chỉ nhận gói tin chứ không tự phát sinh gói tin nào ra mạng nên giá trị đích
cho các lưu thông là không có. Giá trị của thuộc tính Paket Inter. Time cho biết
nó se gửi ra mạng 1 gói tin trên mỗi giây. Ta không cần quan tâm đến giá trị này
tại PAN vì đã thiết lập không cho phép phát sinh lưu thông ở trên. Start Time với
giá trị 20.21 là cho biết nút này sẽ bắt đầu hoạt động tại thời điểm 20 giây sau khi
bắt đầu mô phỏng và gửi gói tin giữa thời điểm 20 và 21 giây và hoạt động đến
khi hết mô phỏng với Stop Time là vô cùng.
     Node 1: Tương tự PAN Coordinator nhưng giá trị Destination cho nó là
Node 2 vì ta muốn tạo lưu thông giữa hai nút mạng cụ thể là Node 1 đến Node 2
để phân tích vấn đề 1.
     Node 2: Vì Node 2 chỉ có tác dụng nhận gói tin từ Node 1 để phân tích
nên nó không được phép gửi gói tin nào đi (No Traffic).
     Node 3,4: Minh họa việc gửi gói tin từ thiết bị đầu cuối đến PAN
Coordinator và thông qua đó so sánh độ trễ của gói tin với Node 1 cho mục đích
phân tích lưu thông nên Destination của chúng là PAN Coordinator.




                                                                                               66
    Node 5: Node 5 dùng cho minh họa phân tích tình huống 2 khi chính nó
tham gia vào lưu thông mạng bằng cách gửi gói tin đến PAN Coordinator với tốc
độ biến thiên nên ta quy định giá trị Packet Interarrival Time của nó theo kiểu
biến thiên fast_normal trong đó số lượng gói tin trong một giây có thể tăng từ 1
đến 3 gói. Nút mạng này sẽ bắt đầu hoạt động tại thời điểm 600s và kết thúc
truyền thông tại 1000s.
    Node 6: Node 6 dùng cho mô phỏng vấn đề 3 khi có một nút mạng mới
đột nhiên tham gia vào mạng bằng cách gửi gói tin đến PAN Coordinator nên ta
cho phép nó hoạt động tại thời điểm 1800s đánh dấu thời điểm tham gia vào
mạng và thoát khỏi mạng tại thời điểm 2400s tính từ khi bắt đầu mô phỏng.

3.2.3 Cấu hình thống kê
      Trong mô phỏng, dĩ nhiên ta muốn quan sát một đại lượng hay một quá
trình nào đó. Cụ thể trong dự án này là tốc độ, số lượng gói tin gửi và nhận giữa
các thiết bị, độ trễ đường truyền từ điểm này đến điểm khác. Để làm được điều
này, ta cần thiết lập cho các nút mạng mục đích thu thập thông tin thống kê bằng
cách chuột phải vào từng thiết bị, chọn Choose Individual DES Statistics:




                   Hình 3-6: Lựa chọn số liệu cần thống kê




                                                                              67
        Như hình trên ta thấy, các số liệu và tiêu chuẩn thống kê được sắp xếp
phân tầng theo cấu trúc mạng không dây ZigBee. Trong kịch bản này, ta chỉ lựa
chọn hai tầng trong tiêu chuẩn Module Statistics là APL và NWK cho các nút
theo bảng:

             Bảng 3-2: Lựa chọn các tầng thống kê theo các nút mạng
                     PAN
                               Node 1   Node 2   Node 3    Node 4   Node 5   Node 6
                     Coor.
 App_layer            x          x        x         x        x        x        x
 Network_layer                   x        x         x        x


3.2.4 Định trình lập lịch


    Khởi động PAN             Khởi          Tắt            Khởi        Tắt
     Coor, Node 1,            động         Node 5          động       Node 6
        2, 3, 4              Node 5                       Node 6




0   20         600     1000               180             240                      360
    0     Hình 3-7: Định trình thời gian hoạt động của các nút mạng
                                       0            0                              0



3.2.5 Chạy mô phỏng
        Sau khi thiết lập xong các thông số của các nút mạng và tiêu chí thống kê
ta tiến hành thực hiện chạy mô phỏng bằng cách chọn nút Configure/Run
Discrete Event Simulation (DES) trên thanh công cụ và thiết lập thông số mô
phỏng như sau:




                                                                                   68
                        Hình 3-8: Cấu hình mô phỏng


      Trong đó, thời gian mô phỏng là 1 giờ tương ứng với 3600 giây và chọn
nút Run.

3.3 Phân tích kết quả
3.3.1 Mô phỏng tình huống 1
      Như đã đề cập trong mục đích mô phỏng, ta muốn mô phỏng hoạt động
truyền thông từ Node 1 sang Node 2. Nhưng theo chuẩn công nghệ ZigBee, hai
thiết bị đầu cuối trong mạng hình sao không được phép trao đổi trực tiếp với
nhau mà phải thông qua bộ phối hợp PAN. Để phân tích hoạt động này ta thống
kê các gói tin mà PAN Coordinator sẽ nhận được và độ trễ của gói tin đi từ Node
1 đến đích so với các nút khác mà trực tiếp truyền thông với PAN Coordinator.
Cấu trúc mạng mô phỏng cho tình huống 1 như sau:




                                                                            69
                 Hình 3-9: Kịch bản mô phỏng tình huống 1


      Trong cấu trúc mạng ở trên, ta chỉ cần các thiết bị là PAN Coordinator,
Node 1, 2, 3, 4 hoạt động. Hai thiết bị còn lại là Node 5 và Node 6 bị vô hiệu hóa
thể hiện bằng dấu x ở trung tâm của mỗi nút mạng. Node 1 sẽ gửi gói tin đến
Node 2 nhưng vẫn phải qua PAN Coordinator, Node 3 và 4 gửi trực tiếp gói tin
đến PAN Coordinator, PAN Coordinator không thực hiện việc gửi gói tin đi bất
kỳ đâu. Sau khi thực hiện mô phỏng, ta có các kết quả phân tích như sau:




                                                                               70
 Hình 3-10: Kết quả thống kê số lượng gói tin đã gửi của PAN Coordinator
                                 tại tầng APL




Hình 3-11: Kết quả thống kê số lượng gói tin nhận của PAN Coordinator tại
                                   tầng APL


      Qua việc quan sát kết quả thống kê ở trên, ta thấy rằng số gói tin được gửi
bởi PAN Coordinator như hình 3-10 là 0 packet/s và số gói tin nhận được như
trong hình 3-11 chỉ có 2 packet/s. Một loạt các câu hỏi được đặt ra là: Như ta đã
thiết lập từ đầu là Node 1 gửi gói tin đến Node 2 với trung gian là PAN



                                                                              71
Coordinator mà tại sao dữ liệu nhận được tại PAN Coordinator chỉ là 2 packet/s
mà không phải là 3 packet/s?. Nếu là 2 packet/s thì tức là chỉ có Node 3 và 4 gửi
đến còn Node 1 cấn trung gian thì sao? Dữ liệu truyền từ PAN Coordinator đi từ
PAN Coordinator đáng ra phải là 1 packet/s để đi đến Node 2 nhưng tại sao ở đây
lại là 0 packet/s.
       Câu trả lời khá thú vị, đúng là PAN Coordinator tham gia làm trung gian
chuyển gói tin từ Node 1 đến Node 2 nhưng khi nhận được gói tin từ Node 1 thì
nó chuyển sang Node 2 nhưng gói tin này không đi lên đến tầng ứng dụng (APL)
của PAN Coordinator mà chỉ đi đến tầng mạng của nó mà thôi. Ta không thể
thấy được gói tin vì ta đang thống kê tại tầng APL. Đường đi của gói tin sẽ như
sau:


       APL                                                            APL



       NWK                          NWK                               NWK



       MAC                           MAC                              MAC



       PHY                           PHY                              PHY

                     Kênh truyền

       Hình 3-12: Gói tin đi từ Node 1 qua PAN Coordinator đến Node 2

       Gói tin từ Node 1 đến Node 2 vì phải qua trung gian là PAN Coordinator
nên sẽ phải có độ trễ lớn hơn các gói tin truyền trực tiếp từ Node 3 và Node 4 đến
PAN Coordinator. Điều này có thể dễ dàng phân tích bằng biểu đồ truyền thông
End to End (ETE) của Node 1 khi so sánh với Node 3 và Node 4.




                                                                               72
   Hình 3-13: Biểu đồ thống kê ETE của Node 1 so với Node 3 và Node 4


      Trên hình ta thấy, biểu đồ trên cùng là độ trễ gói tin của Node 1 và hai
biểu đồ ở dưới lần lượt là của Node 3 và Node 4. Độ trễ của Node 3 và 4 là giống
nhau còn với Node 1 thì cao hơn nhiều vì nó phải qua trung gian là PAN
Coordinator.

3.3.2 Mô phỏng tình huống 2
      Trong mô phỏng tình huống 1, các thiết bị trong mạng hoạt động với tốc
độ bit cố định. Nhưng vấn đề quan trọng là không phải thiết bị nào cũng như
nhau và hoạt động với tốc độ bit hằng số, mạng không dây ZigBee phải có khả
năng hỗ trợ các thiết bị với tốc độ biến thiên VBR (Variable Bit Rate). Ta sử
dụng Node 5 hoạt động với BR để đánh giá sự ảnh hưởng của nó trong mạng.




                                                                             73
  Hình 3-14: Cấu trúc mạng bổ sung với Node 5 hoạt động ở chế độ VBR

      Phân tích kết quả thống kê về số lượng gói tin gửi đi của Node 5 và số gói
tin nhận được tại PAN Coordinator ta có:




        Hình 3-15: Kết quả thống kê từ Node 5 và PAN Coordinator




                                                                             74
       Biểu đồ phía trên là tốc độ bit gửi đi từ Node 6 đến PAN Coordinator. Để
thiết lập chế độ    BR cho Node 5 ta điều chỉnh thuộc tính Packet Interarrival
Time của Node 5 thành fast_normal(1.3) với ý nghĩa là số lượng gói tin truyền đi
trong 1 giây của Node 5 có thể tăng từ 1 packet/s lên đến 3 packet/s trong khi các
nút mạng khác đều mang giá trị là 1. Để phân biệt rõ hơn giai đoạn biến đổi trong
lưu thông mạng, ta chỉ cho phép Node 5 hoạt động từ giây thứ 600 đến 1000.
Trong thời gian hoạt động như trên ta thấy Node 5 có thể gửi đến 1.1 gói tin
trong 1 giây và sau đó lại ngắt kết nối nên số gói tin lại bằng 0.
       Khi xem xét thống kê tại PAN Coordinator ta thấy cũng có giai đoạn tốc
độ bit biến thiên, đang là 2 packet/s lên đến hơn 3 gói tin và sau đó lại trở lại 2
gói tin. Tức là tốc độ bit biến thiên của Node 5 khi truyền đến PAN Coordinator
đã được PAN Coordinator nhận thành công, cấu trúc mạng đã đáp ứng được cho
truyền thông với tốc độ bit thay đổi.
       Các thống kê trên chỉ cho biết là các gói tin đã đến đích thành công nhưng
quan trọng là độ trễ của gói tin khi đến đích như thế nào nên chúng ta phải kiểm
tra độ trễ ETE của các gói tin được gửi.




  Hình 3-16: Kết quả phân tích độ trễ ETE của Node 5 so với Node 1 và 3

                                                                                75
      Lần lượt trên hình là biểu đồ ETE của Node 1, Node 3 và Node 5. Qua đó
ta thấy độ trễ của Node 5 là biến thiên trong khoảng thời gian mà nó hoạt động
và lớn nhất vì số lượng gói tin gửi đi lớn hơn hoặc bằng Node 1 và Node 3.

3.3.3 Mô phỏng tình huống 3
      Trong quá trình hoạt động, sự mở rộng cấu trúc mạng khi có thêm các
thiết bị mới tham gia vào mạng là tất yếu và mạng không dây ZigBee phải đáp
ứng cho tình huống mới này:




   Hình 3-17: Cấu trúc mạng bổ sung với sự tham gia của nút mạng mới


      Node 6 sẽ xuất hiện tại thời điểm 1800s và kết thúc tại 2400s. Ta hãy phân
tích kết quả thống kê hoạt động nhận gói tin tại PAN Coordinator để đánh giá
tình huống này.



                                                                             76
            Hình 3-18: Kết quả thống kê thời điểm Node 6 gửi và
                            PAN Coordinator nhận


      Trên đây là giai đoạn Node 6 tham gia vào mạng và gửi gói tin đến PAN
Coordinator. Tại PAN Coordinator ta thấy giai đoạn từ 1800s khi Node 6 bắt đầu
hoạt động thì số lượng gói tin nhận được từ 2 packet/s lên đến 3 packet/s chứng
tỏ có sự tham gia thành công của Node 6 vào hoạt động của mạng và khi Node 6
thoát khỏi lưu thông mạng tại thời điểm 2400s, số lượng gói tin nhận được tại
PAN Coordinator lại là 2 packet/s. Chứng tỏ việc truyền thông trong mạng khi có
một thiết bị mới tham gia vào mạng được hỗ trợ đầy đủ.

3.4 Kết luận
      Qua quá trình đặt vấn đề và mô phỏng giải quyết các tình huống ở trên
giúp ta không chỉ hiểu rõ về giao thức và OPNET mà còn hiểu rõ hơn công nghệ
ZigBee ứng dụng trong OPNET. Các mô phỏng đã cho thấy một cấu trúc mạng
hình sao ZigBee với khả năng mở rộng và đa dạng về thiết bị cũng như vai trò
của chúng trong mạng. Thêm vào đó, kinh nghiệm sử dụng OPNET và các k
thuật như hẹn giờ vào ra, truyền trung gian và tốc độ bit biến đổi cũng được nâng


                                                                              77
cao. Qua quá trình tìm hiểu mô phỏng, nhận thấy OPNET chưa hỗ trợ đầy đủ cho
công nghệ ZigBee đặc biệt là chế độ đèn hiệu và các GTS cho mạng hình sao.
Hơn nữa, hoạt động định tuyến trong mạng cũng không được tường minh do vấn
đề sở hữu trí tuệ.




                                                                         78
                                 KẾT LUẬN


      Đề tài tập trung nghiên cứu về mạng không dây ZigBee, cấu trúc các tầng
mạng và hoạt động của chúng trong quá trình truyền thông. Song song với đó là
quá trình tìm hiểu về tính năng, hoạt động và đặc điểm hỗ trợ của các phần mềm
mô phỏng dành cho công nghệ ZigBee. Sau quá trình nghiên cứu tìm hiểu là quá
trình tổng hợp kiến thức và thực hiện trên các mô phỏng nhằm tính toán, minh
họa và phân tích hoạt động của các thiết bị mạng không dây ZigBee.
      Dưới đây là các thành quả đã đạt được:
    Nắm được kiến thức về công nghệ ZigBee và phần mềm mô phỏng NS-2
và OPNET như đã trình bày trong Chương I.
    Mô phỏng thành công hoạt động đồng bộ hóa trong mạng hình sao ZigBee
bằng phần mềm NS-2.
    Mô phỏng thành công hoạt động mạng hình sao ZigBee với ba tình huống
thực tế bằng phần mềm OPNET.
       Tác giả cũng thu được những kinh nhiệm quan trọng trong việc sử dụng
các phần mềm mô phỏng, hiểu được cách tạo ra các kịch bản mô phỏng trong
NS-2 và cách cấu hình, thống kê để đạt được kết quả phân tích mô phỏng một số
tình huống xảy ra trong mạng không dây ZigBee với phần mềm OPNET.
      Hướng phát triển của đề tài là từ các kết quả mô phỏng ở trên triển khai hệ
thống mạng thực tế khi có các điều kiện kinh tế. Ngoài ra, có thể xây dựng bổ
sung thư viện cho NS-2 để có thể mô phỏng định tuyến trong mạng hình cây
phân cấp và giải quyết vấn đề nút ẩn trong phần mềm OPNET. Một cách tổng
quát, việc mô phỏng bổ sung các mạng hình cây và mắt lưới cũng như đảm bảo
tính di động của các nút mạng trong các mô phỏng có chướng ngại vật cũng là
một hướng để bổ sung và hoàn thiện kiến thức về mạng không dây ZigBee.




                                                                              79
                         TÀI LIỆU THAM KHẢO


[1] NS-2 Documention
[2] www.ns2-examples.com
[3] ZigBee resource guide, http://www.zigbeeresourceguide.com/
[4] Shahin Farahani, 2008, ZigBee Wireless Networks and Transceivers, USA.
[5] ZigBee Alliance, ZigBee 802.15.4 Summary, http://www.zigbee.org.
[6] IEEE 802.15.4 Standard Specification, http://www.standards.ieee.org.
[7] Giáo trình thực hành NS-2.
[8] http://www.isi.edu/nsnam/ns/
[9] J Zheng, Myung J. Lee, A comprehensive performance study of IEEE
802.15.4.
[10] Sam Leing, Will Gomez, Jung Jun Kim, 2009, ZigBee mesh network
simulation using OPNET & study of routing selection, Taipei, Taiwan.
[11] The IEEE 802.15.4, 2007, OPNET simulation, Portugal.
[12] Jarmo Prokkola, 2006, Simulation & Tools for telecommunications, Finland.
[13] J. Theunis, B. Van den Broeck, P. Leys, J. Potemans, E. Van Lil, A. Van de
Capelle, OPNET in Advanced Networking Education, Katholieke Universiteit
Leuven.
[14] Ricardo Augusto Rodrigues da Silva Severino, 2008, On the use of IEEE
802.15.4/ ZigBee for time-sensitive wireless sensor network applications, Porto.




                                                                               80

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:544
posted:7/28/2012
language:Chinese
pages:80
Description: Simulating ZigBee networking operation using NS-2 and OPNET