Lỗi là gì?
Dữ liệu được truyền có thể bị hỏng trong quá trình giao tiếp. Nó có khả năng bị ảnh hưởng bởi tiếng ồn bên ngoài hoặc các hư hỏng vật lý khác. Trong tình huống như vậy, dữ liệu đầu vào không thể giống với dữ liệu đầu ra. Sự không khớp này được gọi là "Lỗi".
Các lỗi dữ liệu có thể dẫn đến mất dữ liệu quan trọng hoặc an toàn. Hầu hết việc truyền dữ liệu trong các hệ thống kỹ thuật số sẽ ở dạng 'Truyền bit'. Ngay cả một chút thay đổi nhỏ cũng có thể ảnh hưởng đến hiệu suất của toàn bộ hệ thống. Trong một chuỗi dữ liệu, nếu 1 được thay đổi thành 0 hoặc 0 được thay đổi thành 1, nó được gọi là "Lỗi bit".
Trong hướng dẫn viết mã Hamming này, bạn sẽ học:
- Lỗi là gì?
- Các loại lỗi
- Phát hiện và sửa lỗi là gì?
- Mã Hamming là gì?
- Lịch sử của mã Hamming
- Ứng dụng của mã Hemming:
- Ưu điểm của mã Hamming
- Nhược điểm của mã Hamming
- Quy trình mã hóa tin nhắn bằng mã Hamming
- Quy trình giải mã tin nhắn bằng mã Hamming
Các loại lỗi
Chủ yếu có ba loại lỗi bit xảy ra trong quá trình truyền dữ liệu từ người gửi đến người nhận.
- Các lỗi bit đơn
- Nhiều lỗi bit
- Lỗi nổ
Lỗi một bit
Thay đổi được thực hiện ở một bit trong toàn bộ chuỗi dữ liệu được gọi là "Lỗi bit đơn". Tuy nhiên, sự xuất hiện của lỗi bit đơn không phải là phổ biến. Hơn nữa, lỗi này chỉ xảy ra trong một hệ thống truyền thông song song vì dữ liệu được truyền theo chiều bit trong một dòng duy nhất. Do đó, có nhiều khả năng một đường dây duy nhất có thể bị nhiễu.
Nhiều lỗi bit
Trong chuỗi dữ liệu, nếu có sự thay đổi trong hai hoặc nhiều bit của chuỗi dữ liệu từ máy phát đến máy thu, thì được gọi là "Lỗi nhiều bit".
Loại lỗi này chủ yếu xảy ra trong cả mạng truyền thông dữ liệu kiểu nối tiếp và song song.
Lỗi Burst
Sự thay đổi tập hợp các bit trong chuỗi dữ liệu được gọi là "Lỗi nổ". Loại lỗi dữ liệu này được tính từ thay đổi bit đầu tiên đến thay đổi bit cuối cùng.
Phát hiện và sửa lỗi là gì?
Trong hệ thống truyền thông kỹ thuật số, lỗi hệ thống sẽ được chuyển từ hệ thống truyền thông này sang hệ thống truyền thông khác. Nếu những lỗi này không được phát hiện và sửa chữa, thì dữ liệu sẽ bị mất. Để truyền thông hiệu quả, dữ liệu hệ thống phải truyền với độ chính xác cao. Điều này sẽ được thực hiện trước tiên bằng cách xác định các lỗi và họ sửa chữa chúng.
Phát hiện lỗi là một phương pháp phát hiện các lỗi có trong dữ liệu được truyền từ máy phát đến máy thu trong hệ thống truyền thông dữ liệu.
Ở đây, bạn có thể sử dụng mã dự phòng để tìm những lỗi này, bằng cách thêm vào dữ liệu khi nó được truyền từ nguồn. Những mã này được gọi là "Mã phát hiện lỗi".
Ba loại mã phát hiện lỗi là:
- Kiểm tra chẵn lẻ
- Kiểm tra dự phòng theo chu kỳ (CRC)
- Kiểm tra dự phòng theo chiều dọc (LRC)
Kiểm tra chẵn lẻ:
- Nó còn được gọi là kiểm tra chẵn lẻ.
- Nó có một cơ chế hiệu quả về chi phí để phát hiện lỗi.
- Trong kỹ thuật này, bit dư thừa được gọi là bit chẵn lẻ. Nó được thêm vào cho mọi đơn vị dữ liệu. Tổng số 1 trong đơn vị phải trở thành số chẵn, được gọi là bit chẵn lẻ.
Kiểm tra dự phòng theo chiều dọc
Trong kỹ thuật phát hiện lỗi này, một khối các bit được tổ chức theo định dạng bảng. Phương pháp LRC giúp bạn tính toán bit chẵn lẻ cho mọi cột. Tập hợp chẵn lẻ này cũng được gửi cùng với dữ liệu gốc. Khối chẵn lẻ giúp bạn kiểm tra độ dư thừa.
Kiểm tra dự phòng theo chu kỳ
Kiểm tra dự phòng theo chu kỳ là một chuỗi dự phòng phải được nối vào cuối thiết bị. Đó là lý do tại sao đơn vị dữ liệu kết quả phải chia hết cho một số nhị phân thứ hai, được xác định trước.
Tại điểm đến, dữ liệu đến cần được chia cho cùng một số. Trong trường hợp nếu không có phần dư, thì đơn vị dữ liệu được giả định là đúng và được chấp nhận. Nếu không, nó chỉ ra rằng đơn vị dữ liệu bị hỏng trong quá trình truyền và do đó nó phải bị từ chối.
Mã Hamming là gì?
Mã Hamming là mã lót hữu ích để phát hiện lỗi lên đến hai lỗi bit ngay lập tức. Nó có khả năng xảy ra lỗi một bit.
Trong mã Hamming, nguồn mã hóa thông điệp bằng cách thêm các bit dư thừa trong thông báo. Các bit dư thừa này chủ yếu được chèn và tạo ra tại các vị trí nhất định trong thông báo để thực hiện quá trình phát hiện và sửa lỗi.
Lịch sử của mã Hamming
- Mã Hamming là một kỹ thuật do RWHamming xây dựng để phát hiện lỗi.
- Mã Hamming nên được áp dụng cho các đơn vị dữ liệu có độ dài bất kỳ và sử dụng mối quan hệ giữa dữ liệu và các bit dự phòng.
- Ông đã nghiên cứu vấn đề của phương pháp sửa lỗi và phát triển một mảng thuật toán ngày càng mạnh mẽ được gọi là mã Hamming.
- Năm 1950, ông xuất bản Mã Hamming, được sử dụng rộng rãi ngày nay trong các ứng dụng như bộ nhớ ECC.
Ứng dụng của mã Hamming
Dưới đây là một số ứng dụng phổ biến của việc sử dụng mã Hemming:
- Vệ tinh
- Bộ nhớ máy tính
- Modem
- PlasmaCAM
- Mở kết nối
- Dây bảo vệ
- Bộ xử lý nhúng
Ưu điểm của mã Hamming
- Phương pháp mã Hamming hiệu quả trên các mạng nơi các luồng dữ liệu được cung cấp cho các lỗi bit đơn.
- Mã Hamming không chỉ cung cấp khả năng phát hiện lỗi bit mà còn giúp bạn thụt lề bit có chứa lỗi để có thể sửa lỗi đó.
- Tính dễ sử dụng của mã hamming làm cho chúng phù hợp nhất để sử dụng trong bộ nhớ máy tính và sửa lỗi một lần.
Nhược điểm của mã Hamming
- Mã phát hiện và sửa lỗi đơn bit. Tuy nhiên, nếu nhiều bit bị lỗi, thì kết quả có thể dẫn đến một bit khác đúng để thay đổi. Điều này có thể khiến dữ liệu bị sai sót thêm.
- Thuật toán mã Hamming chỉ có thể giải quyết các vấn đề bit đơn.
Quy trình mã hóa tin nhắn bằng mã Hamming
Quy trình được người gửi sử dụng để mã hóa thư bao gồm ba bước sau:
- Tính toán tổng số bit dư thừa.
- Kiểm tra vị trí của các bit dư thừa.
- Cuối cùng, tính toán giá trị của các bit dư thừa này.
Khi các bit dư thừa trên được nhúng trong thông báo, nó sẽ được gửi đến người dùng.
Bước 1) Tính tổng số bit dư thừa.
Giả sử rằng tin nhắn chứa:
- n - số bit dữ liệu
- p - số bit dư thừa được thêm vào nó để np có thể chỉ ra ít nhất (n + p + 1) trạng thái khác nhau.
Ở đây, (n + p) mô tả vị trí của lỗi ở mỗi vị trí trong số (n + p) bit và một trạng thái bổ sung cho biết không có lỗi. Vì p bit có thể chỉ ra 2 trạng thái p , nên 2 p ít nhất phải bằng (n + p + 1).
Bước 2) Đặt các bit dư thừa vào đúng vị trí của chúng.
Các bit dư thừa p nên được đặt ở các vị trí bit có lũy thừa là 2. Ví dụ, 1, 2, 4, 8, 16, v.v. Chúng được gọi là p 1 (ở vị trí 1), p 2 (ở vị trí 2) , p 3 (ở vị trí 4), v.v.
Bước 3) Tính toán các giá trị của bit dư thừa.
Các bit dư thừa phải là các bit chẵn lẻ làm cho số 1 là chẵn hoặc lẻ.
Hai loại chẵn lẻ là -
- Tổng số bit trong thông báo được tạo thành chẵn được gọi là chẵn lẻ.
- Tổng số bit trong thông báo được tạo thành lẻ được gọi là chẵn lẻ.
Ở đây, tất cả các bit dư thừa, p1, phải được tính là parity. Nó phải bao gồm tất cả các vị trí bit mà biểu diễn nhị phân phải bao gồm 1 ở vị trí đầu tiên không bao gồm vị trí của p1.
P1 là bit chẵn lẻ cho mọi bit dữ liệu ở các vị trí mà biểu diễn nhị phân bao gồm 1 ở vị trí ít quan trọng hơn, không bao gồm 1 Giống như (3, 5, 7, 9,
…. )P2 là bit chẵn lẻ cho mọi bit dữ liệu ở các vị trí mà biểu diễn nhị phân bao gồm 1 ở vị trí 2 từ bên phải, không bao gồm 2 Like (3, 6, 7, 10, 11,
…)P3 là bit chẵn lẻ cho mọi bit ở các vị trí có biểu diễn nhị phân bao gồm 1 ở vị trí 3 từ bên phải không bao gồm 4 Như (5-7, 12-15,
…)Quy trình giải mã tin nhắn bằng mã Hamming
Người nhận nhận được các tin nhắn đến yêu cầu thực hiện các phép tính lại để tìm và sửa lỗi.
Quá trình tính toán lại được thực hiện theo các bước sau:
- Đếm số lượng bit dư thừa.
- Định vị chính xác tất cả các bit dư thừa.
- Kiểm tra chẵn lẻ
Bước 1) Đếm số lượng bit dư thừa
Bạn có thể sử dụng cùng một công thức để mã hóa, số lượng bit dư thừa
2 p ≥ n + p + 1
Ở đây, số bit dữ liệu và p là số bit dư thừa.
Bước 2) Định vị chính xác tất cả các bit dư thừa
Ở đây, p là một bit dư thừa được đặt tại các vị trí bit của lũy thừa 2, Ví dụ: 1, 2, 4, 8, v.v.
Bước 3) Kiểm tra chẵn lẻ
Các bit chẵn lẻ cần được tính toán dựa trên các bit dữ liệu và các bit dư thừa.
p1 = chẵn lẻ (1, 3, 5, 7, 9, 11
…)p2 = chẵn lẻ (2, 3, 6, 7, 10, 11
…)p3 = chẵn lẻ (4-7, 12-15, 20-23
…)Tóm lược
- Dữ liệu đã truyền có thể bị hỏng trong quá trình giao tiếp
- Ba loại lỗi bit là 1) Lỗi bit đơn 2) Lỗi nhiều bit 3) Lỗi bit liên tục
- Thay đổi được thực hiện ở một bit trong toàn bộ chuỗi dữ liệu được gọi là "Lỗi bit đơn".
- Trong chuỗi dữ liệu, nếu có sự thay đổi trong hai hoặc nhiều bit của chuỗi dữ liệu từ máy phát đến máy thu, thì được gọi là "Lỗi nhiều bit".
- Sự thay đổi tập hợp các bit trong chuỗi dữ liệu được gọi là "Lỗi nổ".
- Phát hiện lỗi là một phương pháp phát hiện các lỗi có trong dữ liệu được truyền từ máy phát đến máy thu trong hệ thống truyền thông dữ liệu
- Ba loại mã phát hiện lỗi là 1) Kiểm tra chẵn lẻ 2) Kiểm tra dự phòng theo chu kỳ (CRC) 3) Kiểm tra dự phòng theo chiều dọc (LRC)
- Mã Hamming là mã lót hữu ích để phát hiện lỗi lên đến hai lỗi bit ngay lập tức. Nó có khả năng xảy ra lỗi một bit.
- Mã Hamming là một kỹ thuật do RWHamming xây dựng để phát hiện lỗi.
- Các ứng dụng phổ biến của việc sử dụng mã Hemming là Bộ nhớ máy tính vệ tinh, Modem, Bộ xử lý nhúng, v.v.
- Lợi ích lớn nhất của phương pháp mã hamming là hiệu quả trên các mạng nơi các luồng dữ liệu được cung cấp cho các lỗi bit đơn.
- Hạn chế lớn nhất của phương pháp mã hamming là nó chỉ có thể giải quyết các vấn đề về bit đơn.
- Chúng ta có thể thực hiện quá trình mã hóa và giải mã tin nhắn với sự trợ giúp của mã hamming.