I.GIỚI THIỆU
Dữ liệu dạng số khi được lưu trữ, xử lí hay truyền từ máy này qua máy khác có thể bị lỗi. Như khi truyền dữ liệu đi xa qua môi trường điện thoại, dây cáp, không gian có thể bị ảnh hưởng bởi nhiệt độ, nhiễu đường dây, điện từ… hay do lâu ngày các bộ xử lí, bộ chuyển đổi có một sai sót nhỏ sẽ làm thay đổi dữ liệu.
Ví dụ : trong 1 khối dữ liệu có chữ A mã ASCII là 1000001 sẽ bị sai thành 100000 ,bit sai có thể là bất cứ 1 bít nào khác. Mặc dù xác suất làm sai chỉ 1 bít trong cả khối dữ liệu là rất nhỏ ( trung bình khoảng 100000 bit mới có 1 bit sai) nhưng trong nhiều trường hợp đòi hỏi phải thật chính xác hay giảm hết mức những sai sót nhỏ này. Có nhiều mạch có thể phát hiện sai và sửa lỗi, bạn sẽ gặp lại nội dung này kĩ hơn trong môn “Truyền số liệu”, ở đây xin nói tới mạch tạo kiểm parity.
Có 2 dạng mạch chính là parity chẵn và parity lẻ. Cả 2 đều được sử dụng.
- Với parity chẵn : dữ liệu trước khi truyền đi sẽ được đếm tổng số bit
- Nếu tổng chẵn, bit parity 0 được thêm vào trước mỗi khối dữ liệu truyền.
- Nếu tổng lẻ thì bit parity 1 được thêm vào (để nó chẵn)
Ở đầu nhận dữ liệu, mạch sẽ kiểm tra từng khối dữ liệu nhận được xem có tổng số bit là chẵn hay không. Nếu không thì tức là đã có 1 bit nào đó trong khối dữ liệu bị sai. Ngược lại là mạch truyền đúng
- Với parity lẻ thì ngược lại khối dữ liệu phải được làm lẻ trước khi truyền.
Ví dụ : Truyền 1 khối dữ liệu 4 bit 1101 có sử dụng mạch tạo kiểm parity để rò sai được minh hoạ như hình dưới đây :
Hình 2.3.28 Mạch tạo kiểm Parity
Giả sử mạch parity chẵn được dùng. Nhận thấy rằng tổng số bit truyền là 3 (lẻ) nên bit parity 1 được thêm vào cho chẵn. Như vậy, dữ liệu truyền đi sẽ có 5 bit là 11101
Mạch tạo parity trên sử dụng 3 cổng XNOR để kiểm tra số bit chẵn hay lẻ, còn bên nhận mạch kiểm parity dùng 4 cổng XNOR để rò sai, nếu dữ liệu truyền đúng thì ra Q = 0, nếu truyền sai thì ra Q = 1. Khi này, mạch nhận có thể truyền về tín hiệu báo truyền sai cho máy gửi để nó truyền lại khối dữ liệu bị lỗi này.
Nhận thấy rằng nếu khối dữ liệu truyền bị sai tới 2 bit (xác suất này là rất rất nhỏ) hay bit parity truyền sai thì mạch parity mất tác dụng.
Các mạch xử lí điều khiển hay truyền dữ liệu thường có sẵn khối tạo kiểm và thậm chỉ có thể sửa lỗi luôn. Còn khi dùng mạch rời thì IC 74180 và họ của nó là thông dụng nhất
Hình 2.3.29 Kí hiệu khối 74180 và bảng hoạt động
Đây là IC tạo kiểm 8 bit từ D0 đến D7, bit parity có thể dùng là chẵn hay lẻ. 2 ngõ ra là EVEN (lẻ ra) và ODD (chẵn ra). 2 ngõ PE (lẻ vào) và PO (chẵn vào) dùng trong trường hợp cần nối chồng nhiều IC để có mạch tạo kiểm nhiều bit hơn. Cách nối sẽ là đưa từ ngõ ra chẵn và ngõ ra lẻ tới ngõ vào chẵn và vào lẻ. 2 ngõ vào lẻ và vào chẵn cũng như 2 ngõ ra lẻ và ra chẵn phải không được bằng nhau khi kiểm parity. Khi ngõ vào parity nào không dùng thì phải nối mức thấp.
Hình dưới đây là cách sử dụng 74180 làm mạch kiểm parity lẻ cho 9 bit dữ liệu vào (gồm cả bit parity).
Hình 2.3.30 Mạch kiểm Parity 9 bit dùng 74180
1 IC phát kiểm 8 bit chẵn lẻ khác cũng hay được dùng là 74LS280