Autor Tema: decodificad codigo manchester  (Leído 2040 veces)

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

Desconectado alex22ra

  • PIC10
  • *
  • Mensajes: 41
decodificad codigo manchester
« en: 23 de Marzo de 2005, 09:41:00 »
Tengo que decodificar el codigo que me da un transponder, pero me lo da en codigo manchester. Tengo que programarlo bajo un pic 16F876 y habia pensado conectarlo a una interrupcion por cambio en las lineas del puerto pero tengo problemas con el ruido, ya que cualquier cambio de nivel producido por el ruido provoca la interrupcion.
Por flancos tampoco se puede hacer.
Se que el tiempo de transmision de un bit es 210 us.
Si alguien me puede comentar algo(a traves del foro o por correo: alex22ra@hotmail.com ) se lo agradeceria.

Salu2.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: decodificad codigo manchester
« Respuesta #1 en: 23 de Marzo de 2005, 14:11:00 »
Contra el ruido introduce un schmitt trigger, o sino algun filtro especifico.

salu2

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: decodificad codigo manchester
« Respuesta #2 en: 23 de Marzo de 2005, 23:40:00 »
Bueno si no puedes usar el Schmitt trigger entonces monta un filtro consistente de 1 condensador de baja capacidad (unos 100 nF) entre las lineas de dato y tierra.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: decodificad codigo manchester
« Respuesta #3 en: 24 de Marzo de 2005, 00:24:00 »
Si la duración de un bit siempre es la misma, quizás puedas programarlo leyendo lo que hay en el puerto en cada periodo de esa frecuencia de entrada, o sea, cada 210 us. Así no entrarás en la interrupción cuando lleguen flancos de subida o bajada que podrían ser ruido, sino cuando "toque"

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: decodificad codigo manchester
« Respuesta #4 en: 24 de Marzo de 2005, 19:25:00 »
O sea nocturno, t refieres a usar como lo hacen los receptores asincronicos?? (RS-232), no estaria mal, cuando t refieres a toque t refieres al nivel?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: decodificad codigo manchester
« Respuesta #5 en: 25 de Marzo de 2005, 00:24:00 »
Bueno, con "cuando toque" quiero decir que se haga una lectura cada 210 us.
De todas formas, habría que probar porque con este método la gestión del tiempo es crítica y encontrar la temporización exacta puede no ser fácil.

Yo probaría con:
#use rs232(BAUD=4762 ,BITS=8)

4762 es el resultado de dividir 1.000.000 / 210 casi exacto, así que si no funciona podrías probar con valores cercanos por encima o por debajo.

Por cierto, he asumido que usas C, aunque quizás no sea así Muchas risas

Desconectado el-dani

  • PIC10
  • *
  • Mensajes: 12
RE: decodificad codigo manchester
« Respuesta #6 en: 25 de Marzo de 2005, 22:18:00 »
yo probaría alguna especie de debouncing, es decir una vez se te produzca la interrupción por cambio de linea, lee algunas veces más el pin de entrada para confirmar el estado, y trata de reducir lo más que puedas la impedancia de entrada poniendo una resistencia a tierra de 1K o menor, y un condensador de unos pocos nF 4,7 o algo así
Espero haberte ayudado
Saludos

Desconectado alex22ra

  • PIC10
  • *
  • Mensajes: 41
RE: decodificad codigo manchester
« Respuesta #7 en: 27 de Marzo de 2005, 11:46:00 »
Hola, lo primero, muchas gracias a todos por contestar; os comento.

Lo de poner un filtro no sirve, ya q eso solo elimina unas determinadas frecuencias, pero el problema es que segun se acerca el transponder al lector manda datos que no sirven (y son de cualquier frecuencia, incluso la de transmision de codigo).

Lo de checkear el puerto cad 210 us estaria bien pero es que entre esos 210 us se pueden producir cambios de nivel, y algunos puede que sea normal que se produzcan, mientras que otros indicarian que estoy leyendo algo incorrecto.

Os podria poner lo que obtengo del transponder mediante un analizador logico, pero no se como lo puedo insertar en el mensaje.

Ya me contareis. Gracias otra vez. Saludos.

P.D.: nocturno66 yo utilizo ensamblador.


 

anything