CRC LÀ GÌ

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

*

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

Vấn đề này, tương ứng cùng với bài toán dịch trái n bit chuỗi tài liệu M(x).Cuối cùng, phân tách T(x) mang đến G(x) cùng rước số dư. Số dư chính là chuỗi CRC n bit.

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

quý khách vẫn xem: Crc là gì


*

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

Xem thêm: Tiểu Sử Phạm Hồng Phước Và Câu Chuyện Cảm Động Về Người Em Gái


So sánh hiệu quả cùng 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à cách thức kiểm tra parity.3. Mạch nguyên lý tính CRC
Xem lại những ví dụ sẽ trình bày bên trên phía trên, CRC được tính theo nguyên ổn tắc:Nếu bit MSB của lần tính hiện tại bởi 1 thì nó sẽ tiến hành XOR (modulo-2) cùng với nhiều thức sinhNếu bit MSB của lần tính hiện giờ bằng 0 thì nó sẽ không đổi
Để thực hiện mạch CRC-1, ko kể cách XOR tất cả các bit tài liệu nguồn vào nhỏng vẫn trình diễn tại đoạn bên trên, bạn có thể tiến hành dựa vào nguyên tắc của Việc phân tách đa thức như hình bên trên. Mạch buộc phải 2 FF để lưu lại quý giá sau mỗi lần XOR cùng mạch vẫn dịch 1 bit sau mỗi lần XOR để mang 1 bit dữ 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 trên, bit MSB vẫn điều khiển và tinh chỉnh MUX chọn bao gồm XOR với nhiều thức sinch x+1 hay không? Tuy nhiên, sau từng chu kỳ luân hồi tính, bit MSB luôn luôn bị nockout bỏ đề xuất mạch MUX cùng XOR của bit MSB là ko quan trọng. Mạch được rút gọn nhỏng hình sau:
Xét mạch MUX, giả dụ bit MSB bằng 1 thì bit 0 XOR với cùng một, trường hợp bit MSB bởi 0 thì tương xứng cùng với việc bit 0 XOR với 0 đề nghị mạch MUX được loại trừ nhằm chũm bởi bit 1 XOR bit 0.
Hình 11. Mạch nguyên tắc CRC-1 (vứt mạch MUX)​Bit 0 chỉ dùng để giữ quý giá bit dịch vào yêu cầu cũng có thể sa thải.
Hình 12. Mạch nguyên lý CRC-1 (quăng quật FF đầu vào)​Ở phía trên, bit CRC chỉ có một bit nên việc thêm một bit 0 sinh hoạt chuỗi dữ liệu nguồn vào để tính CRC cũng không cần thiết bởi quý hiếm như thế nào XOR cùng với 0 cũng bằng chính nó.
Hình 13. Mạch nguyên tắc CRC-1 cùng với màn trình diễn thông thường​Tương từ bỏ, xét lại mạch CRC-4 tất cả đa thức sinch x^4 + x + 1, mạch nguyên tắc tính CRC-4 nhỏng sau (xem xét, địa điểm XOR cùng với "0" thì vứt 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 đây, dấn xét tầm thường nhỏng sau:Tại vị trí nhưng mà bit đa thức sinh bằng "0" thì chỉ nên phép dịch bitTại địa chỉ cơ mà bit đa thức sinc bởi "1" thì được chèn cổng XORDữ liệu thông suốt nhằm tính CRC dịch trường đoản cú MSB mang đến LSB với chu kỳ dịch bởi độ lâu năm tài liệu cộng độ lâu năm quý hiếm CRC. ví dụ như, dữ liệu 8 bit cần sử dụng CRC-4 thì số lần dịch là 1gấp đôi với 4 bit cuối là 4 bit 0 được sản xuất chuỗi tài liệu.5.2 Phân tích module tạo với kiểm soát CRCCnạp năng lượng cứ vào đầy đủ dấn xét trên, một thiết kế thực hiện tính CRC tổng thể được tiến hành nhỏng sau:Sử dụng một define CRC_CTRL_POLY để có thể chấp nhận được sản xuất bộc lộ đầu vào điều khiển quý giá của nhiều thức sinch nếu như muốn. Chú ý, phạm vi tín hiệu điều khiển ngay số bit CRC vằ thông qua số nón lớn số 1 của nhiều thức sinh. lấy ví dụ như, giả dụ đa thức sinh là x^4 + x + 1 thì phạm vi biểu lộ là 4 bit và cực hiếm gán mang đến bộc lộ tinh chỉnh là 4'b0011 (quăng quật bit 1 của x^4)Sử dụng một define CRC_CHECKER để cho phép tạo tính năng kiểm soát CRCSử dụng một parameter CRC_GPW_MAX được cho phép cấu hình phạm vi nhiều thức sinh. Độ rộng đa thức sinh ngay số nón lớn số 1 của nhiều thức sinc. Ví dụ, trường hợp đa thức sinc 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 cực hiếm đa thức sinc đang thực hiện nếu như không áp dụng biểu hiện điều khiển được tạo nên vày có mang CRC_CTRL_POLY. Ví dụ, nếu như không quan niệm CRC_CTRL_POLY, đa thức sinch là x^4 + x + 1 thì CRC_GPW_MAX = 4 cùng quý giá CRC_POLY_VALUE = 4'b0011Sơ trang bị biểu đạt giao tiếp của module CRC như sau:
Hai bộc lộ ctrl_en và chk_en vẫn điều khiển và tinh chỉnh công dụng tạo thành và chất vấn CRC nhỏng sau, khi biểu lộ ctrl_en tích cực và lành mạnh, dữ liệu dùng để làm tạo ra CRC hoặc được kiểm soát CRC vẫn ban đầu dịch vào data_in. ctrl_en đã tích cực và lành mạnh thông qua số bit phải dịch bên trên data_in.Nếu chk_en = 0 thì Lúc ctrl_en = 0, crc_seq sẽ giữ lại được quý hiếm chuỗi CRC trong 1 chu kỳ xung clockNếu chk_en = 1 thì Khi ctrl_en = 0, crc_error đã báo lỗi CRCcrc_error = 1 thì chuỗi kiểm soát bị lỗi CRCcrc_error = 0 thì chuỗi kiểm tra không bị lỗiMạch bao quát của từng bit trong thanh ghi cất quý hiếm CRC nhỏng sau:
5.3 RTL code
Link download RTL code cùng testbench: CRC RTL codepass (trường hợp có): nguyenquanicd5.4 Kết trái mô phỏng
Đa thức sinh: x^4 + x + 1 tương xứng cùng với Việc gán ctrl_poly_en = 4'b0011Dữ liệu dùng để làm chế tạo CRC: 1010_0110 sau khoản thời gian thêm 4 bit "0" là 1010_0110_0000 => Kết quả tính CRC là 1110Dữ liệu dùng làm khám nghiệm CRC: 1010_0110_1110. Trong đó, 4 bit LSB 1110 là chuỗi CRC => Kết quả đánh giá CRC là crc_error = 0
6623 Trang chủ . Liên hệ kqxs, AE388 - AE3888 Trang Chủ Venus Casino,kimsa88,VN138 - Nhà Cái Cá Cược Uy Tín Tại Châu ÁĐá gà AE3888
| W88Vuive | xosoketqua.com