Pmùi hương pháp kiểm tra parity đơn giản nhưng lại độ tin cậy kỉm bắt buộc được áp dụng cho các giao thức gồm tốc độ truyền tài liệu lừ đừ hoặc số lượng bit tài liệu bắt buộc kiểm tra không nhiều ví dụ như giao thức UART.CRC (Cyclic Redundancy Code) là 1 trong cách thức phổ biến tất cả độ tin yêu cao hơn những so với thực hiện bi parity. CRC được ứng dụng trong tương đối nhiều giao thức tất cả khối lượng tài liệu truyền bự hoặc tốc độ truyền tài liệu cao nhỏng CAN, Ethernet, giao tiếp RF 15693, ...2. Lý ttiết về tính toán thù CRCGiá trị chuỗi bit khám nghiệm xuất xắc chuỗi CRC là số dư của phxay phân chia của chuỗi bit dữ liệu cho 1 chuỗi bit nhiều thức sinch (Generator Polynomial). Đa thức sinh là số phân chia vẫn khác biệt tùy thuộc vào từng giao thức giải pháp. Phnghiền phân chia trong tính tân oán CRC sử dụng cách tính modulo-2. Modulo-2 thực chất là XOR nhị số hạng.Giả sử đa thức chuỗi dữ liệu đề nghị truyền là M(x):

Bạn đang xem: Crc nghĩa là gì?

*

*

Trong đó:am cùng an bởi 1 hoặc 0Độ dài chuỗi CRC bằng độ lâu năm đa thức sinch trừ 1 và ngay số nón lớn nhất của nhiều thức sinc và bởi n.Để chế tạo ra CRC, chuỗi dữ liệu đề nghị truyền sẽ tiến hành mở rộng thêm n bit về phía mặt phải:
*

Vấn đề này, tương ứng với việc dịch trái n bit chuỗi tài liệu M(x).Cuối thuộc, phân tách T(x) mang đến G(x) và rước số dư. Số dư đó là chuỗi CRC n bit.quý khách đang xem: Crc là gì
*

Kiểm tra CRC được thực hiện bằng 1 trong những 2 giải pháp sau:Lấy chuỗi dữ liệu gồm cả các bit khám nghiệm CRC chia mang lại nhiều thức sinch. Nếu số dư không giống "0" thì dữ liệu nhận bị lỗi.Tách chuỗi dữ liệu với chuỗi CRC riêng biệt. Chỉ mang chuỗi tài liệu phân tách cho đa thức sinch rồi rước số dư phnghiền phân tách so sánh cùng với chuỗi CRC. Nếu nhì chuỗi khác nhau thì tài liệu nhận bị lỗi.lấy ví dụ như về tính chất toán thù CRC-4, tương ứng cùng với số bit đánh giá là 4 bit, với nhiều thức sinh nlỗi sau:x^4 + x + 1 (b10011)Chuỗi tài liệu đề xuất truyền bao gồm 8 bit nhỏng sau:x^7 + x^5 + x (b1010_0010)Chuỗi dữ liệu trước lúc phân tách sẽ tiến hành mở rộng thêm 4 bit "0":x^11 + x^9 + x^5 (b1010_0010_0000)
*

Hình 4. Kiểm tra CRC bằng phương pháp phân chia chuỗi tài liệu có CRC cùng với nhiều thức sinc - ngôi trường đúng theo sai 1 bit và trường hợp không đúng 2 bit, số dư khác 0​Bộ thừa nhận sẽ không còn phát hiện nay được lỗi dữ liệu lúc chuỗi tài liệu bị không nên và chuỗi CRC cũng không đúng trùng với cái giá trị CRC của chuỗi dữ liệu bị không đúng. Tuy nhiên, tỷ lệ nhằm xẩy ra đúng ngôi trường hợp này là rẻ. Xác suất này càng rẻ lúc chuỗi CRC càng nhiều năm.

Xem thêm: Nghĩa Của Từ State Of Art Là Gì ? Dịch Nghĩa Trong Từ Điển Anh Việt

So sánh kết quả với cách thức tính parity chẵn đang trình diễn bên trên bạn cũng có thể nhận ra sự tương đương. CRC-1 chính là phương thức soát sổ parity.3. Mạch nguyên lý tính CRC
Xem lại các ví dụ đã trình diễn trên trên đây, CRC được xem theo ngulặng tắc:Nếu bit MSB của lần tính ngày nay bởi 1 thì nó sẽ tiến hành XOR (modulo-2) cùng với đa thức sinhNếu bit MSB của lần tính bây chừ bởi 0 thì nó sẽ không còn đổi
Để triển khai mạch CRC-1, xung quanh giải pháp XOR toàn bộ các bit tài liệu nguồn vào nlỗi sẽ trình diễn tại đoạn bên trên, chúng ta cũng có thể thực hiện dựa trên nguyên lý của việc chia nhiều thức nhỏng hình bên trên. Mạch buộc phải 2 FF nhằm giữ cực hiếm sau các lần XOR và mạch đang dịch 1 bit sau những lần XOR để mang 1 bit tài liệu new nhỏng hình sau:
Hình 9. Mạch nguyên tắc của CRC-1Ở hình trên, bit MSB sẽ điều khiển và tinh chỉnh MUX lựa chọn tất cả XOR cùng với đa thức sinc x+1 giỏi không? Tuy nhiên, sau mỗi chu kỳ tính, bit MSB luôn bị loại bỏ cần mạch MUX với XOR của bit MSB là không quan trọng. Mạch được rút ít gọn nlỗi hình sau:
Xét mạch MUX, nếu như bit MSB bằng 1 thì bit 0 XOR với 1, ví như bit MSB bởi 0 thì tương ứng với bài toán bit 0 XOR với 0 phải mạch MUX được sa thải để ráng bằng bit 1 XOR bit 0.
Hình 12. Mạch nguyên tắc CRC-1 (bỏ FF đầu vào)​Tại trên đây, bit CRC chỉ có một bit cho nên việc thêm một bit 0 sinh hoạt chuỗi tài liệu đầu vào nhằm tính CRC cũng không cần thiết vày giá trị làm sao XOR cùng với 0 cũng bằng chủ yếu nó.
Hình 13. Mạch nguyên lý CRC-1 với biểu diễn thông thường​Tương từ, xét lại mạch CRC-4 bao gồm đa thức sinch x^4 + x + 1, mạch nguyên lý tính CRC-4 nlỗi sau (để ý, địa điểm XOR với "0" thì loại bỏ cả MUX với cổng XOR):
5. RTL code tính CRC nối tiếp5.1 Nhận xét
Qua nhì ví dụ trên phía trên, dấn xét phổ biến nhỏng sau:Tại vị trí nhưng bit đa thức sinh bằng "0" thì chỉ nên phxay dịch bitTại địa chỉ mà bit đa thức sinc bởi "1" thì được ckém cổng XORDữ liệu tiếp nối nhằm tính CRC dịch trường đoản cú MSB mang lại LSB với mốc giới hạn dịch bằng độ dài dữ liệu cộng độ lâu năm giá trị CRC. lấy một ví dụ, tài liệu 8 bit sử dụng CRC-4 thì chu kỳ dịch là 1gấp đôi cùng với 4 bit cuối là 4 bit 0 được tiếp tế chuỗi tài liệu.5.2 Phân tích module tạo cùng bình chọn CRCCăn uống cđọng vào hầu như thừa nhận xét trên, một kiến tạo thực hiện tính CRC tổng quát được tiến hành nlỗi sau:Sử dụng một define CRC_CTRL_POLY nhằm có thể chấp nhận được chế tạo biểu đạt input tinh chỉnh và điều khiển quý giá của nhiều thức sinc nếu muốn. Crúc ý, phạm vi tín hiệu điều khiển ngay số bit CRC vằ ngay số mũ lớn số 1 của đa thức sinh. Ví dụ, nếu nhiều thức sinh là x^4 + x + 1 thì độ rộng biểu lộ là 4 bit cùng cực hiếm gán mang đến biểu đạt tinh chỉnh là 4'b0011 (bỏ bit 1 của x^4)Sử dụng một define CRC_CHECKER nhằm được cho phép tạo nên tính năng soát sổ CRCSử dụng một parameter CRC_GPW_MAX chất nhận được thông số kỹ thuật độ rộng nhiều thức sinch. Độ rộng nhiều thức sinch bằng số mũ lớn nhất của nhiều thức sinh. lấy ví dụ như, trường hợp nhiều thức sinh là x^4 + x + 1 thì CRC_GPW_MAX = 4Sử dụng một parameter CRC_POLY_VALUE có thể chấp nhận được gán quý giá đa thức sinch vẫn thực hiện nếu như không thực hiện biểu thị điều khiển và tinh chỉnh được tạo nên bởi tư tưởng CRC_CTRL_POLY. lấy ví dụ, còn nếu không định nghĩa CRC_CTRL_POLY, nhiều thức sinch là x^4 + x + 1 thì CRC_GPW_MAX = 4 với quý hiếm CRC_POLY_VALUE = 4'b0011Sơ đồ bộc lộ giao tiếp của module CRC nhỏng sau:
Hai biểu đạt ctrl_en và chk_en vẫn điều khiển tính năng tạo thành với soát sổ CRC như sau, Khi biểu hiện ctrl_en tích cực, tài liệu dùng để tạo CRC hoặc được soát sổ CRC vẫn ban đầu dịch vào data_in. ctrl_en đã tích cực và lành mạnh bằng số bit phải dịch trên data_in.Nếu chk_en = 0 thì Lúc ctrl_en = 0, crc_seq sẽ lưu lại cực hiếm chuỗi CRC trong 1 chu kỳ xung clockNếu chk_en = 1 thì khi ctrl_en = 0, crc_error đang báo lỗi CRCcrc_error = 1 thì chuỗi kiểm tra bị lỗi CRCcrc_error = 0 thì chuỗi kiểm tra không trở nên lỗiMạch bao quát của từng bit vào thanh hao ghi chứa cực hiếm CRC nhỏng sau:
5.3 RTL code
Link download RTL code với testbench: CRC RTL codepass (ví như có): nguyenquanicd5.4 Kết quả tế bào phỏng
Đa thức sinh: x^4 + x + 1 tương xứng với việc gán ctrl_poly_en = 4'b0011Dữ liệu dùng làm sản xuất CRC: 1010_0110 sau thời điểm thêm 4 bit "0" là 1010_0110_0000 => Kết quả tính CRC là 1110Dữ liệu dùng làm đánh giá CRC: 1010_0110_1110. Trong đó, 4 bit LSB 1110 là chuỗi CRC => Kết trái đánh giá CRC là crc_error = 0 Chulặng mục: Hỏi Đáp
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *