exponenta event banner

Детектор синдрома общего CRC

Обнаружение ошибок в принятых кадрах кодового слова в соответствии с полиномом генератора

  • Библиотека:
  • Набор средств связи/Обнаружение и исправление ошибок/CRC

  • General CRC Syndrome Detector block

Описание

Блок детектора синдрома общего CRC вычисляет контрольные суммы контроля циклическим избыточным кодом (CRC) для принятых кадров кодового слова. Для успешного обнаружения CRC в линии связи системы связи необходимо выровнять настройки параметров блока детектора синдрома общего CRC с парным блоком генератора общего CRC.

Дополнительные сведения см. в разделе Работа детектора синдрома CRC.

Порты

Вход

развернуть все

Полученное кодовое слово, указанное как двоичный вектор столбца.

Типы данных: double | Boolean

Продукция

развернуть все

Выходной кадр, возвращаемый как двоичный вектор столбца, который наследует тип данных входного сигнала. Выходной кадр содержит принятое кодовое слово с удаленными контрольными суммами.

Длина выходного кадра равна n - k * r битов, где n - размер принятого кодового слова, k - количество контрольных сумм на кадр, и r - степень полинома генератора.

Сигнал ошибки контрольной суммы, возвращаемый как двоичный вектор столбца, который наследует тип данных входного сигнала. Длина Err равно значению контрольных сумм на кадр. Для каждого вычисления контрольной суммы значение элемента 0 в Err указывает на отсутствие ошибки контрольной суммы и значение элемента 1 в Err указывает на ошибку контрольной суммы.

Параметры

развернуть все

Генераторный полином для алгоритма CRC, указанный как один из следующих:

  • Вектор многочлена, например 'z^3 + z^2 + 1'.

  • Двоичный вектор строки, который представляет коэффициенты полинома генератора в порядке степени убывания. Длина этого вектора равна (N + 1), где N - степень полинома генератора. Например ,[1 1 0 1] представляет многочлен x3 + z2 + 1.

  • Целочисленный вектор строки, содержащий экспоненты z для ненулевых членов в многочлене в порядке убывания. Например, [3 2 0] представляет многочлен z3 + z2 + 1.

Дополнительные сведения см. в разделе Символьное представление многочленов.

Некоторые обычно используемые генераторные многочлены включают в себя:

Метод CRCПолином генератора
CRC-32'z^32 + z^26 + z^23 + z^22 + z^16 + z^12 + z^11 + z^10 + z^8 + z^7 + z^5 + z^4 + z^2 + z + 1'
CRC-24 'z^24 + z^23 + z^14 + z^12 + z^8 + 1'
CRC-16 'z^16 + z^15 + z^2 + 1'
Реверсированный CRC-16'z^16 + z^14 + z + 1'
CRC-8'z^8 + z^7 + z^6 + z^4 + z^2 + 1'
CRC-4 'z^4 + z^3 + z^2 + z + 1'

Пример: 'z^7 + z^2 + 1', [1 0 0 0 0 1 0 1], и [7 2 0] представляют один и тот же многочлен, p (z) = z 7 + z 2 + 1.

Начальные состояния внутреннего сдвигового регистра, заданного как двоичный скаляр или двоичный вектор строки длиной, равной степени полинома генератора. Скалярное значение расширяется до вектора строки равной длины до степени полинома генератора.

Используется прямой алгоритм для вычисления контрольной суммы CRC. При сбросе блок использует непрямой алгоритм для вычисления контрольной суммы CRC.

Дополнительные сведения о прямых и непрямых алгоритмах см. в разделе Обнаружение и исправление ошибок.

Перед вводом данных в сдвиговый регистр выберите переключение принятого кодового слова по байтам. Когда выбран параметр Reflect input bytes, длина принятого кодового слова, деленная на значение параметра Checksums per frame, должна быть целочисленной и кратной 8. Если параметр «Отражать входные байты» снят, блок не переворачивает входные данные.

Выберите «Отразить контрольные суммы перед окончательным исключающим ИЛИ», чтобы развернуть контрольные суммы CRC вокруг их центров после полного прохождения входных данных через сдвиговый регистр. Когда функция «Отразить контрольные суммы» (Reflect checksums) перед сбросом окончательного исключающего ИЛИ (XOR), блок не переворачивает контрольные суммы CRC.

Конечный XOR, заданный как двоичный скаляр или двоичный вектор строки длиной, равной степени полинома генератора. Операция XOR выполняется с использованием значения параметра Final XOR и контрольной суммы CRC перед сравнением с входной контрольной суммой. Скалярное значение расширяется до вектора строки равной длины до степени полинома генератора. Установка 0 эквивалентно отсутствию операции XOR.

Количество контрольных сумм, рассчитанных для каждого кадра, указанное как положительное целое число.

Характеристики блока

Типы данных

Boolean | double

Многомерные сигналы

no

Сигналы переменного размера

yes

Подробнее

развернуть все

Ссылки

[1] Склар, Бернард. Цифровые коммуникации: основы и приложения. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, 1988.

[2] Уикер, Стивен Б. Системы управления ошибками для цифровой связи и хранения. Река Верхнее Седло, Н.Дж.: Прентис Холл, 1995.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен до R2006a