Đặt vấn đề Trong quá trình truyền thông do ảnh hưởng của nhiễu và chất lượng môi trường truyền dẫn mà thông tin được truyền tải cũng không tránh khỏi bị sai lệch. Vậy làm thế nào để hạn chế lỗi cũng như khi đã xảy ra lỗi thì phải có biện pháp khắc phục, có thể phân loại lỗi như sau: - Lỗi phát hiện được không sửa được. - Lỗi phát hiện được và sửa được. - Lỗi không phát hiện được.
7 Biện pháp thứ nhất là sử dụng các thiết bị phần cứng cao cấp và các biện pháp bọc lót đường truyền để giảm thiểu tác động của nhiễu. Song, đây chỉ là biện pháp hạn chế mà không loại trừ hoàn toàn khả năng bị lỗi. Mặt khác giá thành cao cũng cản trở trong việc thực hiện. Bảo toàn dữ liệu chính là phương pháp sử dụng xử lý giao thức để phát hiện và khắc phục lỗi, trong đó phát hiện lỗi đóng vai trò hàng đầu.
Khi đã phát hiện được lỗi, có thể có cách khôi phục dữ liệu, hay biện pháp đơn giản hơn là yêu cầu gửi lại dữ liệu. Các phương pháp bảo toàn dữ liệu thông dụng là: - Bit chẵn lẻ một chiều và hai chiều. Nguyên lý c bản Nhiệm vụ bảo toàn dữ liệu có thể xắp xếp thuộc lớp 2 (lớp liên kết dữ liệu) trong mô hình tham chiếu OSI. Trong quá trình mã hóa nguồn, bên gửi bổ xung một số thông tin kèm theo, được tính theo một thuật toán quy ước vào bức điện cần gửi đi.
Dựa vào thông tin bổ trợ này mà bên nhận có thể kiểm soát và phát hiện ra lỗi trong dữ liệu nhận được (giải mã). Bit chẵn lẻ Bit chẵn lẻ là một phương pháp kiểm tra lỗi đơn giản, được áp dụng rất rộng rãi. Nguyên tắc làm việc được mô tả như sau: Tùy theo tổng số các bit 1 trong thông tin nguồn là chẵn hay lẻ mà ta thêm vào một bít thông tin phụ trợ p = 0 hoặc p = 1, gọi là parity bit, hay bit chẵn lẻ. Trong trường hợp này, ta cũng gọi là prity bit một chiều.
Phương pháp này rất đơn giản và hiệu quả. Giá trị của bít chẵn lẻ p phụ thuộc vào cách chọn. - Nếu chọn parity chẵn, thì p = 0 khi tổng số bit 1 là chẵn. - Nếu chọn parity lẻ, thì p = 0 khi tổng số bit 1 là lẻ.
- Ví dụ dùng parity chẵn: Dãy bit nguyên bản: 1001101 Dãy bit gửi đi: 10011010 Giả sử chỉ một hoặc ba bit trong một bức điện gửi đi bị đảo, bên nhận sẽ so sánh và phát hiện được. Nhưng chỉ cần hai bit trong một bức điện bị lỗi, thì bên nhận sẽ không 8 phát hiện được nhờ bit chẵn lẻ. Nói cách khác số bit chắc chắn phát hiện được ở đây chỉ là 1. CRC Là phương pháp mã đa thức hoặc mã vòng.
Phương pháp này sử dụng trong hầu hết các hệ thống truyền thông. tưởng của phương pháp này là thông tin được kiểm lỗi được gọi là checksum, phải được tính bằng một thuật toán thích hợp, trong đó giá trị mỗi bit của thông tin nguồn được tham gia nhiều lần vào quá trình tính toán. Để tính toán thông tin kiểm lỗi đó, người ta dùng một đa thức phát G (Generator polynomial) có một dạng đặc biệt. Vì vậy phương pháp này còn được gọi là phương pháp dùng đa thức G được quy ước dưới dạng nhị phân, tức các hệ số của nó chỉ có giá trị 1 hoặc 0 tương ứng với các chữ số trong một dãy bit.
Ví dụ: Dạng đa thức: + + + )+ + )+1 Dạng nhị phân: G = {11100101} Dạng octal: G = {345} Nguyên t c c bản của phư ng pháp CRC Giả sử đa thức G có bậc n, ví dụ: , tương ứng với dãy bit (1011) dãy bit mang thông tin nguồn I được thêm vào n bit 0 coi như một đa thức nhị phân P. Ví dụ thông tin nguồn là (110101) thì sau khi thêm 3 bit 0, ta có dãy bit (110101000) tương ứng với đa thức P = + + +. Đa thức P được chia cho đa thức G dựa vào quy tắc đơn giản của phép trừ không có nhớ như sau: 1-1=0 0–0=0 1–0=1 0–1=1 Không cần quan tâm tới kêt quả của phép chia, phần dư R (lấy n chữ số) của phép chia được thay thế vào chỗ của n chứ không bổ xung trong P, tức là ta có D = P R. Theo tính chất của phép chia đa thức nhị phân, nếu D – R chia hế t cho G thì D = P R cũng vậy.
R được gọi là checksum và D chính là dãy bít được gửi đi thay cho I. Giả sử dãy bit nhận được là D’ không chia hết cho G thì tức là D khác D’, ta có thể khẳng định được rằ ng bức điện chắc chắ n bị lỗi. Ngược lại, nếu D’ chia hết cho G, thì 9 xác suất rất cao là bức điện nhận được không có lỗi. ác suất cao là vì mỗi bit trong thông tin nguồn tham gia nhiều vòng (cyclic) vào tính toán thông tin bổ trợ nên khả năng dữ liệu sai mà kết quả đúng là rất ít.
Ví dụ: Thông tin cần truyền I = 110101 Đa thức qui ước G = 1011 { tức : } Thêm 3 bit 0 vào thông tin nguồn I, ta có P = 110101000 Chia đa thức P: G theo kiểu nhị phân 110101000 1011 1011 111101 01100 1011 01111 1011 01000 1011 001100 1011 0111 Phần dư R Dãy bit được chuyển đi D = P R = 110101111 Giả sử dữ liệu được nhận là D’ = 110101111 Chia đa thức D’: G 110101111: 1011 = 111101 Phần dư 0000 -> Xác suất rất cao là không có lỗi Phương pháp CRC có vẻ phức tạp nhưng việc thực hiện nó là hết sức đơn giản. Phép chia đa thức nhị phân ở đây được thực hiện thuần túy bởi phép trừ không có nhớ hay chính là các phép logic OR. Bên cạnh đó chỉ cần các phép sao chép và so sánh bit thông thường. Nhồi bit Nhồi bít thường không được coi như một phương pháp bảo toàn dữ liệu độc lập, mà thường được sử dụng với mục đích chính là tạo một dãy bit thuận lợi cho việc đóng gói dữ liệu và mã hóa bit.
Các bức điện thường dùng một dãy bit đặc biệt làm cờ hiệu khởi 10 đầu và kết thúc. Do vậy, đòi hỏi trong phần còn lại không được phép xuất hiện mẫu bit này. Bên cạnh đó, trong quá trình mã hóa bit cũng chú ý phải triệt tiêu dòng một chiều bằng cách loại bỏ các chuỗi bit dài 1 liên tục. Vì vậy, người ta tìm cách nhồi thêm môt số bit vào dãy bit nguyên bản để tránh xuất hiện một chuỗi dài bit 1 liên tục cũng như tránh trùng lập với mẫu bit đặc biệt.
Hiệu ứng phụ của cách làm này chính là tạo điều kiện cho bên nhận dễ phát hiện lỗi hơn, ví dụ trong trường hợp mẫu bit đặc biệt xuất hiện trong phần nội dung của bức điện nhận được. Phương pháp nhồi bit được thực hiện theo nguyên tắc sau: - Bên gửi: nếu trong dữ liệu có n bit 1 đứng liền nhau thì thêm một bit 0 vào ngay sau đó. Như vậy trong dãy bit được chuyển đi không thể xuất hiện n 1 bit 1 đi liền nhau. - Bên nhận: nếu phát hiện thấy n bit 1 liền nhau mà tiếp theo là 0 thì được tách ra, còn nếu là bit 1 thì dữ liệu chắc chắn bị lỗi.
- Ví dụ với n = 5 như ở CAN - Thông tin nguồ n I = 0111111 - Thông tin gử i đi D = 01111101 - Nếu thông tin nhận được D’ = 01111101, bên nhận có thể coi xác xuất cao không có lỗi, thông tin nguồn I sẽ được phục hồi bằng cách bỏ đi bit 0 đứng sau 5 bit 1. - Nếu thông tin nhận được D’ = 011111101, thì thông tin nhận được bị lỗi. Trong thực tế, cả 3 phương pháp bit chẵn lẻ, CRC và nhồi bit đều có thể sử dụng phối hợp. Ví dụ một thông tin nguồn, sau khi đã áp dụng phương pháp CRC, có thể tính bit chẵn lẻ cho phần thông tin bổ xung (R).
Toàn bộ dãy bit nhận được có thể có thể lại đưa qua khâu nhồi bit hoặc bức điện có thể được truyền theo từng ký tự ART với kiểm tra chẵn lẻ cho từng ký tự, trước khi thực hiện mã hóa bit. Mã hóa bit Mã hóa bit là quá trình chuyển đổi dãy bit (1, 0) sang một tín hiệu thích hợp để có thể truyền dẫn trong môi trường vật lý. Việc chuyển đổi này chính là sử dụng một tham số thông tin thích hợp để mã hóa dãy bit cần truyền tải. Các tham số thông tin có thể được chứa đựng trong biên độ, tần số pha hoặc sườn xung… Sự thích hợp ở đây phải được đánh giá dựa theo các yêu cầu kỹ thuật như khả năng chống nhiễu cũng như gây nhiễu, khả năng đồng bộ hóa và triệt tiêu dòng một chiều.
NRZ, RZ NRZ (Non-Return to Zero) là phương pháp được sử dụng phổ biến nhất trong các hệ thống bus. Thực chất cả NRZ, RZ đều là phương pháp điều chế biên độ xung. 3 M h a bít N à Hình trên mô tả bit 0 và bit 1 được mã hóa với hai mức biên độ tín hiệu khác nhau, mức tín hiệu này không thay đổi trong suốt chu kỳ T (một nhịp bus). Tên NRZ được sử dụng bởi mức tín hiệu không quay trở về 0 sau mỗi nhịp.
Các khả năng thể hiện hai mức có thể là: - Đất và điện áp dương. - Điện áp âm và đất. - Điện áp âm và điện áp dương cùng giá trị (tín hiệu lưỡng cực). Một trong những ưu điểm của phương pháp NRZ là tín hiệu có tần số thường thấp hơn nhiều so với tần số nhịp bus.
Phương pháp này không thích hợp cho việc đồng bộ hóa, bởi một dãy bit 0 hoặc 1 liên tục không làm thay đổi mức tín hiệu. Tín hiệu không được triệt tiêu dòng một chiều, ngay cả khi sử dụng tín hiệu lưỡng cực, nên không có khả năng đồng tải nguồn. Phương pháp RZ (Return to Zero) cũng mã hóa bit 0 và 1 với hai mức tín hiệu khác nhau giống như ở NRZ. Tuy nhiên mức tín hiệu cao chỉ tồn tại trong nữa đầu của chu kỳ bit T, sau đó quay trở lại 0.
Tần số cao nhất của tín hiệu chính bằng tần số nhịp bus. Giống như NRZ, tín hiệu mã RZ không mang thông tin đồng bộ hóa, không có khả năng đồng tải nguồn.