Chương 3 Nhiễu, can nhiễu và tính toán dự trữ tuyến
4.5 Yêu cầu truyền lại tự động
4.5.1. Các kỹ thuật ARQ
Kỹ thuật yêu cầu truyền lại tự động, ARQ (Automatic Repeat Request) thường được sử dụng trong trường hợp truyền dữ liệu theo gói (packet). Ở đây bộ giải mã kênh phát hiện lỗi nhưng không sửa lỗi, tức trong trường hợp phát hiện gói tin có lỗi thì gửi một tín hiệu đến máy phát yêu cầu truyền lại gói tin đó. Như vậy, cần có thêm một kênh tín hiệu từ máy thu đến máy phát. Trong thông tin vệ tinh thì kênh đó có thể là kênh vệ tinh và cũng có thể là kênh mặt đất. Việc sử dụng các mã phát hiện lỗi yêu cầu có độ tin cậy để kiểm soát lưu lượng nguồn và cho phép độ trễ giải mã biến đổi. Các nhược điểm đó có thể được bù lại bởi sự đơn giản của quá trình giải mã, khả năng thích ứng với lỗi có đặc tính thống kê và tỷ lệ lỗi thấp:
Có ba dạng kỹ thuật ARQ, đó là:
- Truyền lại có ngừng và chờ ( ARQ Stop-and-wait); - Truyền lại liên tục (Go-back-N ARQ);
- Truyền lại có chọn lọc (Selective-repeat ARQ) Hình 4.5. mô tả ba kỹ thuật nêu trên:
Hình 4.5: Phát hiện lỗi và truyền
a) Truyền lại co ngừng và chờ; b) Truyền lại liên tục; c) Truyền lại có chọn lọc. Các ký hiệu: KL: không lỗi; CL = có lỗi
Hiệu năng của hệ thống sử dụng kỹ thuật ARQ được đánh giá thông qua tham số hiệu suất của mỗi kỹ thuật ARQ sử dụng. Tham số hiệu suất ARQ được biểu thị bởi tỷ số của số lượng trung bình của các bit thông tin được truyền (có ARQ) trên tổng số bit có thể được truyền (không ARQ) trong cùng thời gian đó.
Như vậy ARQ có chọn lọc sẽ có hiệu suất lớn nhất, ARQ ngừng và chờ có hiệu suất thấp nhất. Tuy vậy ARQ có chọn lọc cần có thiết bị phức tạp hơn, trong lúc ARQ ngừng và chờ chỉ cần thiết bị tinh toán đơn giản hơn nhiều.
Ví dụ, với tuyến liên lạc vệ tinh số (địa tĩnh) có dung lượng R = 48 kbps. Thời gian khứ hồi của tín hiệu T = 600 ms. Xác suất lỗi bit Pe = 10-4. Khối dữ liệu truyền n = 1000 bit. Kết quả tính toán cho:
(ARQ - SW) = 0,03; (ARQ - GB) = 0,23; và (ARQ - SR) = 0,84.
4.5.2. Ứng dụng kỹ thuật ARQ trong các kênh truyền tin số
Kỹ thuật ARQ thường được kết hợp với mã kiểm soát lỗi kiểm tra độ dư vòng CRC (Cyclic Redundancy Check) để phát hiện lỗi và thực hiện ARQ đối với các tiêu đề của các giao thức truyền đồng bộ và không đồng bộ.
- Ví dụ với giao thức truyền dữ liệu đồng bộ SDLC (Syschronous Data Link Communication) và giao thức CCITT-X25 (truyền dữ liệu đồng bộ tốc độ cao) có dành một khung con độ dài là 16 bit trong trường tiêu đề để kiểm soát lỗi và thực hiện ARQ nếu dữ liệu trong trường tiêu đề truyền bị lỗi.
Hình 4.6. Mô tả phát hiện lỗi sử dụng mã CRC và ARQ trong trường tiêu đề của giao thức truyền dữ liệu đồng bộ SDLC (a) và giao thức truyền không đồng bộ
Hình 4.6 mô tả khung con phục vụ kiểm soát lỗi trong khung dữ liệu của giao thức SDLC (truyền dữ liệu đồng bộ) và trong trường tiêu đề cấu trúc khung truyền dữ liệu không đồng bộ ATM (Asynchronous Transfer Mode).
4.5.3. Mã kiểm soát lỗi CRC
Mã kiểm soát lỗi kiểm tra độ dư vòng CRC (Cyclic Redundancy Check) chủ yếu được sử dụng để phát hiện lỗi và thực hiện giải pháp ARQ, không sửa lỗi. Nguyên lý thực hiện mã CRC như sau:
- Phía phát thực hiện mã hóa: Đoạn tin k bit được chuyển dịch (n - k) vòng, kết quả đem chia cho đa thức sinh g(x) được chọn trước. Số dư r(x) của phép chia được cộng thêm vào đoạn tin k bit để có n bit được truyền đi (có n - k bit dư được cộng thêm vào, còn được gọi là các bit kiểm tra).
- Phía thu thực hiện giải mã CRC: Đoạn tin thu được (gồm n bit) được đem chia cho đa thức sinh g(x). Nếu số dư r(x) của phép chia bằng không, tức đoạn tín hiệu thu được không có lỗi. Nếu số dư của chia khác không (r(x) ≠ 0) tức đoạn tin thu được bị lỗi, cần thực hiện ARQ.
Về đa thức sinh g(x) đã có một số lựa chọn trước đưa vào các chuẩn khuyến nghị phù hợp với các giao thức truyền tin số. Ví dụ:
Chuẩn CRC-16 của ITU-T g(x) = x16 + x12 + x5 + 1
Chuẩn CRC-32 của IEEE:
g(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
Chuẩn ERC-16 của ANSI g(x) = x16 + x15 + x2 + x + 1
Đa thức sinh sử dụng trong trường tiêu đề của ATM g(x) = x8 + x2 + x + 1.
Việc mã hóa và giải mã đối với mã CRC được thực hiện bởi các mạch logic XOR và thanh ghi dịch chuyển khá đơn giản.
4.5.4. Một ví dụ về mã hóa và giải mã đối với mã CRC
Tạo một từ mã CRC với dãy dữ liệu cho là 1001 và đa thức sinh cho là g(x) 1 + x + x3
Dãy dữ liệu cho M(x) = 1001 = 1 + x3
Đa thức sinh cho: g(x) = 1101 = 1 + x + x3
Dãy chuyển dịch bit: kM(x) = x3(1 + x3) = x6 + x3 = 1101000 Thực hiện phép chia kM(x) cho g(x) bằng phép trừ dịch chuyển:
Kết quả phép chia dịch chuyển cho kết quả số dư r(x) = 011.
Số dư đó được cộng vào dãy dữ liệu cho M(x) và kết quả từ mã CRC sẽ được truyền đi là: 1001011 = x6 + x3 + x + 1.
Quá trình thực hiện phép chia trên có thể sử dụng một mạch cứng thông thường. Hình 4.7 mô tả mạch tạo mã trên. Hoạt động của bộ tạo mã như sau. Các bit thông tin được truyền lần lượt như mã cyclic, nhưng ở đây có mạch phản hồi qua một chuyển mạch (đóng/mở). Các bước chuyển dịch theo nhịp tín hiệu đồng hồ. Trạng thái các thanh ghi dịch chuyển sau khi dãy dữ liệu đưa vào ứng với các điểm A, ...., E như sau:
Đầu vào A = 1001 B = 1010 C = 0101 D = 1111 E = 0111 F = 0011
Khi bit thông tin cuối cùng ở đầu vào được truyền thì chuyển mạch hồi được mở, dữ liệu lưu giữ trên các vị trí thanh ghi dịch chuyển E, D, B được cộng vào dữ liệu thông tin đầu vào qua chuyển mạch đầu ra. Các bit dư 011 trong ví dụ nêu trên của mã CRC cũng chính là mã Hamming (7, 4).
Về phía thu, khi nhận được dãy dữ liệu, lại đem chia cho đa thức sinh g(x)
= 1 + x + x3. Nếu số dư bằng không, tức không bị lỗi; nếu số dư khác không, tức dữ liệu truyền bị lỗi. Mạch giải mã là quá trình ngược lại của mạch tạo mã.