General CRC Syndrome Detector

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

  • Библиотека:
  • Communications Toolbox / Выявление ошибок и Коррекция / CRC

  • General CRC Syndrome Detector block

Описание

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

Для получения дополнительной информации смотрите Работу Детектора Синдрома CRC.

Порты

Входной параметр

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

Полученная кодовая комбинация в виде вектора столбца двоичных данных.

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

Вывод

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

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

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

Сигнал ошибки контрольной суммы, возвращенный как вектор столбца двоичных данных, который наследовал тип данных входного сигнала. Длина Err равняется значению Checksums per frame. Для каждого расчета контрольной суммы, значения элемента 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.

Для получения дополнительной информации смотрите Представление Полиномов в Communications Toolbox.

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

Метод 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.

Для получения дополнительной информации о прямых и непрямых алгоритмах смотрите Выявление ошибок и Коррекцию.

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

Выберите Reflect checksums before final XOR, чтобы инвертировать контрольные суммы CRC вокруг их центров после того, как входные данные будут полностью через сдвиговый регистр. Когда Reflect checksums before final XOR очищен, блок не инвертирует контрольные суммы CRC.

Итоговые XOR в виде бинарного скаляра или вектора строки двоичных знаков с длиной равняются степени порождающего полинома. Запуски операции "исключающее ИЛИ" с помощью значения параметра Final XOR и контрольной суммы CRC прежде, чем соответствовать входной контрольной сумме. Скалярное значение расширено до вектора-строки из равной длины до степени порождающего полинома. Установка 0 не эквивалентно никакой операции "исключающее ИЛИ".

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

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

Типы данных

Boolean | double

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

no

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

yes

Больше о

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

Ссылки

[1] Sklar, Бернард. Цифровая связь: основные принципы и приложения. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1988.

[2] Ивовый прут, системы контроля ошибок Стивена Б. для цифровой связи и устройства хранения данных. Верхний Сэддл-Ривер, Нью-Джерси: Prentice Hall, 1995.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

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