(a) Từ Thiết bị (b) Từ trạm điều phối PAN Coordinator
Đảm bảo sự kết nối tin cậy giữa hai thực thể MAC ngang hàng:
Lớp MAC có nhiều cơ chế khác nhau để tăng độ tin cậy giữa hai thực thể ngang hàng. Giữa chúng là các quá trình xác nhận truyền, yêu cầu truyền lại và xác nhận dữ liệu thông qua phương thức kiểm tra mã vòng dư CRC với cơ chế phát hiện lỗi FCS 16 bit.
Tiết kiệm năng lƣợng:
Để giảm tiêu thụ năng lượng thì hầu hết các trạm sẽ ở trạng thái nghỉ khi không làm việc. Tuy nhiên mỗi trạm vẫn sẽ lắng nghe theo chu kỳ từ kênh vật lí để xác định xem có thơng báo nào chưa thực hiện không. Cơ chế này sẽ cho phép
người thiết kế ứng dụng cân đối việc tiêu thụ năng lượng và thông báo.
3.7. Tầng Mạng trong mạng Zigbee [4, tr82-110]
3.7.1. Tổng quan tầng mạng trong Zigbee
Mạng Zigbee, như đã nói ở chương 2.3, có tầng vật lí và tầng MAC kế thừa hoàn toàn thiết kế của IEEE 802.15.4, tuy nhiên, bắt đầu từ tầng Mạng, kiến trúc của Zigbee lại được định nghĩa lại bởi hiệp hội Zigbee Alliance. Kiến trúc xuyên suốt trong các tầng của mạng Zigbee (IEEE 802.15.4) được xây dựng theo từng tầng với mỗi tầng đều có các điểm truy nhập dịch vụ (SAP) cho các tầng phía trên giao tiếp và truy nhập vào. Mỗi SAP hỗ trợ một số lượng các hàm truy nhập để có thể lấy thơng tin từ tầng chứa SAP đó.
Hiệp hội Zigbee Alliance xây dựng thêm hai tầng nữa trên tầng vật lí (PHY) và tầng MAC, đó là tầng Mạng (Network layer) và tầng Ứng dụng (Application layer). Cả hai tầng này đều có chung một đối tượng quản lí đặc biệt trong mạng Zigbee có tên là Đối tượng thiết bị Zigbee – Zigbee Device Object (ZDO). Tầng ứng dụng cũng có các đối tượng ứng dụng – Application Object được cho phép những người viết ứng dụng có thể định nghĩa dựa trên ứng dụng cụ thể, đảm bảo tính mềm dẻo trong thiết kế của một mạng không dây cá nhân.
Tầng mạng của Zigbee Alliance chịu trách nhiệm xây dựng và duy trì tơ-pơ mạng, bao gồm các nhiệm vụ đánh địa chỉ, định tuyến và bảo mật. Tầng mạng trong ZigBee sẽ được tự tổ chức và điều chỉnh để tiết kiệm năng lượng và chi phí truyền nhỏ nhất có thể.
Các chức năng của tầng mạng : - Chức năng định tuyến - Chức năng quản lí mạng
Trong kiến trúc của Zigbee Alliance, các thiết bị trong mạng Zigbee lại được định nghĩa hơi khác hơn so với chuẩn IEEE 802.15.4, các thiết bị trong tầng mạng Zigbee được định nghĩa lại bao gồm:
- Thiết bị điều phối ZC (Zigbee Coordinator): là các thiết bị có năng
lực nhất trong mạng, đóng vai trị là gốc trong mơ hình cây mạng hoặc có thể là cầu nối cho các mạng trong mơ hình đa mạng. Chỉ có chính xác một thiết bị ZC trong mạng khi mạng bắt đầu hoạt động hoặc một số dạng mạng Zigbee mới có thể hoạt động mà khơng cần ZC (ví dụ Zigbee Lightlink). Vai trị của thiết bị ZC này hình thành, duy trì đồng thời điều khiển, giám sát và lưu trữ các thông tin về mạng. Thiết bị ZC chính là dạng FFD trong mơ hình IEEE 802.15.4.
- Thiết bị định tuyến ZR (Zigbee Router): thiết bị này ở cấp thấp hơn
ZC một cấp. Thiết bị có thể hoạt động như một bộ định tuyến trung gian, giám sát truyền dữ liệu từ thiết bị này sang thiết bị khác. Thiết bị này là cần thiết để hỗ trợ trong mơ hình mạng đa chặng (multi-hop) hoặc mạng lưới (mesh) bằng cách lưu trữ các thông tin định tuyến như bảng định tuyến các nút lân cận. Nó cũng là dạng thiết bị FFD trong mơ hình IEEE 802.15.4.
- Thiết bị đầu cuối ZED (Zigbee End Device): chỉ gồm đủ các chức
năng để giao tiếp với nút cha (là ZR hoặc ZC) và không thể chuyển tiếp dữ liệu từ các nút trong mạng. ZED chính là các nút cảm biến, nó có thể kết nối với ZR hoặc ZC chứ khơng được kết nối với nhau. Các mối quan hệ này cũng làm cho ZED sẽ được nghỉ (sleep node) trong một khoảng thời gian, làm giảm tiêu hao năng lượng để tăng thời gian pin, kéo dài tuổi thọ của các thiết bị trong Zigbee. Một ZED sẽ đòi hỏi dung lượng bộ nhớ là tối thiểu. Thiết bị này có thể là FFD hay RFD. Khi đó tơ-pơ mạng cũng sẽ thay đổi chức năng như hình 3.25:
- Mạng hình sao (Star): thiết bị ZC sẽ làm trung tâm, các ZR và ZED sẽ kết nối đến ZC mà khơng kết nối với nhau. Ở mơ hình mạng này ZC sẽ phải tiêu tốn năng lượng xử lí cho tồn mạng mà khơng được hỗ trợ bởi các ZR. Tuy nhiên mơ hình này chỉ áp dụng cho các mạng Zigbee có quy mơ nhỏ.
- Mạng lưới (Mesh): hay còn gọi là multi-hop, là sự kết hợp của mạng hình sao và mạng ngang hàng. Mạng hoạt động theo chế độ ad-hoc, cho phép các gói tin truyền qua các nút trung gian ZR và ZC sẽ được giảm tải xử lí. Mạng được áp dụng cho các mơ hình quy mơ lớn.
- Mạng Cây Cụm (Cluster-Tree): Đây là một trường hợp đặc biệt của mạng lưới. Trong mạng này, ZC sẽ đóng vai trị là gốc và các ZED đóng vai trị là các nút lá được kết nối đến nút gốc qua các ZR. Trong mạng này tải được chia thành các cụm rõ ràng, mỗi cụm đứng đầu bởi cụm trưởng ZR và kết nối đến gốc ZC.
Tổng quan cấu trúc tầng mạng của Zigbee được định nghĩa bởi tổ chức Zigbee Alliance như hình 3.26:
Hình 3. 26: Tổng quan tầng mạng trong mạng Zigbee [4, tr80]
Tầng mạng cũng cung cấp hai dạng dịch vụ phục vụ cho việc truy nhập của tầng Ứng dụng ở trên: dịch vụ dữ liệu - NLDE (Network Layer Data Entity) chịu trách nhiệm về các vấn đề truyền tải dữ liệu và dịch vụ quản lí - NLME (Network Layer Management Entity) cung cấp các hàm truy nhập vào tầng mạng và dữ liệu cần thiết để xử lí trong mạng được lưu ở MIB (Network Layer Information Base). Hai dịch vụ này cung cấp cho tầng Ứng dụng sự truy nhập qua các điểm truy cập dịch vụ (Service Access Point) lần lượt là MLDE-SAP và MLME-SAP, qua đó, tầng ứng dụng có thể thu thập hoặc cấu hình các thông tin cần thiết từ tầng mạng
bằng các hàm NLME-GET và NLME-SET.
Tầng mạng cũng giới hạn khoảng cách các gói tin có thể đi xa bằng trường số chặng gói tin đi qua (number of hop). Mỗi gói đều có tham số giới hạn số chặng tối đa có thể đi, ví dụ nếu số chặng là 3 có nghĩa gói tin sẽ khơng chuyển tiếp quá 3 lần trong mạng. Giá trị này cũng sẽ giảm tự động mỗi lần thông điệp được chuyển tiếp cho đến khi đạt giá trị 0 thì gói tin sẽ khơng được chuyển tiếp nữa. Việc truyền thơng các gói tin trong mạng cũng chia làm 3 phương thức: Gửi quảng bá (broadcast) là hình thức truyền mà mọi nút trong mạng đều nhận được gói tin, gửi đa điểm (multicast) là hình thức gói tin sẽ được truyền đến một nhóm mạng định trước và gửi đơn điểm (unicast) là hình thức gửi đơn giản giữa hai nút trong mạng với nhau.
Hình 3. 27: Cách thức truyền thơng trong Zigbee [4, tr81]
(a) Gửi quảng bá (b) Gửi đa điểm (c) Gửi đơn điểm
3.7.2. Khuôn dạng dữ liệu tầng mạng
Dịch vụ tầng mạng chia ra làm 2 dịch vụ là dịch vụ dữ liệu NLDE và dịch vụ quản lí NLME:
- NLDE (Network Layer Data Entity): tầng này lưu trữ các dữ liệu cần
được truyền từ lớp con hỗ trợ ứng dụng APS (Application Support Layer) ở trên nó. Các APS sẽ sử dụng các nguyên hàm với khuôn mẫu NLDE-DATA.request để yêu cầu việc truyền dữ liệu tới các nút trong mạng với số chặng chuyển tiếp được quy định. Các dữ liệu này đi kèm với một thông số là số thứ tự (sequence number), số này được bắt đầu bằng số ngẫu nhiên và được tăng sau khi mỗi khung dữ liệu được truyền đi. Ở bên nhận gói tin cũng cung cấp các tham số cần thiết như khuôn dạng khung, LQI, trình tự dữ liệu... sử dụng nguyên hàm NLDE-DATA.indication. Phần gói tin của lớp hỗ trợ ứng dụng kết hợp với phần tiêu đề của tầng mạng sẽ là gói tin của tầng mạng NPDU (Network layer Protocol Data Unit).
- MLME(Network Layer Management Entity): nhiệm vụ chính của dịch
vụ quản lí là hình thành mạng lưới, quyết định tham gia hoặc rời bỏ một mạng, phát hiện định tuyến và bảo trì định tuyến.
Đồng thời tầng mạng cũng thực hiện một số chức năng bao gồm:
- Quét kênh: Tầng mạng sẽ sử dụng cơ chế quét kênh của tầng MAC để
tìm ra sự hiện diện của các mạng trong phạm vi phủ sóng. Việc quét kênh có thể diễn ra chủ động hoặc bị động tùy vào năng lực của thiết bị thu phát. Một danh sách các mạng sẽ được đưa ra bao gồm định danh của PAN, tần số kênh hiện thời và phiên bản Zigbee (được quy định ở tầng ứng dụng APL), ngoài ra cũng bao gồm giá trị của thứ tự gói beacon, thứ tự siêu khung, định danh của các khuôn dạng hồ sơ chuẩn định nghĩa trong Zigbee (Zigbee profile) đồng thời cũng đảm bảo ít nhất một thiết bị định tuyến ZR hoặc ZC đã tham gia.
- Hình thành mạng: tầng mạng khi này dựa vào yêu cầu của tầng ứng
dụng sẽ thiết lập vai trò của thiết bị (nút mạng) trong mạng. Nếu là khởi đầu, nó sẽ gán nút mạng là ZC và thực hiện dò năng lượng (ED) và lựa chọn một số kênh sử dụng bằng các dịch vụ tầng MAC. Dựa vào kết quả dò, tầng mạng chọn kênh và định danh PAN. Nhiệm vụ đầu tiên của ZC trong mạng là thiết lập siêu khung sử dụng dịch vụ quản lí tầng MAC.
- Tham gia và ra khỏi mạng: Tầng mạng (cụ thể là các ZC và ZR) muốn
cho phép một thiết bị tham gia vào mạng của mình, sẽ sửa thuộc tính macAssociationPermit thành giá trị TRUE. Thuộc tính này nằm ở tầng MAC. Ngược lại nếu muốn tham gia vào một mạng khác, nguyên hàm NLME.JOIN.request sẽ được gửi đến tầng Mạng của ZC hay ZR của mạng mà nút cần tham gia và chờ đợi phản hồi. Trong mạng, các nút con cũng phải tìm nút cha thích hợp để liên kết. Nút cha cũng sẽ thêm nút con vào danh sách hàng xóm của mình (nếu chưa có trong danh sách) và cung cấp địa chỉ 64 bit cho nút con (số địa chỉ sẽ được giới hạn), nút con cũng đồng thời phải có phản hồi xác nhận để kết thúc quá trình tham gia mạng. Việc gỡ bỏ một nút ra khỏi mạng được thực hiện bằng khung lệnh leave-request được ZC hay ZR gửi tới nút cần gỡ bỏ và thông điệp leave được quảng bá đến tồn mạng để cập nhật lại mơ hình mạng cho việc định tuyến.
- Khởi tạo lại tầng mạng: trong một số trường hợp đặc biệt, khi nhận
được yêu cầu từ tầng ứng dụng, tầng mạng khởi tạo lại bắt đầu từ tầng MAC, sau đó xóa hết dữ liệu ở NIB, các bảng định tuyến đưa về giá trị mặc định. Thiết bị sẽ thực hiện quá trình khởi tạo lại khi khởi động, trước khi bắt đầu tham gia một mạng hoặc sau khi rời khỏi mạng đó.
- Đồng bộ: việc đồng bộ cũng được thực hiện ở tầng mạng với hai dạng:
bộ hoặc trích xuất từ các thiết bị ZC và ZR.
Khuôn dạng dữ liệu tầng mạng có hai dạng là các khung dữ liệu và các khung lệnh, các khung dữ liệu có cấu trúc như sau:
Hình 3. 28: Cấu trúc khung dữ liệu tầng Mạng Zigbee [4,tr86]
Trong đó, bao gồm các trường:
Frame Control với các trường con:
- Frame Type: cho biết khung là dữ liệu hay lệnh. - Protocol Version: phiên bản Zigbee.
- Discover Route: gồm 3 loại là Supress (chặn):, Enable (kích hoạt) và Force (Ép), dùng cho chế độ rà định tuyến.
- Multicast flag: cờ, giá trị 1 nếu dùng multicast. - Security: 1 nếu bật chế độ bảo mật.
- Source Route: địa chỉ chuyển tiếp đến (có thể là địa chỉ trung gian) - Source & Destination IEEE: địa chỉ nguồn và đích đến theo IEEE.
Destination & Source Address: địa chỉ đích đến và nguồn của gói tin.
Radius: số chặng tối đa (max number of hops), giảm mỗi lần quảng bá. Nếu
về 0 sẽ không được gửi quảng bá nữa.
Sequence Number: hỗ trợ theo dõi số lượng gói tin truyền trên một thiết bị,
giá trị được tăng lên mỗi khi một khung mới được truyền đi.
Destination IEEE & Source IEEE Address: địa chỉ nguồn và đích đến
theo IEEE (64bit).
Multicast Control: chỉ tồn tại nếu frame này là multicast. Source Route Superframe: siêu khung.
Hình 3.29 mơ tả cấu trúc khung của lệnh:
Hình 3. 29: Cấu trúc khung của lệnh ở tầng MAC trong mạng Zigbee [4, tr88]
Tập hợp các lệnh được định danh bằng 8-bit dữ liệu, mỗi lệnh có một ID lệnh riêng, phần ID này sẽ cùng phần dữ liệu tải của lệnh sẽ hợp thành tải của tầng mạng. Bảng 3.3 chứa các tập lệnh tương ứng với mã định danh:
Định danh của từng lệnh
Lệnh Ý nghĩ lệnh
00000001 Route request Yêu cầu định tuyến
00000002 Route reply Phản hồi định tuyến
00000003 Route error (network status) Báo lỗi định tuyến
00000004 Leave Yêu cầu rời bỏ khỏi mạng
00000005 Route record Ghi lại định tuyến
00000006 Rejoin request Yêu cầu tham gia lại
00000007 Rejoin response Phản hồi lại rejoin request
00000008 Link status (ZigBee-Pro) Cập nhật trạng thái liên kết
00000009 Network report (ZigBee-Pro) Báo cáo tình hình mạng
0000000A Network update (ZigBee-Pro) Cập nhật tình hình mạng
3.7.3. Chức năng định tuyến của tầng mạng
Do mạng Zigbee (IEEE 802.15.4) là mạng khơng dây có khả năng hỗ trợ nhiều dạng tô-pô mạng, cũng như mạng hỗ trợ số lượng lớn các nút trong mạng (hơn 65000 nút mạng) nên việc định tuyến trong mạng Zigbee (IEEE 802.15.4) cũng là một phần khá quan trọng đóng vai trị quyết định cho sự thành công của mạng Zigbee (IEEE 802.15.4).
Trong mạng Zigbee (IEEE 802.15.4), các nút mạng có hai địa chỉ là địa chỉ IEEE 64-bit quy định bởi chuẩn IEEE 802.15.4 và 16-bit địa chỉ mạng được đánh theo chuẩn Zigbee Alliance quy định, đây cũng là địa chỉ phục vụ cho mục đích định tuyến trong mạng. Việc định tuyến được hướng đến với hai phương pháp định
tuyến là phương pháp định tuyến AODVjr , một phương pháp được đơn giản hóa từ phương pháp định tuyến AODV (Ad hoc On Demand Distance Vector) và phương pháp định tuyến theo cách đánh địa chỉ cho cây phân cấp (Cluster-Tree Network Addresss Allocation).
Trong mạng Zigbee, các nút mạng có thể được phân chia thành 2 loại, đó là các nút RN+ và các nút RN- :
- RN+ : đây là các nút có đủ bộ nhớ và năng lực xử lí, có thể vận hành được việc định tuyến theo phương pháp AODVjr.
- RN- : đây là các nút có bộ nhớ giới hạn, chỉ có thể hoạt động được với phương pháp đánh địa chỉ mạng cây phân cấp Cluster-Tree.
Trong mạng Zigbee (IEEE 802.15.4), nút ZC (Zigbee Coordinator) và các nút ZR (Zigbee Router) khởi tạo và duy trì bảng định tuyến, được sử dụng để xác định nút (chặng) tiếp theo mà một gói tin đang cần định tuyến nên đi qua. Bảng đinh tuyến này bao gồm:
Bảng 3. 4: Bảng định tuyến trong tầng mạng Zigbee
Mục Mô tả
Destination address Địa chỉ đích, 2 byte
Status Trạng thái định tuyến: Active, Inactive, Fail
Many-to-one 1 bit, là 1 nếu có yêu cầu định tuyến many-to-one
Route record required 1 bit, là 1 nếu muốn ghi lại con đường định tuyến
Group ID flag 1 bit, bật nếu muốn thiết lập ID trong truyền multicast
Next-hop address Địa chỉ mạng 16bit của chặng tiếp theo
Hai bảng định tuyến nữa cũng có liên quan đến q trình định tuyến, đó là bảng khám phá tuyến (Route Discovery Table) và bảng hàng xóm (Neighbor Table). Bảng khám phá tuyến sẽ chỉ ra chi phí đường đi (path cost), địa chỉ nguồn, địa chỉ nút định tuyến ... bao gồm:
Mục Mô tả
Route request ID Số đinh danh của yêu cầu định tuyến
Source address Địa chỉ nguồn của nút gửi, 16bit địa chỉ mạng
Sender address Địa chỉ nguồn của nút gửi gói tin lúc đầu. Địa chỉ này được dùng khi gửi lại các gói phản hồi route reply
Forward cost Chi phí chuyển tiếp gói tin, được cập nhật mỗi khi gói được chuyển qua một nút mạng
Residual cost Chi phí cịn lại để đến đích, cập nhật khi có route reply
Expiration time Thời gian hết hạn của bảng định tuyến
Các thiết bị trong mạng Zigbee (IEEE 802.15.4) cũng duy trì thêm một bảng thơng