Một số giao thức chống xung đột thẻ đƣợc để xuất để giảm thiểu xung đột thẻ. Chúng có thể đƣợc chia thành 3 loại: các giao thức dựa trên ALOHA, các giao thức cây và các giao thức dựa trên các bộ đếm.
a) Các giao thức dựa trên ALOHA
Các giao thức chống xung đột thẻ dựa trên ALOHA dựa trên một cơ chế back-off hoạt động một cách xác suất. Các giao thức này hoạt động để tách rời các khoảng thời gian đáp ứng của các thẻ trong vùng truy vấn. Các giao thức dựa trên ALOHA rất đơn giản và có hiệu suất nhƣ nhau. Tuy nhiên, chúng có một vấn đề đối với thẻ đó là thẻ có thể không bao giờ xác định đƣợc vì phản ứng của nó luôn luôn xung đột với những thẻ khác.
Giao thức ALOHA
Giao thức ALOHA là giao thức chống xung đột thẻ đơn giản nhất đƣợc dựa trên ALOHA. Khi reader yêu cầu các thẻ phản hồi lại ID của nó, mỗi thẻ trong vùng truy vấn chọn ngẫu nhiên một khoảng thời gian back-off riêng và phản hồi lại số ID của nó cho reader sau khoảng thời gian back-off. Nếu xung đột không xuất hiện trong quá trình truyền ID của thẻ, số ID này đƣợc xác định thành công và đƣợc công nhận bởi reader. Một thẻ với số ID đã đƣợc công nhận sẽ ngừng đáp ứng đến reader. Thẻ sẽ chọn lại một khoảng thời gian back-off ngẫu nhiên và gửi số ID của nó cho đến khi số ID đƣợc xác định và đƣợc công nhận bởi reader.
Giao thức Slotted ALOHA
Trong giao thức Slotted ALOHA, một khoảng thời gian back-off ngẫu nhiên phải là bội số của một khe thời gian xác định trƣớc. Lƣu ý rằng một khe thời gian thƣờng đƣợc thiết lập để có một khoảng thời gian đủ dài cho thẻ truyền số ID của mình và cho phép reader nhận ra và công nhận số ID đó. Reader cần phải đồng bộ các khe thời gian cho tất cả các thẻ trong vùng truy vấn. Nếu chỉ có một thẻ truyền số ID của nó trong một chu kỳ của một khe
Cao Văn Đức – KTVT –K 52
thời gian, nó có thể đƣợc xác định và đƣợc công nhận bởi đầu đọc một cách chính xác. Những thẻ không đƣợc công nhận bởi reader sẽ chọn lại một khe thời gian ngẫu nhiên để truyền số ID của mình. Hiệu suất của giao thức Slotted ALOHA gấp đôi hiệu suất của giao thức ALOHA vì không xảy ra đụng độ của việc phản hồi số ID của thẻ.
Giao thức Frame Slotted ALOHA
Trong giao thức Frame Slotted ALOHA, toàn bộ quy trình truy vấn đƣợc chia thành một tập các khung, mỗi khung chứa nhiều khe thời gian. Khi nhận đƣợc lệnh REQUEST của reader, mỗi thẻ có thể đáp ứng chỉ trong một khe thời gian đã chọn ngẫu nhiên trong suốt chu kỳ khung. Nếu chỉ có một thẻ phản hồi trong một khe thời gian, reader có thể xác định thẻ thành công. Những thẻ không đƣợc xác định thành công có thể chọn lại một khe thời gian trong khung kế tiếp để truyền lại số ID của mình. Ở thời điểm không có thẻ nào hồi đáp, tất cả các thẻ đƣợc xác định thành công, các vòng khung tiếp tục cho đến thời điểm đó.
Bảng 2.2 dƣới đây là một ví dụ về giao thức Frame Slotted ALOHA, trong đó mỗi khung gồm 4 khe thời gian. Giả sử rằng, có 6 thẻ RFID với 5 bit ID duy nhất trong vùng truy vấn của một reader. Thủ tục thực hiện các giao thức đƣợc mô tả nhƣ sau:
1. Reader gửi lệnh REQUEST đầu tiên để đồng bộ bắt đầu khung; 2. Mỗi thẻ chọn ngẫu nhiên 1 trong 4 khe thời gian có sẵn trong
khung 0 để phản hồi số ID của nó sau khi nhận lệnh REQUEST. Trong ví dụ này, trong khung 0, ID thẻ duy nhất (01110) trong khe thời gian 1 đƣợc xác nhận thành công. Các đụng độ xuất hiện trong các khe thời gian 2 và 4, và không có phản hồi của thẻ trong khe thời gian 3;
3. Thẻ đƣợc xác định có thể đƣợc lựa chọn bởi lệnh SELECT để đọc hoặc ghi dữ liệu. Nó sẽ ngừng đáp ứng các lệnh REQUEST trong các khung sau;
4. Reader gửi các lệnh REQUEST lặp lại liên tục cho đến khi tất cả các thẻ đƣợc xác nhận thành công;
Cao Văn Đức – KTVT –K 52
Bảng 2.2. Ví dụ về giao thức Frame Slotted ALOHA.
Khung 0 Khung 1 Khung 2
TS1 TS2 TS3 TS4 TS1 TS2 TS3 TS4 TS1 TS2 TS3 TS4
Reader request request request
Thẻ 1 10010 10010 Thẻ 2 01110 Thẻ 3 00101 00101 00101 Thẻ 4 11011 11011 11011 Thẻ 5 10110 10110 Thẻ 6 01001 01001 Trạng thái Thành công Xung đột Rỗi Xung đột Xung đột Thành công Thành công Thành công Rỗi Thành công Thành công Rỗi
Cao Văn Đức – KTVT –K 52
Một hạn chế của giao thức Frame Slotted ALOHA là hiệu quả của nó sẽ suy giảm khi số lƣợng các khe thời gian trong khung không phù hợp với số lƣợng thẻ trong vùng truy vấn. Giao thức Frame Slotted ALOHA động có thể loại bỏ nhƣợc điểm bằng việc điều chỉnh động kích thƣớc khung theo số lƣợng thẻ ƣớc tính. Hiệu suất của giao thức này cao hơn của giao thức Frame Slotted ALOHA.
Giao thức ISO/IEC 18000-6A
ISO/IEC 18000-6 là một tiêu chuẩn định nghĩa việc truyền thông bằng giao diện vô tuyến ở tần số 860-960 MHz cho hệ thống RFID. Chuẩn này gồm 3 loại khác nhau (A, B và C) cho các giao thức truyền thông đƣợc đinh nghĩa trong chuẩn này. Trong đó, loại A và C là các giao thức đƣợc dựa trên ALOHA. Giao thức loại C là một dạng của giao thức loại A.
Trong giao thức ISO/IEC 18000-6A, một đầu đọc bắt đầu một vòng quy trình xác nhận bằng việc gửi ra lệnh Init_round. Trong lệnh này, số lƣợng các khe trong một vòng, gọi là kích thƣớc vòng đƣợc đƣa ra. Cần lƣu ý rằng reader có thể tự động xác định kích thƣớc vòng thích hợp cho vòng kế tiếp dựa trên số va chạm ở vòng hiện tại. Sau khi nhận đƣợc lệnh, thẻ lựa chọn ngẫu nhiên một khe thời gian để phản hồi ID của nó đến reader. Thẻ giữ một bộ đếm khe thời gian để theo dõi các khe thời gian hiện tại. Khi đến lƣợt khe thời gian đƣợc chọn, thẻ chờ một khoảng thời gian trễ ngẫu nhiên trong khoảng từ 0 đến 7 chu kỳ và phản hồi với một chữ ký thẻ 4 bít đƣợc chọn ngẫu nhiên. Nếu chỉ có 1 thẻ phản hồi có chữ ký đƣợc nhận bởi reader là đúng, reader sẽ gửi lệnh Next_slot chứa chữ ký đã nhận đến thẻ để xác nhận; ngƣợc lại thì lệnh Close_slot sẽ đƣợc gửi đi. Các thẻ có các hành vi sau đây:
Thẻ tăng bộ đếm khe thời gian lên một nếu nó không đáp ứng trong khe thời gian hiện tại và các lệnh nhận đƣợc là Close_slot hoặc Next_slot.
Thẻ tăng bộ đếm khe thời gian lên một nếu nó phản hồi trong khe thời gian hiện tại và nhận đƣợc lệnh Close_slot.
Thẻ chuyển sang trạng thái Quiet nếu nó phản hồi trong khe thời gian hiện tại và nhận đƣợc lệnh Next_slot với chữ ký thẻ giống của nó.
Cao Văn Đức – KTVT –K 52
Trong một vòng, reader có thể đình chỉ vòng bằng việc gửi lệnh Standby_round đến các thẻ. Việc tạm dừng vòng cho phép reader tiến hành việc đọc/ghi dữ liệu với một thẻ đã đƣợc chọn. Khi số lƣợng khe bằng kích thƣớc vòng đã xác định trong lệnh Init_round thì vòng đƣợc hoàn thành và tất cả các thẻ không ở trạng thái Quiet (nghĩa là các thẻ vẫn chƣa đƣợc xác nhận) sẽ chọn ngẫu nhiên một khe thời gian mới và một chữ ký mới ngẫu nhiên để tham gia vào một vòng mới.
b) Các giao thức cây
Ý tƣởng cơ bản của giao thức chống xung đột thẻ dựa trên thuật toán cây là nhiều lần tách các thẻ gặp xung đột vào các phân nhóm theo số ID của thẻ cho đến khi chỉ một thẻ trong một phân nhóm đƣợc xác định thành công. Các giao thức có thể đƣợc áp dụng cho các thẻ có bộ nhớ ghi đƣợc hoặc không. Thẻ với bộ nhớ có chi phí cao hơn. Tuy nhiên, các giao thức cho các loại thẻ đó có hiệu suất cao hơn. Giao thức dựa trên thuật toán cây có độ trễ thời gian xác định dài hơn so với giao thức dựa trên thuật toán ALOHA. Nhƣợc điểm nữa của giao thức cây là hiệu suất của nó bị ảnh hƣởng bởi độ dài hoặc sự phân bổ của các số ID của thẻ. Dƣới đây là một số giao thức cây nhƣ: giao thức QT, giao thức cây nhị phân bit-by-bit, giao thức EPCglobal Class 0, giao thức TSA, giao thức BSQTA và BSCTTA, giao thức AQS.
Giao thức QT
Trong giao thức QT, một reader đầu tiên phát quảng bá một chuỗi bit yêu cầu S tới các thẻ. Mỗi thẻ với tiền tố của số ID phù hợp với S sẽ phản hồi toàn bộ ID tới reader. Nếu trong tƣờng hợp chỉ có một thẻ phản hồi, thẻ đƣợc xác định thành công. Nếu nhiều thẻ cùng phản hồi đồng thời, đụng độ sẽ xảy ra. Trong trƣờng hợp đó, reader phát quảng bá lại chuỗi bit yêu cầu có thêm bit 0 hoặc 1 nối thêm vào chuỗi S là S0 hoặc S1. Nhƣ vậy, các thẻ với phần đầu là chuỗi S đƣợc chia làm 2 phân nhóm S0 và S1. Quá trình chia nhóm sẽ đƣợc thực hiện liên tục cho đến khi tất cả các thẻ trong vùng truy vấn đƣợc xác nhận thành công. Giao thức QT là một giao thức không nhớ vì nó không
Cao Văn Đức – KTVT –K 52
yêu cầu các thẻ trang bị bộ nhớ có ghi đƣợc trên chip. Giao thức QT nhận dạng thẻ chậm vì ảnh hƣởng bởi sự phân bổ và độ dài số ID của thẻ.
Dƣới đây là một ví dụ về giao thức QT. Giả định rằng có 6 thẻ với mỗi số ID duy nhất là 0010, 0011, 1001, 1100, 1101 và 1110. Quá trình truy vấn thẻ của giao thức QT đƣợc mô tả từng bƣớc nhƣ sau:
1. Đầu tiên, reader gửi đi một chuỗi bit yêu cầu S = “0” và đẩy 1 chuỗi bit yêu cầu khác “1” vào ngăn xếp. Các thẻ với số ID 0010 và 0011 có bit đầu tiên khớp với chuỗi bit yêu cầu S. Chúng phản hồi số ID của mình đến reader đồng thời, và đụng độ xảy ra;
2. Sau đó reader gửi chuỗi bit yêu cầu dài hơn S = “00” và đẩy “01” vào ngăn xếp. Các thẻ với các số ID 0010 và 0011 phản hồi đồng thời và xung đột lại xảy ra;
3. Reader gửi ra chuỗi bit yêu cầu dài hơn nữa S = “000” và đẩy “001” vào ngăn xếp. Không có thẻ nào có phần đầu của số ID phù hợp với S, do đó không có phản hồi nào;
4. Trong trƣờng hợp không có phản hồi nào, reader bật “001” từ ngăn xếp và gửi nó ra nhƣ một chuỗi bit yêu cầu. Các thẻ với các số ID 0010 và 0011 trả lời đồng thời, và xung đột lại xuất hiện;
5. Reader gửi ra chuỗi bit yêu cầu S = “0010” và đẩy chuỗi “0011” vào ngăn xếp. Chỉ thẻ với số ID 0010 phản hồi yêu cầu và đƣợc xác nhận thành công;
6. Trong trƣờng hợp xác nhận thành công, reader bật chuỗi “0011” từ ngăn xếp và gửi nó ra ngoài nhƣ một chuỗi bit yêu cầu. Chỉ thẻ với số ID 0011 trả lời yêu cầu và đƣợc xác nhận thành công.
Quá trình xác nhận đƣợc thực hiện lặp đi lặp lại cho đến khi ngăn xếp rỗng. Sau đó, tất cả các thẻ có thể đƣợc xác nhận thành công. Các bƣớc của toàn bộ quy trình và sơ đồ cây liên quan đƣợc trình bày trong bảng 2.3 dƣới đây.
Cao Văn Đức – KTVT –K 52
Bảng 2.3. Các bước trong quy trình xác nhận của giao thức RFID.
Bƣớc Chuỗi S Phản hồi 1 0 Xung đột 2 00 Xung đột 3 000 Null 4 001 Xung đột 5 0010 0010 6 0011 0011 7 01 Null 8 1 Xung đột 9 10 1001 10 11 Xung đột 11 110 Xung đột 12 1100 1100 13 1101 1101 14 111 1110
Giao thức Cây nhị phân bit-by-bit
Với sự hỗ trợ của bộ nhớ có thể ghi trên thẻ, thuật toán cây bit – by – bit có thể giảm xung đột thẻ một cách hiệu quả. Trong giao thức này, đầu tiên reader gửi quảng bá một lệnh yêu cầu và mỗi thẻ sẽ hồi đáp yêu cầu với bit đầu tiên trong số ID của thẻ đó. Nếu xuất hiện xung đột, reader sẽ xác nhận các thẻ với bit 0 (hoặc 1). Chỉ thẻ có bit đầu tiên là 0 (hoặc 1) sẽ phản hồi với các bit tiếp theo đến reader. Quy trình trên lặp lại từng bit cho đến khi chỉ có 1 thẻ phản hồi. Sau đó reader có thể yêu cầu thẻ gửi các bit còn lại trong số ID của nó để xác nhận. Với bộ nhớ trên thẻ, các thẻ có thể theo dõi tình trạng đang diễn ra của quá trình xác nhận và phản hồi. Không giống nhƣ giao thức QT, giao thức cây nhị phân bit – by – bit không đòi hỏi đầu đọc gửi phần đầu số ID dài; reader chỉ gửi ra một bit ở một thời điểm. Do đó, thời gian trễ của quy trình xác nhận đƣợc giảm xuống.
Cao Văn Đức – KTVT –K 52
EPCglobal Class 0
Trong giao thức EPCglobal Class 0, thẻ sẽ phản hồi yêu cầu của reader với bit đầu tiên trong số ID của nó. Mỗi thẻ trả lời lại với một bit đơn thông qua 1 hoặc 2 tần số sóng mang con, một dành cho số nhị phân 0 và một cái khác dành cho số nhị phân 1, để reader có thể nhận ra 0 và 1 trong cùng 1 thời điểm. Nếu reader nhận đƣợc 0 và 1 đồng thời, nó sẽ xác nhận 0 đến các thẻ; nếu không, reader sẽ xác nhận thay vì nhận giá trị bit. Chỉ những thẻ có bit đầu tiên khớp với bit xác nhận có thể phản hồi lại cùng bit kế tiếp đến reader, trong khi những thẻ khác sẽ ở trạng thái im lặng và giữ trật tự tạm thời cho đến khi reader yêu cầu các thẻ bắt đầu phản hồi ở vòng mới trong việc truy vấn thẻ. Các thủ tục trên lặp lại từng bit cho đến khi thẻ có thể phản hồi cùng với đầy đủ các bit để ID của nó đƣợc xác nhận thành công. Sau đó, thẻ có thể rơi vào trạng thái ngủ cho đến khi reader yêu cầu tất cả các thẻ bắt đầu cuộc truy vấn tiếp theo.
Dƣới đây là một ví dụ để giải thích chi tiết về giao thức EPCglobal Class 0. Giả sử có 3 thẻ với 3 số ID tƣơng ứng là 001, 011, 110. Các bƣớc truy vấn thẻ đƣợc mô tả nhƣ sau:
1. Đầu tiên, reader gửi một lệnh yêu cầu để yêu cầu các thẻ bắt đầu một vòng truy vấn thẻ. Khi nhận đƣợc yêu cầu, các thẻ phản hồi với bit đầu tiên trong số ID của mình. Cụ thể, thẻ 1 với số ID 001 phản hồi với bit “0”, thẻ 2 có ID là 011 phản hồi với bit “0” và thẻ 3 có ID là 110 phản hồi với bit “1”;
2. Reader nhận đƣợc cả 2 bit “0” và “1” từ 2 kênh sóng mang con riêng và xác nhận bit “0” đến các thẻ. Thẻ 1 và thẻ 2 sẽ phản hồi lại bit thứ 2 trong số ID của chúng, nghĩa là thẻ 1 phản hồi lại với bit “0” và thẻ 2 phản hồi với bit “1”. Thẻ 3 rơi vào trạng thái im lặng và giữ trật tự tạm thời cho đến khi nhận đƣợc lệnh tiếp theo; 3. Reader vẫn nhận đƣợc đồng thời cả bit “0” và “1”. Nó xác nhận
với bit “0” đến cả 2 thẻ. Thẻ 1 phản hồi với bit “1”. Còn thẻ 2 rơi vào trạng thái im lặng;
4. Do chỉ có thẻ 1 trả lời với bit “1” và số bit trả lời bằng b=với chiều dài của số ID, reader xác nhận bằng bit “1” và số ID của thẻ 1 đƣợc xác nhận. Khi nhận đƣợc xác nhận của reader về việc gửi bit
Cao Văn Đức – KTVT –K 52
cuối cùng trong ID của mình, thẻ 1 rơi vào trạng thái ngủ cho đến khi bắt đầu quy trình truy vấn tiếp theo;
5. Đầu đọc yêu cầu các thẻ bắt đầu vòng truy vấn mới. Các thẻ ở trạng thái im lặng bắt đầu phản hồi với reader.
Các bƣớc của quá trình truy vấn tiếp tục cho đến khi tất cả các thẻ trong