Tổng quan

Một phần của tài liệu Nghiên cứu cơ chế giải quyết xung đột thẻ theo hướng tiếp cận tdma và ứng dụng cho bộ đọc sm (Trang 57)

John I. Capetanakis là người đầu tiên đề xuất và phân tích thuật toán tìm kiếm trên cây nhị phân trong các hệ thống đa truy cập kênh truyền. Khi bộ thu (receiver) truy vấn, các node sẽ truyền các gói tin trong các slot thời gian. Nếu có nhiều hơn một node cùng truyền trong một slot thì xung đột sẽ xảy ra và không có thông tin hữu ích nào nhận được ở phía bộ thu. Ý tưởng đưa ra là khi một node xung đột, node này sẽ được chia thành hai nhánh con ứng với hai khả năng 0 hoặc 1. Các node trong nhánh đầu tiên sẽ truyền các gói tin trong slot thời gian đầu tiên. Các node trong nhánh thứ hai phải chờ cho đến khi xung đột giữa các node trong nhánh đầu tiên được giải quyết hoàn toàn. Nếu các node trong nhánh đầu tiên lại gặp xung đột thì việc chia nhánh lại tiếp tục diễn ra. Điều này được thực hiện đệ quy cho đến khi tất cả các xung đột được giải quyết. Một khi tất cả các xung đột trong nhánh đầu tiên được giải quyết, thủ tục tương tự cũng được tiến hành cho nhánh thứ hai.

Với những đặc trưng tương đồng, các nhà nghiên cứu nhận thấy rằng thuật toán tìm kiếm cây nhị phân cũng có thể được áp dụng hiệu quả vào bài toán giải quyết xung đột thẻ trong công nghệ RFID. Các node tương ứng với thẻ RFID và bộ thu tương ứng cho bộ đọc RFID. Thẻ gửi UID của nó đáp ứng các truy vấn từ phía bộ đọc. Nếu tất cả các xung đột trong một nhánh con được giải quyết, điều này có nghĩa rằng bộ đọc đã xác định thành công tất cả các thẻ trong nhánh con đó. Các node được chia thành các nhánh con dựa trên hai phương pháp tiếp cận: Binary Tree (sẽ được trình bày trong mục 3.2) và Query Tree (sẽ được trình bày trong mục 3.4). Theo cơ chế giải quyết xung đột trong các thuật toán ALOHA-based, khi một gói tin xung đột, toàn bộ nội dung sẽ được gửi lại vào một thời điểm khác. Còn với các

thuật toán Tree-based, khi xảy ra xung đột thì việc tách thành hai nhánh con đồng nghĩa với việc bộ đọc phải biết được chính xác là xung đột tại vị trí nào, vì thế phương pháp mã hóa bit phải được lựa chọn phù hợp để đáp ứng nhu cầu này. Có hai phương pháp mã hóa bit được sử dụng rộng rãi trong các hệ thống truyền thông dữ liệu, đó là NRZ (non-return-to-zero) và Manchester. Cần lưu ý khái niệm mã hóa ở đây là một kỹ thuật giúp chuyển các giá trị logic bit thành các xung điện có thể truyền qua đường truyền vật lý.

4.1.1 Mã hóa NRZ

Đây là phương pháp điều chế biên độ xung. Như trong hình 4.1, giá trị logic 1 được mã hóa với mức biên độ tín hiệu cao và giá trị logic 0 được mã hóa với mức biên độ tín hiệu thấp, các mức tín hiệu này không thay đổi trong suốt chu kỳ bit (một nhịp bus). Cái tên NRZ được sử dụng là bởi mức tín hiệu không quay trở về 0 sau mỗi nhịp.

Hình 4.1 Mã hóa NRZ

Nếu ít nhất hai thẻ đồng thời gửi một tín hiệu sóng phụ mang (subcarrier) trên đường truyền, tại một nhịp mà tồn tại 2 mức biên độ tín hiệu khác nhau (cao và thấp) sẽ được bộ đọc xem như một mức cao và giải mã thành giá trị logic 1. Do đó bộ đọc không thể nhận diện được liệu các bit mà nó đang nhận là tín hiệu từ một thẻ hay là tín hiệu chồng lấp từ nhiều thẻ. Cho dù có sử dụng kỹ thuật kiểm tra checksum (parity, CRC) thì bộ đọc cũng chỉ biết được dữ liệu nhận có lỗi ở đâu đó chứ không thể xác định chính xác là tại vị trí nào.

Thẻ 1

Thẻ 2

Tín hiệu kết hợp phía bộ đọc

Dữ liệu giải mã

Hình 4.2 Dữ liệu nhận được theo mã hóa NRZ

4.1.2 Mã hóa Manchester

Đây là một trong các phương pháp điều chế pha xung. Giá trị của một bit được quy định bởi sự thay đổi mức (tăng hay giảm) ở giữa chu kỳ bit . Như trong hình 4.3, giá trị logic 0 được mã hóa bằng một biến đổi tăng (cạnh lên), giá trị logic 1 được mã hóa bằng một biến đổi giảm (cạnh xuống). Trạng thái tĩnh (không thay đổi) không được thừa nhận trong suốt quá trình truyền tải dữ liệu và được xem như là lỗi.

Hình 4.3 Mã hóa Manchester

Nếu hai (hoặc nhiều) thẻ đồng thời truyền các bit với những giá trị khác nhau thì sự thay đổi tăng và giảm trong các tín hiệu bị triệt tiêu lẫn nhau tại phía bộ đọc. Trạng thái này không được thừa nhận trong hệ thống mã hóa Manchester vì thế dẫn tới lỗi. Dựa vào đó bộ đọc có thể phát hiện ra xung đột chính xác tại bit nào. Cho nên mã hóa Manchester được chọn là cơ chế mã hóa bit trong các thuật toán giải quyết xung đột Tree-based.

Thẻ 1

Thẻ 2

Tín hiệu kết hợp phía bộ đọc

Dữ liệu giải mã

Hình 4.4 Dữ liệu nhận được theo mã hóa Manchester

4.2 Binary Tree (BT)

4.2.1 Thuật toán

Gọi:

n: số lượng thẻ có thể có.

k: độ dài của UID của thẻ, cũng chính là chiều cao của cây nhị phân.

m: số lượng thẻ nằm trong vùng năng lượng của bộ đọc (m <= n). : node thứ y (tính từ trái qua) có chiều cao x trong cây nhị phân. : cây con (subtree) mà node gốc của nó là .

Thuật toán được phát biểu như sau:

Bước 1: Bắt đầu với node gốc của cây , mọi thẻ thuộc cây con gửi dữ liệu (UID) tại slot thời gian ứng với .

Bước 2: Nếu có từ 2 thẻ trở lên trong cây con thì xung đột xảy ra tại node , qua bước 3.

Bước 3:

= . = .

Chiều cao

1 0

2

3

Hình 4.5 Cấu trúc Binary Tree (k = 3, m = 4)

Bước 4:

Mọi thẻ thuộc cây con gửi dữ liệu tại slot thời gian ứng với .

Sau đó mọi thẻ thuộc cây con gửi dữ liệu tại slot thời gian ứng với . Bước 5: Nếu có bất kỳ xung đột nào xảy ra ở bước 4:

Cho đến khi xung đột này được giải quyết, không có thẻ nào được phép gửi dữ liệu mới.

Giải quyết xung đột ở trước khi giải quyết xung đột ở .

Một xung đột trong (hay ) được giải quyết bằng cách chia (hay ) thành 2 cây con A và B, gán = A và = B rồi lặp lại bước 4 và bước 5.

4.2.2 Ví dụ

Xét 4 thẻ trong vùng năng lượng của bộ đọc với độ dài UID của mỗi thẻ là 8 bit (do đó UID của mỗi thẻ nằm trong dãy 0000 0000b…1111 1111b) và có giá trị như bảng 4-1.

Giả sử bộ đọc hỗ trợ lệnh REQUEST(?x), tại đầu mỗi chu kỳ, bộ đọc sẽ phát lệnh này đến các thẻ tồn tại trong vùng năng lượng, bản thân các thẻ phải hỗ trợ một phép toán đơn giản là so sánh để khi nhận được lệnh REQUEST, nếu ? là dấu:

≤: UID của thẻ nào nhỏ hơn hoặc bằng giá trị x thì thẻ đó sẽ trả lời lại bộ đọc với UID của mình.

≥: UID của thẻ nào lớn hơn hoặc bằng giá trị x thì thẻ đó sẽ trả lời lại bộ đọc với UID của mình.

Thẻ 4 3 2 1 UID (MSb...LSb) 1011 0010b 1010 0011b 1011 0011b 1110 0011b

Bảng 4-1 Danh sách thẻ trong ví dụ Binary Tree

Ban đầu, bộ đọc gửi lệnh REQUEST(≤1111 1111). Do 1111 1111b là giá trị lớn nhất trong miền giá trị UID, nên kết quả của lệnh này là tất cả các thẻ đều trả lời lại cho bộ đọc. Thẻ 1 Thẻ 2 Thẻ 3 Downlink Bộ đọc -> thẻ Uplink Thẻ -> bộ đọc REQUEST (≤1111 1111) Thẻ 4 1011 0010 1010 0011 1011 0011 1110 0011 1X1X 001X Chu kỳ 1 REQUEST (≤1011 1111) Chu kỳ 2 1011 0010 1010 0011 1011 0011 101X 001X

Bảng 4-2 Chu kỳ 1, 2 trong ví dụ Binary Tree

Ở chu kỳ 1 (bảng 4-2), dữ liệu nhận tại bộ đọc bị xung đột tại 3 bit: 0, 4, 6. Trong đó bit 6 là bit có giá trị lớn nhất, điều này có nghĩa là có ít nhất một thẻ mà UID ≤ 1011 1111b và cũng có ít nhất một thẻ mà UID ≥ 1100 0000b. Với nhận xét này, ta rút ra quy tắc hình thành tham số của lệnh cho chu kỳ tiếp theo như sau:

REQUEST(≤ X…) với bit(X)=0, bit(0 đến X-1)=1 REQUEST(≥ X…) với bit(X)=1, bit(0 đến X-1)=0

Trong đó, X là bit xung đột mang giá trị lớn nhất trong chu kỳ hiện tại.

Đầu chu kỳ 2 (bảng 4-2), bộ đọc gửi lệnh REQUEST(≤1011 1111) (áp dụng quy tắc trên), các thẻ 1, 2 và 3 trả lời với kết quả nhận tại bộ đọc xung đột tại bit 0 và 4. Đầu chu kỳ 3 (bảng 4-3), bộ đọc gửi lệnh REQUEST(≤1010 1111) (áp dụng quy tắc trên), lúc này dữ liệu nhận tại bộ đọc không bị xung đột và đó chính là UID của thẻ 2: 1010 0011b.

Đầu chu kỳ 4 (bảng 4-3), bộ đọc gửi lệnh REQUEST(≥1011 0000) (lựa chọn còn lại so với chu kỳ 3), thẻ 1 và 3 trả lời với kết quả nhận tại bộ đọc xung đột tại bit 0. Do đây là bit cuối cùng trong UID nên chắc chắn có hai thẻ với UID lần lượt là 1011 0010b, 1011 0011b sẽ được xác định ở chu kỳ 5 và 6. Thẻ 1 Thẻ 2 Thẻ 3 Downlink Bộ đọc -> thẻ Uplink Thẻ -> bộ đọc REQUEST (≤10101111) Thẻ 4 1010 0011 Chu kỳ 3 REQUEST (≥10110000) Chu kỳ 4 1011 0010 1011 0011 1011 001X 1010 0011

Bảng 4-3 Chu kỳ 3, 4 trong ví dụ Binary Tree

Đầu chu kỳ 7, bộ đọc gửi lệnh REQUEST(≥1100 0000) (lựa chọn còn lại so với chu kỳ 2), lúc này dữ liệu nhận tại bộ đọc không bị xung đột và đó chính là UID của thẻ 4: 1110 0011b.

C C Thẻ 1,2,3,4 10.. 11.. Thẻ 1,2,3 Thẻ 4 1010.. 1011.. Thẻ 2 C Thẻ 1,3 10110010.. 10110011.. Thẻ 1 Thẻ 3

Slot1 Slot2 Slot3 Slot4 Slot5 Slot6 Slot7 C C Thẻ 2 C Thẻ 1 Thẻ 3 Thẻ 4

C Xung

đột

Hình 4.6 Cấu trúc Binary Tree trong ví dụ

4.2.3 Phân tích

4.2.3.1 Độ phức tạp thời gian (time complexity)

Gọi thời gian thực hiện chu kỳ i là và giả sử . Lượng thời gian trung bình trong toàn bộ quá trình được tính theo công thức sau:

Trong đó, là số chu kỳ tìm kiếm trung bình. Gọi:

: số slot trung bình phải tốn trong quá trình xác định n thẻ. : số slot xung đột trung bình trong quá trình xác định n thẻ. : số slot rỗng trung bình trong quá trình xác định n thẻ. Ta có:

(4.1) Trong đó n chính là số slot mà chỉ có một thẻ trả lời.

Xem xét n thẻ trong đó tại chiều cao L của cây chỉ có node đại diện trả lời, xác suất node cùng chọn một slot là ngẫu nhiên và hoàn toàn độc lập nhau, áp dụng mô hình phân phối nhị thức, xác suất k node cùng chọn một slot được tính theo công thức sau:

(4.2) Trong đó:

X: số lượng node chọn cùng một slot. : xác suất một node chọn slot.

: xác suất một node không chọn slot. Theo công thức (4.2), ta có:

 xác suất một slot trống tại chiều cao L là:

Suy ra (4.3)

 xác suất một slot thành công tại chiều cao L là:

 xác suất một slot xung đột tại chiều cao L là:

Suy ra

(4.4) Từ (4.1), (4.3) và (4.4), suy ra:

4.2.3.2 Độ phức tạp giao tiếp (communication complexity)

Tại mỗi chu kỳ, bộ đọc gửi lệnh với độ dài k bit, cho nên để xác định n thẻ bộ đọc cần gửi bit qua kênh truyền.

Trong chu kỳ mà bộ đọc gửi lệnh, số lần một thẻ trả lời trung bình là

, với n thẻ, số lần trả lời là , trong đó mỗi thẻ gửi k bit cho bộ đọc, cho nên, lượng dữ liệu do các thẻ gửi qua kênh truyền là:

.

Do đó lượng dữ liệu giao tiếp trung bình trong kênh truyền trong toàn bộ quá trình:

Một phần của tài liệu Nghiên cứu cơ chế giải quyết xung đột thẻ theo hướng tiếp cận tdma và ứng dụng cho bộ đọc sm (Trang 57)

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

(140 trang)