Inicio > Ingeniería Electrónica > diegoantelo > como funciona un datalogger?

como funciona un datalogger?

Experto:
Usuario:
Fecha: 15/05/2008
Valoración: (4,00 sobre 5) Categoría: Ingeniería Electrónica
08/05/2008
pelandruska2, usuario preguntando en Ingeniería Electrónica
Usuario
hola como estas como segun veo tu eres una persona experta en programacion y me interesa saber que protocolo de programacion utilizan con los microcontroladores que se utilizan en el datalogger y tambien quiero saber como funciona el protocolo para que este guarde los datos en una memoria externa y despues los pueda yo leer por medio de una interface en un computador.
 
gracias por tu atencion y espero tu pronta respuesta.
09/05/2008
pelandruska2, experto respondiendo en Ingeniería Electrónica
Experto
La verdad es que no se que es un datalogger.  Si se lo que es un microcontrolador y una memoria externa. Los microcontroladores de microchip (los que he usado siempre) se programan en lenguaje ensamblador (parecido al del pc, pero con muchos menos registros, memoria interna e instrucciones).
Las memorias externas pueden ser de acceso serie o paralelo. Las primeras necesitan 5 o 6 conexiones. Alimentacion, un reset para volver la posicion a cero, un clock para avanzar una posicion los datos, la salida de datos (que va a ser uno o cero, ta da de a un bit), una pata que elije si vas a leer o grabar, y una alimentacion extra mas grande en el caso de memorias que se pueden grabar una sola vez (ejemplo tarjetas de telefono).
Las memorias de acceso paralelo, (de acuerdo a su capacidad) necesitan de por lo menos 8 conexiones para datos (ya que te lanza los 8 bits en paralelo), unos 10 bits de direccionamiento (sea una memoria de 1024 bits, por ejemplo), un pin que la active, otro pin para seleccionar lectura o escritura, y la alimentacion.
No se tu nivel de conocimientos en electronica, pero la posicion de los datos en una memoria es un numero en binario representado por tensiones que son 0V para el cero y 5V para el 1.
Hasta aqui vamos? contestame y vamos acomodando el rumbo hacia lo que te interesa saber. Saludos
 
 
09/05/2008
pelandruska2, usuario preguntando en Ingeniería Electrónica
Usuario
hola gracias por tu pronta respuesta hasta el momento todo lo que me escribes lo entiendo pero depronto quiciera que me explicaras mas afondo como hace la memoria para guardar los datos segun el pulso del reloj, ha y por cierto un datalogger es basicamente es un dispositivo que me mide la temperatura. humedad relativa, punto rocio e intencidad de luz luego de que me mide estos parametros me los digitaliza por medio del un conversor analogo digital de un micro y por ultimo me guarda estos datos a travez de un protocolo de comunicacion en una memoria externa de 2Mb, para que el usuario despues de un determinado tiempo lea los datos que se encuentran el la memoria, los elimine y reinicie el dispositivo para que empieze a tomar datos de nuevo y otra duda que tengo que es muy grande es que no se que tipo de protocolo utiliza el microcontrolosdor para enviar los datos digitales a la memoria no se si tambien tu puedas regalarme ese dato.
gracias por tu interes espero tu valiosa colaboracion.
saludos....
 
10/05/2008
pelandruska2, experto respondiendo en Ingeniería Electrónica
Experto
Bien. Ya te he dicho que depende de si es una memoria serie o paralelo.
Y no hay mucho protocolo. Hagamos un ejemplo básico.
Supongamos memoria paralelo de 128 bytes de capacidad, con 8 bits de datos.
Para elegir a cual de las 128 posiciones deseas acceder (ya sea para leer o escribir) necesitas un numero de 7 bits.
El acceso a las posiciones lo dariamos con la siguiente tabla:
posicion 0: 0000000
posicion 1: 0000001
posicion 2: 0000010
posicion 3: 0000011
........
posicion 126: 1111110
posicion 127: 1111111
O sea que el integrado tendría 7 patas (que se llaman de direccionamiento), donde poniendole 1 o 0 a cada pata eliges la posicion a la que le vas a hacer algo. (1=5V ; 0=0V)
Ahora, falta que le pongamos el dato (si es que le vamos a escribir algo)
Para eso necesitamos 8 patas mas. Por ejemplo queremos poner el dato 253 (1111101)
entonces ponemos ese valor binario en las patas D0,D1,D2,...D7 (con los voltajes de 5V o 0V)
ahora le indicamos si lo que queremos es leer o escribir. Para lo cual hay una pata R/W (read o write, leer o escribir) que es 0 para leer o 1 para escribir.
Luego, le das 1 en otra pata que es digamos como decirle, ponte en accion (CS=chip select) es decir te he seleccionado memoria, has lo que te digo, y los datos se graban
o sea que numero por numero, o letra por letra, tenes que ir poniendo la direccion y el dato luego si es leer o escribir y darle machacar.
Nuestro integrado teorico tendria pues:
7 patas de direccionamiento (A0...A6)
8 patas de datos (D0...D7)
1 pata leer o escribir (RD / WR)
1 pata ponte a trabajar (CS)
2 patas de alimentacion (masa y 5V)
con lo cual, son 19 patas, seguro que vendria de 20, con una no conectada
para la memoria de 2MB se necesitarian de 19 patas de direccionamiento. con lo cual tu integrado de memoria debe tener unas 32 patas por lo menos, si es de direccionamiento paralelo.
bueno, entiende esto y le seguimos.
 
 
 
 
 
 
12/05/2008
pelandruska2, usuario preguntando en Ingeniería Electrónica
Usuario
hola me encanto tu ejemplo. bien hata este momento todo claro pero quiero saber si entre el micro y la memoria no se necesita ningun tipo de interfaz para que los datos puedan ser grabados en las posiciones que ya me mencionaste o solamente se conecta el bus con los datos directamente a la memoria.
 
gracias espero tu pronta respuesta saludos.
 
13/05/2008
pelandruska2, experto respondiendo en Ingeniería Electrónica
Experto
Aja.
-Si te alcanzan los pines de entrada y salida del microcontrolador, puedes manejar la memoria directamente con el micro.
-Si no te alcanzan, pues tienes que tranformar el direccionamiento de paralelo a serie, usando algún registro de desplazamiento.
-Si te alcanzan los pines, pero tienes que manejar mas de un dispositivo, sea memoria, pantalla, sensores, etc... bueno tienes que inventarte un bus, utilizando "buffers", lineas de selección de dispositivo, etc..
Ejemplos:
1) Digamos que los pines de entrada/salida del micro, son suficientes para manejar la memoria directamente, pero quieres usar 8 memorias. Agregas 8 buffers (tri-state) y mediante 3 pines del micro (con 3 pines logras 8 combinaciones digitales) puedes a través de un decodificador de 3 a 8 (integrado con 3 entradas y 8 salidas), ir seleccionando a cual memoria le hablas (a través de los buffers) y asi manejar mas de lo q dispones de capacidad.
2) Sea que los pines de tu micro no alcanzan para direccionar la memoria completa. Utilizando 1 solo pin del micro y un registro de desplazamiento, le vas inyectando bit por bit la direccion y cuando la tienes cargada completamente, efectuas la operación de lectura y escritura. En este caso utilizarias un direccionamiento serie.
3) Igualmente para los datos, que normalmente son de 8 bits / líneas / pines. 
Como vamos, se entiende?
 
 
13/05/2008
pelandruska2, experto respondiendo en Ingeniería Electrónica
Experto
Ah, me olvidaba un detalle importante.
Si la memoria es del tipo estático, le escribes los datos y vienes al otro día, (siempre q la alimentación siga encendida) y los datos allí están todavía.
Si es del tipo dinámico, tienes que "refrescarle" los datos, cada algunos milisegundos, constantemente, para que se mantengan.
Tu dirás, para que cuernos, las hacen dinámicas, y el caso es que son más económicas, ya que la "celda" de memoria es una especie de micro capacitor que se va descargando, por lo cual  la tienes que estar leyendo y volviendo a escribir constantemente. Una tortura electrónica ... pero mas barata.
Saludos
 
 
14/05/2008
pelandruska2, usuario preguntando en Ingeniería Electrónica
Usuario
huyyyyyy que buen detalle pero uno tiene que ir y fisicamente extraerla y leerla o es una rutina que se realiza en el programa del micro para que la este refrescando constantemente para que no se pierdan los datos.
 
esta muy interesante este tema sera que dentro de tus curiosidades como programador no tienes un programa hecho en assembler que me envies para hecharle una ojeadita te lo agradeceria en el alma..
 
gracias saludos T,Q,M,
14/05/2008
pelandruska2, experto respondiendo en Ingeniería Electrónica
Experto
En este momento no tengo nada a la mano, ya que hace bastante que no programo, pero te voy a buscar alguno, y luego lo comentamos.
El refresco lo haces obviamente con una rutina dentro del programa del microcontrolador-
 
15/05/2008
pelandruska2, usuario preguntando en Ingeniería Electrónica
Usuario
te agradezco infinitamente tu ayuda me sirbio ciento por ciento y espero que no te olvides de mi favor de el programa para que me lo hagas llegar y asi porder depronto despejar muchas mas dudas no solo con respecto al funcionamiento de las memorias externas si no tambien hacia otros temas de progamacion..
 
gracias y espero tu pronta respuesta...
 
SALUDOS..
Enlaces patrocinados