Khối thích nghi kiểu truyền dẫn thực hiện việc thích nghi giao diện đầu vào, mã hóa CRC-8 để phát hiện lỗi, đồng bộ và kết hợp dòng bit (trong trường hợp đầu vào đa chương trình), chia nhỏ dòng bit thành các DATA FIELD. Cuối cùng, một tín hiệu báo hiệu được thêm vào để thông báo cho phía thu biết những thông tin cơ bản về dữ liệu và cấu trúc khung. Định dạng của chuỗi bit đầu ra của khối thích nghi kiểu truyền dẫn sẽ bao gồm trường BBHEADER (80 bit) và trường dữ liệu DATA FIELD có kích thước không cố định.
2.1.1.1. Khối giao diện đầu vào (Input Interface)
Theo định nghĩa, đầu vào của hệ thống DVB-S2 có thể là: - Một hoặc nhiều dòng truyền tải (TS) MPEG.
- Một hoặc nhiều dòng dữ liệu chung, có thể là dòng bit liên tục hoặc dạng gói.
Do DVB-S2 chấp nhận nhiều dạng đầu vào khác nhau nên các dạng đầu vào này cần phải được nhận biết và chuyển về một dạng chung. DVB-S2 phân loại đầu vào dựa trên độ dài của dòng bit và gán các giá trị độ dài gói UPL (User Packets Length) tương ứng như sau:
- Dòng truyền tải TS: Giá trị UPL cố định và bằng (188 x 8) bit (độ dài
một gói MPEG). Byte đầu tiên luôn là byte đồng bộ (47HEX).
- Dòng dữ liệu chung: Có thể là dòng bit liên tục (được gán UPL = 0D),
hoặc dạng gói dữ liệu. Trong trường hợp gói, nếu độ dài gói không đổi và nhỏ hơn 64K thì UPL được gán bằng độ dài của gói, nếu không thỏa mãn 2 điều kiện trên thì đầu vào được xem như liên tục (UPL = 0D).
Đối với các gói dữ liệu không phải dòng truyền tải, nếu byte đồng bộ là byte đầu tiên của gói thì byte này sẽ không bị thay đổi. Nếu không, byte đồng bộ bằng 0D sẽ được thêm vào phía trước của gói đồng thời giá trị UPL tăng thêm 8 bit.
35
- Tín hiệu điều khiển ACM (ACM Command): Nếu hệ thống làm việc
trong chế độ mã hóa điều chế thích nghi ACM, tín hiệu điều khiển có thể được sử dụng để điều chỉnh tỷ lệ đầu vào cho phù hợp với điều kiện truyền dẫn.
2.1.1.2. Bộ mã hóa CRC-8
Mã hóa CRC chỉ được sử dụng cho dạng dữ liệu gói. Nếu UPL = 0D thì khối này được bỏ qua không xử lý.
Trường hợp UPL ≠ 0, dòng bit đầu vào sẽ có dạng một chuỗi các gói dữ liệu người dùng UP (User Packet) với độ dài UPL, bắt đầu bằng byte đồng bộ (byte đồng bộ được hệ thống gán bằng 0 nếu không có).
Nếu như vậy, phần mang thông tin có ích của gói UP (ngoại trừ byte đồng bộ) sẽ được đưa vào bộ mã hóa CRC, với đa thức sinh: g(X) = (X5
+ X4 + X3 + X2 + 1)(X2 + X + 1)(X + 1) = X8 + X7 + X6 + X4 + X2 + 1.
Đầu ra bộ mã hóa CRC là phần dư của phép tính: [ X8
u(X): g(X) ], trong đó u(X) là gói đầu vào sau khi trừ đi 8 bit của byte đồng bộ. Giá trị này sẽ thay thế cho byte đồng bộ của gói UP tiếp theo, còn byte đồng bộ bị thay thế sẽ được copy vào trường SYNC của BBHEADER.
Hình 2.2: Hoạt động của bộ mã hóa CRC-8
2.1.1.3. Khối Merger/Slicer
Đầu vào của bộ Merger/Slicer có thể là dòng bit liên tục hoặc gói UP. Khối Merger/Slicer gồm 2 thành phần, thực hiện 2 nhiệm vụ khác nhau:
36 Đọc dòng dữ liệu vào (trường hợp có nhiều đầu vào thì chỉ đọc 1 trong số các dòng đầu vào) rồi chia thành các khối DATA FIELD có kích thước DFL (Data Field Length). Giá trị DFL phải thỏa mãn:
(Kbch-80) ≥ DFL ≥ 0
Trong đó KBCH là độ dài khối bit trước khi mã hóa BCH (nhận các giá trị khác nhau, tùy theo tỷ lệ mã được áp dụng), 80 bit là kích thước của trường BBHEADER.
• Merger:
Liên kết các khối DATA FIELD của cùng một dòng đầu vào. Trong trường hợp chỉ có một dòng dữ liệu đầu vào thì khối khối Merger trở nên không cần thiết và được bỏ qua.
Tùy thuộc vào ứng dụng, việc phân chia các bit vào trường DATA FIELD có thể được thực hiện theo 2 cách:
- Lấp đầy kích thước tối đa của DATA FIELD, tương ứng với độ dài bit yêu cầu trước khi mã hóa BCH trừ đi 80 bit BBHEADER (Kbch-80). Như vậy, một gói UP có thể bị chia vào nhiều DATA FIELD khác nhau.
- Ngược lại, có thể phân chia sao cho mỗi DATA FIELD chỉ chứa một số nguyên các UP.
Do các gói UP có thể bị chia vào các DATA FIELD khác nhau và các byte đồng bộ được thay thế bằng trường sửa lỗi CRC-8, nên để thực hiện đồng bộ ở phía phát cần chỉ ra số các bit tính từ đầu một DATA FIELD cho đến bit bắt đầu của trường CRC-8 đầu tiên. Khoảng cách này sẽ được chứa trong trường SYNCD trong BBHEADER.
37
Hình 2.3:Định dạng đầu ra sau khối thích nghi kiểu truyền dẫn
2.1.1.4. Chèn BBHEADER
Một trường BBHEADER có độ dài cố định (10 byte) sẽ được thêm vào phần đầu của DATA FIELD nhằm xác định cấu trúc của DATA FIELD đó. BBHEADER gồm các thành phần:
1) MATYPE (2 byte): mô tả định dạng dòng dữ liệu đầu vào, phương pháp
thích nghi kiểu truyền dẫn, chế độ làm việc CCM hay ACM, hệ số roll-off α. Trong đó:
• Byte đầu tiên (MATYPE-1) gồm các thành phần:
- TS/GS-Transport Stream/Generic Stream: Đầu vào là dòng truyền tải hay dòng dữ liệu chung (2 bit).
- SIS/MIS-Single Input Stream/Multiple Input Stream: Một hay nhiều dòng dữ liệu đầu vào (1bit).
- CCM/ACM: Mã hóa và điều chế không đổi CCM hay mã hóa và điều chế thích nghi ACM (1bit).
- ISSYI-Input Stream Synchronization Indicator: Chỉ thị cơ chế định thời ở phía thu có hoạt động hay không (1bit).
- NPD-Null Packet Deletion: Chỉ thị cơ chế xóa các gói rỗng có hoạt động hay không (1bit).
38 - RO: Hệ số roll-off α (2bit).
Bảng 2.1: Giá trị các trường trong MATYPE-1
TS/GS SIS/MIS CCM/ACM ISSYI NPD RO
11: dòng gói truyền tải 00: dữ liệu chung, gói 01: dữ liệu chung, liên tục 10: dự phòng 1 = một dòng 0 = nhiều dòng 1: CCM 0: ACM 1: Có 0: Không 1: Có 0: Không 00 = 0.35 01 = 0,25 10 = 0,20 11 = dự phòng
• Byte thứ 2 (MATYPE-2): Nếu trường SIS/ MIS chỉ thị nhiều dòng dữ liệu đầu vào thì byte thứ 2 chứa nội dung xác định các dòng dữ liệu này (ISI-Input Stream Identifier), nếu không sẽ được dự phòng.
2) UPL-User Packet Length (2 byte): Chiều dài của gói người dùng UP [bit].
UPL nhận các giá trị trong khoảng [0, 65535]. Ví dụ: 0000HEX = dòng dữ liệu liên tục. 000AHEX = chiều dài gói UP bằng 10. UPL = 188x8D: gói truyền tải MPEG.
3) DFL-Data Field Length (2 byte): chiều dài của DATA FIELD, [bit]. DFL
nhận các giá trị trong khoảng [0, 58112].
Ví dụ: 000AHEX = Data Field có độ dài 10 bit. 4) SYNC (1byte): bản sao của byte đồng bộ gói UP.
Ví dụ: SYNC = 47HEX: gói dòng truyền tải MPEG.
SYNC = 00HEX: khi đầu vào là dòng gói dữ liệu chung không có byte đồng bộ.
SYNC = không có nếu đầu vào là dòng dữ liệu liên tục.
5) SYNCD (2 byte): khoảng cách từ bit đầu tiên của DATA FIELD và bit bắt
đầu của trường CRC-8 đầu tiên thuộc DATA FIELD đó.
6) CRC-8: byte chỉ thị lỗi áp dụng cho 9 byte đầu tiên của BBHEADER.