Общий детектор синдрома CRC

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

Библиотека

Подбиблиотека CRC Исправления ошибок и Обнаружения

Описание

Блок General CRC Syndrome Detector вычисляет контрольные суммы для своего целого входного кадра. Этот блок принимает входной сигнал вектора столбца двоичных данных.

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

Первый вывод является кадром данных с удаленными битами CRC, и второй вывод указывает, была ли ошибка обнаружена в кадре данных.

Установки параметров блока должны согласиться с теми в блоке General CRC Generator.

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

Этот блок поддерживает типы данных boolean и double. Блок наследовал тип выходных данных от входного сигнала.

Пример

Предположим, что полученная кодовая комбинация имеет размер 16, полином генератора имеет степень 3, Initial states является [0], и Checksums per frame является 2. Блок вычисляет две контрольных суммы размера 3, один от первой половины полученной кодовой комбинации и другого от второй половины полученной кодовой комбинации, как показано в следующей фигуре. Начальные состояния не показывают в этом примере, потому что начальное состояние [0] не влияет на вывод алгоритма CRC. Блок конкатенирует две половины слова сообщения как один вектор размера 10 и выводит этот вектор через первый выходной порт. Блок выводит 2 1 бинарный вектор кадра, записи которого зависят от того, являются ли вычисленные контрольные суммы нулем. Следующие данные показывают пример, в котором первая контрольная сумма является ненулевой, и вторая контрольная сумма является нулем. Это указывает, что ошибка произошла в передаче первой половины кодовой комбинации.

Атрибуты сигнала

Блок General CRC Syndrome Detector имеет один входной порт и два выходных порта. Эти порты принимают сигналы вектора столбца двоичных данных.

Параметры

Generator polynomial

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

Initial conditions

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

Direct method

Когда вы устанавливаете этот флажок, объект использует прямой алгоритм для вычислений контрольной суммы CRC. Когда вы снимаете этот флажок, объект использует непрямой алгоритм для вычислений контрольной суммы CRC.

Reflect input bytes

Когда вы устанавливаете этот флажок, блок инвертирует входные данные на bytewise основе до ввода данных в сдвиговый регистр. Для этого приложения входная длина кадра (и любой текущий вход структурируют длину для сигналов переменного размера) разделенный на значение для параметра Checksums per frame минус степень полинома генератора, который вы задаете в параметре Generator polynomial, должна быть кратной восемь. Когда вы снимаете этот флажок, блок не инвертирует входные данные.

Reflect checksums before final XOR

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

Final XOR

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

Checksums per frame

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

Алгоритм

Для описания алгоритма CRC, как реализовано этим блоком, см. Коды Контроля циклическим избыточным кодом.

Ссылки

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

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

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

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

Смотрите также

Системные объекты

Блоки

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