internet de las cosas. microcontroladores y ordenadores

92
GRAU EN ENGINYERIA INFORMÀTICA INTERNET DE LES COSES. MICROCONTROLADORES Y SINGLE-BOARD COMPUTERS AUTOR: JONATHAN ALCÁZAR MORA PONENT: DR. LÉONARD JANER PRIMAVERA 2015

Upload: dinhtuyen

Post on 07-Feb-2017

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Internet de las cosas. Microcontroladores y ordenadores

GRAU EN ENGINYERIA INFORMÀTICA

INTERNET DE LES COSES. MICROCONTROLADORES Y SINGLE-BOARDCOMPUTERS

AUTOR: JONATHAN ALCÁZAR MORAPONENT: DR. LÉONARD JANER

PRIMAVERA 2015

Page 2: Internet de las cosas. Microcontroladores y ordenadores
Page 3: Internet de las cosas. Microcontroladores y ordenadores

Dedicatoria

Dedico este proyecto a mi familia, sin su esfuerzo y apoyo no estarıa hoy aquı.

Page 4: Internet de las cosas. Microcontroladores y ordenadores
Page 5: Internet de las cosas. Microcontroladores y ordenadores

Agradecimientos

A mi tutor, Dr Leonard Janer, por guiarme y aconsejarme a lo largo de todo el

proyecto.

Page 6: Internet de las cosas. Microcontroladores y ordenadores
Page 7: Internet de las cosas. Microcontroladores y ordenadores

Resumen

Este proyecto trata sobre los microcontroladores y single-board computers. La final-

idad del mismo es dar a conocer dichos dispositivos, sus posibles apliciones y venta-

jas/desventajas frente a otros equipos, ası como hacer pruebas y analizar el rendimiento

de alguno de los dispositivos analizados.

Resum

Aquest projecte tracta sobre els microcontroladors i single-board computers. La fi-

nalidad del mateix es donar a coneixer aquests dispositius, les seves possibles apli-

cacions i les avantatges/desavantatges vers altres equips, aixı com realitzar proves i

analitzar el rendiment d’alguns dels dispositius analitzats.

Abstract

This project is about the microcontrollers and single-board computers, the objective

of which is to announce those devices, their pros and cons from similar computers,

their possible applications as well as develop some tests to see their performance.

Page 8: Internet de las cosas. Microcontroladores y ordenadores
Page 9: Internet de las cosas. Microcontroladores y ordenadores

Contenido

A continuacion citamos la finalidad de cada capıtulo.

Introduccion

Introducir y explicar que es una arquitectura de computador.

Describir la arquitectura RISC. Que es y como funciona.

Describir la arquitectura CISC. Que es y como funciona.

Comparar las arquitecturas RISC y CISC.

Describir la arquitectura ARM. Que es y como funciona.

Microcontroladores

Introducir y explicar que es un microcontrolador.

Describir las caracterısticas de un microcontrolador. Para que sirven y como son.

Explicar las diferencias entre un microcontrolador y un single-board computer.

Page 10: Internet de las cosas. Microcontroladores y ordenadores

Realizar un analisis de los datos tecnicos de un microcontrolador. Caracterısticas

del procesador, memoria, almacenamiento...

Single-board computers

Introducir y explicar que es un single-board computer.

Describir las caracterısticas de un single-board computer. Para que sirven y

como son.

Enunciar las utilidades que le podemos dar a un single-board computer

Clasificacion de dispositivos

Enunciar y explicar los criterios de clasificacion que se han tenido en cuenta a la

hora de seleccionar los dispositivos con los que vamos a tratar.

Dispositivos analizados

Realizar un analisis tecnico de cada dispositivo seleccionado.

Casos practicos

Desarrollar tres casos practicos con los dispositivos seleccionados.

Page 11: Internet de las cosas. Microcontroladores y ordenadores

Indice general I

Indice general

Indice general I

Indice de figuras VII

Indice de cuadros XI

Indice de codigo XIII

1. Objetivos 1

1.1. Proposito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Finalidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3. Objeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.4. Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Introduccion 3

2.1. ¿Que es una arquitectura? . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2. Arquitectura RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Page 12: Internet de las cosas. Microcontroladores y ordenadores

Indice general II

2.3. Arquitectura CISC . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4. Ejemplo practico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.5. RISC vs CISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.6. Tabla comparativa RISC vs CISC . . . . . . . . . . . . . . . . . . . . 7

2.7. Arquitectura ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3. Microcontroladores 9

3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2. ¿Que es un microcontrolador? . . . . . . . . . . . . . . . . . . . . . 10

3.3. Caracterısticas de un microcontrolador . . . . . . . . . . . . . . . . . 10

3.4. Diferencia entre un microcontrolador y un single-board computer . . 11

3.5. Datos tecnicos de un microcontrolador . . . . . . . . . . . . . . . . . 12

4. Single-board computers 15

4.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.2. ¿Que es un single-board computer? . . . . . . . . . . . . . . . . . . 15

4.3. Caracterısticas de un single-board computer . . . . . . . . . . . . . . 16

4.4. Datos tecnicos de un single-board computer . . . . . . . . . . . . . . 17

4.5. Utilidades de un single-board computer . . . . . . . . . . . . . . . . 17

5. Clasificacion de dispositivos 19

Page 13: Internet de las cosas. Microcontroladores y ordenadores

Indice general III

5.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.2. Criterios de clasificacion . . . . . . . . . . . . . . . . . . . . . . . . 19

5.2.1. Tipo de dispositivo . . . . . . . . . . . . . . . . . . . . . . . 19

5.2.2. Orientacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5.2.3. Open/Closed hardware . . . . . . . . . . . . . . . . . . . . . 20

5.2.4. Open/Closed source . . . . . . . . . . . . . . . . . . . . . . 20

5.2.5. Especificaciones tecnicas . . . . . . . . . . . . . . . . . . . . 20

6. Dispositivos analizados 23

6.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6.2. Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

6.2.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . 24

6.2.2. Precio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

6.2.3. Inputs/Outputs . . . . . . . . . . . . . . . . . . . . . . . . . 25

6.2.4. Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

6.2.5. Procesador y memoria . . . . . . . . . . . . . . . . . . . . . 26

6.2.6. Almacenamiento . . . . . . . . . . . . . . . . . . . . . . . . 27

6.2.7. Perifericos y modulos . . . . . . . . . . . . . . . . . . . . . 27

6.2.8. Consumo y alimentacion . . . . . . . . . . . . . . . . . . . . 27

6.2.9. Sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . 27

Page 14: Internet de las cosas. Microcontroladores y ordenadores

Indice general IV

6.3. Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.3.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.3.2. Precio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.3.3. Inputs/Outputs . . . . . . . . . . . . . . . . . . . . . . . . . 29

6.3.4. Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6.3.5. Procesador y memoria . . . . . . . . . . . . . . . . . . . . . 30

6.3.6. Almacenamiento . . . . . . . . . . . . . . . . . . . . . . . . 30

6.3.7. Perifericos y modulos . . . . . . . . . . . . . . . . . . . . . 31

6.3.8. Consumo y alimentacion . . . . . . . . . . . . . . . . . . . . 31

6.3.9. Sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . 31

6.4. Odroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.4.1. Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.4.2. Precio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.4.3. Inputs/Outputs . . . . . . . . . . . . . . . . . . . . . . . . . 34

6.4.4. Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

6.4.5. Procesador y memoria . . . . . . . . . . . . . . . . . . . . . 35

6.4.6. Almacenamiento . . . . . . . . . . . . . . . . . . . . . . . . 35

6.4.7. Perifericos y modulos . . . . . . . . . . . . . . . . . . . . . 36

6.4.8. Consumo y alimentacion . . . . . . . . . . . . . . . . . . . . 36

Page 15: Internet de las cosas. Microcontroladores y ordenadores

Indice general V

6.4.9. Sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . 36

7. Casos practicos 37

7.1. Servidor de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7.1.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7.1.2. Odroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.1.3. Raspberry pi . . . . . . . . . . . . . . . . . . . . . . . . . . 42

7.1.4. Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.1.5. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7.2. Servidor web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7.2.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7.2.2. Odroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.2.3. Raspberry pi . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.2.4. Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.2.5. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.3. Media center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

7.3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . 55

7.3.2. Odroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

7.3.3. Raspberry pi . . . . . . . . . . . . . . . . . . . . . . . . . . 55

7.3.4. Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Page 16: Internet de las cosas. Microcontroladores y ordenadores

Indice general VI

7.3.5. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

8. Conclusiones 65

Bibliografıa 67

Page 17: Internet de las cosas. Microcontroladores y ordenadores

Indice de figuras VII

Indice de figuras

2.1. Circuito integrado de un microprocesador . . . . . . . . . . . . . . . 3

2.2. Procesador ARM (RISC) en unaimpresora HP . . . . . . . . . . . . . 4

2.3. Familias ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1. Procesador de un microcontrolador generico . . . . . . . . . . . . . . 9

3.2. Esquema de un computador . . . . . . . . . . . . . . . . . . . . . . . 10

3.3. Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.4. Single-board computer . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.1. Single-board computer . . . . . . . . . . . . . . . . . . . . . . . . . 15

6.1. Placa Arduino Uno . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

6.2. Esquema de puertos. Arduino Duemilanove . . . . . . . . . . . . . . 26

6.3. Placa Raspberry pi 2 b B . . . . . . . . . . . . . . . . . . . . . . . . 28

6.4. Esquema de puertos. Raspberry Pi 2 . . . . . . . . . . . . . . . . . . 30

6.5. Placa Odroid C1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Page 18: Internet de las cosas. Microcontroladores y ordenadores

Indice de figuras VIII

6.6. Esquema de puertos. Odroid C1 . . . . . . . . . . . . . . . . . . . . 35

7.1. Odroid. Conectar a unidad de red . . . . . . . . . . . . . . . . . . . . 40

7.2. Odroid. Configuracion unidad de red . . . . . . . . . . . . . . . . . . 41

7.3. Odroid. Contrasena servidor . . . . . . . . . . . . . . . . . . . . . . 41

7.4. Odroid. Carpeta compartida . . . . . . . . . . . . . . . . . . . . . . . 42

7.5. Raspberry. Conectar a unidad de red . . . . . . . . . . . . . . . . . . 45

7.6. Raspberry. Configuracion unidad de red . . . . . . . . . . . . . . . . 45

7.7. Raspberry. Contrasena servidor . . . . . . . . . . . . . . . . . . . . . 46

7.8. Raspberry. Carpeta compartida . . . . . . . . . . . . . . . . . . . . . 46

7.9. Raspberry. Prueba de velocidad . . . . . . . . . . . . . . . . . . . . . 47

7.10. Odroid. Prueba de velocidad . . . . . . . . . . . . . . . . . . . . . . 47

7.11. Odroid. Grafica peticiones/ms . . . . . . . . . . . . . . . . . . . . . 51

7.12. Raspberry. Grafica peticiones/ms . . . . . . . . . . . . . . . . . . . . 52

7.13. apache.org. Grafica peticiones/ms . . . . . . . . . . . . . . . . . . . 53

7.14. Kodi. Rendimiento reproductor . . . . . . . . . . . . . . . . . . . . . 57

7.15. Kodi. Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

7.16. Kodi. Pictures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7.17. Kodi. Videos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

7.18. Kodi. Reproductor . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Page 19: Internet de las cosas. Microcontroladores y ordenadores

Indice de figuras IX

7.19. Kodi. Video add-ons . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.20. Kodi. Youtube Video . . . . . . . . . . . . . . . . . . . . . . . . . . 62

7.21. Kodi. Music add-ons . . . . . . . . . . . . . . . . . . . . . . . . . . 62

7.22. Kodi. Music streaming . . . . . . . . . . . . . . . . . . . . . . . . . 63

Page 20: Internet de las cosas. Microcontroladores y ordenadores
Page 21: Internet de las cosas. Microcontroladores y ordenadores

Indice de cuadros XI

Indice de cuadros

2.1. Cuadro comparativo RISC vs CISC . . . . . . . . . . . . . . . . . . 7

Page 22: Internet de las cosas. Microcontroladores y ordenadores
Page 23: Internet de las cosas. Microcontroladores y ordenadores

Indice de codigo XIII

Indice de codigo

7.1. Odroid. fdisk -l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.2. Odroid. /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7.3. Odroid. mkdir and chown . . . . . . . . . . . . . . . . . . . . . . . . 39

7.4. Odroid. mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7.5. Odroid. install samba . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7.6. Odroid. /etc/samba/smb.conf . . . . . . . . . . . . . . . . . . . . . . 40

7.7. Odroid. smbpasswd . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7.8. Odroid. samba restart . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7.9. Raspberry. fdisk -l . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

7.10. Raspberry. /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7.11. Raspberry. mkdir and chown . . . . . . . . . . . . . . . . . . . . . . 43

7.12. Raspberry. mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

7.13. Raspberry. install samba . . . . . . . . . . . . . . . . . . . . . . . . 43

7.14. Raspberry. /etc/samba/smb.conf . . . . . . . . . . . . . . . . . . . . 44

7.15. Raspberry. smbpasswd . . . . . . . . . . . . . . . . . . . . . . . . . 44

7.16. Raspberry. samba restart . . . . . . . . . . . . . . . . . . . . . . . . 44

7.17. Raspberry. install apache2 . . . . . . . . . . . . . . . . . . . . . . . 49

7.18. Odroid. install apache2 . . . . . . . . . . . . . . . . . . . . . . . . . 49

7.19. ab command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Page 24: Internet de las cosas. Microcontroladores y ordenadores
Page 25: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 1. Objetivos 1

1. Objetivos

1.1. Proposito

El proposito de este proyecto es el de hacer una introduccion a los single-board

computers y a los microcontroladres, ası como explicar su utilidad y realizar una serie

de pruebas para analizar el comportamiento y rendimiento de los mismos.

1.2. Finalidad

Dar a conocer tanto los single-board computers como los microcontroladores ası co-

mo en que situaciones nos pueden ser de utilidad.

1.3. Objeto

Conocer la existencia de estos dispositivos, para que sirven y sus limitaciones.

Page 26: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 1. Objetivos 2

1.4. Alcance

El proyecto estara dividido en dos partes. La primera sera una parte puramente teori-

ca y la segunda sera una parte practica ası como de analisis.

Page 27: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 2. Introduccion 3

2. Introduccion

Para entender mejor el funcionamiento de los microcontroladores y computadores,

debemos primero analizar la arquitectura de sus procesadores. No obstante, antes de

entrar en terminologıa RISC y CISC debemos comprender a que nos referimos al

hablar de la arquitectura de un procesador.

2.1. ¿Que es una arquitectura?

Figura 2.1: Circuito integrado de un micro-procesador

Un procesador, en su interior, no es

mas que un conjunto de bloques inter-

conectados entre si. Cada uno de estos re-

aliza una funcion. El diseno de esos ele-

mentos y como se interconectan es lo que

se llama arquitectura.

Para funcionar, una computadora lee

instrucciones y datos. La velocidad a la

que lee datos y realiza calculos, viene

determinada por la potencia del micro-

procesador.

En otras palabras, un microprocesador CISC, al igual que uno RISC, estara disenado

Page 28: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 2. Introduccion 4

tanto a nivel de hardware como de software para que la ejecucion de ciertas instruc-

ciones en lenguaje maquina se haga de manera optima.

2.2. Arquitectura RISC

Figura 2.2: Procesador ARM (RISC) en un-aimpresora HP

La principal caracterıstica que identi-

fica a la arquitectura RISC (Reduced In-

struction Set Computer) es que utiliza in-

strucciones pequenas y simples que du-

ran siempre lo mismo, un ciclo de reloj.

Para ello tiene incorporado en el micro-

procesador una gran cantidad de memo-

ria con la finalidad de agilizar los accesos

a las instrucciones y variables, consigu-

iendo ası mas velocidad de procesamien-

to.

Esta arquitectura esta orientada a eje-

cutar instrucciones simples de manera rapida y eficiente, caracterıstica que la hace

idonea para los 3.Microcontroladores, donde la tarea a realizar esta muy acotada.

2.3. Arquitectura CISC

La arquitectura CISC (Complex Instruction Set Computer) no dispone de tanta memo-

ria dentro del microprocesador, por tanto los tiempos de lectura/escritura son mayores,

ası como el tiempo de ejecucion de las instrucciones. A cambio, nos da la posibilidad

de ejecutar programas complejos mas facil y eficientemente que la arquitectura RISC,

debido a que dispone de mas instrucciones.

Page 29: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 2. Introduccion 5

Se utiliza en la mayorıa de 4.Single-board computers, puesto que necesitamos una

arquitectura que nos permita desarrollar una gran variedad de tareas.

2.4. Ejemplo practico

A fin de entender correctamente como funciona una arquitectura RISC y una CISC

vamos a utilizar un ejemplo muy simple. El de preparar una tortilla.

En terminos CISC tendrıamos menos instrucciones pero a su vez mas complejas.

Paso 1. Batir los huevos.

Paso 2. Preparar la sarten.

Paso 3. Verter los huevos en la sarten.

Paso 4. Esperar unos minutos.

Paso 5. Retirar la tortilla.

Mientras que en arquitectura RISC tendrıamos un mayor nuimero de instrucciones

pero mas simples.

Paso 1. Sacar los huevos de la nevera.

Paso 2. Romper los huevos y verterlos en un plato.

Paso 3. Batirlos hasta que salga espuma.

Paso 4. Echar aceite en una sarten.

Paso 5. Calentar el aceite.

Paso 6. Verter los huevos en la sarten.

Page 30: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 2. Introduccion 6

Paso 7. Esperar unos minutos.

Paso 8. Darle la vuelta a la tortilla.

Paso 9. Esperar unos minutos.

Paso 10. Retirar la tortilla

2.5. RISC vs CISC

Los terminos reducido (RISC) y complejo (CISC) explican la caracterıstica mas

definitiva para cada arquitectura.

Sin embargo, hoy en dıa, para dos procesadores de las mismas caracterısticas, un

procesador RISC tiene una capacidad de procesamiento de dos a cuatro veces may-

or que la de un CISC. Ademas, su estructura hardware es tan simple que ocupa una

fraccion de la superfıcie ocupada por el circuito integrado de un procesador CISC.

Esto nos lleva a pensar que tarde o temprano la arquitectura RISC sustituira com-

pletamente a la arquitectura CISC, pero esto no sera realmente ası. La tendencia futura

sera dejar de crear nucleos totalmente CISC para dar paso a nucleos hıbridos RISC/-

CISC.

Page 31: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 2. Introduccion 7

2.6. Tabla comparativa RISC vs CISC

RISC CISC

Instrucciones simples de un ciclo de

reloj

Instrucciones complejas de mas de

un ciclo de reloj

Solo las intrucciones LOAD/S-

TORE referencian a la memoria

Cualquier instruccion puede refer-

enciar a la memoria

Instrucciones ejecutadas por el

hardware

Instrucciones interpretadas por el

microprograma1

Instrucciones de formato fijo Instrucciones de formato variable

Pocas instrucciones y modos Muchas instrucciones y modos

La complejidad se encuentra en el

compilador

La complejidad se encuentra en el

microprograma

Varios grupos de registros Un solo grupo de registros

Ejecucion de las instrucciones con-

currente

Ejecucion de las instrucciones poco

concurrente

Cuadro 2.1: Cuadro comparativo RISC vs CISC

2.7. Arquitectura ARM

Una vez conocemos las arquitecturas RISC y CISC es imprescindible hablar de la

arquitectura mas utilizada en los dispositivos que vamos a utilizar en este proyecto.

ARM (Advanced Risc Machine) es una arquitectura RISC de 32 bits y recientemente

de 64 bits desarollada por la empresa ARM Holdings. La relativa simplicidad de estos

procesadores los hace ideales para aplicaciones de baja potencia.[7]

1Microprograma: Set de instrucciones en lenguaje maquina que definen las operaciones que un com-

putador tiene que llevar a cabo.

Page 32: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 2. Introduccion 8

ARM tiene sus orıgenes en la pasada decada de los 80, momento en el que la com-

panıa Acorn Computers decidio emprender un proyecto para desarrollar un procesador

de gran potencia para sus equipos informaticos. El primer procesador ARM, ARM2,

vio la luz comercialmente en 1986.[4]

Los procesadores ARM se distribuyen por familias, y cada familia tiene unas propiedades

distintas(bits, cache, MHz, MIPS...). En la figura 2.3.Familias ARM vemos algunas de

las familias (ARMv4T, ARMv5TJ, ARMv6...) junto con sus procesadores (ARM926,

Cortex-A9, Cortex-M3...)

Figura 2.3: Familias ARM

Actualmente la arquitectura ARM esta presente en el mundo de los smartphones,

tablets, smart watchs, videoconsolas portatiles, calculadoras y un sin fin de dispositivos

mas.

Page 33: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 3. Microcontroladores 9

3. Microcontroladores

3.1. Introduccion

Figura 3.1: Procesador de un microcontro-lador generico

Hoy en dıa los microcontroladores

estan presentes en una gran parte de los

dispositivos que nos rodean en la vida

cotidiana. El mando de la television que

utilizamos cada dıa, por ejemplo, no es

mas que un microcontrolador con un sen-

sor de infrarrojos y botones como en-

trada de informacion. De igual manera,

todos los coches modernos tienen inte-

grados tambien un gran numero de mi-

crocontroladores, los cuales se encargan

desde el control del motor hasta el sis-

tema antibloqueo de los frenos, el control de crucero, etc.

Y podrıamos seguir tambien con un sin fin de dispositivos como los telefonos moviles,

lavadoras, neveras, lavavajillas...

Page 34: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 3. Microcontroladores 10

3.2. ¿Que es un microcontrolador?

Un microcontrolador es un ordenador, y todos los ordenadores, ya hablemos de un

ordenador de sobremesa, un portatil, un smart phone... Todos tienen las siguientes

caracterısticas en comun.

Poseen una unidad de procesamiento central[10]. Esta unidad es la encargada de

interpretar los programas informaticos ası como ejecutar las instrucciones de los

mismos.

Poseen una memoria de acceso aleatorio[9]. Utilizada para cargar las instruc-

ciones y variables de los programas que posteriormente se van a ejecutar.

Poseen dispositivos de entrada/salida[8], que permiten la comunicacion ya sea

con seres vivos o con otros dispositivos.

Figura 3.2: Esquema de un computador

3.3. Caracterısticas de un microcontrolador

Las caracterısticas o atributos principales de un microcontrolador son las siguientes.

Page 35: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 3. Microcontroladores 11

Se integran en los productos con la finalidad de controlar propiedades o acciones

de dicho producto. Serıa un ejemplo valido el control de velocidad de crucero de

un automovil.

Estan destinados a realizar una o varias tareas. Un microcontrolador programado

para controlar la pantalla de un reloj digital solo servira para eso.

La mayorıa tienen un consumo de energıa muy bajo debido a la poca potencia

de procesamiento y capacidad de sus componentes.

La mayorıa son de dimensiones reducidas y de bajo coste, importante a la hora

de facilitar la implementacion en otros dispositivos.

En algunos casos tienen que trabajar en condiciones adversas. Serıa el caso de los

microcontroladores que actuan sobre los motores de los automoviles, teniendo

que soportar altas temperaturas.

3.4. Diferencia entre un microcontrolador y un single-

board computer

Figura 3.3: Microcontrolador

La diferencia es que un ordenador

portatil o de sobremesa es un dispositi-

vo generico que no esta especializado en

ninguna tarea en concreto. Esto quiere

decir que puede servir para reproducir

multimedia, jugar a videojuegos, naveg-

ar por internet...

En cambio, un microcontrolador tiene

la tarea de controlar las acciones o

propiedades de otro dispositivo. Ademas,

Page 36: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 3. Microcontroladores 12

si lo programamos para realizar una o

varias tareas solo podra usarse para eso.

Si utilizamos el ejemplo de un microondas con una pantalla LED o LCD, no tendrıa

sentido integrar un ordenador generico para controlar dicha pantalla, ya que ademas

de aumentar el tamano y el coste del producto final se desaprovecharıa el 99% de la

potencia del ordenador.

Por contra, si implementamos un microcontrolador con las especificaciones justas

y necesarias (CPU, memoria y entradas/salidas) tendremos un computador de tamano

reducido, economico y enfocado solo a realizar la tarea en la que estamos interesados.

Figura 3.4: Single-board computer

3.5. Datos tecnicos de un microcontrolador

La variedad de procesadores que se pueden implementar en un microcontrolador es

muy amplia. Dicha variedad puede ir de simples procesadores de 4bits a procesadores

complejos de 64bits. No obstante, lo mas comun son procesadores simples y baratos.

En cuanto a la memoria, un microcontrolador de categorıa media-baja suele tener

Page 37: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 3. Microcontroladores 13

1000bytes de memoria ROM, 20bytes de memoria RAM y 8 pines de entrada/salida.

Un microcontrolador ası puede llegar a costar centimos, de esta manera no encarece el

producto final.

Page 38: Internet de las cosas. Microcontroladores y ordenadores
Page 39: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 4. Single-board computers 15

4. Single-board computers

4.1. Introduccion

Figura 4.1: Single-board computer

Como hemos expuesto anteriormente

todo computador tiene las siguientes

partes: procesador, memoria y entradas/sal-

idas. No es una excepcion el tipo de dis-

positivo en el que nos vamos a centrar.

Los single-board computers.

4.2. ¿Que es un single-

board computer?

Un single-board computer es un orde-

nador totalmente funcional que tiene to-

dos sus componentes implementados en una unica placa.

Estos equipos no cuentan con ningun tipo de ranura de expansion y no se les puede

sustituir ningun componente, no obstante la mayorıa de modelos cuentan con modu-

los o perifericos que se pueden comunicar con la placa para cubrir alguna necesidad

Page 40: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 4. Single-board computers 16

concreta.

Principalmente fueron inventados con fines educacionales, de desarrollo o para con-

trolar otros dispositivos. Sin embargo, cada vez son mas potentes y se les estan dando

usos mas variados.

4.3. Caracterısticas de un single-board computer

Las principales caracterısticas de un single board-computer son las siguientes.

Tienen un tamano muy reducido, entorno a 90mm de alto por 60mm de ancho.

El precio de la mayorıa de dispositivos ronda los 50$.

El consumo es muy bajo. Tomando por ejemplo una fuente de alimentacion de

un ordenador de sobremesa standard de 500W, una Raspberry Pi consume 3W.

Es decir, 167 veces menos.

Disponen de perifericos y modulos para ampliar sus utilidades.

No son dispositivos modulares, es decir, no podemos sustituir la tarjeta grafica,

procesador, memoria... por una de diferentes caracterısticas en caso sea nece-

sario.

Sus especificaciones son inferiores a las de un ordenador de sobremesa o portatil.

Apenas se calientan, por tanto, pueden prescindir de disipadores minimizando

ası el ruido.

Disponen de entradas/salidas para controlar otros dispositivos.

Page 41: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 4. Single-board computers 17

4.4. Datos tecnicos de un single-board computer

La variedad de single-board computers disponibles en el mercado es muy grande,

dependiendo de la gama de la placa los precios y caracterısticas pueden variar bastante.

Teniendo en cuenta esto, en la actualidad la mayorıa de dispositivos cumplen con un

gran numero de las caracterısticas citadas a continuacion. 1GB de memoria RAM.

De 2 a 4 Cores con una frecuencia de 1GHz aproximadamente.

De 20 a 40 GPIOs.

Alimentacion de 5V.

De 2 a 4 USB’s 2.0.

Ethernet a 100Mb o 1000Mb

Salida de vıdeo HDMI

Ranura para tarjeta de memoria SD/MicroSD/eMMC

4.5. Utilidades de un single-board computer

Asumiendo que tenemos un ordenador que nos cabe en la palma de la mano las

aplicaciones que podemos encontrar son muchas, sin embargo, las mas conocidas son

las siguientes.

Mini ordenador de sobremesa conectando un monitor.

Servidor web para sitios pequenos y con pocas funcionalidades.

Aplicaciones domoticas.

Page 42: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 4. Single-board computers 18

Aplicaciones de reconocimiento de voz e imagen.

Servidor de archivos.

Media center.

Servidor multimedia.

Page 43: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 5. Clasificacion de dispositivos 19

5. Clasificacion de dispositivos

5.1. Introduccion

Una vez comprendemos que es un microcontrolador y que es un computador vamos

a clasificar algunos de los dispositivos mas populares y utilizados teniendo en cuenta

sus caracterısticas y posibles usos.

5.2. Criterios de clasificacion

A continuacion explicaremos los criterios que se han tenido en cuenta para clasificar

los dispositivos contemplados en esta memoria.

5.2.1. Tipo de dispositivo

Este primer gran grupo hace referencia a si estamos tratando con un microcontro-

lador o con un computador.

Page 44: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 5. Clasificacion de dispositivos 20

5.2.2. Orientacion

Este criterio indica a que tipo de usuario esta orientado el dispositivo. Normalmente

va ligado a la facilidad de configuracion y uso

5.2.3. Open/Closed hardware

Determina si el fabricante permite que terceros desarrollen hardware compatible con

el dispositivo.

5.2.4. Open/Closed source

De igual manera que con el hardware, si el fabricante distribuye y facilita el codigo

fuente de su producto para que terceros desarrollen software asumiremos que se trata

de una placa open source, de lo contrario, estaremos hablando de una placa closed

source.

5.2.5. Especificaciones tecnicas

Otra manera de hacer una clasificacion viene dada por las especificaciones tecnicas

del dispositivo y si estas se adaptan a nuestras necesidades. A continuacion veremos

las que hemos considerado mas importantes.

Arquitectura: Arquitectura del procesador. Importante a la hora de ejecutar

ciertas instrucciones o aplicaciones.

Precio: Precio del dispositivo. Directamente proporcional a las especificaciones

del mismo.

Page 45: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 5. Clasificacion de dispositivos 21

Inputs/Outputs: Entradas y salidas que tiene. Dependera de si queremos contro-

lar mas o menos dispositivos.

Procesador: Velocidad del procesador. Si tenemos la necesidad de hacer muchos

calculos u operaciones nos decantaremos a un dispositivo con mas procesadores

y mas potentes

Memoria: Cantidad y velocidad de la misma. Importante a la hora de almacenar

mucha informacion en la memoria temporal.

Puertos: Cantidad y tipo de puertos que dispone el dispositivo. USB, Ethernet...

Almacenamiento: Capacidad de almacenamiento de datos y como.

Perifericos/Modulos: Perifericos o modulos.

Consumo: Consumo electrico. Dato a tener en cuenta cuando, por ejemplo,

necesitamos 10 dispositivos iguales encendidos las 24 horas.

Tamano: Dimensiones del dispositivo. En caso de que lo queramos implementar

dentro de otro dispositivo

Alimentacion: Alimentacion requerida por la placa.

Sistema operativo: Sistemas operativos soportados. La mayorıa son sistemas

UNIX1

1Ver enlace: http://www.unix.org/what_is_unix.html

Page 46: Internet de las cosas. Microcontroladores y ordenadores
Page 47: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 23

6. Dispositivos analizados

6.1. Introduccion

Existe una gran variedad de dispositivos en el mercado, no obstante, hemos elegido

los que nos han parecido mas atractivos para analizarlos y realizar una serie de casos

practicos para medir su rendimiento y utilidad.

Nos centraremos basicamente en tres dispositivos:

Arduino: Por ser el microcontrolador mas implementado y conocido.

Raspberry Pi: Por ser el single-board computer mas famoso en su clase.

Odroid: Por que, pese a no ser altamente conocido, ofrece mejores caracterısti-

cas por el mismo precio que sus competidores.

Page 48: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 24

6.2. Arduino

Figura 6.1: Placa Arduino Uno

El microcontrolador por excelencia,

Arduino es una plataforma open source,

orientada al desarrollo y basada en una

placa con un microcontrolador y her-

ramientas para programar el mismo.

Los microcontroladores que imple-

menta Arduino pertenecen en su gran

mayorıa a la familia Atmel1 y depen-

diendo el modelo encontraremos mas o

menos entradas/salidas en la placa.

6.2.1. Arquitectura

Los microcontroladores Atmel AVR

son una familia de microcontroladores

RISC. Esta arquitectura se caracteriza por sus instrucciones pequenas, simples y rapi-

das de ejecutar.

6.2.2. Precio

El rango de precios de las placas Arduino va de los 12¤ a los 60¤. Donde por 20¤

podemos encontrar la placa mas estandard con un microcontrolador Atmega 328, 26

entradas/salidas diferentes, entrada de alimentacion y USB para programar.

1Ver enlace: http://www.atmel.com/products/microcontrollers/avr/

Page 49: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 25

6.2.3. Inputs/Outputs

Al tratarse de un microcontrolador, los inputs y outputs se convierten en una de las

partes esenciales. Dentro de las placas Arduino podemos encontrar tres tipos diferentes

de entrada/salida.

Digital: Una senal digital se utiliza para expresar dos estados, ON (1) y OFF (0).

Un ejemplo de salida digital serıa el estado de un LED, encendido (1) o apagado

(1).

Analogica: A diferencia de la salida/entrada digital, la analogica expresa un

valor, por ejemplo, la temperatura captada por un sensor.

PWM: PWM o Pulse Width Modulation es una tecnica para transferir infor-

macion mediante una senal digital cuadrada. Una posible aplicacion de dicha

tecnica serıa regular la intensidad con al que brilla un LED. [1]

En cuanto al numero de entradas/salidas implementado de cada tipo varia segun el

modelo.

Digitales: De 9 a 54

Analogicas: De 4 a 16

PWM: De 5 a 14.

6.2.4. Puertos

Ademas de las entradas/salidas de las que hemos hablado en el capıtulo anterior

6.2.3.Inputs/Outputs Arduino cuenta con los siguientes puertos:

Page 50: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 26

Puerto USB: Se utiliza para conectar la placa a un ordenador y programar su

comportamiento.

Puerto de alimentacion: Puerto para alimentar el dispositivo.

Figura 6.2: Esquema de puertos. Arduino Duemilanove

6.2.5. Procesador y memoria

La velocidad del procesador de una Arduino esta entre 8MHz y 84MHz. La memoria

EEPROM esta en 1KB y la memoria SRAM puede variar de 1-96KB.

Como podemos observar la potencia de procesamiento de un microcontrolador es

muy baja, pero como hemos explicado en el capıtulo 3.Microcontroladores no vamos

a utilizar un dispositivo de estas caracterısticas para ejecutar un navegador de internet,

un sistema operativo completo (Windows, Linux...) o un editor de texto.

Page 51: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 27

6.2.6. Almacenamiento

Gran parte del almacenamiento de las placas Arduino esta dedicado a los programas

e informacion que necesitan los mismos. Arduino consta de una memoria flash que va

de 16KB a 512KB.

6.2.7. Perifericos y modulos

Cuenta con distintos modulos compatibles con sus placas. La mayorıa se utilizan

para ampliar la conectividad, como serıa el caso del modulo Ethernet, WiFi, USB, etc.

6.2.8. Consumo y alimentacion

Dependiendo de la potencia de la placa podemos encontrar voltajes variados. El

rango estarıa entre 2,7V-5,5V mientras que la alimentacion vendrıa dada por un jack

conectado directamente a la placa que suministre de 5,5V a 12V.

6.2.9. Sistema operativo

Arduino cuenta con sistemas operativos muy simples que pueden llegar a gestionar

archivos, ejecutar programas y jugar a videojuegos, sin embargo, el punto fuerte de

Arduino sigue siendo controlar otros dispositivos.

Page 52: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 28

6.3. Raspberry Pi

Figura 6.3: Placa Raspberry pi 2 b B

Raspberry Pi, el mas famoso en su

categorıa, es un single-board computer

de bajo coste que conectado a un mon-

itor puede desarrollar las mismas tareas

que desarrolla un ordenador de sobreme-

sa. Esta orientado al aprendizaje y es un

proyecto open software.

Raspberry Pi dispone de varios mode-

los, de mas antiguo a mas actual: Mod-

elo A+2, Modelo B+3, y modelo 2B4.

Nosotros nos centraremos en el modelo

mas actual, el 2B.

6.3.1. Arquitectura

El procesador del dispositivo esta basado en la arquitectura ARM que a su vez forma

parte de la familia RISC.

6.3.2. Precio

El precio de la placa sin ningun accesorio es de 35$.

2Ver enlace: https://www.raspberrypi.org/products/model-a-plus/3Ver enlace: https://www.raspberrypi.org/products/model-b-plus/4Ver enlace: https://www.raspberrypi.org/products/raspberry-pi-2-model-b/

Page 53: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 29

6.3.3. Inputs/Outputs

Aunque este dispositivo no esta orientado completamente a controlar dispositivos,

como serıa el caso de los microcontroladores, dispone tambien de entradas/salidas. En

concreto 40 de proposito general (GPIOs)[2]. Este tipo de entrada/salida trabaja con

senales digitales, sin embargo, mediante un conversor se puede llegar transformar la

senal digital en analogica.

6.3.4. Puertos

Ademas de las entradas/salidas de las que hemos hablado en el capıtulo anterior

6.3.3.Inputs/Outputs Raspberry Pi tiene los siguientes puertos:

Puerto de alimentacion: Puerto para alimentar el dispositivo.

Puerto ethernet: Conexion ethernet a 100Mb/s.

Puertos USB: Un total de 4 puertos USB 2.0.

Puerto HDMI: Puerto full HDMI para conectar el dispositivo a un monitor.

Puerto DSI Display Connector: Permite conectar una pantalla LCD mediante

un cable plano de 15 pines.

Puerto CSI Connector Camera: Permite conectar una camara.

Puerto de audio y video: Salida alternativa al puerto HDMI. Es un jack de 3.5

mm.

Un dato a destacar sobre los puertos de este dispositivo es que comparte el ancho

de banda para los puertos USB y Ethernet, en terminos practicos esto significa que si

quiero compartir un disco duro externo USB a traves de la red, el ancho de banda de

lectura/escritura del disco duro y de la red estaran compartidos.

Page 54: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 30

Esta caracterıstica hace que la Raspberry Pi no sea un buen dispositivo para apli-

caciones que hagan un uso intensivo del puerto ethernet, como serıa el caso de un

servidor de archivos.

Figura 6.4: Esquema de puertos. Raspberry Pi 2

6.3.5. Procesador y memoria

La Raspberry Pi cuenta con un Cortex-A7 quad-core a 900MHz que, comparado con

su predecesor de un unico core a 700MHz supone un gran avance a la hora de ejecutar

programas, reproducir multimedia, etc. En cuanto a la memoria cuenta con 1GB a una

velocidad de 400 MHz.

6.3.6. Almacenamiento

Tanto el sistema operativo como los datos que queramos almacenar en la placa es-

taran en la tarjeta micro SD, no obstante, mediante los puertos USB que implementa

la placa podremos conectar dispositivos de almacenamiento externos como pen drives

Page 55: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 31

y discos duros.

6.3.7. Perifericos y modulos

Teniendo en cuenta que estamos corriendo un sistema operativo normal y corriente

podemos conectar la gran mayorıa de dispositivos como si de un ordenador normal se

tratase. Desde keyboards, mouses, unidades de almacenamiento, tarjetas Wi-Fi, altav-

oces, auriculares a pantallas y todo tipo de sensores.

6.3.8. Consumo y alimentacion

La Raspberry Pi esta alimentada por conexion micro USB de 5V y tiene un consumo

medio de 800mA (4W).

6.3.9. Sistema operativo

Al utilizar una arquitectura ARM puede ejecutar todas los distribuciones GNU/Lin-

ux. Podemos considerar que la mas conocidas son:

Raspbian5

Ubuntu6

OpenELEC7

OSMC8

5Ver enlace: http://www.raspbian.org/6Ver enlace: https://www.raspberrypi.org/downloads/7Ver enlace: http://openelec.tv/8Ver enlace: https://osmc.tv/

Page 56: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 32

RiscOS9

Pidora10

9Ver enlace: https://www.riscosopen.org/content/10Ver enlace: http://pidora.ca/

Page 57: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 33

6.4. Odroid

Figura 6.5: Placa Odroid C1

De la companıa HardKernel11, aunque

no es tan sonada como su competidor

directo Raspberry Pi, se dedican a la

creacion de single-board computers de

caracterısticas superiores y precio similar

a sus competidores. Las odroid son pla-

cas de desarrollo y open hardware/soft-

ware.

Los modelos mas conocidos son:

Odroid XU3, Odroid U3 y Odroid C1.

Nosotros nos vamos a centrar en la

Odroid C1.

6.4.1. Arquitectura

ARMv7. Ver seccion: 6.3.1.Arquitectura.

6.4.2. Precio

El precio de la placa sin accesorios es de 35$.

11Ver enlace: http://www.hardkernel.com/

Page 58: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 34

6.4.3. Inputs/Outputs

Al igual que su competidor, dispone de 40 GPIO’s[2] que trabajan con senales digi-

tales.

6.4.4. Puertos

Ademas de las entradas/salidas de las que hemos hablado en el capıtulo anterior

6.4.3.Inputs/Outputs Odroid tiene los siguientes puertos:

Puerto de alimentacion: Mediante un connector de 0.8mm/2.5mm de diametro

y 5V/2A

Puerto ethernet: Conexion ethernet a 1000Mb/s

Puerto USB: USB 2.0. Un total 4.

Puerto Micro HDMI: Para conectar un monitor.

Puerto Micro USB OTG: Util para conectar perifericos.

Puerto para baterıa RTC: Necesario para conectar una baterıa RTC y manten-

er el dispositivo en hora.

Puerto serial console: Conectandolo a un ordenador te da acceso a una consola

linux.

Page 59: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 35

Figura 6.6: Esquema de puertos. Odroid C1

6.4.5. Procesador y memoria

Cortex-A5 a 1.5GHz. A diferencia de la Raspberry Pi, la Odroid C1 utiliza un proce-

sador Cortex A5, que es el mas pequeno y el que consume menos energıa de la familia.

Sin embargo, su sucesor, el Cortex A7 es aproximadamente un 20% mas potente que

el A5, aun ası, segun diferentes analisis[3][6] hechos por la comunidad, Odroid sigue

siendo mas potente que Raspberry.

En cuanto a la memoria, Odroid cuenta con 1GB a 792MHz.

6.4.6. Almacenamiento

Dispone de una ranura para microSD y una para eMMC. La velocidad de lectura/e-

scritura de las tarjetas eMMC es mucho mas alta que las de las microSD, esta car-

acterıstica la hace perfecta para almacenar el sistema operativo, mejorando ası la re-

spuesta del mismo.

Page 60: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 6. Dispositivos analizados 36

6.4.7. Perifericos y modulos

Al igual que con la Raspberry Pi, podemos utilizar todo tipo de perifericos siempre

que sean compatibles con el sistema operativo que estamos utilizando.

6.4.8. Consumo y alimentacion

Esta alimentada por una conexion jack de 5v/2A y consume una media de 3W/4W.

6.4.9. Sistema operativo

Dispone de dos sistemas operativos oficiales.

Android12

Ubuntu13

Sin embargo podemos instalar otras distribuciones no oficiales linux desarrolladas por

la comunidad como Fedora, Open media vault, etc.

12Ver enlace: http://odroid.com/dokuwiki/doku.php?id=en:c1_release_android13Ver enlace: http://odroid.com/dokuwiki/doku.php?id=en:c1_release_ubuntu

Page 61: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 37

7. Casos practicos

En el siguiente capıtulo vamos a llevar a cabo varios casos practicos con los dis-

positivos analizados en el capıtulo anterior. Nos centraremos puramente en temas de

software sin entrar en hardware.

En el caso de Arduino hemos decidido no realizar ninguna prueba puesto que nos

serıa difıcil comparar tanto su utilidad como su rendimiento frente a otros dispositivos.

Sin embargo, en el siguiente link1 dejamos a continuacion unos cuantos casos donde

Arduino nos serıa de utilidad.

7.1. Servidor de archivos

7.1.1. Introduccion

A continuacion vamos a utilizar un single-board computer con el fin de compartir

un disco duro en red para que todos los usuarios de la misma puedan acceder a su

informacion.

Para ello utilizaremos samba, una aplicacion de software libre licenciada bajo GNU

General Public License que ofrece servicios de archivos e impresion rapidos, estables

y seguros.[5]

1Ver enlace: http://www.makeuseof.com/tag/10-great-arduino-projects-for-beginners/

Page 62: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 38

7.1.2. Odroid

El sistema operativo que hemos utilizado es Ubuntu 14.04.3 LTS (v1.5)2. Excepto

cuando indiquemos lo contrario todas las ordenes se ejecutaran como usuario root.

Servidor:

Primeramente conectaremos un disco duro externo mediante uno de los USB’s

que tiene la placa. En nuestro caso es un disco duro de 3TB.

Ejecutaremos fdisk -l para identificar nuestro disco duro.

Codigo 7.1: Odroid. fdisk -l

~$ fdisk -l

Disk /dev/sda: 3000.6 GB, 3000592982016 bytes

255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

Device Boot Start End Blocks Id System

/dev/sda1 1 4294967295 2147483647+ ee GPT

Una vez hemos identificado como ’/dev/sda’ editamos el fichero ’/etc/fstab’ para

que el disco duro se monte automaticamente con el sistema. Anadiremos la sigu-

iente lınea.

2Ver enlace: http://odroid.com/dokuwiki/doku.php?id=en:c1_ubuntu_release_note_

v1.5

Page 63: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 39

Codigo 7.2: Odroid. /etc/fstab

/dev/sda1 /media/storage1 ext4 defaults,auto 0 0

Creamos el directorio /media/storage1 y le damos permisos al usuario odroid

que utilizaremos mas tarde.

Codigo 7.3: Odroid. mkdir and chown

~$ mkdir /media/storage1

~$ chown -R odroid.odroid /media/storage1

Montamos el disco duro.

Codigo 7.4: Odroid. mount

~$ mount /dev/sda1

Instalamos samba.

Codigo 7.5: Odroid. install samba

~$ apt-get -y install samba

Editamos el fichero de configuracion de samba /etc/samba/smb.conf3 para anadir

el directorio /media/storage1, donde previamente hemos montado nuestro disco

duro /dev/sda. Anadiremos las siguientes lıneas.

3Ver enlace: https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

Page 64: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 40

Codigo 7.6: Odroid. /etc/samba/smb.conf

[storage1]

comment = Storage1

path = /media/storage1

valid users = odroid

writable = yes

public = no

guest ok = no

Anadimos el usuario odroid del sistema como usuario de samba, escojemos una

contrasena y lo habilitamos.

Codigo 7.7: Odroid. smbpasswd

~$ smbpasswd -a odroid

~$ smbpasswd -e odroid

Reiniciamos samba para aplicar los cambios.

Codigo 7.8: Odroid. samba restart

~$ service smbd restart

Cliente:

El sistema operativo utilizado para hacer la conexion al servidor es Windows 8.1.

Nos dirigimos a equipo y seleccionamos ”Conectar a unidad de red”

Figura 7.1: Odroid. Conectar a unidad de red

Page 65: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 41

Indicamos la direcion IP del servidor y el recurso comparitdo.

Figura 7.2: Odroid. Configuracion unidad de red

Introducimos la contrasena que hemos configurado previamente.

Figura 7.3: Odroid. Contrasena servidor

Y finalmente se nos abrira la carpeta compartida.

Page 66: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 42

Figura 7.4: Odroid. Carpeta compartida

7.1.3. Raspberry pi

El sistema operativo que hemos utilizado es Raspbian 2015-05-054. Excepto cuando

indiquemos lo contrario todas las ordenes se ejecutaran como usuario root.

Servidor:

Primeramente conectaremos un disco duro externo mediante uno de los USB’s

que tiene la placa. En nuestro caso es un disco duro de 3TB.

Ejecutaremos fdisk -l para identificar nuestro disco duro.

Codigo 7.9: Raspberry. fdisk -l

~$ fdisk -l

Disk /dev/sda: 3000.6 GB, 3000592982016 bytes

255 heads, 63 sectors/track, 364801 cylinders, total 5860533168 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

4Ver enlace: https://www.raspberrypi.org/downloads/raspbian/

Page 67: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 43

Disk identifier: 0x00000000

Device Boot Start End Blocks Id System

/dev/sda1 1 4294967295 2147483647+ ee GPT

Una vez hemos identificado como ’/dev/sda’ editamos el fichero ’/etc/fstab’ para

que el disco duro se monte automaticamente con el sistema. Anadiremos la sigu-

iente lınea.

Codigo 7.10: Raspberry. /etc/fstab

/dev/sda1 /media/storage2 ext4 defaults,auto 0 0

Creamos el directorio /media/storage2 y le damos permisos al usuario pi, que

vamos a utilizar mas tarde.

Codigo 7.11: Raspberry. mkdir and chown

~$ mkdir /media/storage2

~$ chown -R pi.pi /media/storage2

Montamos el disco duro.

Codigo 7.12: Raspberry. mount

~$ mount /dev/sda1

Instalamos samba.

Codigo 7.13: Raspberry. install samba

~$ apt-get -y install samba samba-common-bin

Page 68: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 44

Editamos el fichero de configuracion de samba /etc/samba/smb.conf5 para anadir

el directorio /media/storage1, donde previamente hemos montado nuestro disco

duro /dev/sda. Anadiremos las siguientes lıneas.

Codigo 7.14: Raspberry. /etc/samba/smb.conf

[storage2]

comment = Storage2

path = /media/storage2

valid users = pi

writable = yes

public = no

guest ok = no

Anadimos el usuario pi del sistema como usuario de samba, escojemos una con-

trasena y lo habilitamos.

Codigo 7.15: Raspberry. smbpasswd

~$ smbpasswd -a pi

~$ smbpasswd -e pi

Reiniciamos samba para aplicar los cambios.

Codigo 7.16: Raspberry. samba restart

~$ service samba restart

Cliente:

El sistema operativo utilizado para hacer la conexion al servidor es Windows 8.1.

5Ver enlace: https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

Page 69: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 45

Nos dirigimos a equipo y seleccionamos ”Conectar a unidad de red”

Figura 7.5: Raspberry. Conectar a unidad de red

Indicamos la direcion IP del servidor y el recurso comparitdo.

Figura 7.6: Raspberry. Configuracion unidad de red

Introducimos la contrasena que hemos configurado previamente.

Page 70: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 46

Figura 7.7: Raspberry. Contrasena servidor

Y finalmente se nos abrira la carpeta compartida.

Figura 7.8: Raspberry. Carpeta compartida

7.1.4. Analisis

Con el fin de probar el rendimiento del servidor de archivos haremos la sencilla

prueba de copiar un archivo y medir la velocidad de transferencia.

Page 71: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 47

En el caso de Raspberry obtuvimos el siguiente resultado.

Figura 7.9: Raspberry. Prueba de velocidad

Y en cuanto a odroid obtuvimos lo siguiente.

Figura 7.10: Odroid. Prueba de velocidad

El ancho de banda maximo de Odroid viene dado por el puerto USB 2.0. Es de

32mb/s aproximadamente.

En cuanto a Raspberry lo que nos limita es el puerto ethernet de 100mb/s que nos

dara una velocidad maxima de 10mb/s aproximadamente.

Page 72: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 48

En el caso que mas de un usuario quiera acceder al mismo tiempo se dividira la

velocidad de transferencia dependendiendo de los usuarios y el ancho de banda que

necesiten.

Como podemos observar, la velocidad de transferencia de Odroid es tres veces may-

or que la de Raspberry. Esto es debido a que el puerto de red de 100mb/s de Raspberry

hace efecto de embudo, mientras que en Odroid se puede explotar todo el ancho de

banda del puerto USB 2.0 ya que la velocidad de transferencia del puerto de red es

mayor.

7.1.5. Conclusion

En el caso de tener una red con pocos usuarios, o que estos no requieran un uso

exhaustivo del disco compartido un single-board computer serıa una buena solucion.

De lo contrario, tendrıamos que irnos a dispositivos mas potentes.

7.2. Servidor web

7.2.1. Introduccion

En esta prueba utilizaremos el dispositivo Raspberry como servidor web y haremos

alguna prueba de rendimiento con la finalidad de ver como se comporta un servidor

web alojado en un single-board computer frente a un servidor normal y corriente.

Utilizaremos apache y apache benchmark.

Apache6 es un servidor web open-source para sistemas operativos modernos. La

meta de este proyecto es proporcionar un servidor seguro, eficiente y escalable que

6Ver enlace: http://httpd.apache.org/

Page 73: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 49

cumpla con los standards actuales.

Apache benchmark o ab es una herramienta para para medir el rendimiento de un

servidor apache.

7.2.2. Odroid

Instalamos apache2 mediante el siguiente comando.

Codigo 7.17: Raspberry. install apache2

~$ apt-get install apache2

7.2.3. Raspberry pi

Instalamos apache2 mediante el siguiente comando.

Codigo 7.18: Odroid. install apache2

~$ apt-get install apache2

7.2.4. Analisis

Para medir el rendimiento del servidor web hemos utilizado la herramienta citada en

la seccion 7.2.1.Introduccion. El comando que hemos utilizado es el siguiente.

Codigo 7.19: ab command

~$ ab -n 1000 -c 20 <URL>

Page 74: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 50

Este comando realiza 1000 peticiones con un maximo de 20 peticiones concurrentes a

la URL indicada y proporciona unos parametros que posteriormente hemos utilizado

para construir una grafica.

Con el fin de comparar el rendimiento de un single-board computer hemos realizado

tres benchmarks, el primero con odroid, el segundo con raspberry y el tercero lo hemos

realizado a un sitio web alojado en un servidor normal y corriente como es http:

//www.apache.org/.

Cabe tener en cuenta que www.apache.org es un sitio web online y que es muy

probable que al mismo tiempo que nosotros hacıamos el benchmark otros usuarios es-

tuvieran consultando y descargando ficheros. Es por esto que las pruebas de rendimien-

to pueden verse afectadas negativamente.

Las tres pruebas han sido realizadas a traves de internet, en el caso de nuestros

single-board computers sobre paginas muy simples alojadas en los mismos. Tambien

hemos habilitado nuestro router para que redirija las peticiones desde el exterior a

traves del puerto 80 al dispositivo deseado. Ademas, hemos utilizado un sistema de

DDNS7 con la direccion http://jam0.asuscomm.com/ para facilitar el acceso.

7Ver enlace: https://es.wikipedia.org/wiki/DNS_din%C3%A1mico

Page 75: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 51

Figura 7.11: Odroid. Grafica peticiones/ms

Page 76: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 52

Figura 7.12: Raspberry. Grafica peticiones/ms

Page 77: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 53

Figura 7.13: apache.org. Grafica peticiones/ms

A partir de las graficas sacamos las siguientes conclusiones:

Odroid

Tarda aproximadamente 2,250 segundos en atender 1000 peticiones.

El tiempo de respuesta aumenta exponencialmente a partir de las 825 peticiones.

Por debajo de las 825 peticiones el tiempo promedio de respuesta es de 0.15

segundos aproximadamente.

Page 78: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 54

Raspberry

Tarda aproximadamente 3 segundos en atender 1000 peticiones.

El tiempo de respuesta aumenta exponencialmente a partir de las 950 peticiones.

Por debajo de las 950 peticiones el tiempo promedio de respuesta es de 0.1 se-

gundos aproximadamente.

www.apache.org

Tarda aproximadamente 1,6 segundos en atender 1000 peticiones.

El tiempo de respuesta aumenta exponencialmente a partir de las 975 peticiones.

Por debajo de las 975 peticiones el tiempo promedio de respuesta es de 0.6 se-

gundos aproximadamente.

7.2.5. Conclusion

Concluimos que tanto Odroid como Raspberry rinden de manera muy similiar y

para un sitio web simple y con pocas visitas nos funcionarıa sin problemas.En caso de

utilizar PHP, bases de datos, Javascripts muy pesados, etc. Un single-board computer

no serıa una buena opcion.

Page 79: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 55

7.3. Media center

7.3.1. Introduccion

En la siguiente seccion convertiremos nuestros single-board computers en centros

multimedia que, conectados a una television, nos permitiran visualizar nuestro con-

tenido multimedia de manera facil y rapida.

El software que utilizaremos sera Kodi en el caso de Odroid y Openelec en el caso

de Raspberry.

Kodi8 es un software libre y multiplataforma que permite reproducir multimedia.

Openelec9 es un sistema operativo destinado a ejecutar Kodi.

7.3.2. Odroid

Kodi viene instalado por defecto con el sistema operativo que hemos utilizado.

Ubuntu 14.04.3 LTS.

7.3.3. Raspberry pi

Deberemos descargar e instalar el sistema operativo Openelec.

8Ver enlace: http://kodi.tv/about/9Ver enlace: http://openelec.tv/

Page 80: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 56

7.3.4. Analisis

Formatos

Kodi soporta una gran cantidad de formatos tanto de vıdeo como de audio como de

imagen. Entre los mas populares se encuentran:

Vıdeo: avi, mkv, mpeg, mp4

Audio: mp3

Imagen: jpeg, bmp, gif, png

Para ver una lista completa con todos los formatos soportados consultar el siguiente

enlace10.

Conectividad

En cuanto a conectividad, alguna de las caracterısticas basicas del sistema son las

siguientes:

Posibilidad de acceder a contenido en internet. Youtube11, TwitchTV12...

Posibilidad de conectar perifericos mediante los USB’s. Teclado, raton, adapta-

dor de red inalambrico...

Posibilidad de conectar dispositivos de almacenamiento externos y reproducir

multimedia de los mismos.

Posibilidad de controlar Kodi a traves de la app Oficial Kodi Remote

10Ver enlace: http://kodi.wiki/view/Features_and_supported_formats11Ver enlace: https://www.youtube.com/12Ver enlace: http://www.twitch.tv/

Page 81: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 57

Rendimiento

Para medir el rendimiento de nuestro single-board computer hemos habilitado la

visualizacion de recursos mientras reproduciamos un archivo de vıdeo en formato

1080p13.

De todas las tareas que podemos realizar en Kodi, la mas pesada o costosa en cuanto

a recursos es la de reproducir vıdeo, tanto de internet como de un medio local. Esto es

debido a que cuando reproducimos vıdeo, el dispositivo tiene que procesar cada uno

de los fotogramas. Ademas tambien tiene que sincronizar el audio. Es por eso que el

reproducir un vıdeo de alta calidad consumira mas recursos que reproducir uno de baja

calidad, ya que tiene que procesar o bien mas fotogramas, o bien fotogramas de mayor

calidad.

Figura 7.14: Kodi. Rendimiento reproductor

Como vemos en la figura 7.14.Kodi. Rendimiento reproductor, la CPU3 se mues-

tra a un 100% de carga, mientras que las otras tres CPU’s (CPU0, CPU1 y CPU2)

13Ver enlace: https://es.wikipedia.org/wiki/1080p

Page 82: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 58

estan por debajo del 6%. Esto significa que estamos utilizando aproximadamente un

30% del procesador, por tanto asumimos que el hardware esta mas que preparado para

desarrollar este tipo de acciones sin problema.

Interfaz

Al arrancar Kodi por primera vez encontraremos el siguiente menu. Donde entre

otras opciones encontraremos pictures, videos y music.

Figura 7.15: Kodi. Menu

Visualizar imagenes

Para visualizar nuestras imagenes accederemos, mediante el menu principal (7.15.Ko-

di. Menu), al apartado pictures.

Page 83: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 59

Figura 7.16: Kodi. Pictures

Visualizar vıdeos

Para visualizar nuestros vıdeos accederemos, mediante el menu principal (7.15.Kodi.

Menu), al apartado vıdeos.

Page 84: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 60

Figura 7.17: Kodi. Videos

Y, una vez en la lista de ficheros a reproducir seleccionaremos cualquiera de ellos

para reproducirlos.

Figura 7.18: Kodi. Reproductor

Page 85: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 61

Reproducir contenido de internet

La reproduccion de contenido de internet de Kodi funciona mediante un sistema de

add-ons que pueden ser descargados de los repositorios que vienen por defecto con el

sistema o de internet. Una vez descargados e instalados nos ofrecen acceso a platafor-

mas multimedia como YouTube, TwitchTV, etc.

Por defecto, Kodi, no incorpora ningun add-on.

En la siguientes figuras se muestran el add-on de YouTube y la reproduccion de un

vıdeo.

Figura 7.19: Kodi. Video add-ons

Page 86: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 62

Figura 7.20: Kodi. Youtube Video

De igual manera podemos descargar e instalar add-ons de musica.

Figura 7.21: Kodi. Music add-ons

Page 87: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 7. Casos practicos 63

Figura 7.22: Kodi. Music streaming

7.3.5. Conclusion

Tanto Odroid como Raspberry funcionan a la perfeccion reproduciendo imagenes,

vıdeo y musica. No hemos experimentado ningun corte y los FPS’s14 han sido con-

stantes en todo momento.

De todas los casos practicos que hemos realizado este es el que nos ha parecido de

mas utilidad para un single-board computer ya que mediante un dispositivo pequeno,

que cabe en la palma de la mano, y que puede ser alimentado desde un puerto USB

que, a dıa de hoy todas las televisiones modernas incorporan, podemos tener un cen-

tro multimedia que para nuestra opinion esta a anos luz del sistema de las conocidas

SmartTV15.

14FPS: Fotogramas por segundo15Ver enlace: http://www.which.co.uk/reviews/televisions/article/

what-is-smart-tv

Page 88: Internet de las cosas. Microcontroladores y ordenadores
Page 89: Internet de las cosas. Microcontroladores y ordenadores

Capıtulo 8. Conclusiones 65

8. Conclusiones

Para acabar podemos decir que el resultado del proyecto ha sido el esperado, no ob-

stante, de haber tenido mas tiempo podrıamos haber hecho un analisis mas exhaustivo

de los dispositivos ademas de haber incluido mas.

Como resultado del proyecto hemos visto las diferentes arquitecturas de computador

que se emplean hoy en dıa. Tambien hemos conocido los microcontroladores y single-

board computers ası como algunas de sus aplicaciones y limitaciones.

A medida que avanza la tecnologıa encontraremos single-board computers cada vez

mas pequenos y potentes que permitiran realizar ciertas tareas igual o mejor que orde-

nadores de sobremesa o portatiles tal y como los conocemos hoy en dıa. Todo esto en

una placa de tamano muy reducido, que apenas se calienta, que no hace ruido y que

consume una ınfima parte de lo que consume un ordenador normal y corriente.

Por tanto, concluimos que en un futuro los single-board computers jugaran un papel

importante en el ambito de la tecnologıa.

Page 90: Internet de las cosas. Microcontroladores y ordenadores
Page 91: Internet de las cosas. Microcontroladores y ordenadores

Bibliografıa 67

Bibliografıa

[1] digital.ni.com. What is a pulse width modulation? http://digital.ni.

com/public.nsf/allkb/294E67623752656686256DB800508989, consultado

en 2015.

[2] egr.msu.edu. General purpose Input/Output (GPIO). http://www.egr.msu.

edu/classes/ece480/capstone/fall09/group03/AN_balachandran.pdf,

consultado en 2015.

[3] HardKernel. Analisis hechos por hardkernel. http://www.hardkernel.com/

main/products/prdt_info.php?g_code=G141578608433&tab_idx=2, con-

sultado en 2015.

[4] importancia.org. Arquitectura arm. http://www.importancia.org/

arquitectura-arm.php, consultado en 2015.

[5] samba.org. Samba. https://www.samba.org/, consultado en 2015.

[6] silabs.com. Which ARM Cortex core is right for your application.

http://www.silabs.com/Support%20Documents/TechnicalDocs/

Which-ARM-Cortex-Core-Is-Right-for-Your-Application.pdf, consul-

tado en 2015.

[7] Wikipedia. Arquitectura arm. http://es.wikipedia.org/wiki/Unidad_

central_de_procesamiento, consultado en 2015.

Page 92: Internet de las cosas. Microcontroladores y ordenadores

Bibliografıa 68

[8] Wikipedia. Dispositivos de entrada/salida. http://es.wikipedia.org/wiki/

Perif%C3%A9rico_de_Entrada/Salida, consultado en 2015.

[9] Wikipedia. Memoria de acceso aleatorio. http://es.wikipedia.org/wiki/

Memoria_de_acceso_aleatorio, consultado en 2015.

[10] Wikipedia. Unidad de procesamiento central. http://es.wikipedia.org/

wiki/Unidad_central_de_procesamiento, consultado en 2015.