Kiểm tra CRC

Một phần của tài liệu Giáo trình kỹ thuật truyền số liệu (nghề kỹ thuật lắp ráp và sửa chữa máy tính) trình độ cao đẳng nghề (Trang 58 - 62)

2. Phát hiện lỗi và sửa sai Mã hoá số liệu mức vật lý

2.4. Kiểm tra CRC

Một từ mã được viết dưới dạng một đa thức

Phương pháp kiểm tra tín hiệu bằng mã vòng được thực hiện như sau : Tín hiệu cần phát đi trong khung gồm k bit sẽ được bên phát thêm vào n bit nữa để kiểm tra dược gọi là Frame Check Sequence (FCS). Như vậy tín hiệu phát đi bao gồm k+n bit. Bên thu khi nhận được tín hiệu nay sẽ đem chia cho một đa thức được gọi là đa thức sinh đã biết trước (bên phát và bên thu đều cùng chọn đa thức này). Nếu kết quả chia không dư coi như tín hiệu nhận được là đúng.

N bit thêm vào đó được gọi là CRC (Cyclic Redundancy Check). Phương pháp tạo ra CRC bao gồm việc dịch thông báo sang trái c bit (c chính là bậc của đa thức đã chọn trước) sau đó thực hiện phép chia cho da thức được chọn này. Kết quả dư lại của phép chia chính là CRC. Bên thu sau khi nhân được thông báo cũng đem chia cho hàm biết trước như bên phát. Nếu kết quả bằng 0.

Tính FCS gồm 4 bước :

Bước 1 chuyển thông báo nhị phân thành đa thức M(x).Chọn hàm cho trước G(x) có bậc c, G(x)= xc+1 (c chính là độ dài của CRC)

Bước 2 : Nhân M(x) với Xc

Bước 3 Thực hiện phép tính M(x).Xc/G(x) ta được phần nguyên và số dư: Q(x)+ R(x)/G(x)

R(x) chính là CRC

Bước 4 : Thành lập FCS chính là thông báo cần truyền đi FCS = Xc.M(x) +R(x)

Thí dụ : cần truyền thông tin 110101 1) Tạo M(x) = X5 +X4 + X2 + 1 Chọn c=3 → G(x) = X3 +1 2) Tính X3. M(x)/G(x) = Q(x) +R(x)/G(x) Vậy R (x) = X + 1 Q (x) = X5 + X4 + X + 1 FCS = Xc. M(x) + R(x) + X8 + X7 + X5 + X3 + X + 1 Thông tin cần tuyển là

110101011 Thu và kiểm tra CRC

Để kiểm tra sai số khi truyền, bộ phận thu đem khối thông tin thu được chia cho G(x) theo modul 2 nếu phần dư còn lại là 0 mã nhận được là đúng, nếu phần dư khác 0 mã nhận được là sai.

Kiểm tra CRC:

Ta có hàm phát đi phát đi: FCS = Xc.M(x) +R(x) Và Xc.M(x)/G(x) = Q(x) + R(x)/ G(x)

Tại đầu thu ta thu được: FCS đem giá trị thu được này chia cho Hàm sinh mã G(x) FCS/G(x) = Xc.m(x) + R(x) G(x) = Xc.m(x) + R(x) G(x) G(x) = Q(x) + G(x) R(x) + R(x) G(x) = Q(x) + G(x) R(x) + (1 + 1)2 Mà (1 + 1)2 = 0 → FCS/G(x) = Q(x) Phần dư bằng 0 Thí dụ

Thông tin đã truyền đi là: 110101011 Thông tin nhận được là

110101011

Điều này có nghĩa là truyền đúng tức là R(x) phải bằng 0 Kiểm tra CRC như sau:

Chuyển thông tin nhận được thành đa thức: 110101011 X8 + X7 + X5 + X3 +X+1

Đa thức sinh mà cả bên thu và bên phát đều đã biết G(x) = X3 +1 đem đa thức nhận được chia cho đa thúc G(x) chắc chắn phần dư sẽ bằng 0

.

Mạch tạo CRC

Để tạo mã CRC có thể dùng phần mềm dể tính CRC cho từng gói dữ liệu, hoặc tính toán sẵn lưu vào bảng giá trị CRC cho 256 byte sau đó khi tính CRC cho từng byte thì tra bảng. Tuy nhiên trong thực tế để nhanh và giảm thời gian hoạt động của bộ vi xử lý người ta thường dùng phần cứng để tạo CRC và kiểm tra. Người ta có thể tạo mã CRC dài 12 bit, 16 bit, 32 bit. Mạch điện sẽ bao gồm các bộ ghi dịch và các bộ cộng modul 2, số lượng cột của bộ ghi dịch phụ thuộc vào giá trị C đã chọn của hàm sinh G(x)

Thanh ghi

Một phần của tài liệu Giáo trình kỹ thuật truyền số liệu (nghề kỹ thuật lắp ráp và sửa chữa máy tính) trình độ cao đẳng nghề (Trang 58 - 62)