Генерирование битов кода CRC в соответствии с полиномом генератора и добавление к кадрам входных данных
Набор средств связи/Обнаружение и исправление ошибок/CRC
Общий блок генератора CRC генерирует кодовые биты циклического избыточного кода (CRC) для каждого кадра входных данных и добавляет их к кадру. Дополнительные сведения см. в разделе Работа генератора CRC.
In - Входной сигналВходной сигнал, заданный как двоичный вектор столбца. Длина входного кадра должна быть кратна значению параметра Checksums per frame.
Типы данных: double | Boolean
Out - Кадр выходного кодового словаВыходной кадр кодового слова, возвращаемый как двоичный вектор столбца, который наследует тип данных входного сигнала. Выходной сигнал содержит входные кадры данных с добавленными к ним битовыми последовательностями CRC.
Длина выходного кадра равна m + k * r, где m - размер входного кадра, k - количество контрольных сумм на кадр, r - степень полинома генератора.
Generator polynomial - Полином генератора'z^16 + z^12 + z^5 + 1' (по умолчанию) | вектор многочленов | вектор двоичной строки | вектор целочисленной строкиГенераторный полином для алгоритма 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.
Initial states - Начальные состояния внутреннего сдвигового регистра0 (по умолчанию) | 1 | двоичный вектор строкиНачальные состояния внутреннего сдвигового регистра, заданного как двоичный скаляр или двоичный вектор строки длиной, равной степени полинома генератора. Скалярное значение расширяется до вектора строки равной длины до степени полинома генератора.
Direct method - Использовать прямой алгоритм для вычисления контрольной суммы CRCoff (по умолчанию) | onИспользуется прямой алгоритм для вычисления контрольной суммы CRC. При сбросе блок использует непрямой алгоритм для вычисления контрольной суммы CRC.
Дополнительные сведения о прямых и непрямых алгоритмах см. в разделе Обнаружение и исправление ошибок.
Reflect input bytes - Отражать входные байтыoff (по умолчанию) | onПеред вводом данных в сдвиговый регистр установите флажок, чтобы развернуть входные данные по байтам. Если выбран параметр Отразить входные байты, длина входного кадра, деленная на значение параметра Контрольные суммы на кадр, должна быть целым числом и кратной 8. Если параметр «Отражать входные байты» снят, блок не переворачивает входные данные.
Reflect checksums before final XOR - Отражение контрольных сумм перед окончательным исключающим ИЛИoff (по умолчанию) | onВыберите, чтобы развернуть контрольные суммы CRC вокруг их центров после полного прохождения входных данных через сдвиговый регистр. Когда функция «Отразить контрольные суммы» (Reflect checksums before final XOR) сброшена, блок не переворачивает контрольные суммы CRC.
Final XOR - Окончательное исключающее ИЛИ0 (по умолчанию) | 1 | двоичный вектор строкиКонечный XOR, заданный как двоичный скаляр или двоичный вектор строки длиной, равной степени полинома генератора. Операция XOR выполняется с использованием значения параметра Final XOR контрольной суммы CRC перед добавлением CRC к входным данным. Скалярное значение расширяется до вектора строки равной длины до степени полинома генератора. Установка 0 эквивалентно отсутствию операции XOR.
Checksums per frame - Количество контрольных сумм, рассчитанных для каждого кадра1 (по умолчанию) | положительное целое числоКоличество контрольных сумм, рассчитанных для каждого кадра, указанное как положительное целое число.
Типы данных |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Циклическое избыточное кодирование (CRC) представляет собой метод кодирования с управлением ошибками для обнаружения ошибок, возникающих при передаче кадра данных. В отличие от блочных или сверточных кодов, коды CRC не имеют встроенной возможности исправления ошибок. Вместо этого, когда система связи обнаруживает ошибку в принятом кодовом слове, приемник запрашивает отправителя повторно передать кодовое слово.
При кодировании CRC передатчик применяет правило к каждому кадру данных для создания дополнительных битов CRC, называемых контрольной суммой или синдромом, и затем добавляет контрольную сумму к кадру данных. После приема переданного кодового слова приемник применяет то же самое правило к принятому кодовому слову. Если итоговая контрольная сумма не равна нулю, произошла ошибка, и передатчик должен повторно отправить кадр данных.
Когда количество контрольных сумм на кадр больше 1, входной кадр данных делится на подкадры, правило применяется к каждому подкадру данных, и отдельные контрольные суммы добавляются к каждому подкадру. Кодовые слова подкадра объединяются для вывода одного кадра.
Описание поддерживаемых алгоритмов CRC см. в разделе Коды проверки циклическим избыточным кодом.
Генератор CRC добавляет контрольные суммы CRC к входному кадру в соответствии с указанным полиномом генератора и количеством контрольных сумм на кадр.
Для конкретного начального состояния внутреннего сдвигового регистра и k контрольных сумм на входной кадр:
Входной сигнал делится на k подкадров одинакового размера.
Каждый из k подкадров имеет префикс с вектором начальных состояний.
Алгоритм CRC применяется к каждому подкадру.
Полученные контрольные суммы добавляются к концу каждого подкадра.
Подкадры объединяются и выводятся как вектор-столбец.
Для сценария, показанного здесь, 10-битный кадр является входным, полином генератора третьей степени вычисляет контрольную сумму CRC, начальное состояние равно 0, и количество контрольных сумм на кадр равно 2.

Входной кадр делится на два подкадра размера 5, и контрольные суммы размера 3 вычисляются и добавляются к каждому подкадру. Начальные состояния не показаны, поскольку начальное состояние [0] не влияет на выходные данные алгоритма CRC. Выходной передаваемый кадр кодового слова имеет размер 5 + 3 + 5 + 3 = 16.
[1] Склар, Бернард. Цифровые коммуникации: основы и приложения. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, 1988.
[2] Уикер, Стивен Б. Системы управления ошибками для цифровой связи и хранения. Река Верхнее Седло, Н.Дж.: Прентис Холл, 1995.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

