Autor Tema: CRC en asm.para el 18fxxxx  (Leído 8308 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: CRC en asm.para el 18fxxxx
« Respuesta #15 en: 21 de Febrero de 2015, 15:15:47 »
valla.esta interesante.a mi siempre me han gustado los retos.cuando me hizo falta calcular el CRC del modbus. tuve que hacerlo a mano.no pude encontrar
ningun codigo ya realizado.pero me ayudo los ejemplos de calculo.como los que pone en los pdf que as puesto.pero es tedioso y complicado.

ya hace tiempo que realize ese programa.pero el de las tablas estaba en C y no lo entendia.pero ya que estudie un poco de java.pues me hizo a la idea

si creas un programa de estas caracteristicas sin tablas.puedes crear tus tablas apartir de los valores generados.porque es posible que no encuentres las tablas
para la comprobacion del CRC de las tramas del RDS.

espero que tengas suerte y encuentres algun ejemplo con tablas.es mas facil que generar el CRC sin tablas.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado misterweb

  • PIC16
  • ***
  • Mensajes: 111
Re: CRC en asm.para el 18fxxxx
« Respuesta #16 en: 21 de Febrero de 2015, 18:05:22 »
Bueno la verdad es que muchas veces lo interesante y que realmente realiza es crear tu propio codigo:

Mirando en las notas de aplicacion de microchip para otra cosa enconter justo esto:

CRC Generating and Checking - Microchip

Y tambien esto:

AN1148, Cyclic Redundancy Check (CRC) - Microchip


Bueno ya vere cuando  me pongo con esto por ahora tengo otros proyectos en mente.


Saludos groundmand






Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: CRC en asm.para el 18fxxxx
« Respuesta #17 en: 23 de Febrero de 2015, 11:43:50 »
es verdad que en ese datasheet hay un calculo CRC.pero se refiere a un CRC-16 con polinomio 0x8005    P(x) = x16+x15+x2+1

el del MODBUS es 0xA001 P(x) =x15+x13+1

pero sabes que polinomio usa el RDS? estas seguro que es el 0x8005 ?
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado misterweb

  • PIC16
  • ***
  • Mensajes: 111
Re: CRC en asm.para el 18fxxxx
« Respuesta #18 en: 03 de Marzo de 2015, 17:35:27 »
Perdona groundman me desconecte del tema y es que ultimamente estoy bastante liado entre el trabajo y otras cosas:

En RDS cada bloque se transmite es de  26 bits

16 bits datos  + 10 bits CRC

 Los 10 bits de CR se obtienen  del polinomio                G(x) = x^10 + x^8 + x^7 + x^5 + x^4 + x^3 + 1

 Como lo  hace todavia no lo tengo claro, cuando retome el tema lo mirare mas correctamente si bien es verdad que cuando yo lo quise hacer no encontraba informacion al respecto en ese momento, pero ahora ya hay paginas que ponen hasta el programa ya echo.

Este documento de la universidad de Londres me parece muy bueno y trae el programa para hacerlo.

RDS UNIVERSITY COLLEGE LONDON

 Y la verdad es que no me voy a comer el coco y cuando lo tenga que hacer lo copio tal cual.


 Esta pagina en aleman tiene un programa que tambien lo hace:

RDS


Habia un italiano por ahi controlaba equipos atraves del RDS, puede ser  interesante en aplicaciones como obtener la hora, geolocalizacion etc...

Al igual que tu me parece muy interesante hacerse uno mismo los propios programas por que la verdad es que es la forma de disfrutar de esto, pero en este caso no me comere el coco, por que este tema es muy especifico y luego mas tarde tampoco va a tener mucha mas aplicacion en otras cosas.

Un placer charlar contigo groundman .... nos vemos.



______________________________________________________________________________________________________________________
Mi Blog

https://misterelectronico.wordpress.com/entranador-fabricacion-casera/

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: CRC en asm.para el 18fxxxx
« Respuesta #19 en: 28 de Marzo de 2015, 05:14:19 »
es verdad que en ese datasheet hay un calculo CRC.pero se refiere a un CRC-16 con polinomio 0x8005    P(x) = x16+x15+x2+1

el del MODBUS es 0xA001 P(x) =x15+x13+1

pero sabes que polinomio usa el RDS? estas seguro que es el 0x8005 ?


Esto es un poquito viejo, pero me meto ya que quedo ahi nomas

el MODBUS usa 0xA001 como tambien 0x8005, lo que difiere es como se lo transcribe

Reversed: 0xA001  = 1010 0000 0000 0001
Normal: 0x8005     = 1000 0000 0000 0101  <-- miralo de aca

El reversed comienza contando desde x^0 en adelante, mientras que el normal desde el x^15
En otras notaciones algunos omiten el polinomio de mayor tamaño y otros omiten el de menor tamaño, ya que siempre son 1.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: CRC en asm.para el 18fxxxx
« Respuesta #20 en: 28 de Marzo de 2015, 11:57:58 »
tienes razon KILLERJC.hace tiempo vi lo de reverse.pero no sabia exactamente lo que queria decir.tampoco se para que sirve elegir entre uno u otro si al final
se obtiene el mismo resultado.o quizas no. :?
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: CRC en asm.para el 18fxxxx
« Respuesta #21 en: 28 de Marzo de 2015, 20:41:42 »
Como dije son notaciones... son el mismo numero nomas que escrito de otra forma.

Y por ahi como dije algunos autores omiten el bit mas significante o el menos significante ya que estos son siempre 1 (cada loco con su tema xD)


 

anything