Autor Tema: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC  (Leído 3312 veces)

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

Desconectado FVP

  • PIC10
  • *
  • Mensajes: 7
Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« en: 27 de Octubre de 2004, 08:37:00 »
Hola. RollEyes

Alguien sabe de algún ejemplo de programa para capturar tramas con un PIC en modo serial que detecte automáticamente la velocidad en que esta recibiendo los datos y que transfiera todo lo que recibió a una PC.
Gracias a todos.Rebotado

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« Respuesta #1 en: 27 de Octubre de 2004, 11:30:00 »
Que onda FVP,
Podrias  probar usando la maxima velocidad de recepcion de datos que puedas usar en el pic y tomarla como limite establecido de recepcion, asi si si usas 9600(lo cual no es nada alto, jejeje) sabes que puedes recibir a 2400 y 4800 y no tendrias que estar chekando velocidad de datos ,Otra IDEA podria ser , que elabores un frecuencimetro(por ahi hay bastante informacion y el pana khasistos hiso uno con interrupciones "muy preciso" y usando PROTON+) y establescas la velocidad de los datos y despues se autocinfigure para determinada velocidad, eso si, esos bits de datos siempre estaran presentes en transmision(del pc o del equipo al pic) es como una clave de control que al inicio recibiria el micro para saber la velocidad.
Usa los comando serin serout (para emulacion de transmision asincrona sin usart en tu modelo) o hserin hserout (para los modelos que tienen usart).

Desconectado FVP

  • PIC10
  • *
  • Mensajes: 7
RE: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« Respuesta #2 en: 30 de Octubre de 2004, 09:18:00 »
Hola gracias por responder.
Que pasaría si la recepción serial no es estándar digamos 3600bps o 1250bps?
Y el problema de medir la velocidad con un frecuencimetro es que los datos varían continuamente si por ejemplo se recibe algo a 1200bps y el dato en ves de ser 1010101010 es 1100110011 la frecuencia que mediría el frecuencimetro seria distinta a la tomada con el otro dato!
Yo lo que quiero hacer es un equipo que capture cualquier trama no solo serial que capture los datos binarios.
Por ejemplo que mida el tiempo que estuvo el 1 prendido y el 0 y con eso establecer la velocidad de transmisión.

Gracias por tu repuesta.

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« Respuesta #3 en: 30 de Octubre de 2004, 15:16:00 »
Hola FVP,
parece que no me explique muy bien, si ingresas una señalizacion de control al inicio de cada sesion de uso, es entendible que esa señalizacion de control es para revizar VELOCIDAD, estoy excluye datos  ok?, se puede hacer una señalizacion de control  empezando por el origen o en la caida del origen, es decir, 1010 o 0101,  tomandose en cuenta que aproximadamente 2400 baud seria 2.4kbps, luego entonces si es posible esta señalizacion para decirle al micro en tiempo real ANTES de empezar a enviar informacion (DATOS, ya sea con paridad, sin paridad de 7 u 8 bits), Ahora esto quiere decir que el pic no podra adivinar  la velocidad esto seria valido para una aplicacion en especifico que SIEMPRE envie esta señalizacin , no para todas las transmisiones que solo  envian datos y ya..
Una opcion es manejar la interupcion de portb.0 para saber cuando es 1 y cuando es cero, y hasta medir el tiempo del cambio, pero que pasa cuando recibes un 00000 y un 11111 , por eso es neceasrio el tiempo y la mejor opcion es hacer una aplicacion ESPECIFICA, es decir que tu pc y el  interfaz software que uses(en visual,delphi,c,etc..) envie SIEMPRE una señalizacion de control .
Otra opcion es usar valores mayores de RECEPCION como te comente en el primer post, para una transmision que radica bajo 9600(este es solo un ejemplo por supuesto) puedes poner una recepcion de 9600 y siempre te recibira datos miesntras no exceda esta velocidad.(lo veo la mejor ocpion para tu proyecto). Ahora tu preguntas  como capturar tramas,ye te e expuesto varias opciones,luego preguntas por calculo de velocidad, esto tambien podria ser posible de la forma ya mencionada. para saber cuanto estuvo en 1 logico y cambio a cero logico solo basta un FRECUENCIMETRO, pero ya te comente que pasa con los 111111 y con los 00000,... solo es cosa de que empiezes a experimentar, empieza simulando y luego te armas el circuito para pruebas reales
Salu2 pana

Desconectado MarquesSalsero

  • PIC18
  • ****
  • Mensajes: 467
RE: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« Respuesta #4 en: 31 de Octubre de 2004, 04:33:00 »
Escrito originalmente por lager
Otra opcion es usar valores mayores de RECEPCION como te comente en el primer post, para una transmision que radica bajo 9600(este es solo un ejemplo por supuesto) puedes poner una recepcion de 9600 y siempre te recibira datos miesntras no exceda esta velocidad.


El que lo pongas a 9600 no implica, y no lo va a hacer, que vaya a recibir correctamente las velocidades inferiores, si eso fuese cierto que sentido tendria el preocuparte de la velocidad de recepcion. Simplemente pondriamos como velocidad de recepcion 115KBps y recibiriamos todo. ¿No?.

En mi empresa tenemos un capturador de datos para analizar posteriormente y tiene tres modos diferentes, en el primero hace un muestreo del caudal de datos a una velocidad muy alta y lo almacena en una memoria intermedia y posteriormente lo analiza hasta que consigue datos coherentes. En el segundo modo hace un muetreo a la velocidad maxima y verifica si recibe algo coherente, si no es asi baja la velocidad y lo vuelve a intentar. En el tercer modo intenta detectar la duracion de los bits de start y en base a eso calcula la velocidad de transmision.

El modo mas fiable es el primero pero no es en tiempo real, el que mas usamos es el segundo ya que aunque tengasque preparar el sistema luego funciona perfectamente.
Hay 10 tipos de personas las que entienden binario y las que no

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« Respuesta #5 en: 31 de Octubre de 2004, 09:55:00 »
loco , Gracias por hacerme dar cuenta de mi error pana MarquesSalsero,  Sonrisa
No cabe duda que este foro es magnifico ,son muy buenas opciones las que planteaste pana, solo es cosa que  FVP las lleve a cabo para hechar a andar su proyecto.  Sonrisa

Un abrazo panas

Desconectado FVP

  • PIC10
  • *
  • Mensajes: 7
RE: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« Respuesta #6 en: 31 de Octubre de 2004, 12:53:00 »
Holas gentes.
Muchísimas gracias por sus respuestas.Sonrisa
Creo que eso de medir el BIT de control se acercaría mas a lo que quiero hacer.
Solo tengo una duda mas!
Como puedo hacer para que el micro me mida el tiempo que estuvo en 1 y el tiempo que estuvo en 0?
Que funciones del PBP me aconsejan usar?
Gracias a todos.

Desconectado lager

  • PIC18
  • ****
  • Mensajes: 258
RE: Capturar tramas con auto BIT RATE desde un PIC y pasarlas a PC
« Respuesta #7 en: 31 de Octubre de 2004, 18:04:00 »
Que onda FVP,
En proton+, una forma rapida seria con la interrupcin del portb.0 como te comente en post anteriores, cuando el estado del puerto cambie se llevaria a acbo la interrupcion, otra es  con un bloque condicional (si no piensas hacer nada mas durante el chekeo de cambio de estado) con el comando IF.
La de interrupcion seria con  ON_INTERRUPT GOTO Tu_interrupcion ya que  es inmediata. Solo cuidado con las variables de sistema que uses para no perder informacion, da clik en buscar y encontraras una cantidad de post dedicados a interrupciones y sus manejos,el ultimo post (del pana Khasistos) contemplando estas interrupciones por hardware para proton+ y sus cuidados .
El tiempo lo puedes contar con  tmr1 o tmr0(segun la frecuencia maxima que ingreses)
Paralelo ala modalidad que manejarias con el IF estaria el comando Counter, restringido a determinadas frecuencias dependiendo el cristal.
En fin puedes hacerlo de muchas formas, pero lo mejor seria probar para ver que necesitas exactamente en TU proyecto.
Salu2 panas