La semana pasada vimos en Motorpasión un interesante artículo sobre los sistemas operativos multimedia que empiezan a poblar los salpicaderos de los coches modernos. Pero vamos a ver este tema desde una perspectiva más general, ¿acaso los coches necesitan un sistema operativo?
En el sentido informático del término, el sistema operativo es una colección de programas que gestionan el _hardware_ para hacer utilizable a nivel de aplicación, es decir, abstraer a los programas de la gestión de recursos como procesador, memoria, discos duros o periféricos.
Pasando eso a automóviles, el _hardware_ serían las ruedas, dirección, suspensión, motor, etc. En la generación actual la electrónica ya domina buena parte de la gestión de ese _hardware_, que antes se gestionaba de forma mecánica y no había un SO como tal. Un carburador no sigue lógica binaria, es mecánico.
Si nos fijamos en una centralita moderna, es relativamente simple. Recibe una serie de señales eléctricas (analógicas o digitales) de diferentes sensores, las procesa, determina los parámetros adecuados y los manda a los inyectores, bujías, etc. Tienen un SO pero bastante primitivo en sus funciones comparado incluso con MS-DOS 1.0.
Nuevos sistemas han requerido el uso de centralitas digitales especializadas, como la del ABS, caja de cambios automática o la suspensión variable. Toda esa información viaja a través de cables, y cuando llega el momento de aprovechar cableado para reducirlo entra en juego el maravilloso mundo del multiplexado.
Para evitar que la masa de cables se dispare, se procura canalizar más información por el mismo lugar, separando las distintas señales. Este concepto ha reducido la fiabilidad en algunos casos, los famosos fallos eléctricos que presentan los coches modernos. A continuación, tecnología de hace 36 años:
La información aumenta exponencialmente
En los próximos años el volumen de información que van a mover las centralitas se va a disparar. No es lo mismo mover un puñado de datos sobre inyección y mezcla (KB/s) que imágenes de alta resolución que se combinan con ondas de radar para determinar si hay riesgo de colisión (MB/s). Más información implica más potencia de proceso.
La electrónica simple no sirve para cualquier aplicación de un coche moderno, y es en este punto cuando podemos empezar a plantearnos el concepto de sistema operativo. No me refiero a Android, QNX o Microsoft. Me refiero a soluciones especializadas y de más bajo nivel, como UNIX o derivados.
Los ingenieros pueden elegir básicamente dos tipos de diseños:
- pocas centralitas, más multiplexación, perder varios sistemas a la vez si hay fallos
- muchas centralitas especializadas, más fiabilidad, pero con mayor coste en componentes, más espacio ocupado y más peso
Por ejemplo, en coches modernos de marcas que no quiero mencionar puede fallar a la vez ABS, ESP, y freno de estacionamiento hidráulico. Lo he padecido en mis carnes, al menos con aviso previo.
conductor@coche:~$ ifconfig eth0 Link encap:Ethernet direcciónHW xx:xx:xx:xx:xx:xx Marca:Mazda Modelo:Demio Bastidor: XXXXXXXXXXXXXXXXX Direc. inet:192.168.1.36 Difus.:192.168.1.255 Másc:255.255.255.0 Dirección inet6: XXXX::XXXX:XXXX:XXXX:XXXX/64 Alcance:Enlace ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1 Paquetes RX:294869 errores:0 perdidos:0 overruns:0 frame:0 Paquetes TX:259548 errores:0 perdidos:0 overruns:0 carrier:0 colisiones:0 long.colaTX:1000 Bytes RX:229582376 (229.5 MB) TX bytes:49158881 (49.1 MB)
La conducción del futuro
Las modernas asistencias a la conducción cada vez manejan más información. De hecho, si nos fijamos en los prototipos de coches de conducción autónoma sorprenden la cantidad de espacio que ocupan los equipos informáticos que mueven toda esa masa de datos, y su consumo eléctrico no es despreciable.
Puede ser muy razonable gestionar los distintos elementos de un coche moderno de forma centralizada con un sistema operativo, siendo los distintos órganos los periféricos. Más filosofía de ordenador, con comunicación entre órganos mediante protocolos de comunicaciones como TCP/IP.
El problema de los diseños informáticos es que la tolerancia a fallos es mucho menor que en un ordenador convencional. A un PC le podemos pasar que se cuelgue o vaya lento. Eso en una centralita de la que dependen vidas no es admisible, y la fiabilidad es una cuestión de diseño de primera importancia.
Al margen del sistema operativo que vaya en la tableta integrada de turno, hablamos de algo más serio. Algunos vaticinan que se puedan _hackear_ los coches, y ya es algo técnicamente posible con modelos como el Tesla Model S, conectado a Internet con Tesla para recibir mejoras remotamente.
No olvidemos tampoco las tendencias en conectividad entre coches (C2C, _car to car_) y con la infraestructura vial (C2X, _car to infrastucture_). Requiere protocolos de comunicación estándar que han de procesarse con sistemas operativos, para poder actuar sobre el _hardware_ del coche.
En el futuro los coches intercambiarán información sobre el tráfico, como si ha ocurrido un accidente, si hay retenciones, si vamos a superar un semáforo en rojo o si hay peatones cruzando. Ya, el conductor puede ver todo eso, pero la máquina tiene un tiempo de reacción mucho más pequeño y eso amplía márgenes de actuación.
Así que sí, me temo que es inevitable que los sistemas operativos entren en los coches, pero no pensemos en pantallazos azules ni _kernel panic_ porque van a ser cosas archiprobadas y con poca tolerancia a fallos. Si no, la NHTSA empezará a crujir fabricantes con multas millonarias y es más barato hacer las cosas bien.
De formación, soy ingeniero informático, y de deformación también. No puedo concebir un coche en el que haya conducción autónoma o semiautónoma, y que viva en un mundo conectado, sin sistema operativo. Su nombre o siglas es lo de menos, su función es lo que es relevante.
Además, el uso de SO en los coches abre la puerta al mundo de las actualizaciones y las mejoras de un modo mucho más flexible. En vez de reprogramar centralitas para dar más caballos, se pueden reprogramar centralitas para mejorar la respuesta en caso de posible accidente o incorporar funciones nuevas.
No llegaremos al extremo de que cada dos o tres días haya que tener el coche en el taller descargando pesadas actualizaciones. Imagino que el ciclo de vida de cada versión será mucho mayor, y que lo razonable es actualizar los coches en los intervalos de mantenimiento programado.
Ya ocurre en la actualidad. Sin ir muy lejos mi coche particular del 2009 ya ha recibido actualizaciones de centralita en el ABS y su sistema híbrido para recibir una mejora, aunque yo no las haya notado nunca. Fue por motivos de seguridad, no por ponerme funciones nuevas, pero ahí está el precedente.
Los Tesla Model S recibieron una actualización remota para no bajar la suspensión del todo a alta velocidad a raíz de los dos incendios que hubo en EEUU al golpear objetos duros los bajos. No hizo falta llevarlos al taller. En el futuro veremos más cosas por el estilo, sin perder el tiempo en el taller.
¿A prueba de fallos?
También he de decir que como informático me da un poco de aprensión el utilizar la filosofía de ordenador a bordo de un coche, porque la complejidad de los programas y las rutinas aumenta exponencialmente. Eso implica más sensibilidad y probabilidad de fallos. ¿Qué programa moderno sale en una versión 1.0 que NUNCA falla?
Pero si tenemos en cuenta las tendencias de futuro, no hay escapatoria. Cuanto menos _hardware_ haya a bordo, mejor. La gestión por _software_ tendrá más peso y se reducirá el número de centralitas. La capacidad de proceso deberá estar siempre sobredimensionada, ya que los retardos son inaceptables, como en un reloj.
Además, por una simple cuestión de seguridad, es muy sano que el sistema operativo multimedia y el del resto del coche vayan separados y no interactúen. Sería el acabose que con un portátil con WiFi se pueda alterar una función de importancia como las de seguridad. Si no hay puerta, no se puede pasar, ¿a que es lógico?
¿Y a dónde vamos? No sabría deciros si se aprovecharán los bajos niveles de sistemas como UNIX (o derivados, como GNU Linux), si se estandarizarán sistemas operativos especializados para automóvil o si se les pondrá Windows y habrá que aumentar los requisitos de _hardware_ varios pueblos para que eso funcione.
Cierto es que cada fabricante hará lo que le dé la gana, pero como hay tanta tendencia a reducir la complejidad entre modelos, de la misma forma que se diseña una plataforma se puede diseñar un SO que sirva para varios modelos a la vez, optimizando los costes de ingeniería.
Y ya si hablamos de coches autónomos, el SO es un concepto indisoluble al del propio automóvil, aunque no se llame iOS, ni Android, ni Windows 8. Los ordenadores irán sobre ruedas, ya han empezado a hacerlo. El automóvil sin electrónica es ya una reliquia y solo tiene sentido en los clásicos, porque en su época era lo que había.
En Motorpasión | "Sistemas multimedia integrados en el coche: en el futuro todos los coches llevarán uno":https://www.motorpasion.com/gadgets/sistemas-multimedia-integrados-en-el-coche-en-el-futuro-todos-los-coches-llevaran-uno