Memoria SRAM para almacenar datos de sensor en sistema embebido inalámbricoDOCUMENTOa) La memoria SRAM del End Device se utilizará para almacenar temporalmente los datos de muestreo del sensor cada 15 segundos, hasta que el equipo coordinador solicite los datos almacrados mediante la entrada del botón pulsador. De esta forma, la SRAM funcionará como una memoria buffer para guardar los valores del sensor hasta su envío. b) He escogido almacenar el valor del factor de conversión del valor ADC de 10 bits al valor ADC de
La memoria SRAM del dispositivo final se utilizará para almacenar temporalmente los datos de muestreo del sensor cada 15 segundos hasta que el equipo coordinador solicite los datos almacenados. El factor de conversión del valor ADC de 10 bits a 8 bits se almacenará en la memoria EEPROM de forma permanente. El código del dispositivo final cumplirá con tomar muestras cada 15 segundos, almacenarlos en SRAM, enviarlos por PWM cuando se presione el botón y almacenará el factor de conversión en EEPROM.
Similar a Memoria SRAM para almacenar datos de sensor en sistema embebido inalámbricoDOCUMENTOa) La memoria SRAM del End Device se utilizará para almacenar temporalmente los datos de muestreo del sensor cada 15 segundos, hasta que el equipo coordinador solicite los datos almacrados mediante la entrada del botón pulsador. De esta forma, la SRAM funcionará como una memoria buffer para guardar los valores del sensor hasta su envío. b) He escogido almacenar el valor del factor de conversión del valor ADC de 10 bits al valor ADC de
Similar a Memoria SRAM para almacenar datos de sensor en sistema embebido inalámbricoDOCUMENTOa) La memoria SRAM del End Device se utilizará para almacenar temporalmente los datos de muestreo del sensor cada 15 segundos, hasta que el equipo coordinador solicite los datos almacrados mediante la entrada del botón pulsador. De esta forma, la SRAM funcionará como una memoria buffer para guardar los valores del sensor hasta su envío. b) He escogido almacenar el valor del factor de conversión del valor ADC de 10 bits al valor ADC de (20)
Memoria SRAM para almacenar datos de sensor en sistema embebido inalámbricoDOCUMENTOa) La memoria SRAM del End Device se utilizará para almacenar temporalmente los datos de muestreo del sensor cada 15 segundos, hasta que el equipo coordinador solicite los datos almacrados mediante la entrada del botón pulsador. De esta forma, la SRAM funcionará como una memoria buffer para guardar los valores del sensor hasta su envío. b) He escogido almacenar el valor del factor de conversión del valor ADC de 10 bits al valor ADC de
1. vasanza
SISTEMAS EMBEBIDOS
EVALUACIÓN 1P
Fecha: 2020/07/16 PAO1 2020-2021
Nombre: _________________________________________________ Paralelo: __________
Problema #1: (5%)
¿Cuáles de los siguientes enunciados son descripciones de los desafíos que deben superar los Sistemas
Ciber - físicos (CPS)?
a) Una razón clave para la necesidad de ser confiable es que estos sistemas están directamente
conectados al entorno físico y tienen un impacto inmediato en ese entorno.
b) Confidencialidad: los destinatarios previstos solo pueden acceder a la información.
c) Un sistema es seguro si está protegido contra daños causados por ataques que se originan desde
fuera del sistema.
d) Fiabilidad: previene el mal funcionamiento de los sistemas como resultado de componentes
defectuosos.
e) Reparabilidad en un tiempo determinado.
f) Disponibilidad del sistema.
g) Muchos sistemas Ciber-Físicos deben cumplir las restricciones en tiempo real.
Problema #2: (10%)
¿Cuáles de las siguientes afirmaciones de los registros de configuración del AVR ATmega328P son ciertos?
a) El registro DDRB (Port B Data Direction Register) permite configurar cada uno de los pines del
puerto B como entrada o salida. Con un valor de 1 se configura como salida el bit correspondiente
a cada pin, de igual forma, con un valor de 0 se configuran como entradas.
b) El registro DDRB (Port B Data Direction Register) permite configurar cada uno de los pines del
puerto B como entrada o salida. Con un valor de 1 se configura como entrada el bit correspondiente
a cada pin, de igual forma, con un valor de 0 se configuran como salidas.
c) El registro PORTC (Port C Data Register) permite leer el valor digital presente en los pines
correspondientes a los bits del puerto que han sido configurados como entradas previamente con el
registro DDRC.
d) El registro PORTC (Port C Data Register) permite setear un valor digital en los pines
correspondientes a los bits del puerto que han sido configurados como salidas previamente con el
registro DDRC.
e) Los bits 7 y 6 (COM2A1, COM2A0) del registro TCCR2A (Timer/Counter Control Register A)
controlan el comportamiento del pin de comparación de salida (OC2A). Si se configuran uno o
ambos COM2A1: 0 bits, la salida OC2A anula la funcionalidad del puerto normal del pin de E / S
al que está conectado. Sin embargo, tenga en cuenta que el bit de registro de dirección de datos
(DDR) correspondiente al pin OC2A debe establecerse para habilitar el controlador de salida.
f) Los bits 5 y 4 (COM2B1, COM2B0) del registro TCCR2A (Timer/Counter Control Register A)
controlan el comportamiento del pin de comparación de salida (OC2B). Si se configuran uno o
ambos COM2B1: 0 bits, la salida OC2B anula la funcionalidad normal del puerto del pin de E / S
al que está conectado. Sin embargo, tenga en cuenta que el bit de registro de dirección de datos
(DDR) correspondiente al pin OC2B debe establecerse para habilitar el controlador de salida.
g) El temporizador / contador (TCNT0) y los registros de comparación de salida (OCR0A y OCR0B)
son registros de 10 bits.
h) El registro de comparación de salida con doble búfer (OCR2A y OCR2B) se compara con el valor
del temporizador / contador en todo momento. El generador de forma de onda puede utilizar el
resultado de la comparación para generar una salida PWM o de frecuencia variable en los pines de
comparación de salida (OC2A y OC2B).
2. vasanza
Problema #3: (10%)
¿Cuáles de las siguientes afirmaciones referentes a la arquitectura del AVR ATmega328P son ciertas?
a) La SRAM es una memoria volátil con capacidad de 2K Bytes, de los cuales 0.5K Bytes son usados
por el bootloader.
b) La memoria EEPROM no volátil es de una capacidad de 1024 Bytes, además, el proceso de escritura
en esta memoria tarda 3,3 ms para ser completado y la cantidad máxima de ciclos de escritura /
borrado es de 100.000 ciclos.
c) La memoria FLASH no volátil de código de programa tiene una capacidad de 32K Bytes y puede
ser utilizada para almacenar datos de forma permanente, los mismos que pueden ser leídos y
modificados constantemente durante la ejecución de un programa. Además, para obtener un dato
almacenado en memoria FLASH es necesario incluir la librería <avr/pgmspace.h> y utilizar la
función pgm_read_byte con el puntero a la dirección en memoria del dado almacenado previamente
con la instrucción PROGMEM.
d) Este microcontrolador posee 6 entradas analógicas (ADC0-ADC5) distribuidos en los pines (0-5)
del Puerto C, respectivamente.
e) Para hacer uso de la memora SRAM de datos de forma dinámica, es suficiente crear un vector con
el tamaño máximo posible de Bytes para los datos que se desean almacenar.
f) Dela librería <EEPROM.h>, las funciones EEPROM.write(Address, Data) e
EEPROM.read(Address) permiten escribir y leer datos de tamaño de 1 Byte de direcciones
específicas en memoria EEPROM, por otro lado, las funciones EEPROM.put(Address, Data) e
EEPROM.get(Address, Data) permiten escribir y leer tipos de datos que requieren espacios mayores
a 1 Byte (Cadena de caracteres, flotas, etc.) en memoria EEPROM.
g) Para hacer uso de la memora SRAM de datos de forma estática, es necesario utilizar la función
malloc que nos permite reservar n espacios de memoria. Esta función retornara el puntero a
dirección de memoria donde escribiremos nuestros n datos, por otro lado, es importante que
liberemos el puntero (utilizando la función free) al dejar de usar los n espacios de memoria
previamente reservados, ya que de lo contrario esos espacios de memoria no podrá ser utilizado
posteriormente.
Problema #4: (50%)
El sistema propuesto en la Fig. 1 permite adquirir datos de forma inalámbrica desde un sensor cualquiera
conectado al End Device hacia un equipo Coordinador. El equipo Coordinador puede realizar en cualquier
momento la solicitud de lectura del valor analógico del sensor conectado a una de las entradas ADC del
End Device. El equipo Coordinado hace una solicitud al End Device con un tiempo aleatorio que puede
variar desde 15 Segundos hasta 24 horas (5760 muestras con la frecuencia de muestro del 1 dato por
segundo). El equipo End Device deberá realizar un muestreo cada 15 segundos del valor analógico del
sensor y deberá almacenar en memoria datos SRAM hasta el instante en que el equipo Coordinador solicite
los datos almacenados. Luego de que el End Device envié los datos al Coordinador, estos datos ya no serán
necesarios.
Fig. 1. Sistema Propuesto
3. vasanza
Usted solo realizara el código en lenguaje C del equipo End Device, cuyas entradas y salidas a ser
utilizadas se muestran en la Fig. 2.
Fig. 2. Entradas y Salidas en el End Device
La entrada sensor deberá ser conectar a una de las entradas ADC del ATmega328P, este valor ADC que el
microcontrolador leerá no será el mismo para todos los estudiantes. El valor máximo ADC leído se muestra
en la tabla 1, por lo tanto, usted deberá realizar una pequeña conversión para que el dato almacenado en
memoria SRAM este en el rango de 0 – 255 (1 Byte). Para la conversión puede utilizar la siguiente formula:
(1) 𝑉𝑎𝑙𝑜𝑟𝐴𝐷𝐶8𝑏𝑖𝑡𝑠 = 𝑉𝑎𝑙𝑜𝑟𝐴𝐷𝐶10𝑏𝑖𝑡𝑠
255
𝑉𝑎𝑙𝑜𝑟𝐴𝐷𝐶 𝑀𝑎𝑥𝑖𝑚𝑜
En donde:
(2) 𝑓𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝑐𝑜𝑛𝑣𝑒𝑟𝑠𝑖ó𝑛 =
255
𝑉𝑎𝑙𝑜𝑟𝐴𝐷𝐶 𝑀𝑎𝑥𝑖𝑚𝑜
Cada dato de muestreo de 1 Byte (𝑉𝑎𝑙𝑜𝑟𝐴𝐷𝐶8𝑏𝑖𝑡𝑠) del sensor, deberá ser almacenar en memoria SRAM
hasta que el equipo Coordinador solicite estos datos almacenados, para esto, se usará una entrada digital
llamada Push Button que simulará la solicitud realizada desde el equipo Coordinador. Debido a que no
usaremos interrupciones, se deberá consultar el valor presente en la entrada Push Button cada segundo.
El factor de conversión que se muestra en la ecuación (2), es un valor que no será cambiado y por tanto
permanecerá fijo durante toda la ejecución del programa. Se deberá almacenar este valor en una memoria
no volátil que se considere adecuada.
Tabla 1. Valor ADC máximo designado a cada estudiante
Debido a que en esta ocasión no usaremos la comunicación serial para enviar los datos almacenados en el
End Device hacia el Coordinador, simularemos el envío de los valores por medio de la salida PWM. Esto
significa, que usted pondrá como valor de dutty cicle cada uno de los valores ADC de 8 bits almacenados
en memoria SRAM, el valor de dutty cicle para la salida PWM será cambiado cada 1000 milisegundos.
4. vasanza
Nota: Es claro que mientras usted este leyendo los valores almacenados en SRAM para ponerlos en el dutty
cicle de la salida PWM, no se estará haciendo ninguna adquisición de datos y tampoco se estará pendiente
de la entrada Push Button.
Presentar:
a) Describa en sus propias palabras como será utilizada la memoria SRAM del End Device, al saber
que deberá almacenar temporalmente los datos hasta que el equipo coordinador se los solicite.
b) Indicar en sus propias palabras la memoria no volátil que usted ha escogido para almacenar el valor
del fator de conversión del valor ADC de 10 bits al valor ADC de 8 bits (en función al valor ADC
máximo de la tabla 1).
c) El código del equipo End Device que cumpla con todas las especificaciones, así como el circuito en
Proteus. Se les sugiere utilizar el compilador WinAVR.