Acerca de...
El equipo
Encuestas
Política de privacidad
WinTablets

Encuesta

¿Cual crees que triunfará?

Ver Resultados

Cargando ... Cargando ...

últimas entradas importantes

Categorías

Archivos

28
Mar 2015
AccesoriosAnálisisARMDesarrolloHardwarei+dLinuxMultiplataformaPost-HangoutR&Drfogdev

Post Hangout: Placas industriales

En el último Hangout, nuestro invitado enseñó una serie de placas electrónicas pero no nos contó nada sobre ello porque el tema se salía de lo que estábamos hablando. No obstante resulta interesante, y como yo también las he usado a nivel profesional (aparte de la petición de un colaborador), os voy a contar un poco de qué va la cosa.

No solo de PC (y MAC) vive el hombre, de hecho es muy posible que el PC y el MAC sean los dispositivos minoritarios dentro de la gama de sistemas basados en microprocesador. No nos confundamos, muchas de las cosas que utilizamos sin darnos cuenta también son variantes de PC. Un parking, un televisor, el router, posiblemente los semáforos inteligentes (si los hay) de tu ciudad, la caja registradora del supermercado, el video portero electrónico. No sé, el rango es infinito y más allá, y cada vez lo es más.

Hasta no hace mucho tiempo ese tipo de plaquerío estaba basado en sistemas muy sencillos, construidos con microprocesadores de 8 bits rodeados de la lógica de control necesaria y suficiente para realizar su tarea.

201312222305368236

Se hacía así porque era mucho más barato tener un ingeniero que te construyera eso a la vez que tu lo fabricabas para tus propios productos. Aparte de eso siempre han existido las placas industriales de PC, pero en otro rango de precios que sólo valía la pena utilizar en según qué tipos de proyectos.

Pero como decía mi abuela, los tiempos avanzan que es un sinvivir, y ahora muchos proyectos se pueden construir con ese tipo de placas PC que no son un PC pero casi. Porque han bajado los precios, porque antes diseñar y construir una de esas placas era una tarea titánica, y porque han salido tecnologías y microprocesadores mucho más baratos y fáciles de implementar porque es el procesador el que lo lleva casi todo dentro de él.

Me refiero a la unidad de control de memoria (por otro nombre northbridge), al controlador de disco (por otro nombre southbridge), e incluso el controlador de energía. Vamos, que el mundo microprocesador se ha unido al del microcontrolador y ahora casi no hay diferencia entre uno y otro. (Es un decir, todavía quedan microcontroladores puros).

Otro de los grandes avances ha sido la tecnología ARM, que para quien no lo sepa, y frente a la de los x86 de Intel, es una especificación, no un diseño de chip. Es decir, que ARM son unas reglas y unos protocolos que un microprocesador debe implementar. Lo que haya dentro no importa, lo que importa es lo que hay en las patas del chip y cómo se controla.

De hecho hay empresas (como Mediatek, que se nombró en el Hangout) que te venden el diseño, y tu lo grabas donde te salga.

Porque hay otro tipo de chips vírgenes llamados FPGA, NIOS, seguro que la tecnología ha evolucionado desde la última vez que miré y hay más tipos, que son unos chips vacíos de todo contenido. Son una especie de carcasa que contiene en su interior la base de cualquier sistema electrónico digital, que es un constructo que se llama puerta o lacth. Hay de varios tipos, pero a nosotros nos da igual.

Si cogemos ambas tecnologías, podemos grabar un diseño Mediatek en una NIOS y tendremos un chip ARM plenamente funcional. Si añadimos otra lógica de control, nos podemos encontrar con PC completos dentro de un solo chip que luego insertaremos en, por ejemplo, una memoria USB.

La tecnología actual está a ese nivel, por lo que construir una placa PC más o menos completo es una tarea trivial (trivial, evidentemente, para una empresa dedicada a ello). Por lo tanto, a nivel industrial, es bastante fácil encontrar casi cualquier placa base para casi cualquier propósito.

Dada la baratura relativa de todo eso, más el hecho de que es más fácil encontrar un ingeniero que sepa programar para Linux o Windows, muchos diseños industriales se están construyendo con esa tecnología.

Ahora se llama IoT (el famoso internet de las cosas), pero qué queréis que os diga, yo llevo usando cosas de esas desde la época del 6502 y el 8031 (uno de los primeros microprocesadores de 8 bits baratos y uno de los primeros microcontroladores de uso general existentes en el mercado).

Lo dicho, es más fácil coger una placa de esas, ponerle un Linux y encontrar a un programador que nos construya un paquímetro sobre ello, que tener a un ingeniero de hardware y un programador embebido (como lo fui y soy yo) que se líe la manta a la cabeza y tenga que saber de ensamblador, C y cómo programar a bajo nivel uno de esos microprocesadores.

201407071058089142

Evidentemente no todo es miel sobre hojuelas. Utilizando algo así pagas por inestabilidades del sistema, carencias de tiempo real efectivo y lo chapucero que sea ese programador, porque no es lo mismo un programador normal que uno de sistemas y que entienda que cosas como que por ejemplo, un bucle for está casi prohibido en ese tipo de desarrollos).

Un la placa PC pura adolece de un problema bastante serio. ¿Cómo puñetas controlo un aparato para introducir monedas o el brazo que se levanta?

Buena pregunta.

Ese tipo de placas suele tener un módulo extra que se suele llamar GPIO y que es lo que realmente las diferencia de un PC normal y que a veces, pero solo a veces, hace que su precio sea muy superior al mismo modelo pero sin GPIO.

Ese módulo puede contener uno o varios (muchos) puertos serie, en general 8, 16, 32, 64 pines de entrada y otros tantos de salida, TTL, colector abierto, flotante por optoacoplador… La variedad y funcionalidad está garantizada.

Como son PC, esas placas vienen acompañadas de algún tipo de driver (que es lo difícil de hacer) que permita al programador acceso a todos esos extras, que a su vez irán conectados a los actuadores pertinentes, que pueden ser algo tan sencillo como un pulsador que lleve a masa la línea o algo tan complejo como brazo robótico para operar a corazón abierto.

Pues bien, lo que anoche nos enseñó Álvaro Marínez, alias @dDioxCorp, fue un par de placas de ese tipo. En concreto la ODROID-U3 y la ODROID-XU3.

La primera es un ARM Exynos 4412 (un Corext A9) de cuatro núcleos y 2 GB de RAM integrada, capaz de correr xUbuntu o Andriod 4.x y que tiene un módulo extra de GPIO compuesto del propio GPIO, UART (puerto serie pero TTL en lugar de 12VDC) e I2C (otro protocolo serie, pero este de 3 hilos con señales de tipo TTL).

La segunda es la hermana mayor de la anterior, con Exynos 5422 (un ARM Cortex A15 y otro A7 en un solo chip), módulo eMMC y una salida con PWM para ventilador (pero que podríamos usar para otras cosas). Lo que no lleva es módulo GPIO.

Aparte de todos los palabros ténicos vertidos en los párrafos de arriba, que solo sirven si sabes de qué va la cosa y para qué quieres la placa, estamos ante dos sendos ejemplos de placas base industriales para hacer con ellas lo que queramos.

Si entráis en cualquiera de los productos, veréis que más abajo hay una serie de extensiones, como un USB IO Board y un “Expansion Board”.

cpu

¿Sabéis dónde está el límite? En lo que seáis capaces de hacer con vuestras manos y con lo que está encima de los ojos. A nivel doméstico, esas placas se suelen utilizar para hacer Media Centers, NAS y cosas similares, pero si queréis robotizar vuestra casa, bueno, vosotros mismos.

Por RFOG | 4 Comentarios | Enlaza esta entrada

4 Comentarios


Fatal error: Uncaught Error: Call to undefined function ereg() in /homepages/4/d443751538/htdocs/wintablet.info/wp-content/themes/wintabletinfo/functions.php:92 Stack trace: #0 /homepages/4/d443751538/htdocs/wintablet.info/wp-content/themes/wintabletinfo/functions.php(27): commenter_avatar() #1 /homepages/4/d443751538/htdocs/wintablet.info/wp-includes/class-walker-comment.php(179): custom_comments(Object(WP_Comment), Array, 1) #2 /homepages/4/d443751538/htdocs/wintablet.info/wp-includes/class-wp-walker.php(145): Walker_Comment->start_el('', Object(WP_Comment), 1, Array) #3 /homepages/4/d443751538/htdocs/wintablet.info/wp-includes/class-walker-comment.php(139): Walker->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #4 /homepages/4/d443751538/htdocs/wintablet.info/wp-includes/class-wp-walker.php(387): Walker_Comment->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #5 /homepages/4/d443751538/htdocs/wintablet.info/wp-includes/comment-template.php(2174): Walker->paged_walk(Array, '5', 0, 0, Array) in /homepages/4/d443751538/htdocs/wintablet.info/wp-content/themes/wintabletinfo/functions.php on line 92