Trong mạng Zigbee (IEEE 802.15.4) có hai kỹ thuật truy cập kênh truyền: Truy cập dựa trên tranh chấp và truy cập không tranh chấp. Truy cập dựa trên tranh chấp cho phép các thiết bị truy cập kênh theo kiểu phân tán sử dụng kỹ thuật CSMA/CA. Truy cập không tranh chấp là kỹ thuật được điều khiển bởi PAN Coordinator thông qua việc sử dụng các GTS trong cấu trúc siêu khung.
này được định nghĩa bởi các trạm điều phối Coordinator. Cấu trúc của mỗi siêu khung như hình 3.18:
Hình 3. 19: Cấu trúc của Siêu khung trong mạng Zigbee (IEEE 802.15.4)
Mỗi một siêu khung được giới hạn bởi hai gói Beacon và nó được chia thành 16 khe thời gian bằng nhau. Các khe thời gian được chia bao gồm:
- Khung Beacon: được truyền trong slot đầu tiên của mỗi siêu khung. Nó được dùng để đồng bộ các thiết bị khác, định danh PAN và miêu tả cấu trúc siêu khung. Khi Coordinator không muốn sử dụng cấu trúc siêu khung, nó sẽ không truyền khung Beacon.
- Khung Beacon Extension : dùng để dự trữ cho beacon nếu bị trễ - Các Khung CAP (Contention Access Period): Các thiết bị muốn giao
tiếp với nhau trong chu kỳ truy cập có tranh chấp – CAP thì chúng sẽ sử dụng kỹ thuật slotted CSMA/CA
- Các khung CFP (Contention Free Period): Các khung này được chia thành các khung khe thời gian GTS để phục vụ cho việc truyền thông trong mạng, trong CFP không sử dụng CSMA/CA
Một siêu khung có thể có hai phần, là phần chủ động (Active Period) và phần bị động (Inactive Period) như hình dưới. Cấu trúc của siêu khung được miêu tả bởi giá trị macBeaconOrder(BO), miêu tả khoảng thời gian mà Coordinator sẽ truyền các khung Beacon, và macSuperframeOrder(SO), là độ dài của phần chia chủ động của siêu khung, kể cả khung Beacon.
Hình 3. 20: Cấu trúc siêu khung với khoảng chủ động và bị động [4, tr62]
Độ dài của siêu khung (BI) và độ dài của phần hoạt động được tính toá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
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ì hoã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à hoà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í “yê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.
- Ngoà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 toá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 hoà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.