Crc

11

Click here to load reader

Transcript of Crc

Page 1: Crc

comm.HDLCRCGenerator objeto del sistema - del paquete: comunicación Generar los bits CRC de código y añadir a los datos de entrada

Descripción

Este hardware de usar generador de CRC objeto Sistema, al igual que el objeto del sistema generador de CRC, genera el código de redundancia cíclica (CRC) bits. Sin embargo, el objeto del sistema está optimizado para la generación de código HDL. En lugar de procesado de cuadro, el objeto del sistema procesa los datos en el modo de transmisión. Las señales de control se añaden al tanto de entrada como de salida para la sincronización de datos fácil.

Construcción

H = comm.HDLCRCGenerator crea un código de redundancia cíclica (CRC) objeto del sistema generador, H. Este objeto genera bits CRC de acuerdo con un polinomio generador especificado y anexa ellos a los datos de entrada.

H = comm.HDLCRCGenerator (nombre, valor) crea CRC objeto del sistema generador, H, con opciones adicionales especificadas por uno o más nombre, los argumentos de valor par, donde nombre es un nombre de la propiedad y el valor es el valor correspondiente. El nombre debe aparecer dentro de un solo citas (''). Puede especificar varios argumentos de nombre y valor de par en cualquier orden, como nombre1, valor1, ..., Antwerpen, ValueN.

H = comm.HDLCRCGenerator ( POLY , nombre, valor) crea un generador de CRC objeto System, H, con la propiedad polinómica establecida en POLY, y las otras propiedades especificadas ajustado a los valores especificados.

Los argumentos de entrada

POLY Establece la propiedad polinómica a poli en la construcción de objetos del sistema

Propiedades

Polinomio Especifique el polinomio generador como un vector fila binaria, con coeficientes en orden descendente de los poderes. Si se establece esta propiedad en un vector binario, su longitud debe ser igual al grado del polinomio más 1. El valor predeterminado es [1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1].

FinalXORValue El valor con el que la suma de comprobación CRC es que se XORed justo antes de ser añadido a los datos de entrada. Esta

Page 2: Crc

propiedad se puede especificar como un número binario, escalar tipo de precisión doble o simple de datos o un vector. La longitud del vector es el grado del polinomio generador que se especifica en la propiedad polinómica. Cuando se especifica Valor XOR final como un escalar, el objeto se expande el valor a un vector fila de longitud igual al grado del polinomio generador. El valor predeterminado es 0.

InitialState Se especificarán las condiciones iniciales del registro de desplazamiento como un binario, escalar tipo de precisión doble o individual de datos o un vector. La longitud del vector es el grado del polinomio generador que se especifica en la propiedad polinómica. Cuando se especifica las condiciones iniciales como un escalar, el objeto se expande el valor a un vector fila de longitud igual al grado del polinomio generador. El valor predeterminado es 0.

ReflectCRCChecksu

m Una cantidad lógico que especifica si la salida de suma de comprobación CRC debe ser volteado en torno a su centro después de los datos de entrada es completamente a través del registro de desplazamiento. El valor predeterminado es falso.

ReflectInput Una cantidad lógico que especifica si los datos de entrada debe ser volteado sobre una base byte a byte antes de entrar en el registro de desplazamiento. El valor predeterminado es falso.

Métodos

clonar Crear un objeto del sistema con HDLCRCGenerator mismos valores de propiedad

IsLocked Estado de bloqueo (lógica)

liberar Permitir valor de la propiedad y el cambio de entrada de características

reajustar Restablecer los estados de objeto generador CRC

paso Generar sumas de comprobación CRC de mensaje de entrada basado en señales de control y las sumas de comprobación anexa al mensaje de salida

Ejemplos

Codificar la señal utilizando un generador de CRC.

Usando% polinomio de forma predeterminada con una longitud de CRC de 16 Hgen = comm.HDLCRCGenerator;

% De ejecución CRC Generador de 6 pasos numSteps = 6;

Señales de control de% de todos los 6 pasos startin lógica = ([1 0 0 0 0 0]);

Page 3: Crc

endin lógica = ([0 1 0 0 0 0]); validIn lógica = ([1 1 0 0 0 0]);

32% datos de bits para ser codificado, en dos columnas 16 por 1 msg = randi ([0 1], 16,2);

Aleatorios% de entrada a HDLCRCGenerator mientras se está procesando el msg Randin = randi ([0, 1], 16, numSteps-2); DATAIN = [msg Randin];

% De ejecución CRC Generador de 6 pasos Los datos de salida:% DATAOUT % Las señales de salida de control: startOut, endOut, validOut para i = 1: numSteps [DATAOUT (:, i), startOut (i), endOut (i), validOut (i)] = etapa (Hgen, ... DataIn (:, i), startin (i), endin (i), validIn (i)); final

Algoritmos

Diagrama de temporización

Cronograma de la Convención del generador

Page 4: Crc

Retardo inicial

El HDL CRC objeto System Generator introduce una latencia en la salida. Esta latencia puede ser calculado con la ecuación siguiente:

initialdelay = (CRC longitud / anchura de datos de entrada) + 2

General de la CRC Generator - Generar los bits CRC según polinomio generador y añadir a los datos de entrada marcos

Biblioteca

CRC sublibrary de corrección de errores y detección de

Descripción

El bloque generador de CRC general genera el código de redundancia cíclica (CRC) bits para cada cuadro de entrada de datos y anexa al bastidor. Este bloque acepta un vector binario columna señal de entrada.

Se especifica el polinomio generador para el algoritmo CRC utilizando el parámetro polinomio generador. Este bloque es general en el sentido de que el grado del polinomio no necesita ser una potencia de dos. Usted representa el polinomio en una de las siguientes maneras:

Como un vector fila binario que contiene los coeficientes en orden descendente de los poderes. Por ejemplo, [1 1 0 1] representa el polinomio x 3 + x 2 + 1.

Como un vector fila entero que contiene los poderes de términos no nulos en el polinomio, en orden descendente. Por ejemplo, [3 2 0] representa el polinomio x 3 + x 2 + 1.

Se especifica el estado inicial del registro de desplazamiento interno por el parámetro inicial estados. El parámetro estados inicial es o bien un escalar o un vector fila binaria de longitud igual al grado del polinomio generador. Un valor escalar se expandió a un vector fila de longitud igual al grado del polinomio generador. Por ejemplo, el estado inicial de [0] se expandió a un vector fila de ceros.

Se especifica el número de sumas de comprobación de que el bloque calcula para cada cuadro de entrada por las sumas de comprobación por los parámetros del marco. Las sumas de comprobación por valor de marco uniforme que dividir el tamaño del cuadro de entrada. Si el valor de las sumas de comprobación por trama es k, el bloque hace lo siguiente:

Page 5: Crc

1. Divide cada cuadro de entrada en subtramas k de igual tamaño 2. Prefijos el vector estados inicial a cada una de las subtramas k 3. Se aplica el algoritmo CRC para cada subtrama aumentada 4. Anexa las sumas de comprobación resultante al final de cada subtrama 5. Salidas concatenados subtramas

Si el tamaño de la trama de entrada es m, y el grado del polinomio generador es r, el marco de salida tiene un tamaño m + k * r.

Este bloque apoya los tipos de datos dobles y boolean. El bloque hereda el tipo de datos de salida de la señal de entrada.

Ejemplo

Supongamos que el tamaño del marco de entrada es 10, el grado del polinomio generador es 3, los estados iniciales es [0], y las sumas de comprobación por trama es 2. El bloque se divide cada fotograma de entrada en dos subtramas de tamaño 5 y agrega una suma de comprobación del tamaño de 3 a cada subtrama, como se muestra a continuación. Los estados iniciales no se muestran en este ejemplo, dado un estado inicial de [0] no afecta a la salida del algoritmo CRC. La trama de salida a continuación, tiene un tamaño de 5 + 3 + 5 + 3 = 16.

Ejemplo de codificación de comprobación de redundancia cíclica

Este ejemplo aclara el funcionamiento del bloque generador CRC general mediante la comparación de los bits CRC generados desde el bloque de biblioteca con los generados a partir de primitivos bloques de Simulink. El modelo se encuentra en: matlabroot / ayuda / toolbox / commblks / examples / doc_crcgen.

Page 6: Crc

Para un mensaje de entrada se conoce con una longitud de 6 bits, el modelo genera bits

CRC para un polinomio generador, , Y un determinado estado inicial de la caja registradora.

Usted puede experimentar con diferentes estados iniciales, cambiando el valor de los estados iniciales antes de ejecutar la simulación. Para todos los valores, la comparación (generado bits de CRC de la librería de bloques con los que se generan desde los primitivos bloques de Simulink) es cierto.

Uso de la Convención General de bloque generador le permite especificar fácilmente el polinomio generador (especialmente para los polinomios de orden superior).

Atributos de señal

El General de CRC bloque generador tiene un puerto de entrada y un puerto de salida. Ambos puertos soportan señales binarias vector columna.

Cuadro de diálogo

Page 7: Crc

Generador de polinomio

Una fila binario o integer vector que especifica el polinomio generador, en orden descendente de los poderes.

Los estados iniciales

Binaria escalar o un vector fila binaria de longitud igual al grado del polinomio generador, que especifica el estado inicial del registro de desplazamiento interno.

De verificación por imagen

Número entero positivo que especifica el número de sumas de comprobación del bloque calcula para cada cuadro de entrada.

Algoritmo

Para obtener una descripción del algoritmo CRC, aplicado por este bloque, consulte los códigos de comprobación de redundancia cíclica en la Guía Sistema de Comunicaciones de Caja de herramientas del usuario.

Esquema de la aplicación de la Convención

Page 8: Crc

El circuito anterior divide el polinomio por

, Y devuelve el resto

.

Los circuitos alimenta a los símbolos de entrada en el registro de desplazamiento de uno en uno, en orden decreciente de índice. Cuando el último

símbolo ( ) Se abre camino fuera del registro (que se logra aumentando el mensaje

con ceros r), el registro contiene los coeficientes del polinomio resto .

Este polinomio resto corresponde a la suma de comprobación que se anexa al mensaje original, que luego se transmite.

Si bien funcionalmente correcto, este circuito es lento debido a que maneja los símbolos de entrada de uno en uno, y utiliza una operación XOR para cada símbolo de entrada. Una implementación más eficiente sería manejar símbolos N de entrada en cada paso del proceso. Por ejemplo, cuando se calculó una K CRC de longitud, donde K <8, proceso N = K bits en cada paso. Si K ≥ 8, proceso N = 8 bits en cada paso.

Para este algoritmo más rápido, puede utilizar una tabla de búsqueda de la ventaja que almacena el efecto que cada posible longitud-N en la secuencia de entrada tiene el valor de salida CRC. Esta aplicación utiliza sólo una operación XOR para procesar una subsecuencia de longitud N de la secuencia de símbolos de entrada aumentada. Si hay sobrantes bits al final de la secuencia que no se puede conformar en una secuencia de longitud N, esta aplicación se encarga de los bits individualmente, utilizando el algoritmo lento se ha descrito anteriormente.

Referencias

[1] Sklar, Bernard, Comunicaciones Digitales: Fundamentos y Aplicaciones. Englewood Cliffs, NJ, Prentice-Hall, 1988.

[2] de mimbre, Stephen B., Sistemas de control de errores para la comunicación digital y almacenamiento, Upper Saddle River, NJ, Prentice Hall, 1995.

Par de bloques

General de la CRC Detector de Síndrome de

Page 9: Crc

Vea también

CRC-N del generador , CRC-N Detector de Síndrome de