Gán địa chỉ mạng:

Một phần của tài liệu Thiết kế mạng thu thập dữ liệu sử dụng công nghệ Zigbee (Trang 56 - 58)

Đánh địa chỉ cho cấu hình cây:

Zigbee sử dụng một chiến lƣợc đánh địa chỉ phân bổ trong gán địa chỉ mạng. Chiến lƣợc này đảm bảo rằng tất cả các địa chỉ mạng đƣợc gán là duy nhất trên toàn mạng. Chiến lƣợc này chính là phƣơng thức đánh địa chỉ hình cây đƣợc mô tả trong chƣơng 2, trong đó mỗi thiết bị chỉ phải giao tiếp với cha của nó để nhận địa chỉ mạng duy nhất.

Chiến lƣợc đánh địa chỉ yêu cầu một vài tham số đƣợc cấu hình trong mỗi bộ định tuyến mà tham gia mạng. Nhƣng tham số này là MAX_DEPTH, MAX_ROUTERS, và MAX_CHILDREN. Những tham số này nằm trong mô tả chồng giao thức và có các giá trị là MAX_DEPTH=5, MAX_CHILDREN=20, MAX_ROUTERS=6.

MAX_DEPTH xác định độ sâu lớn nhất của mạng. Bộ điều phối có độ sâu là 0 và các nút con trực tiếp của nó có độ sâu là 1.

MAX_CHILDREN xác định số nút con lớn nhất của một bộ định tuyến hoặc 1 bộ điều phối.

MAX_ROUTERS xác định số các nút con nhiều nhất có khả năng định tuyến của một nút bộ điều phối hay một bộ định tuyến.

Trong thiết kế, các tham số MAX_DEPTH, MAX_ROUTERS, và MAX_CHILDREN sẽ lần lƣợt đƣợc gán bằng 1,8,0 đối với bộ điều phối. Mạng sẽ sử dụng cấu hình hình sao với nhiều nhất 8 thiết bị đầu cuối.

Đánh địa chỉ thống kê:

Chuẩn Zigbee mới nhất chỉ định thêm một lƣợc đồ đánh địa chỉ ngẫu nhiên thống kê trong gán địa chỉ mạng. Phƣơng thức này gán ngẫy nhiên các địa chỉ ngắn cho các thiết bị mới và phần địa chỉ mạng còn lại sẽ dành cho các thiết bị khác trong mạng để tránh bị trùng. Khi một thiết bị mới gia nhập mạng, nó nhận đƣợc địa chỉ đƣợc tạo ngẫu nhiên từ cha của nó. Nút mạng mới sau đó sẽ tạo ra một bản thông báo tới chứa địa chỉ ngắn của nó và địa chỉ mở rộng của nó tới phần còn lại của mạng. Nếu có địa chỉ có cùng địa chỉ ngắn. Nó sẽ thông báo một bản tin broadcast rằng có xung đột địa chỉ tới toàn mạng và tất cả các địa chỉ xung đột với địa chỉ ngắn này sẽ thay đổi địa chỉ ngắn của chúng. Các nút bị xung đột thay đổi địa chỉ sẽ thực hiện thao tác nhƣ khi đƣợc cấp địa chỉ ngắn của thiết bị mới làm xung đột địa chỉ cho đến khi nó không bị xung đột địa chỉ nữa.

Đánh địa chỉ trong Z-Stack:

Để gửi dữ liệu tới một thiết bị trong mạng Zigbee, ứng dụng sử dụng hàm AF_DataRequest(). Thiết bị nguồn của gói đƣợc gửi với kiểu afAddrType_t(định nghĩa trong “ZcomDef.h”).

typedef struct { union { uint16 shortAddr; ZLongAddr_t extAddr; } addr; afAddrMode_t addrMode; byte endPoint; } afAddrType_t;

Chú ý thêm tới địa chỉ mạng về tham số addrMode, nó chỉ chế độ của địa chỉ. Nó có thể có các giá trị sau(các chế độ địa chỉ AF đƣợc định nghĩa trong “AF.h”).

typedef enum { afAddrNotPresent = AddrNotPresent, afAddr16Bit = Addr16Bit, afAddr64Bit = Addr64Bit, afAddrGroup = AddrGroup, afAddrBroadcast = AddrBroadcast } afAddrMode_t;

Tham số này rất quan trọng bởi vì các gói có thể đƣợc truyền unicast, multicast hoặc broadcast.

Trong unicast, nó đƣợc sử dụng để gửi một gói tới một thiết bị đơn mà địa chỉ mạng của nó đã đƣợc biết. addrMode đƣợc thiết lập là Addr16Bit và thêm trong gói là địa chỉ mạng của thiết bị đích.

Trong broadcast, chế độ địa chỉ này đƣợc sử dụng khi ứng dụng muốn gửi một gói tới tất cả các thiết bị trong mạng. Trƣờng chế độ địa chỉ addrMode đƣợc thiết lập bằng AddrBroadcast và địa chỉ đích có thể là một trong các giá trị sau:

- NWK_BROADCAST_SHORT_DEVALL(0xFFFF)- bản tin sẽ đƣợc gửi tới tất cả các thiết bị kể cả các thiết bị đang ở chế độ ngủ - chế độ công suất thấp. Với các thiết bị đang ngủ, bản tin đƣợc giữ trong cha của nó cho đến khi nó yêu cầu bản tin hoặc bản tin bị timeout(giá trị timeout chứa trong NWK_INDIRECT_MSG_TIMEOUT trong file f8wConfig.cfg).

Đồ án tốt nghiệp Chương 3: Mô tả thiết kế mạng thu thập dữ liệu không dây

- NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD) – bản tin sẽ đƣợc gửi tới tất cả các thiết bị mà có bộ thu đang rảnh(RXONWHENIDLE), tức là ngoại trừ các thiết bị đang ngủ.

- NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC) – bản tin sẽ đƣợc gửi tới tất cả các thiết bị có khả năng chuyển tiếp gói tin.

Với địa chỉ nhóm, chế độ địa chỉ này đƣợc sử dụng khi ứng dụng muốn gửi một gói tới một nhóm các thiết bị. Trƣờng chế độ địa chỉ đƣợc thiết lập bằng afAddrGroup và addr.shortAddr đƣợc thiết lập bằng nhận diện nhóm(Group ID). Trƣớc khi sử dụng chức năng này, các nhóm phải đƣợc định nghĩa trong mạng, sử dụng API aps_AddGroup().

Ví dụ một thiết bị sẽ đƣa nó vào một nhóm với nhận diện nhóm là 1: aps_Group_t group;

// gán bản thân tới nhóm 1 group.ID = 0x0001;

group.name[0] = 6; // byte đầu chỉ độ dài chuỗi kí tự osal_memcpy( &(group.name[1]), “Group1”, 6);

aps_AddGroup( SAMPLEAPP_ENDPOINT, &group );

Các phương thức lấy địa chỉ thiết bị quan trọng:

Một ứng dụng có thể muốn biết địa chỉ thiết bị của nó và cha của nó. Các hàm sau đƣợc sử dụng để lấy các địa chỉ này:

- NLME_GetShortAddr() – trả lại địa chỉ mạng 16-bit của thiết bị này.

- NLME_GetExtAddr() – trả lại địa chỉ mạng mở rộng 64-bit của thiết bị này. - NLME_GetCoordShortAddr() – trả lại địa chỉ mạng 16-bit của thiết bị cha. - NLME_GetCoorExtAddr() – trả lại địa chỉ mạng mở rộng 64-bit của thiết bị cha.

Một phần của tài liệu Thiết kế mạng thu thập dữ liệu sử dụng công nghệ Zigbee (Trang 56 - 58)

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

(63 trang)