Crc là gì

Phương pháp chất vấn parity dễ dàng cơ mà độ tin tưởng kém nhẹm phải được áp dụng cho các giao thức gồm vận tốc truyền dữ liệu đủng đỉnh hoặc con số bit dữ liệu yêu cầu khám nghiệm không nhiều ví như giao thức UART.CRC (Cyclic Redundancy Code) là một trong cách thức phổ biến tất cả độ tin cậy cao hơn nữa những đối với sử dụng bi parity. CRC được ứng dụng trong không ít giao thức bao gồm khối lượng dữ liệu truyền bự hoặc vận tốc truyền dữ liệu cao nlỗi CAN, Ethernet, giao tiếp RF 15693, ...2. Lý tmáu về tính chất toán CRCGiá trị chuỗi bit kiểm tra tuyệt chuỗi CRC là số dư của phép phân tách của chuỗi bit dữ liệu cho một chuỗi bit đa thức sinh (Generator Polynomial). Đa thức sinc là số phân chia đã khác nhau tùy thuộc theo mỗi giao thức khí cụ. Phép phân chia vào tính toán CRC sử dụng cách tính modulo-2. Modulo-2 thực ra là XOR hai số hạng.Giả sử đa thức chuỗi dữ liệu bắt buộc truyền là M(x):


Bạn đang xem: Crc là gì

*

*

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

Như vậy, tương ứng với câu hỏi dịch trái n bit chuỗi tài liệu M(x).Cuối thuộc, chia T(x) cho G(x) với rước số dư. Số dư chính là chuỗi CRC n bit.Bạn đã xem: Crc là gì
*

Kiểm tra CRC được tiến hành bằng 1 trong các 2 bí quyết sau:Lấy chuỗi dữ liệu gồm cả các bit bình chọn CRC chia đến nhiều thức sinc. Nếu số dư khác "0" thì dữ liệu thừa nhận bị lỗi.Tách chuỗi tài liệu với chuỗi CRC riêng rẽ. Chỉ đem chuỗi tài liệu phân chia mang đến đa thức sinch rồi lấy số dư phnghiền chia đối chiếu cùng với chuỗi CRC. Nếu hai chuỗi khác biệt thì tài liệu dấn bị lỗi.lấy ví dụ như về tính tân oán CRC-4, tương xứng cùng với số bit bình chọn là 4 bit, cùng với đa thức sinc như sau:x^4 + x + 1 (b10011)Chuỗi dữ liệu bắt buộc truyền có 8 bit nlỗi sau:x^7 + x^5 + x (b1010_0010)Chuỗi tài 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 đa thức sinc - ngôi trường thích hợp không đúng 1 bit cùng ngôi trường đúng theo không nên 2 bit, số dư khác 0​Sở nhận sẽ không còn phân phát hiện tại được lỗi tài liệu khi chuỗi dữ liệu bị sai với chuỗi CRC cũng không nên trùng với giá trị CRC của chuỗi dữ liệu bị không đúng. Tuy nhiên, Xác Suất nhằm xẩy ra đúng ngôi trường hòa hợp này là thấp. Xác suất này càng tốt lúc chuỗi CRC càng nhiều năm.


Xem thêm: Download Game Lái Xe Tải Euro Truck Simulator 2 1, Euro Truck Simulator 2

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


Xem thêm: Tôi Nghĩ Khác Về Xe Grande Có Tốt Không ? Bài Đánh Giá Chất Nhất 2021

Đa thức sinh: x^4 + x + 1 tương ứng cùng với việc gán ctrl_poly_en = 4'b0011Dữ liệu dùng để sản xuất CRC: 1010_0110 sau thời điểm thêm 4 bit "0" là 1010_0110_0000 => Kết trái tính CRC là 1110Dữ liệu dùng để chất vấn CRC: 1010_0110_1110. Trong đó, 4 bit LSB 1110 là chuỗi CRC => Kết quả khám nghiệm CRC là crc_error = 0 Chuim mục: Hỏi Đáp

Chuyên mục: Công Nghệ