Usuario:Netzahualcoyotl Guadarrama Camarena/Taller

De Wikipedia, la enciclopedia libre

Calculo Vectorial[editar]

Gradiente en coordenadas generalizadas usando k-forma diferenciales[editar]


Divergencia en coordenadas generalizadas usando k-forma diferenciales[editar]

Rotacional en coordenadas generalizadas usando k-forma diferenciales[editar]


Generador de código CRC del modbus RTU a 16 bits[editar]

Método 1 de la división con el polinomio generador[editar]

Sea el dato : 0x1234

El polinomio generador del modbus es: que en forma de vector es 11000000000000101, siendo el BMS esta en la izquierda.

La condición inicial de el polinomio de modbus es 0xFFFF.

la división se realiza de la siguiente forma: se acomoda el dato comenzando con el bit menos significativo a la izquierda mientras que el polinomio generador con el bit mas significativo hacia la izquierda

Donde la primera fila corresponde a los datos, la segunda fila corresponde a la condición inicial la 4 fila es el resultado de la resta, la 5a fila es el polinomio generador CRC del modbus RTU


la ultima fila es el residuo que corresponde al valor empezando de derecha a izquierda CRC = 0xC70C.

Método 2 formato bit a bit. es un truco mas que un método.[editar]

Procedimiento para generar el crc a 16 bits del modbus rtu

  1. Cargue en un registro con el nombre de CRC con 0xFFF, correspondiente a la condición inicial
  2. Realice X-Or con el primer byte del dato. y rellene con ceros la parte izquierda hasta completar los 16 bits del primer byte de datos antes de hacer la operación.
  3. Realice un corrimiento del registro resultante hacia la derecha de un bit rellene con cero el bit entrante de la izquierda correspondiente al bit mas significativo y el bit que sale de la derecha correspondiente al bit menos significativo puede tener dos valores cero o uno.
  4. Si es cero realice otro corrimiento.
  5. Si es uno realize una X-Or con el polinomio generador acomodándolo de la siguiente forma 1010000000000001 donde el bit 17 no aparece en este polinomio. y se esta acomodando de tal forma que el bit menos significativo comienza en la izquierda y el bit mas significativo en la derecha desapareciendo el ultimo bit correspondiente a la posición 16.
  6. Repita los pasos 3 y 4 hasta que se realicen 8 corrimientos.
  7. cuando se haya terminado los 8 corrimientos se coloca el siguiente byte rellenando de ceros la parte izquierda del byte de datos hasta completar los 16 bits

Ejemplo

Sea el dato : 0x1234

Descripción 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Condición inicial 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Primera palabra 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1
Corrimiento 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
Corrimiento 2 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0
Corrimiento 3 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0
Corrimiento 4 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1
Corrimiento 5 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0
Corrimiento 6 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0
Corrimiento 7 0 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0
Corrimiento 8 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 0 0x4D3F
Segunda palabra 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1
Corrimiento 1 0 0 1 0 0 1 1 0 1 0 0 0 0 1 0 1 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0
Corrimiento 2 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0
Corrimiento 3 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0
Corrimiento 4 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1
Corrimiento 5 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1
Corrimiento 6 0 1 1 1 1 1 0 0 0 0 1 1 0 1 0 0 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1
Corrimiento 7 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1
Corrimiento 8 0 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 1
Polinomio 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
X-Or Polinomio 1 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0xC70C