2017-02-13 23 views
0

crc32 합계의 상위/하위 바이트 2 개만 사용하면 crc16보다 약합니다.crc32의 일부만 사용

배경 :

현재 무선 프로토콜을 구현 중입니다. 나는 각각 64byte의 덩어리를 가지고 있으며, Data Length vs CRC Length 에 따르면 나는 대부분 crc16이 필요하다. crc32 대신 crc16을 사용하면 정방향 오류 수정 (64 바이트는 FEC에서 한 블록 임)에서 사용할 대역폭을 확보 할 수 있습니다. 그러나 내 하드웨어는 매우 저전력이지만 CRC32에 대한 하드웨어 지원이 있습니다. 내 생각은 하드웨어 crc32 엔진을 사용하여 결과 바이트 2 개를 버리는 것이 었습니다. 이것은 내가 crc16 합계가 아니라는 것을 알고 있습니다. 그러나 그것은 양측을 제어하기 때문에 중요하지 않습니다.

중요한 경우 : crc32 (poly 0x04C11DB7) 또는 crc32c (poly 0x1EDC6F41)를 모두 사용할 수 있습니다.

답변

1

예, 비트 오류 수가 적을 때만 약합니다. CRC-32의 절반을 대신 사용함으로써 CRC-16의 보증을받을 수 없습니다. 예 : 항상 검출 가능한 버스트 내의 비트 수.

보호하려는 잡음 소스는 무엇입니까?

+0

간섭 및 장거리. 기본적으로 한쪽 끝에 원시 무선 프레임을 보내고 다른 쪽에서 수신합니다. 이렇게하면 기존 WLAN의 재 연결에 필요한 시간이 단축됩니다. 나는 이것을 사용하여 제 드론과 데이터를주고받습니다. – Thalhammer

+0

그런 다음 전체 CRC (CRC-16 또는 CRC-32)를 사용해야합니다. 전체 CRC-32에 대해 여분의 2 바이트를 투자하고 싶을 수도 있습니다. –