1.7. Tầng điều khiển dữ liệu ZigBee MAC
1.7.2. Thuật toán tránh xung đột đa truy cập sử dụng cảm biến sóng mang
mang CSMA-CA
CSMA/CA (Carrier Sense Multiple Access-Collision Avoidance). Phương pháp tránh xung đột đa truy cập nhờ vào cảm biến sóng. Thực chất đây là phương pháp truy cập mạng dùng cho chuẩn mạng không dây IEEE 802.15.4. Các thiết bị trong mạng (các nốt mạng) sẽ liên tục lắng nghe tín hiệu thơng báo trước khi truyền. Đa truy cập (multiple access) chỉ ra rằng nhiều thiết bị có thể cùng kết nối và chia sẻ tài nguyên của một mạng (ở đây là mạng khơng dây). Tất cả các thiết bi đều có quyền truy cập như nhau khi đường truyền rỗi. Ngay cả khi thiết bị tìm cách nhận biết mạng đang sử dụng hay khơng, vẫn có khả năng là có hai trạm tìm cách truy cập mạng đồng thời. Trên các mạng lớn, thời gian truyền từ đầu cáp nầy đến đầu kia là đủ để một trạm có thể truy cập đến cáp đó ngay cả khi có một trạm khác vừa truy cập đến. Nó tránh xung đột bằng cách là mỗi nốt sẽ phát tín hiệu về yêu cầu truyền trước rồi mới truyền thật sự.
Bắt đầu
Phân khe?
NB=0, CW=2
Kéo dài thời
gian pin? Có BE=min(2,macMinBE)
BE=macMinBE Xác định biên chu
kỳ lùi
Đợi số ngẫu nhiên (giữa 0 và 2BE-1) x(các chu kỳ lùi đơn vị)
Thực hiện CCA (xếp với các khe thời gian)
CW=2, NB=NB+1 BE=min(BE+1, macMaxBE) NB > macMaxCSMABackoffs ? Lỗi Có
Khơng Kênh rỗi?
Khơng CW=CW-1 CW=0? Thành cơng Có Có Khơng NB=0, BE=macMinBE Khơng
Đợi số ngẫu nhiên (giữa 0 và 2BE
-1) x(các chu kỳ lùi đơn vị)
Thực hiện CCA Kênh rỗi? NB=NB+1 BE=min(BE+1, macMaxBE) NB > macMaxCSMABackoffs ? Lỗi Có Thành cơng Có Khơng Khơng Có Khơng
Hình 1.11 Thuật tốn tránh xung đột CSMA-CA
Thuật toán truy nhập kênh CSMA-CA được sử dụng trứớc khi phát dữ liệu hoặc trước khi phát khung tin MAC trong phần CAP. Thuật tốn này sẽ khơng sử dụng để phát khung tin thông báo beacon, khung tin Ack, hoặc là khung tin dữ liệu trong phần CFP. Nếu bản tin báo hiệu đựơc sử dụng trong mạng PAN thì thuật tốn CSMA-CA gán khe thời gian được dùng, ngựợc lại thuật tốn CSMA-CA khơng gán khe thời gian sẽ đựợc sử dụng.
Ngoài việc phát beacon cịn có hai trường hợp mà một thiết bị truy cập các kênh mà khơng sử dụng thuật tốn CSMA-CA:
● Các kênh truy cập trong thời gian tranh chấp tự do (CFP)
● Truyền ngay lập tức sau khi xác nhận 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 thiết bị điều phối, thiết bị điều phối truyền ACK và ngay sau đó là dữ liệu mà không thực hiện CSMA-CA giữa hai lần truyền này, ngay cả trong thời gian truy cập tranh chấp(CAP).
Có hai loại CSMA-CA : phân khe và khơng phân khe. CSMA phân khe - là thực hiện CSMA-CA trong khi có một cấu trúc siêu khung tồn tại. Một siêu khung chia thời gian hoạt động vào 16 khe thời gian bằng nhau. Chu kì quay lại của thuật tốn CSMA- CA cần phải được liên kết đến các khe thời gian cụ thể. Thuật toán CSMA – CA khơng phân khe được sử dụng khi khơng có cấu trúc siêu khung; do đó , khơng cần quay lại đúng khe. Một mạng không cho phép beacon ln ln sử dụng thuật tốn CSMA-CA không phân khe để truy cập kênh.
Nếu CCA cho thấy một kênh bận, thiết bị sẽ quay lại một khoảng thời gian ngẫu nhiên và sau đó thử lại . Thời gian quay lại ngẫu nhiên này trong cả CSMA-CA phân khe và không phân khe là một bội số của thời gian quay lại đơn vị . Đơn vị thời gian quay lại bằng aUnitBackoffPeriod (một hằng số MAC) ký tự.
Trong bước đầu tiên của thuật toán, một quyết định được thực hiện để sử CSMA- CA phân khe hoặc không phân khe. Ba biến được sử dụng trong thuật toán CSMA-CA : số mũ quay lại (BE), số lượng quay lại (NB), và chiều dài cửa sổ tranh chấp (CW).
Mỗi lần các thuật tốn gặp kênh bận, nó lùi lại một khoảng thời gian ngẫu nhiên và BE xác định phạm vi cho phép với khoảng thời gian ngẫu nhiên này.
Số mũ quay lại ngẫu nhiên này là số nguyên ngẫu nhiên từ 0 đến (2BE-1) nhân với thời gian quay lại đơn vị (aUnittBackoffPeriod)
Giá trị ban đầu của BE bằng macMinBE trong truy cập kênh CSMA-CA không phân khe. Trong CSMA-CA phân khe, sự lựa chọn của tùy chọn mở rộng tuổi thọ pin (BLE- battery life extension) trong cấu trúc siêu khung ảnh hưởng đến giá trị của BE. Nếu tùy chọn BLE đang hoạt động, thiết bị điều phối tắt máy thu của nó sau một thời gian bằng macBattLifeExtPeriods theo sau việc truyền một khung beacon, để bảo tồn năng lượng. Trong trường hợp này, phạm vi cho khoảng quay lại được giới hạn là:
BE =min (2, macMinBE)
Nếu tùy chọn BLE không được chọn, thiết bị điều phối sẽ hoạt động trong toàn bộ CAP, và giá trị của BE bằng macMinBE (tương tự như CSMA–CA không phân khe). Giá trị của BE được tăng lên mỗi khi một CCA được thực hiện và gặp kênh bận.
Nhưng giá trị của BE không thể vượt quá macMaxBE.
NB là một truy cập để theo dõi số lần thiết bị quay lại và thử lại cơ chế truy cập kênh. Lúc bắt đầu của thuật tốn, NB bằng khơng, và mỗi lần phải quay lại do gặp một kênh bận, BE sẽ tăng lên một. Nếu NB đạt macMaxCSMABackoffs mà vẫn kênh không truy cập thành cơng, thuật tốn CSMA-CA sẽ thốt và báo cáo thất bại truy cập kênh đến lớp NWK.
Biến cửa sổ tranh chấp (CW) xác định số lần quay lại mà kênh phải có trước khi bắt đầu truyền . Ví dụ, nếu CW bằng 2, thiết bị bắt đầu truyền sau hai lần quay lại liên tiếp gặp kênh rỗi. CW chỉ được sử dụng trong các thuật toán CSMA-CA phân khe.
Nếu việc truyền khơng thể được hồn thành trong thời gian cho phép, lớp MAC sẽ đợi cho đến khi bắt đầu CAP tiếp theo và thử thuật toán truy cập kênh CSMA-CA một lần nữa.