Most vehicles being manufactured today have multiple computer-controlled systems, examples of which include the engine control unit or ECU, anti-lock brakes, air bags and an anti-theft system. The computers or processors that control such systems are referred to interchangeably as either embedded processors or embedded computers. They run software that is provided to the embedded processors when the vehicle is manufactured.
There may be several reasons why the software for an embedded computer might require a modification or improvement over the life of a vehicle. Regardless of the reason, updating the software for an embedded processor typically requires special equipment at an authorized service center or dealer or a complete replacement of an embedded processor and/or the memory devices storing the processor's software. Updating software on thousands of cars can also cost millions of dollars. An apparatus and method for updating the software used in a vehicle's embedded processor that does not require a trip to the dealership or an equipment replacement would be an improvement over the prior art.
As used herein, the word, “software” refers to one or more executable computer program instructions that make computer hardware work. An executable computer program instruction is a statement in any form of programming language, including machine language, assembler and high-level languages, specifying one or more operations to be performed by a computer. An executable instruction can include addresses and/or values of operands associated with an instruction.
A “file” is considered to be a complete and usually named collection of information, such as collection of program instructions, a set of data used by a program or user-created documents. Files in a computer or memory device are made up of binary-valued numbers. When a file is created it is usually named. A file can be transmitted, received or stored by transmitting, receiving or storing binary-valued numbers comprising the file.
An “embedded computer” is considered to be a computer or computer system that is part of, and which is connected to a larger system. An embedded computer performs at least some of the operational requirements of the larger system. “Embedded computer” also refers to a computer or processor that is built in to, or which forms a part of a computer-controlled device, machine or circuit.
The microprocessors, microcontrollers and digital signal processors (DSPs) that control cellular telephones, televisions, microwave ovens, CAT scanners, navigation systems and robots are examples of embedded computers. Processors that control vehicle engines, transmissions, anti-lock brakes, air bags and infotainment systems are also embedded computers. Laptops, tablets and desktop personal computers, on the other hand are not embedded computers because they are not built into, nor do they control a specific device, machine or circuit.
As used herein, “bus” refers to a set of one or more electrical conductors in a computer system that forms a main transmission path. A bus is essentially a shared highway that connects different parts of a system together. Most busses consist of specialized groups of electrically-parallel conductors or lines that carry different types of information, examples of which are the address, data and control buses commonly found on microprocessors and microcontrollers. A bus can also consist of a single conductor or line that carries different types of information at different relative times. The Controller Area Network or “CAN” bus and the Flexray bus are well-known busses used in vehicles to connect devices to each other. Ethernet is another form of bus that can be used to connect devices together.
The wireless communications capabilities provided to cell phones generally as well as the device 300 shown in
In
The vehicle 200 shown in
The embedded computers 102, 104 and 106 depicted in
Still referring to
In order to transfer software to the vehicle, files 502 kept at the server 500 are first transmitted to the device 300 through the Internet 550, being wirelessly between the cellular network 600 and the device 300. Files 502 received by the extra-vehicle, mobile cellular communications device 300 are stored within the device 300 in a non-transitory memory, until a later time when the files 502 can be downloaded to the vehicle 200 from the device 300, through either a separate wireless link 110 between the vehicle 200 and device 300 or through a wired connection, not shown.
A separate wireless link 110 between the device 300 and vehicle 200 is preferably provided by a short-range radio frequency protocol, which is preferably Bluetooth. The Bluetooth protocol is well known to those of ordinary skill in the art. Further discussion of the Bluetooth protocol is therefore omitted for brevity.
In a preferred embodiment, the apparatus 210 comprises a telematics unit 212, which is provided with a two-way communications device 214, preferably embodied as a short-range radio frequency receiver and transmitter, the combination of which is referred to hereinafter as a transceiver 214. In a preferred embodiment, the communications device 214 is a Bluetooth host. In an alternate embodiment, the communications device 214 is simply a universal serial bus (USB) interface, a USB connector and USB cable, which are well known to those of ordinary skill in the computer art and therefore omitted from
Bluetooth is a wireless communication protocol in the unlicensed industrial, scientific, medical (ISM) band at 2.4 GHz using a frequency-hopping transceiver. Originally developed by the Bluetooth Special Interest Group (SIG), it allows real-time voice and data communications between Bluetooth hosts. The Bluetooth link protocol is based on time slots. Bluetooth links between Bluetooth-capable devices are well known. Further description of them is therefore omitted for brevity.
The telematics unit 212 has its own embedded computer 216. The embedded computer 216 is coupled to the communications device 214 such that information-bearing binary-valued signals can be sent to and from the computer 216 through the communications device 214.
The embedded computer 216 is also connected to a non-transitory memory device 218 and a vehicle bus 220, so named because the vehicle bus 220 runs through-out the vehicle, connecting various embedded computers to each other and to peripheral devices controlled by one or more of the embedded computers. The embedded computer 216 is configured to send files embodied as binary-valued signals, to other embedded computers coupled to the vehicle bus 220. The computer 216 in the communications device 214 can therefore considered to be a “master” of the bus or bus master, at least while it is transmitting files over the vehicle bus 220 to another embedded computer that is also coupled to the same bus 220.
In a preferred embodiment, the embedded computer 216 effectuates file transfers by sending files to embedded, destination computers on the vehicle bus 220. A recipient embedded computer 222, 224, 226 or 228, stores files that it receives over the bus 220, into its own corresponding non-transitory memory device 230, 232, 234 and 236. In one alternate embodiment, which uses conventional address, data and control lines, well known to those of ordinary skill, the vehicle bus 220 is connected directly to non-transitory memory devices. The direct connection of address, data and control lines to memory devices enable the embedded computer 216 for the telematics unit 212 to write or transfer software and data directly into a non-transitory memory device, as well as read software and data from those non-transitory memory devices akin to direct memory access or DMA.
Those of ordinary skill in the art will recognize that the embedded computers 216, 222, 224, 226 and 228 shown in
By way of example, in
Referring again to
Those of ordinary skill in the will recognize that transferring files over a bus typically requires the bus to be made unavailable for other purposes, at least while the file and its constituent data is actually being carried over the bus. If a vehicle bus 220 can't be used by embedded computers in a vehicle, the devices or systems controlled by embedded computers might not work. Large software updates are therefore preferably accomplished by sending updates in packets, which are segments or pieces of a file. Sending and receiving a file using packets is well known to those of ordinary skill in the art. A description of various types of packets and their transmission over a network is therefore omitted for brevity.
The embedded computers 212, 214, 216 and 218 are coupled to corresponding memory devices 230, 232, 234, 236 and the vehicle bus 220. Each embedded computer 222, 224, 226, 228 is able to receive and send files over the vehicle bus 220, including files that comprise replacement or updated software for the embedded computers as well as the embedded computer 216 for the telematics unit 212.
In one embodiment, the vehicle bus 220 is embodied as a controller area network or “CAN” bus, which is a bus protocol, well known to those of ordinary skill in the vehicle electronics art. The CAN bus protocols are incorporated by reference herein.
In another embodiment, the vehicle bus 220 is a FlexRay bus which is a communications protocol developed for in-vehicle network communications. It is now a set of ISO standards, well known to those of ordinary skill and incorporated herein by reference.
In yet another embodiment, the vehicle bus 220 is an Ethernet bus. Ethernet is also well known.
Software updates for the embedded computers 222, 224, 226 and 228, including the embedded computer 216 for the telematics unit 212, are received as one or more files downloaded to the communications device 214 and then to the telematics unit computer 216, from the aforementioned, extra-vehicle, mobile cellular communications device 300. On a CAN bus, all devices “listen” on the bus and respond only to messages that have an identification (ID) code that corresponds to or identifies an embedded computer. In another embodiment, When an ID for an embedded computer is received, a software update for the embedded computer can be transferred to the corresponding computer using conventional CAN bus file transfer techniques, well known to those of ordinary skill in the art.
Software for an embedded computer in a vehicle should be provided by, or obtained from an authorized entity, preferably the vehicle's manufacture. The ability of the communications device 300 to receive embedded computer software from the vehicle's manufacturer and its ability to transmit or forward such software is therefore controlled.
In a preferred embodiment, the extra-vehicle cellular communications device 300 is “registered” to the vehicle 200 by programming a unique identifier 301 for the extra-vehicle cellular communications device 300 into the non-transitory memory device 218 for the controller 216 in the telematics unit 212. The unique identifier 301 is preferably programmed into the memory 218 by a vehicle manufacturer-authorized dealer or manufacture-authorized service agent. Computer program instructions for the embedded computer 216 in the telematics unit 212 cause the computer 216 to thereafter search for the unique identifier 301 in files received by the telematics unit 202. If the unique identifier 301 is not received from the device 300, program instructions for the embedded computer 216 for the telematics unit 212 cause the computer 216 to consider received files as being unauthorized or as containing files that are not software for an embedded computer. The computer 216 will therefore not transfer a received file into any memory device for an embedded computer.
A unique identifier 301 for the extra-vehicle cellular communications device 300 is preferably embodied as a multi-digit number that unambiguously identifies the extra-vehicle cellular communications device 300 as one that is owned or controlled by the owner of the vehicle 200. Software received from the device 300 is thus considered authentic, i.e., obtained from a device 300 owned by the owner of vehicle 200. The identifier 301 is thus considered to be an authenticator for the extra-vehicle cellular communications device 300.
In one embodiment, the authenticator 301 is the electronic serial number or ESN for the extra-vehicle cellular communications device 300. The ESN of a cell phone is well known to those of ordinary skill in the art as a multi-digit number programmed into the device 300 by the manufacturer of the device 300 when the device 300 is manufactured.
Every motor vehicle is provided or assigned a vehicle identification number or VIN by its manufacturer. The VIN uniquely identifies a vehicle and at least some of the equipment it was manufactured with.
In a preferred embodiment, a VIN for the vehicle 200 is stored in the memory device 218 as a string of alpha-numeric values 250, from which the VIN can be provided to the extra-vehicle cellular communications device 300 and stored in a memory device 218 of the device 300 as a string of characters 250. Software in the device 300 provides the VIN to the manufacturer's web server 500 prior to, and as a pre-condition to obtaining software for the vehicle from the server 500. The VIN enables the server 500 to identify files 502 for the vehicle.
A Bluetooth transceiver 308, also within the housing 307 and part of the device 300, sends and receives radio frequency signals through a corresponding Bluetooth antenna 310, also located with the housing 307.
The user interface 302, cellular transceiver 304 and Bluetooth transceiver 308 are coupled to an embedded processor 312 for the device 300. The embedded processor 312 executes program instructions stored in a non-transitory memory device 314. The non-transitory memory device 314 has at least a first memory space 316, which stores program instructions executed by the processor 308 and a second memory space 318 allocated to receive and store files and other information downloaded by the device 300 through the cellular transceiver 304 and which will be transmitted from the device 300 via the Bluetooth transceiver 308 or via a conventional USB connector/port 320, also coupled to the processor 312. Stated another way, information and files in the download memory space 318 can be received from the cellular transceiver 304 and transmitted through either the Bluetooth transceiver 308 or a USB port 320.
Program instructions in the program memory space 316 are selected and arranged such that when they are executed by the processor 312 they cause the processor 312 to control the cellular transceiver 304, the user interface 302, the Bluetooth transceiver 308 and the USB port 320. Those instructions effectively cause the processor 308 to receive a file received by the transceiver 304 from a wireless communications network, not shown in
In a preferred embodiment, program instructions in the program memory space 316 cause the processor 308 to first monitor the user interface 302 for an input from a user of the device 300. Such an input is typically a user's tactile interaction with a touch sensitive display device. When a user input is received, the processor 312 directs the cellular transceiver 304 to begin a wireless communications session through a cellular network 600 by which the device 300 accesses a website 500 hosted by a vehicle manufacturer and request a download of software.
In order to receive software for a vehicle's embedded computers, the device 300 needs to identify the vehicle into which the software will be downloaded. In a preferred embodiment, program instructions in the program memory space 316 cause the processor 308 to effectuate the transmission of a vehicle identification number, stored in the program memory space 316 as a string of alpha-numeric characters 250. The server transmits software for a vehicle to the device 300 as a file 502, after the server receives at least the VIN.
After a file 502 is downloaded to the device 300, program instructions in the program memory space 312 cause the processor 300 to initiate a communications session with a vehicle communications device 212, preferably a Bluetooth transceiver 306 but optionally a USB interface. When a communications session is established, program instructions cause the processor 308 to retrieve a file 502 from the download memory space 318 and transmit the file 502 from either the Bluetooth transceiver 308 or a USB port 320. The file that was previously received via the cellular transceiver 304 and stored in the download memory space 318 is thereby provided to a vehicle 200 via a cell phone.
In a first step 402, a vehicle software update application or “app” is installed into a conventional smartphone after which, the device is able to function as an extra-vehicle, mobile cellular communications device 300.
After the “app” download is determined to have been completed at step 404, the device 300 is able to download software at step 406 including release notes and other information and store that downloaded information internally.
After a software download is completed, the device 300 initiates communications with a vehicle and at steps 408 and 410, responsive to a download command received by the device 300 through its user interface. A determination is then made at step 408 whether the car is ready for an update and whether Bluetooth hosts have been paired. If the registration of the two Bluetooth devices to each other is successful, as determined at step 410, at step 412 a decision is made whether to begin the download. If the Bluetooth registration was unsuccessful, an error message is provided to the device as shown at step 414. If the registration was successful, the software is downloaded to the vehicle at 416.
When an embedded computer software download is determined to have completed as shown at step 418, any updated software that was downloaded into the device 300 is deleted at step 420 followed by the device's return to its normal operation at step 422.
Still referring to
Those of ordinary skill in the art will recognize that downloading a software update for an embedded processor to a smart phone and then downloading the software from the phone to the vehicle is faster and less costly than having to return the vehicle to an authorized service center or dealer for an update. With that in mind, the foregoing description is for purposes of illustration only. The true scope of the invention is set forth in the following claims.