Autor Tema: receptor RS-485 para las librerias de MikroC en visual studio  (Leído 4624 veces)

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

Desconectado ale_nevermind

  • PIC10
  • *
  • Mensajes: 25
receptor RS-485 para las librerias de MikroC en visual studio
« en: 03 de Noviembre de 2009, 01:35:05 »
buenas a todos...
les comento q estoy haciendo un proyecto donde debo recibir diversos datos desde uno o varios microcontroladores en diversos puntos de una instalacion, el protocolo q mas se acomodo a mis necesidades fue el RS485, ya logre hacer codigos de prueba donde entablo comunicaciones en ambientes muy ruidosos conn cables de hasta 300 mts, y los resultados fueron exitosos.

Lo siguiente en mi proyecto es enviar todo a una PC donde debo hacer graficas y bases de datos de acuerdo a las señales recibidas...

Para la parte de los microcontroladores aproveche las librerias RS485 q nos brinda el compilador MIKROC, el cual ya envia una trama establecida q contiene 8 bytes START,ADDRESS,DATALEN,DATA1...DATA3,CRC,END. en datalen se especifica cuantos datos deben llegar y si es el master o algun slave quien envia los datos... tbn se cuenta con calculos de CRC para desechar la trama si se detectan errores..

Toda la informacion referente al tratamiento de datos fue tomada en cuenta, y lo q hize fue diseñar un software que rearme la trama y q tome los datos para poder interpretarlos. La PC estara luego manejada como un slave mas cundo sea necesario,  inicialmente solo quiero ver los datos en pantalla, y para eso pongo el puerto virtual del proteus a escuchar los datos q manda cada uno. Como veran,  al escuchar al slave, se reciben los datos, y estos son interpretados sin problema, al igual q cuando se escucha al Master, pero cuando se escucha la salida del driver 485 en el puerto se muestran errores, llegan los datos al programa, pero solo llegan los primeros 7bytes, y nunca llega el byte END, por lo q el programa (como yo lo programe) desecha todo el buffer recibido.... Mi pregunta es pq se produce ese error, si el protocolo solo hace q uno de ellos envie a la vez, y esta comprobado q escuchando uno a la vez si se reciben bien los datos.

Mas abajo encontraran la simulacion con los Hex correspondientes, como tbn el codigo en VS2005... para simular utilize el virtual serial port driver, COM2 en proteus, y COM4 en mi programa de prueba.

Como dije anteriormente el codigo de los mikros dio buenos resultados,... ya q lo hize fue enviar un dato conocido desde el master hacia un slave, cuando este lo detecta envia una respuesta, el master al recibir la respuesta vuelvaa enviar al slave, y asi sucesivamente, teniendo indicadores paa saber si el pic responde al envio y recepcion... el codigo a continuacion es el encargado de eso... (claro q algunas cosas fui quitando y otras aumentando)

Espero q puedan ayudarme, ya q con esto lograremos algo muuuucho mas grande aun...





Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: receptor RS-485 para las librerias de MikroC en visual studio
« Respuesta #1 en: 05 de Noviembre de 2009, 08:52:55 »
hola, una consulta,  cuando dices que miras en el puerto de la pc... empleas un conversor rs232/rs485 ?

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado ale_nevermind

  • PIC10
  • *
  • Mensajes: 25
Re: receptor RS-485 para las librerias de MikroC en visual studio
« Respuesta #2 en: 05 de Noviembre de 2009, 21:12:54 »
pues claro q si.... por ahora es simplemente simulacion la cosa... y para este proposito utilizo un emulador de puertos virtuales, donde asigno COM4 al software, y COM2 al proteus, luego este programa empareja ambos. De hecho en la simulacion la señal  q llega al puerto es la salida del bus 485 ya conovertida a TTL, pero no es necesario convertirla a 232 en simulacion.. cuando arme el proyecto, lo q hare sera armar un conversor con todas las de la ley

Desconectado sheimy

  • PIC10
  • *
  • Mensajes: 1
Re: receptor RS-485 para las librerias de MikroC en visual studio
« Respuesta #3 en: 13 de Febrero de 2010, 11:21:40 »
buenas a todos...
les comento q estoy haciendo un proyecto donde debo recibir diversos datos desde uno o varios microcontroladores en diversos puntos de una instalacion, el protocolo q mas se acomodo a mis necesidades fue el RS485, ya logre hacer codigos de prueba donde entablo comunicaciones en ambientes muy ruidosos conn cables de hasta 300 mts, y los resultados fueron exitosos.

Lo siguiente en mi proyecto es enviar todo a una PC donde debo hacer graficas y bases de datos de acuerdo a las señales recibidas...

Para la parte de los microcontroladores aproveche las librerias RS485 q nos brinda el compilador MIKROC, el cual ya envia una trama establecida q contiene 8 bytes START,ADDRESS,DATALEN,DATA1...DATA3,CRC,END. en datalen se especifica cuantos datos deben llegar y si es el master o algun slave quien envia los datos... tbn se cuenta con calculos de CRC para desechar la trama si se detectan errores..

Toda la informacion referente al tratamiento de datos fue tomada en cuenta, y lo q hize fue diseñar un software que rearme la trama y q tome los datos para poder interpretarlos. La PC estara luego manejada como un slave mas cundo sea necesario,  inicialmente solo quiero ver los datos en pantalla, y para eso pongo el puerto virtual del proteus a escuchar los datos q manda cada uno. Como veran,  al escuchar al slave, se reciben los datos, y estos son interpretados sin problema, al igual q cuando se escucha al Master, pero cuando se escucha la salida del driver 485 en el puerto se muestran errores, llegan los datos al programa, pero solo llegan los primeros 7bytes, y nunca llega el byte END, por lo q el programa (como yo lo programe) desecha todo el buffer recibido.... Mi pregunta es pq se produce ese error, si el protocolo solo hace q uno de ellos envie a la vez, y esta comprobado q escuchando uno a la vez si se reciben bien los datos.

Mas abajo encontraran la simulacion con los Hex correspondientes, como tbn el codigo en VS2005... para simular utilize el virtual serial port driver, COM2 en proteus, y COM4 en mi programa de prueba.

Como dije anteriormente el codigo de los mikros dio buenos resultados,... ya q lo hize fue enviar un dato conocido desde el master hacia un slave, cuando este lo detecta envia una respuesta, el master al recibir la respuesta vuelvaa enviar al slave, y asi sucesivamente, teniendo indicadores paa saber si el pic responde al envio y recepcion... el codigo a continuacion es el encargado de eso... (claro q algunas cosas fui quitando y otras aumentando)

Espero q puedan ayudarme, ya q con esto lograremos algo muuuucho mas grande aun...






pales what i should send from PC to micro
i means what is the buffer should contain like slave ID,Start_bit < others

what is the buffer constants

thanks


 

anything