It’s easy to understand why so many futurology authors consider cars a measure of technological prowess. Aside from a way to commute to work (for the poor souls who can’t telecommute), cars are among our biggest expenses, and they put the latest innovations (literally) in our hands. Automobiles are gaining new functionality from on-board sensors, fast wireless communications, cloud-based services, real-time data access, and personalized human-machine interaction. Which is good news for consumers, and a challenge for designers, engineers, and developers.
If you’ve done any kind of software development for multicore systems, you’re aware of some of those challenges. The same things that make multicore architecture more powerful make it more complex… just to start with. Now imagine that scenario in a system where safety is paramount, and split-second timing means life or death.
At the Grace Hopper Celebration of Computing conference in early October four engineers from Ford shared what they were doing to drive the industry forward (really, these car puns are hard to resist) personally, at Ford, and as part of the transportation industry. Their overview made me say, “Oh, that’s cool!” several times in an hour, and I bet it will inspire you, too.
Complexity in automobile embedded systems is a huge deal, explained Dona Burkard, who has been working in the automobile industry for over 20 years. Her area of expertise is in powertrain embedded systems.
In 2006, there were 13 embedded CPUs (ECUs) in a vehicle, she said; today it’s 65. As Burkard explained, multi-core microcontroller architecture is being introduced in powertrain control modules to enable continued growth in the complexity of engine and transmission controls with lower power consumption and lower heat dissipation. But they also bring tech challenges: more difficult static/dynamic analysis; working with legacy applications with complex hand-written software that was never designed for parallel systems; the need for stricter standards.
It’s easy for us to say “complexity,” but consider the number of code modules in a car today:
And then think about how you’d diagram the interaction between them. In the image below, look at the chart at the top left corner, and consider how tough it’d be to debug -- much less to refactor for multicore hardware.
Industry standards obviously are a good thing, but as in any knowledge domain they often are developed slowly -- sometimes slower than the technology customers are clamoring to use. For the transportation industry, the relevant standards are ISO 26262 and AutoSAR (Automotive Open System Architecture), “intended to be applied to safety-related systems that include one or more electrical and/or electronic (E/E) systems and that are installed in series production passenger cars.”
As a result, Burkard said, Ford works years in advance with manufacturers and OEMs to create an integrated platform. Usually that means several years in advance of a vehicle model year. (And you thought your team’s build cycle was slow?)
It’s not just the foundational hardware that causes engineers to rethink the way things are done. Jayanthi Rao, whose attention is on wireless networking and mobility networking and mobile issues, discussed the role of in-vehicle connectivity and wireless technology.
Today’s vehicles have a network control system that includes the powertrain, chassis, and doors, all on a simple broadcast network. Automotive systems are engineered for high reliability -- multiple 9s thereof. (You don’t want your trunk opening as you’re driving down the highway, right?) The vehicle control signals contribute millions of lines of code.
And then we get to the other types of connectivity you expect in your car: cameras, GPS, Bluetooth, Wi-Fi, GSM/LTE, and RFID. Many of these allow off-board connectivity to surface, such as when you take mobile devices into your vehicle, expecting the dashboard to manage hands-free calling and music integration. Each has content sharing protocols relevant in the vehicle -- and even more are on the way.
With standards in development across the transportation industry, all sorts of other innovations are possible, such as a vehicle interface to the cloud. How about querying your car’s battery to find out its charge level? From the shopping mall? The V2X standard -- yes, yet another standard being worked on -- addresses communication between vehicles, both V2V (Vehicle to Vehicle) services and V2I (Vehicle to Infrastructure) services. In English, that means automobiles talking to each other and to traffic lights, so your car can do a better job with blind spot warnings, call for driver assistance, offer e-payments, or supply “geo-proximate” services (such as telling your friend, “Follow me to the restaurant”).
Among the challenges is reliably connecting to other systems at highway speed. We understand networking at zero mph, Rao said, but not at 10 mph -- much less 70. “It’s a fundamental question we have to understand really, really well,” she said.
Oh sure – and then there’s hacking (for good and for evil). There are opportunities for “car” development, including an open source API that enables developers to write more software to integrate with these ultimately-mobile systems. Any system designed for performance and reliability puts its attention first on processing overhead. Cybersecurity initiatives, including the frameworks and guidelines across the transportation industry, are a necessary price to pay in designing for vehicle (and code) performance.
Most of us aren’t thinking about automobile connectivity today, though. We want the shiny stuff. “The car is becoming the smartest consumer device you will ever own,” said Pramita Mitra, senior solutions architect at the Ford Research and Innovation Center’s Digital Technology Ownership Experiences Group, whose own focus is on in-vehicle infotainment systems and cloud-connected services. Mitra reported that according to GFK research, five in ten purchase decisions are made based on in-vehicle infotainment (IVI), summarized as “travel time well spent.”
This isn’t the car radio of my youth (even if I’m tempted to sing Meatloaf’s “Paradise by the Dashboard Light” -- and now you are too). IVI is a collection of hardware devices integrated into transportation devices, which include audio, navigation, telecommunications and cabin climate control systems. You can communicate with them using an in-dash display, multi-function hard keys on the steering wheel, and voice commands. Want movie listings on your car’s display screen? Sports scores? To use the cloud to remote control your in-vehicle infotainment settings? These already are enabled by the IVI system hardware. (This is an opportunity for you, O Best Beloved Developer Reader, to think about how vendors and manufacturers surface functionality to developers, and what they do to attract you.)
Here, too, more is on the way, along with even more discussions about user interface and safety. (How much can you manipulate at 70 mph?)
Reates Curry, whose specialty at Ford is in human-machine interfaces (HMI), explained that Ford, like most of its competitors, is working with virtual testing systems (amongst a gamut of driver assessment resources) to look at how people interact with technology. In particular, Ford has VIRTTEX, a large motion-based driving simulator with a 360-degree field-of-view screen, steering feedback, and realistic sound cues. These help UX experts learn how drivers respond to innovations that sound cool on the design spec but maybe not-so-much with a two-year-old squalling in the back seat.
Most car companies are part of alliances to develop standards and regulations for automobile-grade functionality. “We will have to pass standards before production,” Curry said, reassuringly.
Steering your career
If the challenges of embedded systems, networking challenges, human-machine interaction, and software standards sound oh-so-cool, that was entirely by design.
“The goal of our panel was to share with the audience the enormous career opportunities for computer scientists and IT specialists in the automotive industry, which is often seen as a nontraditional career path for people with that kind of background,” said Mitra.
And maybe it’ll encourage you to think about software development outside the “regular” world of software.