Độ dài của siêu khung (BI) và độ dài của phần hoạt động được tính tốn theo các cơng thức:
BI = aBaseSuperframeDuration * 2BO (symbol) với 0≤BO≤14
(BI cũng chính là khoảng cách giữa 2 beacon., giá trị của
macSuperframeOrder sẽ được bỏ qua nếu BO=15).
SD = aBaseSuperframeDuration * 2SO (symbol) với 0 ≤SO≤BO≤15.
Nếu SO =15 thì siêu khung khơng cịn phần chia chủ động sau Beacon. Nếu BO=15 cấu trúc siêu khung không tồn tại, và giá trị macSuperframeOrder sẽ được bỏ qua và mạng ở trạng thái này được gọi là mạng khơng sử dụng gói tin Beacon.
Phần chủ động (Active Period) của mỗi một siêu khung sẽ chia thành 16 khe thời gian bằng nhau đánh số từ 0 đến 15, tạo thành 3 phần: Beacon, CAP và CFP. Beacon sẽ được truyền bắt đầu tại khe số 0, CAP sẽ ngay sau Beacon và CFP (nếu có) sẽ được chia thành các GTS ngay sau CAP và kéo dài cho đến lúc kết thúc khoảng thời gian chủ động của siêu khung. Các trạm điều phối PAN Coordinator muốn sử dụng cấu trúc siêu khung để truyền thông sẽ đặt giá trị macBeaconOrder từ 0 đến 14 và đặt giá trị macSuperframeOrder nằm giữa 0 và giá trị của macBeaconOrder.
Nếu các trạm điều phối PAN Coordinator không muốn sử dụng cấu trúc siêu khung, nó sẽ đặt cả macBeaconOrder và macSuperframeOrder là 15. Trong trường hợp này, trạm điều phối Coordinator sẽ không truyền các Beacon, việc truyền các khung sẽ sử dụng kỹ thuật unslotted CSMA/CA để truy cập kênh truyền (ngoại trừ khung báo nhận) và các GTS sẽ không được phép sử dụng.
Trong mạng, các trạm điều phối đều có thể truyền beacon và tự tạo ra cấu trúc siêu khung của riêng mình, Các trạm điều phối có thể truyền beacon trong khoảng thời gian thụ động (inactive period) của trạm điều phối PAN. Phần thời gian thụ động này cũng giúp cho các thiết bị trong mạng có thể chuyển sang trạng thái tiết kiệm năng lượng (power-saving mode), trong chế độ này các nút có thể tắt bộ
phận thu phát của mình để tiết kiệm nguồn năng lượng pin cho nút.
CAP (Contention Access Period):
Khoảng thời gian CAP sẽ bắt đầu ngay sau Beacon và kết thúc trước khi bắt đầu CFP trên siêu khung. Nếu CFP có độ dài là 0, CAP sẽ kết thúc tại thời điểm kết thúc của siêu khung.
CAP có thể được dùng một phần để tăng độ dài khung Beacon nếu cần thiết để thực hiện duy trì GTS. Nó có thể co lại hoặc dãn ra một cách động để sửdụng kích thước của CFP. Các khung dữ liệu (trừ khung báo nhận -ACK) sẽ được truyền trong CAP bằng kỹ thuật CSMA/CA để truy cập kênh truyền. Một thiết bị đang truyền sẽ đảm bảo rằng việc đang thực hiện sẽ hoàn thành xong trước một khoảng thời gian giữa 2 khung (IFS- Interframe Space), bao gồm cả việc nhận được khung báo nhận, nếu khơng nó sẽ trì hỗn để truyền trong CAP của siêu khung tiếp theo.
CFP (Contention Free Period):
Khoảng CFP sẽ được bắt đầu ngay sau CAP (nếu có) và hồn thành trước khi bắt đầu phát Beacon tiếp theo. Khoảng CFP được chia thành các khe thời gian GTS được chỉ định cho từng thiết bị có thể truyền dữ liệu trong mỗi khe thời gian. GTS được sắp xếp bởi bộ điều phối PAN sau khi đã nhận được các yêu cầu truyền dữ liệu (GTS Request) của các nút trong mạng và dựa trên tiêu chí “u cầu đến trước thì đặt chỗ trước” FCFS (First come- First Served). Các GTS được đặt liên tiếp cho đến khi kết thúc siêu khung. Trong khoảng CFP/GTS không sử dụng kỹ thuật CSMA/CA.
Phương pháp truy nhập CSMA/CA (Backoff):
Cơ chế truy nhập kênh trong mạng Zigbee (IEEE 802.15.4) là CSMA/CA, mỗi khi thiết bị trong mạng có nhu cầu truyền dữ liệu, thiết bị sẽ thực thi cơ chế xác định kênh rỗi CCA. Nếu thiết bị tìm thấy có kênh rỗi, nó sẽ bắt đầu quá trình truyền dữ liệu của mình. Chỉ có hai trường hợp trong mạng khơng dùng cơ chế CSMA/CA là trường hợp truy cập kênh sử dụng khe thời gian GTS và trường hợp truyền dữ liệu ngay lập tức sau khi nhận được gói tin xác nhận ACK khi thiết bị yêu cầu trực tiếp đến bộ điều phối.
Mạng Zigbee (IEEE 802.15.4) sử dụng 2 cơ chế truy nhập bao gồm :
- Slotted CSMA/CA: sử dụng trong mạng có dùng gói tin beacon và sử dụng cấu trúc siêu khung được chia thành 16 khe thời gian, mỗi nút sẽ dùng cơ chế back-off để lùi lại một khoảng thời gian ngẫu nhiên khi phát hiện ra kênh truyền đang bận để giảm thiểu xung đột trong mạng. - Unslotted CSMA/CA: sử dụng trong mạng khơng dùng gói tin beacon và không dùng cấu trúc siêu khung. Cơ chế back-off lùi cũng được áp dụng ở trong cơ chế này.
- Ở cả hai chế độ, Chu kỳ backoff sẽ được gán bằng giá trị quy định ở tầng MAC aUnitBackoffPeriod (symbol) (giá trị mặc định là 20
symbol)
Cả hai cơ chế đều được mơ tả với lưu đồ hình 3.21, với 3 tham số chính được sử dụng:
- Số mũ back-off BE (Back-off Exponent): là là số lượng khoảng chờ
mà trạm sẽ đợi để truy nhập kênh.
- Số lần thực hiện back-off BN (Number of Back-off): giá trị khởi tạo
bằng 0.
- Kích thước cửa sổ tranh chấp CW (Contention Window): khởi tạo là 2 trước mỗi lần thử truyền và sẽ được khởi tạo lại là 2 mỗi lần kênh truyền được quyết định là bận. CW chỉ sử dụng cho slotted CSMA/CA.
- Ngồi ra, có macMinBE là giá trị nhỏ nhất của số mũ chờ trong
phương pháp CSMA/CA, là một số nguyên có giá trị trong đoạn [0,3] và có giá trị mặc định là 3 và aMax là giá trị lớn nhất của số mũ chờ trong phương pháp CSMA/CA có giá trị mặc định là 5
Hình 3. 21: Phƣơng pháp Slotted CSMA/CA và Unslotted CSMA/CA [4, tr70]
Trong lưu đồ, ta thấy được mỗi lần phát hiện ra cơ chế kênh bận bằng CCA, thuật toán sẽ lùi một khoảng thời gian ngẫu nhiên và giá trị BE xác định phạm vi của khoảng thời gian ngẫu nhiên này theo công thức:
Back-off = (Một số ngẫu nhiên giữa 0 tới 2BE -1) x aUnitBackoffPeriod Giá trị khởi tạo của BE bằng với giá trị macMinBE trong cơ chế unslotted CSMA/CA. Trong cơ chế CSMA/CA, lựa chọn mở rộng vòng đời năng lượng BLE (Battery Life Extension) cũng ảnh hưởng đến giá trị BE. Nếu BLE được kích hoạt, bộ điều phối sẽ tắt bộ thu phát của mình trong một khoảng chu kì bằng
năng lượng. Trong trường hợp này, khoảng chu kì back-off được giới hạn nhỏ hơn 2 và giá trị của macMinBE: BE = min (2, macMinBE).
Nếu BLE khơng được kích hoạt, giá trị BE sẽ bằng macMinBE, điều này
tương tự như cơ chế unslotted CSMA/CA, và giá trị của BE sẽ được tăng thêm 1 mỗi lần thực hiện cơ chế xác định kênh rỗi CCA và phát hiện ra kênh bận, tuy nhiên không được vượt quá giá trị macMaxBE.
NB là một biến đếm để theo dõi số lần thiết bị thực hiện quá trình back-off và thực hiện quá trình cố gắng truy nhập kênh. NB được nhận giá trị 0 lúc ban đầu, và mỗi lần thiết bị thực hiện back-off khi nghe thấy kênh bận, BE sẽ được tăng 1 giá trị. Nếu BE chạm tới giá trị macMaxCSMABackoffs mà vẫn khơng thể truy nhập được kênh, thuật tốn CSMA/CA sẽ thoát và báo cáo lỗi lên tầng mạng.
Kích thước cửa sổ tranh chấp CW xác định số chu kì back-off mà kênh phải rỗi trước khi bắt đầu truyền tải. Ví dụ nếu kích thước cửa sổ CW = 2, thiết bị sẽ bắt đầu truyền ngay khi kết quả trả về của 2 lần back-off liên tiếp là kênh rỗi (idle). Phân lớp MAC sẽ bảo đảm rằng thời gian tranh chấp sẽ kết thúc trước khi quá trình truyền bắt đầu. Để làm được điều này, phân lớp MAC sẽ giảm CW đi một. Nếu CW = 0 thì quá trình truyền bắt đầu. Giá trị CW chỉ sử dụng trong cơ chế slotted CSMA/CA.
Nếu việc truyền tin khơng hồn thành trong khoảng thời gian cho phép, tầng MAC sẽ chờ đợi cho tới khi bắt đầu chu kì CAP tiếp theo và cố gắng sử dụng thuật toán CSMA/CA để tiếp tục truy cập kênh truyền.
3.6.4. Một số chức năng khác của tầng MAC
Quản lí Beacon:
Trạm điều khiển PAN xác định được mạng làm việc ở chế độ sử dụng “beacon” hay không, trong chế độ này cấu trúc siêu khung được sử dụng. Các siêu khung được giới hạn bởi các “beacon” và được chia thành các khe có kích cỡ bằng nhau aNumberSuperframeSlots có giá trị mặc định là 16. Trạm điều khiển sẽ gửi đi các “beacon” để đồng bộ với các trạm khác.
Trong chế độ sử dụng “beacon”, trạm điều khiển sẽ tạo ra các gói đặc biệt “beacon” để đồng bộ. Các trạm làm việc trong PAN sẽ nhận các gói “beacon” và dùng các thông tin để đồng bộ với PAN Coordinator. Sự đồng bộ này là rất quan trọng trong việc kiểm sốt vịng dữ liệu, tiết kiệm năng lượng và phát hiện đứt quãng. Trong chế độ khơng sử dụng “beacon” thì đồng bộ được thực hiện bởi q trình hỏi vịng dữ liệu của trạm điều phối PAN Coordinator.
Quét kênh:
Tất cả thiết bị đều có khả năng thực hiện quét phát hiện năng lượng, quét chủ động , quét bị động, quét lại kênh qua một danh sách các kênh. Tầng trên sẽ đưa ra
một danh sách kênh được chọn bởi thuộc tính phyChannelsSupported. Một thiết bị sẽ được cung cấp thông tin để bắt đầu quét kênh thông qua chỉ thị MLME- SCAN.request. Trong thời gian quét, thiết bị đó sẽ tạm dừng việc truyền Beacon,
nếu có thể hoặc khi có kết quả của việc quét kênh, thiết bị sẽ thực hiện tiếp việc truyền Beacon. Kết quả của việc quét sẽ được trả về thông qua chỉ thị MLME- SCAN.confirm.
Quét kênh phát hiện năng lượng:
Quét kênh phát hiện năng lượng cho phép các thiết bị đầy đủ chức năng FFD thu được các đơn vị năng lượng tối đa trong mỗi kênh được yêu cầu. PAN Coordinator sử dụng kiểu quét này để lựa chọn kênh truyền trong chu kỳ hoạt động của mình khi nó bắt đầu thiết lập một PAN mới.
Quét kênh chủ động:
Quét kênh chủ động cho phép một thiết bị đầy đủ chức năng FFD xác định vị trí của Coordinator đang truyền khung Beacon trong khoảng cách hoạt động của nó. Việc quét kênh này có thể được sử dụng bởi một thiết bị có thể được chọn là trạm điều phối Coordinator trong tương để bắt đầu một PAN mới hoặc nó có thể sử dụng bởi thiết bị để liên kết. Trong khi quét chủ động, MAC sẽ từ chối tất cả các khung nhận được trên dịch vụ dữliệu tầng vật lý ngoại trừ khung Beacon.
Quét kênh bị động:
Giống như quét kênh chủ động, quét kênh bị động cho phép một thiết bị xác định bất kỳ trạm điều phối Coordinator nào đang truyền Beacon trong khoảng cách hoạt động của nó. Tuy nhiên, Khung lệnh u cầu Beacon sẽ khơng được truyền.
Kiểu quét này có thể được sử dụng bởi thiết bị cho mục đích liên kết.
Quét lại kênh:
Quét lại kênh cho phép một thiết bị xác định lại Coordinator sau khi mất sự đồng bộ. Trong khi quét, MAC sẽ từ chối tất cả các khung nhận được trên dịch vụ dữ liệu tầng vật lý ngoại trừ khung lệnh MAC gửi để tổ chức lại Coordinator.
Liên kết và phân tách các thiết bị trong PAN:
Đây là một chức năng quan trọng để PAN có thể tự cấu hình được. Mạng Zigbee (IEEE 802.15.4) hỗ trợ các chức năng liên kết và phân tách trong lớp MAC gồm có :
Q trình liên kết (association): là thủ tục mà một thiết bị cần phải làm trong mạng khi muốn tham gia mạng. Tầng MAC cung cấp các thủ tục liên kết như là một dịch vụ cho tầng mạng và tầng mạng quản lí khng dạng của mạng. Đa số các trường hợp thiết bị phải thực hiện quá trình thiết lập lại (MAC reset) trước khi thực hiện quá trình liên kết. Các thiết bị sẽ gửi các yêu cầu cần thiết (yêu cầu liên kết, yêu cầu dữ liệu) và nhận được các phản hồi xác nhận (ACK) hoặc kết quả liên kết
(response) tương ứng.
Có 4 nguyên hàm cần thiết trong quá trình liên kết được cung cấp bởi lớp quản lí MLME của tầng MAC bao gồm :
- MLME-Associate.request: được sử dụng bởi lớp mạng khi một thiết bị
yêu cầu gia nhập mạng. Yêu cầu này cũng bao gồm danh sách các thiết bị yêu cầu tham gia và xác định thiết bị là FFD hay RFD.
- MLME-Associate.indication: sau khi nhận được yêu cầu từ tầng MAC,
nguyên hàm indication báo cáo lại cho tầng mạng các yêu cầu lưu trong nguyên hàm request.
- MLME-Associate.response: tầng mạng sẽ dùng nguyên hàm này để trả
lời lại cho nguyên hàm indication được gửi từ tầng MAC.
- MLME-Associate.confirm: trạm điều phối sẽ trả lại kết quả liên kết
cho thiết bị bằng nguyên hàm này.
Hình 3. 22: Sơ đồ quá trình liên kết với trạm điều phối PAN [4, tr71]
Quá trình phân tách (disassociation): là quá trình ngược lại với q trình liên kết, có hai trường hợp xảy ra bao gồm :
- Trạm điều phối muốn thiết bị rời khỏi PAN - Thiết bị muốn tự mình rời khỏi PAN
Trong cả hai trường hợp, đều sử dụng các nguyên hàm như sau:
- MLME-Disassociate.request: được sử dụng bởi lớp mạng khi một
thiết bị yêu cầu gia phân tách mạng. Yêu cầu này được gửi từ thiết bị muốn rời khỏi mạng hoặc từ trạm điều phối nếu muốn chỉ định thiết bị được phân tách
- MLME- Disassociate.indication: sau khi nhận được yêu cầu từ tầng
MAC, nguyên hàm indication báo cáo lại cho tầng mạng các yêu cầu lưu trong nguyên hàm request.
- MLME- Disassociate.confirm: kết quả phân tách được trả lại cho tầng
mạng bằng nguyên hàm này.
Với trường hợp thiết bị muốn tự rời khỏi mạng, nó sẽ gửi thơng báo phân tách cho trạm điều phối và sẽ chờ xác nhận của trạm điều phối sau khi xử lí tiếp .
Với trường hợp trạm điều phối muốn một thiết bị rời khỏi mạng, trước khi gửi thông báo phân tách, trạm điều phối sẽ thông báo cho thiết bị những dữ liệu của thiết bị đang còn ở Coordinator. Sau khi thực hiện truyền xong các dữ liệu này, yêu cầu phân tách được gửi đi và sau thiết bị xác nhận, quá trình phân tách được diễn ra. Kết quả sẽ trả về nguyên hàm MLME-
Disassociate.confirm
Hình 3. 23: Sơ đồ quá trình phân tách với trạm điều phối PAN [4, tr72]
(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