WO2007078943A2 - Programming an embedded system in a vehicle using dynamic provisioning of program control operations - Google Patents
Programming an embedded system in a vehicle using dynamic provisioning of program control operations Download PDFInfo
- Publication number
- WO2007078943A2 WO2007078943A2 PCT/US2006/048434 US2006048434W WO2007078943A2 WO 2007078943 A2 WO2007078943 A2 WO 2007078943A2 US 2006048434 W US2006048434 W US 2006048434W WO 2007078943 A2 WO2007078943 A2 WO 2007078943A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control unit
- external programmer
- embedded system
- embedded
- programming
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Definitions
- the present invention relates to embedded systems used in a vehicle. More particularly, the present invention relates to apparatus and methods for programming such embedded systems.
- Vehicles increasingly employ embedded systems to execute a variety of vehicle functions.
- One such area employing embedded systems is the area of automobile network solutions.
- Many vehicles now include wireless communication services such as navigation and roadside assistance that require dedicated embedded systems.
- embedded systems may be used to monitor vehicle performance and notify a service center or the like of the need for vehicle maintenance.
- Programming of these embedded systems is typically accomplished by manually removing the embedded device and connecting it directly to an external programmer. Because of the complexity of these programming operations, programming of the embedded system is often executed at the device production factory. An embedded system that requires programming that is specific to a geographic area may be performed at a dealership. However, such programming again requires removal of the embedded device from the vehicle for direct connection to the external programmer.
- the systems currently used to program embedded systems typically rely on a predetermined coded algorithm to control the embedded system during programming operations.
- the codings for these algorithms are typically established during the design of the embedded system and remain static once the embedded system has been deployed. Reverse engineering of the code may be easily accomplished since the code is often included in the embedded system itself. Further, such static programming techniques do not facilitate programming of the embedded systems in ways not originally contemplated during the design process. Accordingly, a new system for more efficiently programming embedded systems disposed in a vehicle is desirable.
- Figure 1 is a schematic block diagram of one embodiment of a system for programming an embedded system in a vehicle.
- Figure 2 is a flow chart illustrating a plurality of interrelated processes that may be executed by the system of Figure 1 to program an embedded system.
- Figure 3 is a flow chart illustrating a plurality of interrelated processes that may b ee executed by the system of Figure 1 to program an embedded system using dynamic provisioning of programming control operations.
- Figure 4 is a flow chart illustrating a still further plurality of interrelated processes that may be executed by the system of Figure 1 to program an embedded system using dynamic provisioning of programming control operations.
- FIG. 5 is a schematic block diagram illustrating a programming system in which an embedded system is dynamically provisioned with executable code that controls the programming operations of the embedded system, where the executable code is directly provided to the embedded system by an external programmer.
- a system for programming an embedded system disposed in a vehicle comprises an external programmer and a principal control unit disposed in the vehicle.
- the principal control unit is coupled for communicating with the embedded system and the external programmer.
- the external programmer dynamically provisions the principal control unit with program control operations that are executed by the principal control unit to program the embedded system.
- the principal control unit is dynamically provisioned with software code from the external programmer, where the software code is executable by the principal control unit.
- the principal control unit is dynamically provisioned with executable commands provided by the external programmer.
- programming is described in the context of a telematics system in which the principal control unit is a telematics control unit that oversees the operation of a plurality of embedded systems within the telematics system.
- FIG. 1 is a schematic block diagram of one embodiment of a system for programming an embedded system in a vehicle.
- the programming system is suitable for use in a number of different programming situations where an embedded system is connected for communications with a principal control unit, the exemplary programming system and corresponding processes are described in the context of a telematics system 100 that, for example, is fixed within a vehicle.
- the telematics system 100 includes a telematics control unit 105 that is connected for communication with a plurality of embedded systems 110, 115, and 120. Telematics control unit 105 may be used to oversee and control the operations of each of the embedded systems.
- telematics control unit 105 may be used to mediate inter-process communications between the embedded systems, schedule various operations associated with each of the embedded systems, or the like. Communications between the telematics control unit 105 and embedded systems 110, 115, and 120, may be wired (i.e., using electrically conductive wires and/or electro-optical fibers for the like) or wireless. Wireless communications that may be used include, without limitation, Bluetooth, WiFi, code division multiple access (CDMA), time division multiple access (TDMA), global system for mobile communications (GSM), Zigbee, and/or any Institute of Electrical and Electronics Engineers (IEEE) 802.XX standard. Further, an embedded system may act as a conduit for communications between the telematics control unit 105 and a targeted embedded system.
- Each of the embedded systems 110, 115, and 120 may execute a unique function within the vehicle.
- embedded system 110 may be a network access device or other embedded communication device.
- embedded system 115 may be a global positioning system (GPS) based navigation system.
- Embedded system 120 may be used to monitor the vehicle to determine when service and/or maintenance is needed.
- the programs and information used by each of the embedded systems 110, 115, and 120, to execute these functions may be disposed in memory storage 135, 140, and 145 respectively associated with each embedded system.
- Telematics control unit 105 may integrate the functionality of the embedded systems 110, 115, and 120 to offer the vehicle operator a wide range of telematics services.
- Each of the embedded systems may require, for example, programming that is unique to the vehicle type and/or geographical area in which the vehicle is to be used.
- Vehicle type programming of the embedded systems may be implemented at the vehicle factory when access to the various embedded systems is easily obtained. In many instances, however, geographic area programming may require programming of the embedded system at a local dealer. Similarly, vehicle type programming may require programming of the embedded system at a local dealer when the telematics system 100 is installed as an aftermarket product.
- the software programs and information that are used to program one or more of the embedded systems 110, 115, and 120, are communicated to the telematics control unit 105 by an external programmer 125. Communications between the external programmer 125 and the telematics control unit 105 take place over one or more communication links 130.
- Communication link 130 may be in the form of a wired connection or a wireless connection. If a wireless connection is used, it may be implemented to operate in accordance with a Bluetooth protocol.
- FIG. 2 is a flow chart illustrating a plurality of interrelated processes that may be executed by the system of Figure 1 to program one or more of the embedded systems 110, 115 and 120.
- the external programmer 125 communicates with the telematics control unit 105 by, for example, issuing one or more commands to the telematics control unit 105 over link 130.
- the telematics control unit 105 responds to the issued commands at step 210.
- the telematics control unit 105 directs the embedded system that is to be programmed (the target embedded system) to enter a programming mode.
- the target embedded system With the target embedded system in its programming mode, information and programming for the target embedded system is provided from the external programmer 125 to the target embedded system through the telematics control unit 105. Since programming and programming information is provided through the telematics control unit 105, removal of the target embedded system from its location within the vehicle is not necessarily required.
- the external programmer 125 may dynamically provision the telematics control unit 105 with programming that directs the telematics control unit as to the manner in which the target embedded system is to be controlled during the programming process. For example, the external programmer 125 may provide a series of commands over link 130 that instructs the telematics control unit 105 on how control of the programming operation is to proceed. Alternatively, the external programmer 125 may provide software code to the telematics control unit 105 during the programming operation that the unit 105 may execute to program a target embedded system.
- FIG. 3 is a flow chart illustrating a plurality of interrelated processes that may be executed by the system of Figure 1 to program one or more of the embedded systems 110, 115, and 120, where the external programmer 125 provide software code for execution by the telematics control unit 105 to program the target embedded system.
- the external programmer 125 communicates with the telematics control unit 105 over link 130.
- the telematics control unit 105 responds to the communications from the external programmer 125 at step 310 by directing the target embedded system into its programming mode of operation.
- the external programmer 125 provides executable code to the telematics control unit 105. This code is executed by the telematics control unit 105 to control the operation of the target embedded system as the target embedded system is programmed with the programming and information sent by the external programmer 125 at step 320.
- the code that is executed by the telematics control unit 105 causes the telematics control unit 105 to mimic the operation of a standard external programmer that would otherwise be used to directly program the target embedded system in a standalone mode of operation.
- standalone programming generally requires removal of the targeted embedded system from its location within the vehicle and can be quite complex.
- programming of the targeted embedded system using the telematics control unit 105 does not necessarily impose the burden of removing the embedded system from the vehicle for programming.
- the telematics control unit 105 executes the code received from the external programmer 125 to program the target embedded system. Execution of the code may be initiated, for example, through a command sent by the external programmer 125. Alternatively, the code may be self executing. Other manners to direct the telematics control unit 105 to execute the code may also be employed.
- the telematics control unit While executing the code, programs the target embedded system in accordance with the communications received from the external programmer 125.
- the telematics control unit 105 may store programs and/or information received from the external programmer 125 into memory of the target embedded system. Programs stored into the memory of the target embedded system may be executed by the embedded system to perform the various functions for which the embedded system was designed. Other information stored into the memory may be used by the newly stored programs or by existing programs within the target embedded system.
- the telematics control unit 105 queries the external programmer 125 at step 330 to determine whether the programming operation is complete. If it is not complete, the process returns to step 320 where the external programmer provides the additional programming and/or information needed to complete programming of the target embedded system. If no further programming and/or information is needed, the telematics control unit 105 places the target embedded system into another mode of operation. Such modes may include reset, stop or an execution mode of operation at step 335. In this mode of operation, the target embedded system begins operating in accordance with the programming and/or information provided by the external programmer 125 to execute its designated functions. At step 340, the code executed by the telematics control unit 105 to control programming of the target embedded control system may be removed.
- Dynamic provisioning and removal of the executable code in the manner shown in Figure 3 may have a number of advantages in various situations.
- a dedicated memory space may be reused to execute the software code required for programming the different embedded systems 110, 115, and 120, of the telematics system 100. This reduces the memory requirements of the telematics control unit 105 and results in a corresponding memory device and physical space savings.
- the security of the algorithms used to program the embedded systems is improved over static programming methods since the code used to execute the algorithms is only present in the telematics system 100 during programming of one or more of the embedded systems.
- the use of a dynamic system to execute the algorithms used to program the embedded systems facilitates programming of the embedded systems in ways that were not originally contemplated during initial system design and deployment.
- Dynamic provisioning of the programming code for execution by the telematics control unit 105 also provides a logical separation between a master software programming entity and the software programming entity itself. This promotes software encapsulation, divisibility of labor between multiple human resources, and development security. Each of these characteristics is desirable during the software development process.
- Figure 4 is a flow chart illustrating a further plurality of interrelated processes that may be executed by the system of Figure 1 in order to dynamically provision the programming code.
- the external programmer 125 communicates with the telematics control unit 105 over link 130.
- the telematics control unit 105 responds to the communications from the external programmer 125 at step 410 by directing the target embedded system into its programming mode of operation.
- the external programmer 125 provides one or more commands that are to be executed by the telematics control unit 105.
- commands are executed by the telematics control unit 105 as they are received to control the operation of the target embedded system as the target embedded system is programmed with the programming and information sent by the external programmer 125 at step 420.
- the telematics control unit 105 executes the commands received from the external programmer 125 to program the target embedded system with the programming and information received at step 420.
- the external programmer 125 queries the telematics control unit 105 (or vice-versa) at step 430 to determine whether the programming operation is complete. If the programming operation is not complete, the process returns to.
- step 415 the external programmer 125 provides additional commands needed to complete programming of the target embedded system. If no further programming and/or information is needed, the telematics control unit 105 places the target embedded system into an execution mode, stop mode, or reset mode of operation at step 335. In this mode of operation, the target embedded system begins operating in accordance with the programming and/or information provided by the external programmer 125 to execute its designated functions.
- FIG. 5 is a schematic block diagram of a programming system that employs dynamic provisioning of programming code where the external programmer is connected directly to the embedded system.
- the programming system employs an external programmer 505 that is connected for communication with an embedded system 510 over one or more communication links 515.
- Embedded system 510 may be a component of a telematics system, shown generally at 520.
- Memory storage area 525 comprises the memory storage that is used to store programs and information that are executed when the embedded system 510 is in its execution mode of operation.
- Memory storage area 530 in contrast, comprises the memory storage that is used to store the dynamic programs provided by the external programmer 125. These dynamic programs are executed by the embedded system 510 when the embedded system is in its . programming mode of operation.
- Operation of the system shown in Figure 5 may proceed in a manner similar to the one set forth in the flow chart of Figure 3.
- the principal difference between the dynamic provisioning shown in Figure 3 and the operation of the system shown in Figure 5 lies in the fact that there is no telematics control unit 105 mediating the communications between external programmer 505 and embedded system 510 in the exemplary system of Figure 5. Rather, embedded system 510 communicates directly with the external programmer 505.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
A system for programming an embedded system disposed in a vehicle comprises an external programmer and a principal control unit disposed in the vehicle. The principal control unit is coupled for communicating with the embedded system and the external programmer. The external programmer dynamically provisions the principal control unit with program control operations that are executed by the principal control unit to program the embedded system. In one embodiment, the principal control unit is dynamically provisioned with software code from the external programmer, where the software code is executable by the principal control unit. In another embodiment, the principal control unit is dynamically provisioned with executable commands provided by the external programmer. In one example, programming is described in the context of a telematics system in which the principal control unit is a telematics control unit that oversees the operation of a plurality of embedded systems within the telematics system.
Description
PROGRAMMING AN EMBEDDED SYSTEM IN A VEHICLE USING DYNAMIC PROVISIONING OF PROGRAM CONTROL OPERATIONS
BACKGROUND OF THE INVENTION
1. Cross Reference to Related Applications. [oooii This application is related to applications attorney docket number IS02088TC, entitled "Communication Device Programming Failure Recoverability Scheme," and attorney docket number ISO2089TC, entitled "Arrangement for Programming an Embedded System in a Vehicle," which are both concurrently filed herewith, and both of which are incorporated herein by reference.
2. Technical Field. fooo2] The present invention relates to embedded systems used in a vehicle. More particularly, the present invention relates to apparatus and methods for programming such embedded systems.
3. Related Art. [0003] Vehicles increasingly employ embedded systems to execute a variety of vehicle functions. One such area employing embedded systems is the area of automobile network solutions. Many vehicles now include wireless communication services such as navigation and roadside assistance that require dedicated embedded systems. Additionally, embedded systems may be used to monitor vehicle performance and notify a service center or the like of the need for vehicle maintenance.
[0004] Programming of these embedded systems is typically accomplished by manually removing the embedded device and connecting it directly to an external programmer. Because of the complexity of these programming operations, programming of the embedded system is often executed at the device production factory. An embedded system that requires programming that is specific to a geographic area may be performed at a dealership. However, such programming
again requires removal of the embedded device from the vehicle for direct connection to the external programmer.
[0005] The systems currently used to program embedded systems typically rely on a predetermined coded algorithm to control the embedded system during programming operations. The codings for these algorithms are typically established during the design of the embedded system and remain static once the embedded system has been deployed. Reverse engineering of the code may be easily accomplished since the code is often included in the embedded system itself. Further, such static programming techniques do not facilitate programming of the embedded systems in ways not originally contemplated during the design process. Accordingly, a new system for more efficiently programming embedded systems disposed in a vehicle is desirable.
BRIEF DESCRIPTION OF THE DRAWINGS
[oβoβ] The invention can be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Moreover, in the figures, like referenced numerals designate corresponding parts throughout the different views.
[ooo7] Figure 1 is a schematic block diagram of one embodiment of a system for programming an embedded system in a vehicle.
[ooos] Figure 2 is a flow chart illustrating a plurality of interrelated processes that may be executed by the system of Figure 1 to program an embedded system.
[0009] Figure 3 is a flow chart illustrating a plurality of interrelated processes that may b ee executed by the system of Figure 1 to program an embedded system using dynamic provisioning of programming control operations.
[ooio] Figure 4 is a flow chart illustrating a still further plurality of interrelated processes that may be executed by the system of Figure 1 to program an embedded system using dynamic provisioning of programming control operations.
[ooii] Figure 5 is a schematic block diagram illustrating a programming system in which an embedded system is dynamically provisioned with executable code that controls the programming operations of the embedded system, where the executable code is directly provided to the embedded system by an external programmer.
DETAILED DESCRIPTION
[ooi2] A system for programming an embedded system disposed in a vehicle is set forth. The system comprises an external programmer and a principal control unit disposed in the vehicle. The principal control unit is coupled for communicating with the embedded system and the external programmer. The external programmer dynamically provisions the principal control unit with program control operations that are executed by the principal control unit to program the embedded system. In one embodiment, the principal control unit is dynamically provisioned with software code from the external programmer, where the software code is executable by the principal control unit. In another embodiment, the principal control unit is dynamically provisioned with executable commands provided by the external programmer. In one example, programming is described in the context of a telematics system in which the principal control unit is a telematics control unit that oversees the operation of a plurality of embedded systems within the telematics system.
[ooi3] Figure 1 is a schematic block diagram of one embodiment of a system for programming an embedded system in a vehicle. Although the programming system is suitable for use in a number of different programming situations where an embedded system is connected for communications with a principal control unit, the exemplary programming system and corresponding processes are described in the context of a telematics system 100 that, for example, is fixed within a vehicle.
[0014] As shown, the telematics system 100 includes a telematics control unit 105 that is connected for communication with a plurality of embedded systems 110, 115, and 120. Telematics control unit 105 may be used to oversee and control the operations of each of the embedded systems. For example, telematics control unit 105 may be used to mediate inter-process communications between the embedded systems, schedule various operations associated with each of the embedded systems, or the like. Communications between the telematics control unit 105 and embedded systems 110, 115, and 120, may be wired (i.e., using electrically conductive wires and/or electro-optical fibers for the like) or wireless. Wireless communications that may be used include, without limitation, Bluetooth, WiFi, code division multiple access (CDMA), time division multiple access (TDMA), global system for mobile communications (GSM), Zigbee, and/or any Institute of Electrical and Electronics Engineers (IEEE) 802.XX standard. Further, an embedded system may act as a conduit for communications between the telematics control unit 105 and a targeted embedded system.
[0015] Each of the embedded systems 110, 115, and 120 may execute a unique function within the vehicle. For example, embedded system 110 may be a network access device or other embedded communication device. Similarly, embedded system 115 may be a global positioning system (GPS) based navigation system. Embedded system 120 may be used to monitor the vehicle to determine when service and/or maintenance is needed. The programs and information used by each of the embedded systems 110, 115, and 120, to execute these functions may be disposed in memory storage 135, 140, and 145 respectively associated with each embedded system. Other embedded system types that may be implemented include WiFi systems, radio systems, vehicle head units, body modules, engine controllers, power control modules, vehicle system monitors, safety devices, heating, ventilating, and air- conditioning (HVAC) systems, and the like. Telematics control unit 105 may integrate the functionality of the embedded systems 110, 115, and 120 to offer the vehicle operator a wide range of telematics services.
[ooi6] Each of the embedded systems may require, for example, programming that is unique to the vehicle type and/or geographical area in which the vehicle is to be used.
Vehicle type programming of the embedded systems may be implemented at the vehicle factory when access to the various embedded systems is easily obtained. In many instances, however, geographic area programming may require programming of the embedded system at a local dealer. Similarly, vehicle type programming may require programming of the embedded system at a local dealer when the telematics system 100 is installed as an aftermarket product.
[ooi7] In the system shown in Figure 1, the software programs and information that are used to program one or more of the embedded systems 110, 115, and 120, are communicated to the telematics control unit 105 by an external programmer 125. Communications between the external programmer 125 and the telematics control unit 105 take place over one or more communication links 130. Communication link 130 may be in the form of a wired connection or a wireless connection. If a wireless connection is used, it may be implemented to operate in accordance with a Bluetooth protocol.
[ooi8] Figure 2 is a flow chart illustrating a plurality of interrelated processes that may be executed by the system of Figure 1 to program one or more of the embedded systems 110, 115 and 120. At step 205 of the exemplary process, the external programmer 125 communicates with the telematics control unit 105 by, for example, issuing one or more commands to the telematics control unit 105 over link 130. The telematics control unit 105 responds to the issued commands at step 210. In accordance with one manner of responding, the telematics control unit 105 directs the embedded system that is to be programmed (the target embedded system) to enter a programming mode. With the target embedded system in its programming mode, information and programming for the target embedded system is provided from the external programmer 125 to the target embedded system through the telematics control unit 105. Since programming and programming information is provided through the telematics control unit 105, removal of the target embedded system from its location within the vehicle is not necessarily required.
[ooij>] The external programmer 125 may dynamically provision the telematics control unit 105 with programming that directs the telematics control unit as to the
manner in which the target embedded system is to be controlled during the programming process. For example, the external programmer 125 may provide a series of commands over link 130 that instructs the telematics control unit 105 on how control of the programming operation is to proceed. Alternatively, the external programmer 125 may provide software code to the telematics control unit 105 during the programming operation that the unit 105 may execute to program a target embedded system.
[0020] Figure 3 is a flow chart illustrating a plurality of interrelated processes that may be executed by the system of Figure 1 to program one or more of the embedded systems 110, 115, and 120, where the external programmer 125 provide software code for execution by the telematics control unit 105 to program the target embedded system. At step 305 of the exemplary process, the external programmer 125 communicates with the telematics control unit 105 over link 130. The telematics control unit 105 responds to the communications from the external programmer 125 at step 310 by directing the target embedded system into its programming mode of operation. At step 315, the external programmer 125 provides executable code to the telematics control unit 105. This code is executed by the telematics control unit 105 to control the operation of the target embedded system as the target embedded system is programmed with the programming and information sent by the external programmer 125 at step 320.
[002i] In one embodiment of the programming system, the code that is executed by the telematics control unit 105 causes the telematics control unit 105 to mimic the operation of a standard external programmer that would otherwise be used to directly program the target embedded system in a standalone mode of operation. As noted above, standalone programming generally requires removal of the targeted embedded system from its location within the vehicle and can be quite complex. In contrast, programming of the targeted embedded system using the telematics control unit 105 does not necessarily impose the burden of removing the embedded system from the vehicle for programming.
[0022] At step 325, the telematics control unit 105 executes the code received from the external programmer 125 to program the target embedded system. Execution of the code may be initiated, for example, through a command sent by the external programmer 125. Alternatively, the code may be self executing. Other manners to direct the telematics control unit 105 to execute the code may also be employed.
L0023] While executing the code, the telematics control unit programs the target embedded system in accordance with the communications received from the external programmer 125. For example, the telematics control unit 105 may store programs and/or information received from the external programmer 125 into memory of the target embedded system. Programs stored into the memory of the target embedded system may be executed by the embedded system to perform the various functions for which the embedded system was designed. Other information stored into the memory may be used by the newly stored programs or by existing programs within the target embedded system.
[0024] Once the programming and/or information provided by the external programmer 125 has been stored in the target embedded system, the telematics control unit 105 queries the external programmer 125 at step 330 to determine whether the programming operation is complete. If it is not complete, the process returns to step 320 where the external programmer provides the additional programming and/or information needed to complete programming of the target embedded system. If no further programming and/or information is needed, the telematics control unit 105 places the target embedded system into another mode of operation. Such modes may include reset, stop or an execution mode of operation at step 335. In this mode of operation, the target embedded system begins operating in accordance with the programming and/or information provided by the external programmer 125 to execute its designated functions. At step 340, the code executed by the telematics control unit 105 to control programming of the target embedded control system may be removed.
[0025] Dynamic provisioning and removal of the executable code in the manner shown in Figure 3 may have a number of advantages in various situations. For
example, a dedicated memory space may be reused to execute the software code required for programming the different embedded systems 110, 115, and 120, of the telematics system 100. This reduces the memory requirements of the telematics control unit 105 and results in a corresponding memory device and physical space savings. Further, the security of the algorithms used to program the embedded systems is improved over static programming methods since the code used to execute the algorithms is only present in the telematics system 100 during programming of one or more of the embedded systems. Still further, the use of a dynamic system to execute the algorithms used to program the embedded systems facilitates programming of the embedded systems in ways that were not originally contemplated during initial system design and deployment.
[0026] Dynamic provisioning of the programming code for execution by the telematics control unit 105 also provides a logical separation between a master software programming entity and the software programming entity itself. This promotes software encapsulation, divisibility of labor between multiple human resources, and development security. Each of these characteristics is desirable during the software development process.
[0027] Figure 4 is a flow chart illustrating a further plurality of interrelated processes that may be executed by the system of Figure 1 in order to dynamically provision the programming code. At step 405 of the exemplary process, the external programmer 125 communicates with the telematics control unit 105 over link 130. The telematics control unit 105 responds to the communications from the external programmer 125 at step 410 by directing the target embedded system into its programming mode of operation. At step 415, the external programmer 125 provides one or more commands that are to be executed by the telematics control unit 105. These commands are executed by the telematics control unit 105 as they are received to control the operation of the target embedded system as the target embedded system is programmed with the programming and information sent by the external programmer 125 at step 420.
[0028] At step 425, the telematics control unit 105 executes the commands received from the external programmer 125 to program the target embedded system with the programming and information received at step 420. Once the programming and/or information provided by the external programmer 125 has been stored in the target embedded system, the external programmer 125 queries the telematics control unit 105 (or vice-versa) at step 430 to determine whether the programming operation is complete. If the programming operation is not complete, the process returns to. step 415 where the external programmer 125 provides additional commands needed to complete programming of the target embedded system. If no further programming and/or information is needed, the telematics control unit 105 places the target embedded system into an execution mode, stop mode, or reset mode of operation at step 335. In this mode of operation, the target embedded system begins operating in accordance with the programming and/or information provided by the external programmer 125 to execute its designated functions.
[0029] Figure 5 is a schematic block diagram of a programming system that employs dynamic provisioning of programming code where the external programmer is connected directly to the embedded system. As shown in the block diagram, the programming system employs an external programmer 505 that is connected for communication with an embedded system 510 over one or more communication links 515. Embedded system 510, for example, may be a component of a telematics system, shown generally at 520. There are at least two memory storage areas 525 and 530 associated with embedded system 510. Memory storage area 525 comprises the memory storage that is used to store programs and information that are executed when the embedded system 510 is in its execution mode of operation. Memory storage area 530, in contrast, comprises the memory storage that is used to store the dynamic programs provided by the external programmer 125. These dynamic programs are executed by the embedded system 510 when the embedded system is in its . programming mode of operation.
[0030] Operation of the system shown in Figure 5 may proceed in a manner similar to the one set forth in the flow chart of Figure 3. The principal difference between the dynamic provisioning shown in Figure 3 and the operation of the system shown in
Figure 5 lies in the fact that there is no telematics control unit 105 mediating the communications between external programmer 505 and embedded system 510 in the exemplary system of Figure 5. Rather, embedded system 510 communicates directly with the external programmer 505.
[oo3i] While various embodiments of the invention have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the invention. Accordingly, the invention is not to be restricted except in light of the attached claims and their equivalents.
Claims
1. A system for programming an embedded system disposed in a vehicle comprising: an external programmer; and a principal control unit disposed in the vehicle and coupled for communicating with the embedded system and the external programmer, wherein the principal control unit is dynamically provisioned by the external programmer with program control operations that are executed by the principal control unit to program the embedded system.
2. The system of claim 1 wherein the principal control unit is dynamically provisioned with software code from the external programmer, and wherein the software code is executable by the principal control unit.
3. The system of claim 2 wherein the software code provided from the external programmer to program the embedded system is removed from the principal control unit once programming of the embedded system is completed.
4. The system of claim 1 wherein the principal control unit is dynamically provisioned with a plurality of commands from the external programmer, and wherein the commands are executable by the principal control unit as the commands are received from the external programmer.
5. The system of claim 1 wherein the principal control unit and external programmer cooperate to program the embedded system as a network access device.
6. The system of claim 1 further comprising a wireless link facilitating communications between the principal control unit and the external programmer.
7. The system of claim 1 further comprising a wireless link facilitating communications between the principal control unit and the embedded system.
8. A telematics system comprising: an embedded system; a telematics control unit; one or more communication links facilitating communications between the embedded system and the telematics control unit; and one or more communication links facilitating communications between the telematics control unit and an external programmer, wherein the telematics control unit is dynamically provisioned by the external programmer with program control operations that are executed by the telematics control unit to program the embedded system.
9. The system of claim 8 wherein the telematics control unit is dynamically provisioned with software code from the external programmer, and where the software code is executable by the telematics control unit.
10. The system of claim 9 wherein the software code provided from the external programmer to program the embedded system is removed from the telematics control unit once programming of the embedded system is completed.
11. The system of claim 8 wherein the telematics control unit is dynamically provisioned with a plurality of commands from the external programmer, and wherein the commands are executable by the principal control unit as the commands are received from the external programmer.
12. The system of claim 8 wherein the embedded system comprises an embedded communication device.
13. The system of claim 12 wherein the embedded communication device comprises a network access device.
14. The system of claim 12 where the embedded communication device comprises a cellular telephone.
15. The system of claim 12 wherein the embedded communication device comprises a global positioning system (GPS) navigation system.
16. The system of claim 8 wherein the one or more communication links facilitating communication between the telematics control unit and the external programmer comprises a wireless link.
17. The system of claim 8 wherein the one or more communication links facilitating communications between the embedded system and the telematics control unit comprises at least one wireless communication link.
18. The system of claim 8 wherein the embedded system comprises: a first memory storage area for storing programs that are executed when the embedded system is in an execution mode of operation; and a second memory storage area for storing dynamic programs provided by the external programmer, where the dynamic programs provided by the external programmer are executable by the embedded system from the second memory storage area.
19. A method of programming an embedded system in a telematics system having a telematics control unit, the method comprising: connecting an external programmer for communication with the telematics control unit; issuing commands from the external programmer to the telematics control unit; responding to the commands by having the telematics control unit direct the embedded system to enter a programming mode; providing programming for the embedded system from the external programmer to the telematics control unit; using the programming provided by the external programmer to the telematics control unit so that the telematics control unit programs the embedded system while the embedded system is in the programming mode.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32032205A | 2005-12-28 | 2005-12-28 | |
US11/320,322 | 2005-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2007078943A2 true WO2007078943A2 (en) | 2007-07-12 |
WO2007078943A3 WO2007078943A3 (en) | 2008-08-21 |
Family
ID=38228770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2006/048434 WO2007078943A2 (en) | 2005-12-28 | 2006-12-19 | Programming an embedded system in a vehicle using dynamic provisioning of program control operations |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2007078943A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009047974A1 (en) * | 2009-10-01 | 2011-04-07 | Bayerische Motoren Werke Aktiengesellschaft | Method for programming controller in motor vehicle, involves executing update application by gateway to program controller via bus, and deleting update application in gateway, where update-application is provided in programming device |
EP2612239A1 (en) * | 2010-09-01 | 2013-07-10 | Google, Inc. | Installing a computer program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104971A (en) * | 1996-04-23 | 2000-08-15 | Robert Bosch Gmbh | Controller, in particular motor vehicle controller |
US6687587B2 (en) * | 2001-12-21 | 2004-02-03 | General Motors Corporation | Method and system for managing vehicle control modules through telematics |
-
2006
- 2006-12-19 WO PCT/US2006/048434 patent/WO2007078943A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104971A (en) * | 1996-04-23 | 2000-08-15 | Robert Bosch Gmbh | Controller, in particular motor vehicle controller |
US6687587B2 (en) * | 2001-12-21 | 2004-02-03 | General Motors Corporation | Method and system for managing vehicle control modules through telematics |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009047974A1 (en) * | 2009-10-01 | 2011-04-07 | Bayerische Motoren Werke Aktiengesellschaft | Method for programming controller in motor vehicle, involves executing update application by gateway to program controller via bus, and deleting update application in gateway, where update-application is provided in programming device |
DE102009047974B4 (en) | 2009-10-01 | 2022-09-01 | Bayerische Motoren Werke Aktiengesellschaft | Procedure for programming a control unit |
EP2612239A1 (en) * | 2010-09-01 | 2013-07-10 | Google, Inc. | Installing a computer program |
Also Published As
Publication number | Publication date |
---|---|
WO2007078943A3 (en) | 2008-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103138789B (en) | Vehicle portable device and information communication system | |
US6847871B2 (en) | Continuously monitoring and correcting operational conditions in automobiles from a remote location through wireless transmissions | |
US11036484B2 (en) | Software update management | |
CN107433828B (en) | Tire pressure monitoring system, vehicle, tire pressure monitoring method and computer equipment | |
CN104427490B (en) | Method and apparatus motor vehicle control device maintained by mobile communication | |
US20190108010A1 (en) | Hybrid electric vehicle with automated software update system | |
DE102012205358B4 (en) | OTA initiation procedure for a telematics system in a 2G GSM / 3G WCDMA network | |
JP6864006B2 (en) | How to modify control equipment related to automobile safety and / or security and related equipment | |
CN103226065B (en) | Intelligent automobile performance monitoring system based on onboard automatic diagnosis system | |
US10383156B2 (en) | Operating a mobile hotspot at a vehicle | |
US20130288659A1 (en) | Avoiding battery depletion of a mobile device | |
US12110034B2 (en) | Monitoring apparatus, monitoring program, and monitoring method | |
CN106656565A (en) | Automobile controller remote update method, device and system | |
CN105094112A (en) | Vehicle telematics unit power management | |
CN103944948B (en) | Method for configuring vehicle-mounted network, and intelligent vehicle-mounted terminal | |
CN105553946A (en) | Vehicle-mounted system based on CAN bus firewall and control method thereof | |
US8797958B2 (en) | Method of wirelessly communicating data between vehicles and central facilities | |
US20170196026A1 (en) | Controlling wireless subscription selection of a uicc with multiple cellular profiles | |
CN104821090B (en) | A kind of system and method based on smart mobile phone inspection vehicle | |
US9301242B2 (en) | Multimode acquisition for a wireless device | |
CN109474917B (en) | Road side equipment RSU and system configuration method thereof | |
CN105700447A (en) | Monitoring method of electric vehicle and monitoring platform | |
US20190215370A1 (en) | Remote vehicle task management | |
CN110493294A (en) | Update method, system, readable storage medium storing program for executing and the terminal of vehicle electronic circuit module | |
US9224250B2 (en) | Vehicle telematics unit lockout recovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase in: |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06845814 Country of ref document: EP Kind code of ref document: A2 |