V. Một số bus thông dụng
I.2. Mã phát hiện lỗi và sửa sai.
Số các vị trí bit khác nhau trong hai từ gọi là khoảng cách Hamming. Ví dụ,
trong hai từ: 10001001 và 10110001 có khoảng cách Hammming
bằng 3.
Để sửa sai, bên cạnh m số bit số liệu của từ, người ta thêm vào r bit dư (redundant bits) và chiều dài tổng của từ là n : n = m + r
Để phát hiện d bit lỗi đơn, cần dùng mã có khoảng cách d+1. Tương tự, để sửa lỗi d bit đơn, cần dùng mã có khoảng cách 2d+1. Ví dụ, dùng mã bit parity thêm vào byte số liệu, mã này có khoảng cách bằng 2, dùng để phát hiện 1 bit sai, nhưng không sửa được lỗi.
Trong truyền 1 khối ký tự, mỗi ký tự có một bit parity để kiểm tra. ở cuối mỗi khối, ta truyền thêm một ký tự là parity của toàn thể bản tin, gọi là longitudinal check (LRC). Phía thu sẽ tính LRC và so với LRC nhận được để kiểm tra lỗi. Một phương pháp nữa để kiểm tra lỗi khi truyền số liệu là dùng CRC (Cyclic redundance check), đó là một đa thức nhị phân dư thu được khi chia đa thức các bit của bản tin cho một đa thức quy định.
Ví dụ mã sửa sai là mã có 4 từ dài 10 bit như sau:
0000000000, 0000011111, 1111100000, 1111111111. Mã này có
khoảng cách là 5, tức là nó có thể sửa được các lỗi kép. Ví dụ nếu ta nhận được từ 0000000111, máy thu sẽ biết rằng từ đó phải là 0000011111 (nếu coi như không có nhiều hơn một lỗi kép). Nhưng nếu một lỗi ba xảy ra, biến 0000000000 thành 0000000111 thì ta không sửa lỗi được.
Để sửa lỗi, người ta dùng thuật toán của Hamming.