US12489691B2 - Method for persisting service discovery learning - Google Patents
Method for persisting service discovery learningInfo
- Publication number
- US12489691B2 US12489691B2 US18/334,684 US202318334684A US12489691B2 US 12489691 B2 US12489691 B2 US 12489691B2 US 202318334684 A US202318334684 A US 202318334684A US 12489691 B2 US12489691 B2 US 12489691B2
- Authority
- US
- United States
- Prior art keywords
- services
- control modules
- learning
- vehicle
- service discovery
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/12—Arrangements for remote connection or disconnection of substations or of equipment thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5058—Service discovery by the service manager
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Definitions
- the technical field generally relates to vehicles, and particularly to service discovery for control modules of vehicles.
- a method includes receiving an indication of a trigger for service discovery learning for a plurality of control modules for a vehicle: performing service discovery learning among the plurality of control modules via a communications network as to services to be offered or required by each of the control modules, after the indication of the trigger and before the services are actually required, in accordance with instructions provided by one or more processors of the plurality of control modules; and subsequently, when an event occurs in which the services are actually required, requesting and offering the services via the plurality of control modules based on the service discovery learning.
- the method further includes controlling one or more vehicle actions, in accordance with control instructions provided by the one or more processors, using one or more engine parameters or other vehicle parameters via the services in response to the event.
- the trigger for the service discovery includes a software update for the plurality of control modules.
- the plurality of control modules are in a dormant mode after the service discovery learning and prior to the event in which the services are actually required, and only certain control modules of the plurality of control modules that are needed for the services are woken from the dormant mode following the event.
- the service discovery learning includes, for each particular control module, identifying a list of services to be offered or required by the particular control module along with IP addresses of other control modules that subscribe to or provide the services.
- a timer is utilized for the service discovery learning in determining when the service discovery learning, and the service discovery learning is restarted when the service discovery learning is not yet completed upon expiration of the timer.
- the method further includes storing, into a non-volatile memory of the particular control module, a learning table that includes the list of services to be offered or required by the particular control module along with the IP addresses of the other control modules that subscribe to or provide the services.
- the method further includes: subsequently, when the event occurs in which the services are actually required, requesting and offering the services via the plurality of control modules based on the learning table stored in the non-volatile memory of the particular control module.
- a system in another exemplary embodiment, includes a transceiver and one or more processors.
- the transceiver is configured to at least facilitate receiving an indication of a trigger for service discovery learning for a plurality of control modules for a vehicle.
- the one or more processors are coupled to the transceiver, and are configured to at least facilitate performing service discovery learning among the plurality of control modules as to services to be offered or required by each of the control modules, after the indication of the trigger and before the services are actually required; and subsequently, when an event occurs in which the services are actually required, requesting and offering the services via the plurality of control modules based on the service discovery learning.
- the one or more processors are further configured to at least facilitate controlling one or more vehicle actions, in accordance with instructions provided by the one or more processors, using one or more engine parameters or other vehicle parameters via the services in response to the event.
- the trigger for the service discovery includes a software update for the plurality of control modules.
- the plurality of control modules are in a dormant mode after the service discovery learning and prior to the event in which the services are actually required, and only certain control modules of the plurality of control modules that are needed for the services are woken from the dormant mode following the event.
- the service discovery learning includes, for each particular control module, identifying a list of services to be offered or required by the particular control module along with IP addresses of other control modules that subscribe to or provide the services.
- a timer is utilized for the service discovery learning in determining when the service discovery learning, and the service discovery learning is restarted when the service discovery learning is not yet completed upon expiration of the timer.
- the one or more processors are further configured to at least facilitate storing, into a non-volatile memory of the particular control module, a learning table that includes the list of services to be offered or required by the particular control module along with the IP addresses of the other control modules that subscribe to or provide the services.
- the one or more processors are further configured to at least facilitate: subsequently, when the event occurs in which the services are actually required, requesting and offering the services via the plurality of control modules based on information retrieved by a processor of the particular control module from the learning table stored in the non-volatile memory of the particular control module.
- a vehicle in another exemplary embodiment, includes a body, a drive system, a transceiver, and one or more processors.
- the drive system is configured to move the body.
- the transceiver is disposed on or more within the body, and is configured to at least facilitate receiving an indication of a trigger for service discovery learning for a plurality of control modules for the vehicle.
- the one or more processors are disposed on or within the body, are coupled to the transceiver, and are configured to at least facilitate performing service discovery learning among the plurality of control modules as to services to be offered or required by each of the control modules, after the indication of the trigger and before the services are actually required; and subsequently, when an event occurs in which the services are actually required, requesting and offering the services via the plurality of control modules based on the service discovery learning.
- the plurality of control modules are in a dormant mode after the service discovery learning and prior to the event in which the services are actually required, and only certain control modules of the plurality of control modules that are needed for the services are woken from the dormant mode following the event.
- the vehicle further includes a non-volatile memory configured to store a learning table that includes a list of services to be offered or required by a particular control module along with IP addresses of other control modules that subscribe to or provide the services: wherein the one or more processors are further configured to at least facilitate storing the learning table into the non-volatile memory.
- the one or more processors are further configured to at least facilitate: subsequently, when the event occurs in which the services are actually required, requesting and offering the services via the plurality of control modules based on information retrieved by a processor of the particular control module from the learning table stored in the non-volatile memory of the particular control module.
- FIG. 1 is a functional block diagram of a vehicle that includes a plurality of control modules that request services from and provide services to one another, and for which service discovery is controlled with relationships that are pre-established prior to when a trigger event has occurred that actually requires the services, in accordance with an exemplary embodiment;
- FIG. 2 is a functional block diagram of an exemplary control module of FIG. 1 , in accordance with an exemplary embodiment:
- FIG. 3 is a process for controlling service discovery for a plurality of control modules of a vehicle, and that can be implemented in connection with the vehicle of FIG. 1 , including the control modules of FIGS. 1 and 2 , in accordance with an exemplary embodiment;
- FIGS. 4 , 5 A, 5 B, and 6 illustrate exemplary illustrations of the process of FIG. 3 , in accordance with an exemplary embodiment.
- FIG. 1 illustrates a vehicle 100 .
- the vehicle 100 includes a control system 102 that includes a transceiver 104 , a communications network 106 , and a plurality of control modules 108 that request services from and provide services to one another in accordance with a service discovery process 300 as depicted in FIG. 3 and described in greater detail further below in connection therewith.
- the vehicle 100 comprises an automobile.
- the vehicle 100 may be any one of a number of different types of automobiles, such as, for example, a sedan, a wagon, a truck, or a sport utility vehicle (SUV).
- SUV sport utility vehicle
- the vehicle 100 may also comprise a motorcycle or other vehicle, such as aircraft, spacecraft, watercraft, and so on, and/or one or more other types of mobile platforms (e.g., a robot and/or other mobile platform).
- the vehicle 100 includes a body 110 that substantially encloses other components of the vehicle 100 .
- the vehicle 100 also includes a plurality of wheels 112 near respective corners of the body 110 to facilitate movement of the vehicle 100 .
- the vehicle 100 includes four wheels 112 , although this may vary in other embodiments (for example for trucks and certain other vehicles).
- the vehicle 100 includes a drive system 114 that is used to propel the vehicle 100 .
- the drive system 114 may include an internal combustion engine and/or an electric motor/generator, coupled with a transmission thereof.
- the vehicle 100 may also incorporate any one of, or combination of, a number of different types of propulsion systems for the drive system 114 , such as, for example, a gasoline or diesel fueled combustion engine, a “flex fuel vehicle” (FFV) engine (i.e., using a mixture of gasoline and alcohol), a gaseous compound (e.g., hydrogen and/or natural gas) fueled engine, a combustion/electric motor hybrid engine, and an electric motor.
- a gasoline or diesel fueled combustion engine a “flex fuel vehicle” (FFV) engine (i.e., using a mixture of gasoline and alcohol)
- a gaseous compound e.g., hydrogen and/or natural gas
- each control module 108 comprises a control system or module (e.g., an engine control module, or “ECU”) that controls one or more features of the vehicle 100 . While six control modules 108 are depicted in FIG. 1 for illustrative purposes only, it will be appreciated that in various embodiments the control system 102 may include any number of control modules 108 .
- ECU engine control module
- each control module 108 requests one or more services from one or more other control modules 108 , and also provides one or more services to one or more other control modules 108 .
- “services” may include values for one or more engine parameters (e.g., engine speed, engine revolutions per minute, engine temperature, and so on) as well as one or more other vehicle parameters (such as vehicle speed, vehicle acceleration, vehicle heading, vehicle steering angle, ambient air temperature, and so on) and/or other information related to the vehicle 100 , its surroundings, and/or operation of the vehicle 100 .
- each control module 108 comprises a computer system having a processor and memory, for example as depicted in FIG. 2 and described below in connection therewith.
- each control module 108 comprises a computer system that includes a processor 210 along with a service discovery module (SD) 202 and a non-volatile memory (NvM) 204 that are coupled together.
- the processor 210 controls operation of the control module 108 in executing a program 212 (e.g., that resides in the controller flash).
- the program 212 provides instructions that are executed by the processor 210 in controlling functionality for the control module 108 .
- the service discovery module (SD) 202 provides the capabilities to discover services and subscribe to service events.
- the non-volatile memory 204 includes a learning table 214 that stores information as to services 216 that are offered or requested by the various control modules 108 along with IP addresses 218 of the various control modules 108 that request and provide the services 216 .
- non-volatile memory writing (NvM_WriteAll) 206 is provided of information as to the services into the non-volatile memory 204
- non-volatile memory reading (NvM_ReadAll) 208 is provided of information as to the services from the non-volatile memory 204 , as described in greater detail below.
- the non-volatile memory writing (NvM_WriteAll) 206 includes the saving of information by the processor 210 into the non-volatile memory 204 pertaining to the services 216 that are offered or requested by the various control modules 108 , along with the associated IP addresses 218 of the control modules 108 , prior to when the services are actually needed.
- the non-volatile memory reading (NvM_ReadAll) 208 includes the subsequent retrieving of the information by the processor 210 from the non-volatile memory 204 , when the services are actually needed, of the services 216 that are offered or requested by the control modules 108 , along with the associated IP addresses 218 of the control modules 108 .
- the non-volatile memory writing (NvM_WriteAll) 206 and the non-volatile memory reading (NvM_ReadAll) 208 are performed by the processor 210 as part of the process 300 and implementations thereof that are depicted in FIGS. 3 - 6 and that are described in greater detail further below in connection therewith.
- the transceiver 104 receives information as to one or more triggers and events that require action by the control modules 108 (such as one or more triggers for service discovery learning and one or more events requiring the services, for example as described in greater detail further below in connection with the process 300 of FIG. 2 and the implementations of FIGS. 3 - 6 ).
- the transceiver 104 provides the information to one or more processors 210 of one or more respective control modules 108 , which perform the steps of the process 300 and implementations thereof that are depicted in FIGS. 3 - 6 and that are described in greater detail further below in connection therewith.
- the communications network 106 couples each of the control modules 108 to the transceiver 104 and to one another.
- the communications network 106 comprises wired communications links connecting the control modules 108 to the transceiver 104 and to one another.
- the communications network 106 comprises one or more Ethernet connections that couple the control modules 108 to the transceiver 104 and to one another.
- the communications network 106 also couples the control modules 108 to the drive system 114 and/or one or more other vehicle systems and/or components for control thereof by one or more processors 210 of the respective control modules 108 .
- FIG. 3 is a flowchart of a process 300 for controlling service discovery for a plurality of control modules of a vehicle, in accordance with an exemplary embodiment.
- the process 300 can be implemented in connection with the vehicle 100 of FIG. 1 , including the control system 102 of FIG. 1 and the control modules 108 of FIGS. 1 and 2 , in accordance with an exemplary embodiment.
- the process 300 is described in greater detail below in connection with FIG. 3 as well as FIGS. 4 , 5 A, 5 B, and 6 (which illustrate exemplary implementations of the process 300 of FIG. 3 , in accordance with exemplary embodiments).
- the process 300 begins at step 302 .
- the process 300 begins when the control modules 108 of FIGS. 1 and 2 are in a dormant mode (e.g., an “off” mode or “sleeping” mode), for example in which the vehicle 100 is not in operation (or is in limited operation) in accordance with an exemplary embodiment.
- a dormant mode e.g., an “off” mode or “sleeping” mode
- a trigger is received (step 304 ).
- the trigger is received as a message received by the transceiver 104 of FIG. 1 .
- the trigger includes a software update, such as an over the air (“OTA”) software update from a remote server for the control modules 108 of FIGS. 1 and 2 (e.g., as provided via a vehicle manufacturer and/or service center, or the like).
- OTA over the air
- control modules are woken up (step 306 ). Specifically, in various embodiments, the control modules 108 of FIGS. 1 and 2 are woken up into an active state for a relatively short amount of time (e.g., less than a minute, in various embodiments, and for approximately five seconds in certain embodiments) in order to perform a learning process in response to the trigger (e.g., the software update). In various embodiments, the control modules 108 are woken up via one of the processors 210 after receiving the message of the trigger from the transceiver 104 .
- a relatively short amount of time e.g., less than a minute, in various embodiments, and for approximately five seconds in certain embodiments
- the control modules 108 are woken up via one of the processors 210 after receiving the message of the trigger from the transceiver 104 .
- the learning process is performed (step 308 ).
- a learning process (or service discovery learning) is performed by the control modules 108 (via instructions provided by the processors 210 thereof) after the indication of the trigger of step 304 (and before the services are actually required) as to a new and/or updated list of services that are to be offered and requested by various control modules 108 , along with an identification of the control modules 108 (including respective IP addresses) that are offering and requesting the various services.
- the learning process of step 308 is performed with respect to the services 216 and IP addresses 218 of the learning table 214 depicted in FIG. 2 for each of the control modules 108 of FIG. 1 , as a result of the trigger of step 304 (e.g., software update) that requires new or updated learning.
- a learning table state diagram 400 is provided as to the learning table states associated with the learning table 214 of FIG. 2 for each of the modules 108 of FIG. 1 during the learning process of step 308 of FIG. 3 , in accordance with an exemplary embodiment.
- the information in the learning table is cleared, thereby resulting in a cleared learning table state 410 .
- the information in the learning tables 214 for each of the control modules 108 e.g., from a previous learning-completed state 450 of a prior iteration
- the trigger e.g., software update
- a learning timer is initiated when the learning table is at the cleared state 410 .
- these actions are performed by one or more processors. In certain embodiments, these actions are performed for each respective control module 108 by the processor 210 of the respective control module 108 .
- information as to services and/or subscriptions are added to the learning table at 415 , thereby resulting in an updating state 420 of the learning table.
- information is gathered by each control module 108 as to services that are offered or requested by other service module 108 , via respective processors 210 of the various service modules 108 .
- an error occurs during the updating state 420 (e.g., if a memory block is corrupted and needs to be re-set to an initial value)
- a clearing of the information occurs again at 416 , thereby returning the learning table to the cleared state 410 .
- a “learning incomplete” determination is made at 425 , thereby resulting in the learning-incomplete state 430 of FIG. 4 . In certain embodiments, this is performed for each respective control module 108 by the processor 210 of the respective control module 108 .
- the learning table when the learning table is in the learning-incomplete state 430 , the information in the learning table is again cleared at 435 , thereby returning to the cleared state 410 . In various embodiments, this is performed separately for each control module 108 via the respective processors 210 thereof (e.g., in certain embodiments, for particular control modules 108 that are in the learning-incomplete state 430 ). In various embodiments, the learning process then continues again with a new iteration of 415 .
- the all-services-learned state 440 is reached for a particular module 108 when the learning table 214 of the particular control module 108 includes, for each particular control module, both: (i) a list of all of the services required by the particular control module 108 along with the IP addresses of the other control modules 108 offering the services required by the particular control module 108 ; and (ii) a list of all of the services offered by the particular control module 108 along with the IP addresses of the other control modules 108 that are requesting and/or subscribing to these services offered by the particular control module 108 . In certain embodiments, this is performed for each respective control module 108 by the processor 210 of the respective control module 108 .
- the control modules 108 reach the learning-completed state 450 .
- detected updates to the locations (e.g., IP addresses) of the service providers or subscribers are stored into the learning table 214 of the non-volatile memory 204 of FIG. 2 , and other entities (e.g., certain other control modules 108 which may no longer be offering or requesting the services) are removed from the learning table 214 of the non-volatile memory 204 .
- the information form the learning process is stored (step 310 ).
- the information from the learning process including the list of services 216 and the IP addresses 218 of the providers and subscribers thereof, are stored in the updated learning table 214 of the non-volatile memory 204 of FIG. 2 .
- this is performed for each of the control modules 108 via the respective processors 210 thereof, including the non-volatile memory writing 206 by the processor 210 into the non-volatile memory 204 as depicted in FIG. 2 .
- first learning table 500 in FIG. 5 A
- second learning table 550 in FIG. 5 B
- both the first learning table 500 and the second learning table 550 correspond to the learning table 214 of FIG. 2 (or a portion thereof).
- the first learning table 500 corresponds to a learning table 214 (or portion thereof) of FIG. 2 of a particular control module 108 that is a client (or subscriber) of one or more services that are provided to the particular control module 108 by one or more other control modules 108 .
- the first learning table 500 includes one or more service identifiers 504 and server IP addresses 506 .
- the service identifiers 504 pertain to one or more services (such as a first service 508 and a second service 510 , by way of example) that are required by the particular control module 108
- the IP addresses 506 pertain to one or more other control modules 108 (e.g., with a first IP address 512 and/or a second IP address 514 , and so on) that provide the services for the particular control module 108 .
- the second learning table 550 corresponds to a learning table 214 (or portion thereof) of FIG. 2 of a particular control module 108 that is a server (or provider) of one or more services that are provided by the particular control module 108 to one or more other control modules 108 that request and/or subscribe to the services.
- the second learning table 550 include one or more service identifiers 554 and server IP addresses 556 .
- the service identifiers 554 pertain to one or more services (such as a first service 558 and a second service 560 , by way of example) that are offered or provided by the particular control module 108
- the IP addresses 556 pertain to one or more other control modules 108 (e.g., with a first IP address 562 and/or a second IP address 564 , and so on) that subscribe to or receive the services provided by the particular control module 108 .
- FIGS. 5 A and 5 B depict separate learning tables 500 and 550 for control modules 108 that are clients versus servers, respectively, it will be appreciated that at least certain control modules 108 may be both clients and servers. Specifically, for various control modules 108 that receive some services (as a client or subscriber) but that provide some other services (as a server or provider), it will be appreciated that such control modules 108 may have learning tables 214 of FIG. 2 that include both a client section or component (e.g., corresponding to the first learning table 500 of FIG. 5 A ) as well as server section or component (e.g., corresponding to the second learning table 550 of FIG. 5 B ).
- client section or component e.g., corresponding to the first learning table 500 of FIG. 5 A
- server section or component e.g., corresponding to the second learning table 550 of FIG. 5 B
- an event is detected that requires services (step 314 ).
- such an event may comprise, for example, a turning on of the engine or motor of the vehicle, and/or executing a vehicle turn and/or any number of other vehicle actions that may require services such as one or more engine parameters, one or more other vehicle parameters, or the like.
- one or more control modules are woken up (step 316 ).
- a particular control module 108 requiring the particular service wakes up certain other control module(s) 108 that are known to offer or provide the particular service according to the learning table 214 of the particular control module 108 (but does not wake up other control modules 108 that are unrelated to the service).
- a particular control module 108 offering the particular service wakes up certain other control modules 108 that are known to require or subscribe to the particular service according to the learning table 214 of the particular control module 108 (but does not wake up other control modules 108 that are unrelated to the service).
- the processor 210 of the particular control module 108 need only wake up certain selected other control module(s) 108 that offer or subscribe to the particular service, rather than waking up all of the control modules 108 , as a result of the information that was previously stored in the learning table 214 . Also in various embodiments, the selection of which other control module(s) to wake up is made based on the information in the learning table 214 via the non-volatile memory reading 208 by the processor 210 from the non-volatile memory 204 as depicted in FIG. 2
- the services are requested and provided (step 318 ).
- various control modules 108 namely, the particular control module 108 of step 316 and the other control modules 108 that were woken in step 316 ) provide and receive the requested services to and from one another.
- the subscriber control modules 108 receive the requested services from the provider control modules 108 for each particular service, and so on.
- the services are implemented via respective control modules 108 in executing one or more vehicle actions.
- one or more processors 210 of one or more respective control modules 108 utilize the services (e.g., the engine parameters, the vehicle parameters, and/or the one or more services) in operating the vehicle, including controlling acceleration, deceleration, steering of the vehicle through vehicle movement, turns, braking, and/or various other vehicle maneuvers and/or actions.
- the services e.g., the engine parameters, the vehicle parameters, and/or the one or more services
- the process then terminates at step 320 .
- a flow diagram 600 is provided with respect to the process 300 of FIG. 3 , including the learning process of step 308 and the learning table state diagram 400 of FIG. 4 , in accordance with an exemplary embodiment.
- a client 602 e.g., a control module 108 subscribing to one or more services
- a server 604 e.g., another control module 108 that is providing the one or more services.
- the server 604 offers one or more of its services for the client at 606 .
- the client 602 invokes a remote procedure call at 608 to the server 604 .
- the client 602 subscribes to the service at 610 (e.g., as a subscriber to an event group associated with the server 604 ).
- the server 604 acknowledges the subscription of the client 602 at 612 .
- 606 - 612 occur during the learning process of step 308 of the process 300 of FIG. 3 , after the client 602 and the server 604 are woken up at step 306 following the trigger of step 304 of FIG. 3 but before an event has occurred for which the services are actually required.
- the services are provided by the server 604 to the client 602 at 614 after an event has occurred for which the services are actually needed.
- the providing of the services corresponds to steps 314 - 318 of the process 300 of FIG. 3 , for example as an event occurs (step 314 ), the control modules 108 pertaining to the services are woken up (step 316 ), and the services are requested and provided (step 318 of FIG. 3 ).
- methods and systems are provided for service discovery learning for control units of vehicles.
- the control modules 108 are each woken up for a relatively short duration of time (e.g., approximately five seconds, in certain embodiments) in which the service discover learning is performed for each of the control units 108 .
- learning tables are generated and/or updated, and are stored in non-volatile memory of the control units 108 as to services that are needed or offered, along with an identification of IP addresses for other control modules 108 that subscribe to or offer such services. In various embodiments, this service discovery learning is performed before the services are actually needed.
- the various control modules 108 go to sleep after the service discovery learning (as shown in step 312 as depicted in FIG. 3 ), and the actual need for services subsequently arises, the services may be offered and received more efficiently as the requesting control module 108 knows ahead of time which control modules 108 offer the services (and knows the IP addresses for such control modules 108 in advance), and only those control modules 108 pertaining to the services need be woken up, and so on.
- vehicle, systems, components, methods, and implementations may vary from those depicted in the Figures and described herein.
- the vehicle 100 of FIG. 1 including the control system 102 , the control modules 108 , and components thereof, may differ from the depictions in FIGS. 1 and 2 .
- the steps of the processes and implementations of FIGS. 3 - 6 may differ from those depicted in the Figures, and/or that various steps may occur concurrently and/or in a different order than that depicted in the Figures.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Small-Scale Networks (AREA)
- Selective Calling Equipment (AREA)
Abstract
Description
Claims (20)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/334,684 US12489691B2 (en) | 2023-06-14 | 2023-06-14 | Method for persisting service discovery learning |
| CN202311337870.3A CN119149102A (en) | 2023-06-14 | 2023-10-16 | Method for persistent service discovery learning |
| DE102023128269.7A DE102023128269B3 (en) | 2023-06-14 | 2023-10-16 | METHOD FOR MAINTAINING A SERVICE RECOGNITION LEARNING |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/334,684 US12489691B2 (en) | 2023-06-14 | 2023-06-14 | Method for persisting service discovery learning |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20240422080A1 US20240422080A1 (en) | 2024-12-19 |
| US12489691B2 true US12489691B2 (en) | 2025-12-02 |
Family
ID=93015193
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/334,684 Active 2044-02-01 US12489691B2 (en) | 2023-06-14 | 2023-06-14 | Method for persisting service discovery learning |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12489691B2 (en) |
| CN (1) | CN119149102A (en) |
| DE (1) | DE102023128269B3 (en) |
Citations (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8718797B1 (en) * | 2011-01-14 | 2014-05-06 | Cisco Technology, Inc. | System and method for establishing communication channels between on-board unit of vehicle and plurality of nodes |
| US20150117430A1 (en) * | 2012-07-06 | 2015-04-30 | Huawei Technologies Co., Ltd. | Methods, Devices, and Systems for Registering and Discovering Service |
| US20170010588A1 (en) | 2015-07-09 | 2017-01-12 | Honda Motor Co., Ltd. | System configuration management using encapsulation and discovery |
| US20170019487A1 (en) * | 2015-01-31 | 2017-01-19 | Splunk Inc. | Automated service discovery in i.t. environments |
| US20190082381A1 (en) * | 2017-09-08 | 2019-03-14 | GM Global Technology Operations LLC | Wireless service discovery |
| US20190126859A1 (en) | 2017-10-31 | 2019-05-02 | Jaguar Land Rover Limited | Vehicle data communications network |
| US20200178048A1 (en) * | 2016-10-06 | 2020-06-04 | Lg Electronics Inc. | V2x communication support method in wireless communication system |
| US20200351158A1 (en) * | 2019-04-30 | 2020-11-05 | EMC IP Holding Company, LLC | Systems and methods for network discovery for zero configuration based-clustered systems |
| US20200412811A1 (en) * | 2019-06-30 | 2020-12-31 | Gm Cruise Holdings Llc | Adaptive real-time streaming for autonomous vehicles |
| US20210399916A1 (en) * | 2018-11-07 | 2021-12-23 | Volkswagen Aktiengesellschaft | Data Switching Device and Data Switching Method for a Vehicle, Device and Method for a Vehicle Component of a Vehicle, and Computer Program |
| US20220086607A1 (en) * | 2019-02-13 | 2022-03-17 | Apple Inc. | System information design for new radio (nr) vehicle-to-everything (v2x) sidelink operation |
| US20220116445A1 (en) * | 2021-04-12 | 2022-04-14 | Miltiadis Filippou | Disintermediated attestation in a mec service mesh framework |
| US20220167262A1 (en) * | 2019-02-12 | 2022-05-26 | Intel Corporation | Server selection for vehicle communications and applications |
| US20220394103A1 (en) * | 2020-02-19 | 2022-12-08 | HELLA GmbH & Co. KGaA | Vehicle component for providing at least one service in a vehicle, comprising a prefilter unit |
| DE102021123326A1 (en) | 2021-09-09 | 2023-03-09 | Bayerische Motoren Werke Aktiengesellschaft | Method for configuring a plurality of gateway controllers of a vehicle, computer-readable medium, system, and vehicle |
| KR20230045932A (en) | 2021-09-29 | 2023-04-05 | 현대자동차주식회사 | Network management method for vehicle |
| US20230199868A1 (en) * | 2022-02-17 | 2023-06-22 | Intel Corporation | Policy enhancement to support group application function (af) session from artificial intelligence/machine learning (aiml) provider af with required quality of service (qos) |
| US20240121598A1 (en) * | 2022-10-05 | 2024-04-11 | Nvidia Corporation | Application programming interface to indicate a device in an access network to share information with a device in a transport network |
-
2023
- 2023-06-14 US US18/334,684 patent/US12489691B2/en active Active
- 2023-10-16 CN CN202311337870.3A patent/CN119149102A/en active Pending
- 2023-10-16 DE DE102023128269.7A patent/DE102023128269B3/en active Active
Patent Citations (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8718797B1 (en) * | 2011-01-14 | 2014-05-06 | Cisco Technology, Inc. | System and method for establishing communication channels between on-board unit of vehicle and plurality of nodes |
| US20150117430A1 (en) * | 2012-07-06 | 2015-04-30 | Huawei Technologies Co., Ltd. | Methods, Devices, and Systems for Registering and Discovering Service |
| US20170019487A1 (en) * | 2015-01-31 | 2017-01-19 | Splunk Inc. | Automated service discovery in i.t. environments |
| US20170010588A1 (en) | 2015-07-09 | 2017-01-12 | Honda Motor Co., Ltd. | System configuration management using encapsulation and discovery |
| US20200178048A1 (en) * | 2016-10-06 | 2020-06-04 | Lg Electronics Inc. | V2x communication support method in wireless communication system |
| US20190082381A1 (en) * | 2017-09-08 | 2019-03-14 | GM Global Technology Operations LLC | Wireless service discovery |
| US20190126859A1 (en) | 2017-10-31 | 2019-05-02 | Jaguar Land Rover Limited | Vehicle data communications network |
| US20210399916A1 (en) * | 2018-11-07 | 2021-12-23 | Volkswagen Aktiengesellschaft | Data Switching Device and Data Switching Method for a Vehicle, Device and Method for a Vehicle Component of a Vehicle, and Computer Program |
| US20220167262A1 (en) * | 2019-02-12 | 2022-05-26 | Intel Corporation | Server selection for vehicle communications and applications |
| US20220086607A1 (en) * | 2019-02-13 | 2022-03-17 | Apple Inc. | System information design for new radio (nr) vehicle-to-everything (v2x) sidelink operation |
| US20200351158A1 (en) * | 2019-04-30 | 2020-11-05 | EMC IP Holding Company, LLC | Systems and methods for network discovery for zero configuration based-clustered systems |
| US20200412811A1 (en) * | 2019-06-30 | 2020-12-31 | Gm Cruise Holdings Llc | Adaptive real-time streaming for autonomous vehicles |
| US20220394103A1 (en) * | 2020-02-19 | 2022-12-08 | HELLA GmbH & Co. KGaA | Vehicle component for providing at least one service in a vehicle, comprising a prefilter unit |
| US20220116445A1 (en) * | 2021-04-12 | 2022-04-14 | Miltiadis Filippou | Disintermediated attestation in a mec service mesh framework |
| DE102021123326A1 (en) | 2021-09-09 | 2023-03-09 | Bayerische Motoren Werke Aktiengesellschaft | Method for configuring a plurality of gateway controllers of a vehicle, computer-readable medium, system, and vehicle |
| KR20230045932A (en) | 2021-09-29 | 2023-04-05 | 현대자동차주식회사 | Network management method for vehicle |
| US20230199868A1 (en) * | 2022-02-17 | 2023-06-22 | Intel Corporation | Policy enhancement to support group application function (af) session from artificial intelligence/machine learning (aiml) provider af with required quality of service (qos) |
| US20240121598A1 (en) * | 2022-10-05 | 2024-04-11 | Nvidia Corporation | Application programming interface to indicate a device in an access network to share information with a device in a transport network |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119149102A (en) | 2024-12-17 |
| DE102023128269B3 (en) | 2024-10-31 |
| US20240422080A1 (en) | 2024-12-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN108540361B (en) | Enhanced central gateway for vehicle networking | |
| US11960877B2 (en) | Updating system, electronic control unit, updating management device, and updating management method | |
| US20220244945A1 (en) | Vehicle controller, program updating method, and non-transitory storage medium that stores program for updating program | |
| US9253200B2 (en) | Programming vehicle modules from remote devices and related methods and systems | |
| US20220004375A1 (en) | Software update device, software update method, non-transitory storage medium, and vehicle | |
| US20130079950A1 (en) | Vehicle upgrade system and method thereof | |
| WO2023241458A1 (en) | Software upgrade method and apparatus for vehicle-mounted controller, and device and storage medium | |
| US11803364B2 (en) | Server, software updating device, vehicle, software updating system, control method, and non-transitory storage medium | |
| CN111722860A (en) | OTA (over the air) upgrading method and device based on finite state machine | |
| JP2024120180A (en) | Software update device, software update method and software update processing program | |
| US20110160952A1 (en) | Method for Entering Data In at Least Two Control Devices of a Motor Vehicle | |
| US12489691B2 (en) | Method for persisting service discovery learning | |
| JP7327325B2 (en) | In-vehicle device, information generation method, information generation program, and vehicle | |
| US20200156579A1 (en) | In-vehicle system | |
| CN116729293B (en) | Vehicle awakening method and device, storage medium and vehicle | |
| JP2017129039A (en) | Vehicle control device and vehicle control parameter learning system | |
| CN117992083A (en) | Mobile terminal and software update system | |
| US20240103999A1 (en) | Control device, control method, and storage medium | |
| CN110281953B (en) | Man-machine interaction method and interaction system of unmanned vehicle | |
| CN113821243A (en) | Software updating device, host, OTA host, network system, method, storage medium, center and vehicle | |
| CN118092959A (en) | Vehicle, software update method, and non-transitory storage medium | |
| CN118819576A (en) | Server, software update method, non-transitory storage medium, and software update system | |
| CN120457412A (en) | Upgrade detection method and device | |
| CN116890763A (en) | Vehicle control system and program writing method | |
| CN116126377A (en) | Vehicle upgrading method, device and processing equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: GM GLOBAL TECHNOLOGY OPERTAIONS LLC, MICHIGAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ALY, SHERIF;FRAZIER, DAVID M;SIGNING DATES FROM 20230607 TO 20230614;REEL/FRAME:063948/0875 Owner name: GM GLOBAL TECHNOLOGY OPERTAIONS LLC, MICHIGAN Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNORS:ALY, SHERIF;FRAZIER, DAVID M;SIGNING DATES FROM 20230607 TO 20230614;REEL/FRAME:063948/0875 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS Free format text: ALLOWED -- NOTICE OF ALLOWANCE NOT YET MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |