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 PDF

Info

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
Application number
PCT/US2006/048434
Other languages
French (fr)
Other versions
WO2007078943A3 (en
Inventor
David R. Hentrich
Jose J. Gonzalez
Original Assignee
Motorola, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola, Inc. filed Critical Motorola, Inc.
Publication of WO2007078943A2 publication Critical patent/WO2007078943A2/en
Publication of WO2007078943A3 publication Critical patent/WO2007078943A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

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

UCLAIMSWe claim:
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.
PCT/US2006/048434 2005-12-28 2006-12-19 Programming an embedded system in a vehicle using dynamic provisioning of program control operations WO2007078943A2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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