Network with software entities for actuating controllers
By setting up a software manager and power manager in the controller, using the activation profile to dynamically discover and activate only required controllers and software entities, the problem of adding new controllers in the prior art requires updating all controller addresses, and the effect of dynamically adding controllers and reducing power consumption is achieved.
Patent Information
- Application Number
- CN202411409331.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-21
- Filing Date
- 2024-10-10
- Publication Date
- 2025-06-24
AI Technical Summary
The prior art requires updating the addresses of all controllers when adding new controllers to the network, resulting in complex updates and high power consumption, as unwanted controllers are also activated.
By setting up a software manager and power manager in each controller, using the activation profile to dynamically discover and activate only required controllers and software entities, dynamically add controllers without updating the addresses of all controllers, and reducing power consumption by activating only the required functions.
This enables no need to update all controller addresses when adding new controllers, simplifies the network update process, and reduces power consumption by activating only the required functions.
Smart Images

Figure CN120201016A_ABST
Abstract
Description
Technical Field
[0001] The information provided in this section is for the purpose of generally presenting the context of the present disclosure. The work of the presently named inventors, to the extent it is described in this section, and aspects that may not be eligible as prior art at the time of filing, are neither expressly nor implicitly admitted as prior art against the present disclosure.
[0002] The present disclosure generally relates to a network having multiple controllers for performing desired functions. The network includes multiple controllers programmed to perform functions. Each controller is connected to each other through various communication lines. The communication lines can operate using different protocols. For example, some communication lines can be bus bars, in which case the controllers are connected to each other through the bus bars and communicate with each other using the Controller Area Network (“CAN”) protocol. Some communication lines can be wires, in which case the controllers communicate with each other using the Ethernet protocol. Background Art
[0003] The controller is actuated by a software program configured to execute steps and processes for implementing a predetermined function. In addition, the predetermined function may require the actuation of other controllers. For example, in a vehicle application, a controller for performing advanced driver assistance (“ADA”) functions requires controllers for propulsion, braking, steering, etc.
[0004] Currently, each controller is programmed with the addresses of other controllers required to perform its primary or secondary functions. Therefore, if a new controller is added to the network, each controller that needs to use the new controller must be updated to include the address of the new controller. Therefore, updating the network may require a large amount of updates and planning because the location of the added controller and the identity of each controller that needs to activate the added network must be known. In addition, when a controller is programmed to execute a predetermined routine that requires actuating a predetermined controller, it is possible that a controller that is not required to perform a specific function is actuated, which increases power consumption because the unnecessary controller or program operates automatically.
[0005] Therefore, it is desirable to have a network architecture that provides for the dynamic addition of controllers without the need to update or otherwise share the address of the added controller with all the controllers in the network and that reduces power consumption by only utilizing the secondary functions required to operate the selected functions. Summary of the Invention
[0006] In one aspect, a network is provided for actuating a plurality of controllers to perform one of a plurality of selected functions. The controllers are communicatively coupled to each other via a network of communication lines. The network includes a plurality of programmable chips communicatively coupled to corresponding controllers, the programmable chips having software managers. The software manager includes first data processing hardware and first memory hardware. The first memory hardware stores instructions that, when executed on the first data processing hardware, cause the first data processing hardware to perform a primary function. An activation profile is stored in the first memory hardware and includes a list of software entities having at least one identifier, each of the at least one identifier being a primary function and / or a secondary function. The software manager of a controller is further configured to process the activation profile and perform activation of the software entities by determining each of a plurality of controllers hosting software entities having the primary function and / or secondary function required to perform the desired function, so as to allow flexible deployment of the software entities.
[0007] In one aspect, each of the activation profiles may include a discoverable software entity identifier configured to discover the address of each of a plurality of controllers having the primary function and / or secondary function required to perform the desired function. The content of the activation profile of each of a plurality of controllers having the primary function and / or secondary function required to perform the desired function may be known only to the software manager on the controller configured to activate the activation profile.
[0008] In one aspect, the software manager on one controller is configured to request activation of an activation profile managed by another software manager via a network communication in order to activate a secondary function, and the requested software manager is configured to send a response to the requesting software manager such that the requesting software manager can take appropriate action.
[0009] In one aspect, the software manager of a controller performing the desired function may also be configured to stop the local controller performing the desired function and deactivate the activation profile of each of the other plurality of controllers having the primary function and / or secondary function required to perform the desired function.
[0010] In one aspect, each of the plurality of controllers may further include a power manager including a set of instructions stored on the first memory hardware that, when executed on the first data processing hardware, cause the first data processing hardware to send a signal to wake up each of the other plurality of controllers having the primary function and / or secondary function required to perform the desired function.
[0011] In one aspect, after the software manager processes the activation profile and determines the address of each of the multiple controllers required to perform the primary and secondary functions, the software manager issues a request to the power manager to use the addresses of the controllers to start the identified controllers. Additionally, each of the power managers can be configured to provide an acknowledgment to the corresponding software manager that one of the controllers has been awakened. In such an aspect, each power manager among the power managers can be configured to generate an activation path and execute an activation command configured to activate any remote controller requested by the software manager, where the activation command will wake up multiple intermediate controllers along the activation path, and the activation command is further configured to cause each of the intermediate controllers to automatically forward the activation request to the next controller in the path. In such an aspect, the activation mechanism along the activation path can be at least one of Wake-on-Ethernet, Wake-on-CAN, and GPIO-based wake-up.
[0012] In yet another aspect, a network for use in a vehicle is provided. The network is configured to perform multiple vehicle functions and includes multiple controllers for performing the multiple vehicle functions. The multiple controllers are communicatively coupled to each other via a network of communication lines. The network includes an input, and each of the multiple controllers is a programmable chip. The input is configured to select at least one of the multiple vehicle functions, and each programmable chip has a software manager, a power manager, first data processing hardware, and first memory hardware. The first memory hardware stores instructions that, when executed on the first data processing hardware, cause the first data processing hardware to perform the primary function. The power manager includes an instruction set stored in the first memory that, when executed on the first data processing hardware, causes the first data processing hardware to send a signal to wake up each of the other multiple controllers having the primary and / or secondary functions required to perform the desired function. The activation profile is stored in the first memory hardware. The activation profile includes a list of software entities having at least one identifier, each of the at least one identifier being a primary and / or secondary function. At least one of the software managers is configured to execute the selected vehicle function received from the input, process the activation profile, and perform the activation of the software entity by determining each of the multiple controllers hosting the software entity having the primary and / or secondary functions required to perform the selected vehicle function.
[0013] In one aspect, each of the activation profiles includes a discoverable software entity identifier configured to discover the address of each of a plurality of controllers having primary and / or secondary functions required to perform a desired function. In such an aspect, the content of the activation profile of each of the plurality of controllers having primary and / or secondary functions required to perform a desired function is known only to the software manager on the controller configured to activate the activation profile.
[0014] In one aspect, a software manager on one controller is configured to request activation of an activation profile managed by another software manager via network communication to activate a secondary function.
[0015] In one aspect, the software manager of the controller performing the desired function is further configured to first stop the controller performing the desired function with local settings, and then subsequently deactivate the activation profile of each of the other plurality of controllers having primary and / or secondary functions required to perform the desired function.
[0016] In one aspect, each of the plurality of controllers further includes a power manager having second data processing hardware and second memory hardware, the second memory hardware storing instructions which, when executed on the second data processing hardware, cause the second data processing hardware to send a signal to wake up each of the other plurality of controllers having primary and / or secondary functions required to perform the desired function. In such an aspect, after the software manager processes the activation profile and determines the address of each of the plurality of controllers necessary to perform the primary and secondary functions, the software manager issues a request to start the plurality of controllers to the power manager based on the address of the controller. In another aspect, the plurality of vehicle functions include advanced driver assistance, lane keeping assistance, adaptive cruise control, cruise control, and climate control.
[0017] In yet another aspect, a method is provided for activating a plurality of controllers interconnected to each other via a plurality of communication lines in a network to perform a desired function. The method includes the steps of providing a software manager and a power manager for each of the plurality of controllers. The software manager includes first data processing hardware and first memory hardware. The first memory hardware stores instructions which, when executed on the first data processing hardware, cause the first data processing hardware to perform a primary function. The power manager includes an instruction set stored on the first memory hardware which, when executed on the first data processing hardware, causes the first data processing hardware to send a signal to wake up each of the other plurality of controllers having the primary function and / or a secondary function required to perform the desired function. The method includes the step of providing an activation profile stored in the first memory hardware for each of the plurality of controllers, the activation profile including a list of software entities represented by at least one identifier, each of the at least one identifier being a primary function and / or a secondary function. The method includes the step of activating the activation profile to identify each software entity having the primary and / or secondary function required to perform the desired function. The method includes the steps of processing the activation profile of each of the plurality of controllers having the primary function and / or a secondary function required to perform the desired function to determine the address of each of the plurality of controllers having the primary function and / or a secondary function required to perform the desired function. The method includes the steps of sending the address of each of the plurality of controllers having the primary function and / or a secondary function required to perform the desired function to the power manager, and generating an activation path that defines a path for sending a signal to each of the plurality of controllers having the primary function and / or a secondary function required to perform the desired function. The method further includes the step of sending a signal along the activation path to wake up the plurality of controllers having the primary function and / or a secondary function required to perform the desired function.
[0018] In one aspect, the method may further include the steps of, when a stop command is received, first stopping the controller that is performing the desired function, then subsequently deactivating the activation profile of the controller that is performing the desired function, and then subsequently deactivating the activation profile of each of the other plurality of controllers having the primary function and / or a secondary function required to perform the desired function. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The drawings described herein are for illustrative purposes only for the selected configurations and are not intended to limit the scope of the present disclosure.
[0020] Figure 1 is a schematic diagram of a network having different communication lines;
[0021] Figure 2 is a schematic diagram of a programmable chip according to the principles of the present disclosure;
[0022] Figure 3 is a schematic diagram showing Figure 2 the functions of the software manager of the programmable chip shown in
[0023] Figure 4 is a schematic diagram showing Figure 2 the operations of the power manager of the programmable chip shown in
[0024] Figure 5 is a schematic diagram showing the activation command of the power manager.
[0025] In all the drawings, corresponding reference numerals represent corresponding components. DETAILED DESCRIPTION
[0026] Example configurations will now be described more fully with reference to the accompanying drawings. The example configurations are provided so that this disclosure will be thorough and will fully convey the scope of the disclosure to those of ordinary skill in the art. Specific details, such as examples of specific components, devices, and methods, are set forth to provide a thorough understanding of the configurations of the disclosure. It will be apparent to those of ordinary skill in the art that specific details are not required and that the example configurations may be embodied in many different forms and that the specific details and example configurations should not be construed as limiting the scope of the disclosure.
[0027] The terms used herein are for the purpose of describing particular example configurations only and are not intended to be limiting. As used herein, the singular articles "a", "an", and "the" may also be intended to include the plural forms unless the context clearly dictates otherwise. The terms "comprises", "comprising", "including", and "having" are inclusive and thus specify the presence of stated features, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and / or groups thereof. The method steps, processes, and operations described herein should not be construed as necessarily requiring them to be performed in the particular order discussed or illustrated unless specifically identified as an order of performance. Additional or alternative steps may be employed.
[0028] When an element or layer is referred to as being "on", "engaged to", "connected to", "attached to", or "coupled to" another element or layer, it can be directly on, engaged, connected, attached, or coupled to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being "directly on", "directly engaged to", "directly connected to", "directly attached to", or "directly coupled to" another element or layer, intervening elements or layers may not be present. Other words used to describe the relationship between elements should be interpreted in a like manner (e.g., "between" versus "directly between", "adjacent" versus "directly adjacent", etc.). As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0029] The terms "first", "second", "third", etc. may be used herein to describe various elements, components, regions, layers, and / or portions. These elements, components, regions, layers, and / or portions are not to be limited by these terms. These terms may be used only to distinguish one element, component, region, layer, or portion from another. Unless the context clearly indicates otherwise, terms such as "first", "second", and other numerical terms do not imply an order or sequence. Thus, a first element, component, region, layer, or portion discussed below may be termed a second element, component, region, layer, or portion without departing from the teachings of the exemplary configuration.
[0030] In this application, including the definitions below, the term "module" may be replaced with the term "circuit". The term "module" may refer to, be part of, or include: an application specific integrated circuit (ASIC); a digital, analog, or mixed analog / digital discrete circuit; a digital, analog, or mixed analog / digital integrated circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor (shared, dedicated, or group) that executes code; a memory (shared, dedicated, or group) that stores code executed by the processor; other suitable hardware components that provide the described functionality; or a combination of some or all of the above, such as in a system-on-chip.
[0031] As used above, the term "code" can include software, firmware, and / or microcode, and can refer to programs, routines, functions, classes, and / or objects. The term "shared processor" includes a single processor that executes some or all of the code from multiple modules. The term "group processor" includes a processor that, in combination with additional processors, executes some or all of the code from one or more modules. The term "shared memory" encompasses a single memory that stores some or all of the code from multiple modules. The term "group memory" includes a memory that, in combination with additional memories, stores some or all of the code from one or more modules. The term "memory" can be a subset of the term "computer-readable medium". The term "computer-readable medium" does not include transient electrical and electromagnetic signals propagated through a medium, and can thus be considered tangible and non-transient memory. Non-limiting examples of non-transient memory include tangible computer-readable media, which include non-volatile memory, magnetic memory, and optical memory.
[0032] The apparatuses and methods described in this application can be implemented, in part or in whole, by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions stored on at least one non-transient tangible computer-readable medium. The computer programs can also include and / or rely on stored data.
[0033] A software application (i.e., a software resource) can refer to computer software that causes a computing device to perform tasks. In some examples, a software application can be referred to as an "application", an "app", or a "program". Example applications include, but are not limited to, system diagnostic applications, system management applications, system maintenance applications, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and gaming applications.
[0034] Non-transient memory can be a physical device for temporarily or permanently storing programs (e.g., sequences of instructions) or data (e.g., program state information) for use by a computing device. Non-transient memory can be volatile and / or non-volatile addressable semiconductor memory. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electrically erasable programmable read-only memory (EEPROM) (e.g., commonly used for firmware, such as a boot program). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), and magnetic disks or tapes.
[0035] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor and can be implemented in high-level procedural and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, apparatus, and / or device (e.g., a magnetic disk, an optical disk, a memory, a programmable logic device (PLD)) that provides machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal that provides machine instructions and / or data to a programmable processor.
[0036] The various implementations of the systems and techniques described herein can be implemented in digital electronic and / or optical circuits, integrated circuits, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementations in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which can be special purpose or general purpose, coupled to receive data and instructions from, and to send data and instructions to, a storage system, at least one input device, and at least one output device.
[0037] The processes and logical flows described in this specification can be performed by one or more programmable processors, also referred to as data processing hardware, which execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logical flows can also be performed by special purpose logic circuitry, such as an FPGA (field programmable gate array) or ASIC (application specific integrated circuit). By way of example, processors suitable for the execution of a computer program include both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices for storing data (such as magnetic disks, magneto-optical disks, or optical disks), or be operatively coupled to receive data therefrom or transfer data thereto or both. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0038] For providing interaction with a user, one or more aspects of the present disclosure may be implemented on a computer having a display device (such as a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen) for displaying information to the user and optionally a keyboard and a pointing device (such as a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices may also be used to provide interaction with the user; for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input received from the user may be in any form, including sound, voice, or tactile input. Additionally, the computer may interact with the user by sending documents to and receiving documents from the device used by the user; for example, by sending a web page to a web browser on a client device of the user in response to a request received from the web browser.
[0039] A network is provided for actuating a plurality of controllers to perform one of a plurality of selected functions. The network includes a plurality of programmable chips, each programmable chip having a software manager configured to activate an activation profile having a list of software entities identifying primary and / or secondary functions to determine which of the controllers hosting the software entities having the primary and / or secondary functions are needed to perform the desired function. As used herein, the term "activate an activation profile" means that the required software entities are turned on and operated to perform the primary and / or secondary functions as the case may be. In addition, communication of the software is implemented. In some cases, the software entities may have factory settings where communication is always enabled to be able to receive signals within the network, in which case the activation profile simply turns on the corresponding software entities. In the case where the software entities are disabled, the activation profile enables communication of the software entities. In addition, a power manager processes the activation profile to determine the location of each of the controllers and software entities required to perform the selected function. Thus, the network architecture provides a dynamic discovery feature that allows controllers to be added without the need to update or otherwise share the address of the added controller with all the controllers in the network and reduces power consumption by only leveraging the secondary functions required to operate the selected function.
[0040] Now refer to Figure 1 , a schematic diagram of network 10 is provided. Network 10 includes a plurality of controllers 12, each controller 12 being configured to perform primary and / or secondary functions. For illustrative purposes, network 10 is described in the context of a vehicle 100. For purposes of illustration, vehicle 100 is shown as a motor vehicle, but the principles herein apply to other types of vehicles such as airplanes, boats, trains, etc. However, it should be understood that the principles of network 10 may be applied to other platforms other than vehicles without departing from the scope of the appended claims. Controllers 12 are communicatively coupled to each other through network 10 of communication lines 16. Any communication lines 16 known currently or developed later may be modified and incorporated herein. For purposes of illustration, controllers 12 are shown as being directly or indirectly connected to each other by Ethernet cables, controller area network 10 ("CAN") cables, and wires or traces. As is well known, communication of each line may be managed by a protocol. Thus, the CAN protocol is used to transmit signals for controllers 12 connected to the CAN cable; and the Ethernet protocol is used to transmit signals for controllers 12 connected to the Ethernet line; the general-purpose IO (GPIO) protocol is used to transmit signals for controllers 12 connected to the wires.
[0041] Network 10 includes a plurality of programmable chips 16 communicatively coupled to corresponding controllers 12. For illustrative purposes, each of the programmable chips 16 is shown as residing within a respective controller 12. However, it should be understood that the programmable chips 16 may reside within the controller 12 itself or may be remote from the controller 12 as part of a printed circuit board. For example, the plurality of programmable chips 16 may be placed on a printed circuit board of a main control unit (not shown).
[0042] Now referring to Figure 2 , each programmable chip 16 includes at least one software manager 18. The software manager 18 is configured to determine the software programs required to perform a selected function. For example, in the context of an automobile and assuming that the selected primary function is lane assist, vehicle functions such as steering, propulsion, braking, lighting, and sound may be required. In such a case, the software programs provide instructions for actuating physical mechanisms / motors to perform such functions. The software manager 18 includes first data processing hardware 20 and first memory hardware 22. The first memory hardware 22 stores instructions that, when executed on the first data processing hardware 20, cause the first data processing hardware 20 to perform primary and / or subordinate functions.
[0043] An activation profile 24 is configured to provide a list of software entities required to perform the functions that the controller 12 is designed to perform. The activation profile 24 is stored in the first memory hardware 22, and the software entities may be identifiers that identify the primary and / or subordinate functions of the network 10. For example, the activation profile 24 of the software manager 18 responsible for performing the lane assist function will have a list of software entities having the functions (e.g., having software programs) required to perform lane assist, and the functions required to perform lane assist are, for example, a steering function, a lighting function, a braking function, a sound function, etc. In such an example, the identifiers of the software entities may be "steering", "lighting", "braking", "sound", etc. Figure 3 An illustrative example of the activation profile 24 is provided, and the activation profile 24 includes a list of software entities that, for illustrative purposes, are given a generic nomenclature. As shown in the table, the identifiers are "A", "B", "C", "D", "E", "F", and "G".
[0044] The software manager 18 is also configured to process the activation profile 24 and perform the activation of software entities having the primary and / or secondary functions required to perform the desired function. As described above, communication is enabled in the case where the communication of the software entity is disabled. Each activation profile 24 may include a discoverable software entity identifier that is configured to discover the address of each of the plurality of controllers 12 having the primary and / or secondary functions required to perform the desired function. For example, the activation profile 24 may include a lookup table 26 that associates the address of the location of the controller 12 with the location of the software manager 18 that hosts the software entity required to perform the selected function.
[0045] The content of the activation profile 24 for each of the plurality of controllers 12 having the primary and / or secondary functions required to perform the desired function may be known only to the software manager 18 configured to activate the activation profile 24 on the controller 12. Accordingly, the programming of the programmable chip 16 and the processing requirements of the programmable chip 16 are reduced relative to the current network, in which the address of each of the controller 12 and the software entity is written for predetermination and fixation. In addition, the power consumption of the network 10 is reduced because only the required software entities are activated as compared to the current network that operates all the software entities written into the programmable chip 16.
[0046] Referring again to Figure 2 And now referring to Figure 4 a description of the activation of the activation profile 24 is provided. First referring to Figure 2 a pair of programmable chips 16 are connected to each other by a plurality of communication lines 14, which may be printed traces of a circuit board. One of the programmable chips 16 receives a command to perform a function, and in this case, the software manager 28 residing in the programmable chip 28 processes the activation profile 24 to determine which software entities are required to perform the desired function. Each required software entity is activated, and their software manager may send a signal indicating the status of the software entity; thus, the requesting software manager is able to know the status of its request. For example, the signal may be an acknowledgement of the status of the software entity, e.g., activated, activated, deactivated, inactive, request not processed, in which case the requesting software manager is able to determine whether another request is required.
[0047] Figure 4 A depiction of the activation of the activation profile 24 in the controller 12b initiated by another controller 12a is shown in. In particular, Figure 4An example is provided where the controller 12a receives an activation request, and the software manager 18 processes the activation profile 24 to determine which software entities are required. For illustrative purposes, assume that the activation profile 24 includes software entity - 1 and software entity - 2, where software entity - 1 is the primary function, software entity - 1 is locally set on the controller 12a, software entity - 2 is the subordinate function and is set on the controller 12c, and the controller 12b is inserted on the communication line 14 between the controllers 12a and 12c. The software manager 18 on the controller 12a is configured to request along the communication line 14 the activation of the activation profile 24 managed by the software manager 18 on the controller 12c in order to activate software entity 2 and perform the subordinate function.
[0048] In some aspects, the required software entities may reside locally within the software manager 18. In some cases, the software entities are located in the software managers 18 of different controllers 12 or reside elsewhere on the network 10. Figure 4 An example is provided where the primary software entity (software entity - 1) is locally set on the controller 12 and the subordinate software entity (software entity - 2) is set on a different controller 12 connected to the network 10. However, it should be understood that the subordinate software entity can also be locally set on the controller 12 or set away from the controller 12. The programmable chip 16 can include many software entities, and in this case, each software entity written on the programmable chip 16 is considered local. In one aspect, the software manager 18 of the controller 12 that performs the desired function can also be configured to first stop the controller 12 that locally performs the desired function and then subsequently deactivate the activation profiles 24 of each of the other multiple controllers 12 in the network 10 that have the primary function and / or subordinate function required to perform the desired function.
[0049] The activation profile includes software entities, and some of the software entities can be discoverable services without any hard - coding of the controller that actuates the software entity. In particular, the software entities can be discovered using known protocols for network communication such as SOME / IP. In a vehicle platform, a software entity can reside in a first controller, and the same software entity can reside in a second controller in a different vehicle platform. Thus, conventional designs require the IP address of the controller to be hard - coded, so each vehicle function needs to activate a predetermined controller that is hard - coded into the controller. However, the activation profile includes discoverable software entities, so the same network can be used in different vehicle platforms without the need to identify the IP address of each controller in order to eliminate the need for modifying the hard - coding. In other words, the software entities can be deployed to different controllers (dynamically or statically according to different vehicle configurations) without the need to perform configuration changes to the controller to activate the software entity.
[0050] It should be understood that the software manager 18 does not have to reside with the controller 12a. Figure 4 Illustrated is an example where the activation profile 24 lists software entity - 1 and software entity - 2. In this case, the software manager 18 on the controller 12a obtains the address of software entity - 1 and determines the software manager 18 of software entity - 2 based on the address of software entity - 2 and the type of software entity - 2. For example, if software entity - 2 is an electromechanical function, the software manager 18 address is the same as the address of software entity - 2. However, if software entity - 2 is a computing software function, the address of the software manager 18 of software entity - 2 does not have to reside with the controller 12, but can reside in the printed circuit board of the main control unit.
[0051] Referring again to Figure 2 and 3 each of the plurality of controllers 12 may also include a power manager 28. The power manager 28 is a software program configured to turn on and off the controller 12. The power manager 28 includes second data - processing hardware 30 and second memory hardware 32. For illustrative purposes, the second data - processing hardware 30 and the second memory hardware 32 are shown as circuits separate from the first data - processing hardware 20 and the first memory hardware 22; however, it should be understood that the second data - processing hardware 30 and the first data - processing hardware 20 may be a single data - processing hardware, and the first memory hardware 22 and the second memory hardware 32 may be a single memory hardware. The second memory hardware 32 stores instructions that, when executed on the second data - processing hardware 30, cause the second data - processing hardware 30 to emit a signal to wake up each of the other plurality of controllers 12 having the primary and / or secondary functions necessary to perform the desired function. Thus, the power manager 28 is configured to turn on each controller 12 having the software entities identified in the activation profile 24.
[0052] Figure 2 Illustrated is the operation of the programmable chip 16 where the software manager 18 issues a request to the power manager 28 to start the identified controller 12 using the address of the controller 12. As described above, the address is determined after the software manager 18 processes the activation profile 24 and determines the software entities required to perform the primary and secondary functions, and the addresses of the software entities of each controller 12 are listed in the activation profile 24. In addition, each of the power managers 28 may be configured to provide an acknowledgment to the corresponding software manager 18 that one of the controllers 12 has been awakened.
[0053] Referring again to Figure 3, the power manager 28 can be configured to process the addresses of each software entity to generate an activation path 34 and execute an activation command configured to activate any remote controller 12 requested by the software manager 18. As an example, the activation path 34 is illustratively shown as a path interconnecting software entities "A", "B", "C", "D", and "E". Each software entity is associated with a controller location and a software manager location. As shown, some software managers 18 are co-located, as evidenced by having the same address, while other software managers 18 are located at different addresses. Similarly, two of the controllers 12 are located at the same address, while the other controllers have different addresses. This table illustrates the aspect that software entities are not necessarily co-located with the controller 12. Figure 3 The dependencies of the software entities are also depicted, in this case, software entity "A" serves as the primary function, and software entities "B", "C", "D", and "E" are subordinate functions, e.g., functions required to perform the primary function. In other words, software entity "A" requires the operations of software entities "B", "C", "D", and "E".
[0054] Referring again to Figure 1 , Figure 4 and Figure 5 , the activation command is configured to wake up each of the controllers 12b, 12c, 12d listed in the activation profile 24 to include any intermediate controllers 12b, 12c along the activation path 34 between the initiating controller 12a and the target controller 12d. The activation path 34 includes any communication line 14 that connects the initiating controller 12 to the target controller 12. As used herein, it should be understood that the initiating controller 12 is performing the primary function received by the network 10, and the target controller 12 is any one of the controllers 12 having a software entity that performs a subordinate function. Thus, as Figure 1 shown, the activation command can be transmitted along different types of communication lines 14, such as Ethernet lines, CAN lines, and GPIO lines.
[0055] Figure 5 Depicts an activation command sent from the initiating controller 12a to the target controller 12d through the intermediate controllers 12b, 12c. Although the path from the initiating controller 12a to the target controller 12b is shown as generally linear, it should be understood that this path can be through, as Figure 2The various nodes and controllers shown in the activation path 34 as shown. The activation command can also be configured with instructions to cause each intermediate controller 12 to automatically forward the activation request to the next controller 12 in the activation path 34. Thus, the activation command processes the activation path 34 to determine the appropriate commands and protocols for transmitting the wake-up signal along the communication line 14 that connects the initiating controller 12 to the target controller 12. Thus, the activation command includes activation mechanisms for Wake-on-Ethernet, CAN wake-up, and GPIO-based wake-up.
[0056] Figure 5 An example is depicted where the activation path 34 includes an Ethernet line, a CAN line, and a GPIO line. The initiating controller 12a sends an activation command to the intermediate controller 12b over the Ethernet line, where the activation command is a message frame using the Ethernet protocol to wake up the intermediate controller 12b and an instruction to forward the message to the intermediate controller 12c using the CAN protocol. The activation command is received by the intermediate controller 12c, which wakes up the activation command and forwards it to the target controller 12d using the GPIO protocol. In some cases, the software manager 18 and / or the software entity of the target controller 12d will need to maintain communication with the initiating controller 12a. In such cases, the activation command includes instructions to keep the intermediate controllers 12b, 12c powered on. In other cases, the software manager 18 and / or the software entity of the target controller 12 do not need to communicate with the initiating controller 12. In such cases, the activation command includes instructions to turn off the intermediate controllers 12b, 12c after the activation command has been forwarded.
[0057] Refer again to Figure 1 、 Figure 4 and Figure 5, the operation of network 10 is provided, where network 10 is used in vehicle 100. In particular, network 10 is shown to be used in a motor vehicle 100. Network 10 is configured to perform multiple vehicle functions and includes multiple controllers 12 to perform multiple vehicle functions. For example, vehicle functions include advanced driver assistance, lane keeping assistance, adaptive cruise control, cruise control, and climate control. For the purpose of illustration, assume that the input 36 for actuating the adaptive cruise control is actuated by the driver. Input 36 can be a button located on the dashboard or an icon on the touchscreen of the head unit. This selection is sent to the controller 12 in network 10, and controller 12 performs the functions required for adaptive cruise control. For the purpose of illustration, assume that such functions are propulsion, steering, braking, and lighting. In this example, the adaptive cruise control is the primary function, and propulsion, steering, braking, and lighting are subordinate functions. The software manager 18 of the controller 12 responsible for performing the adaptive cruise control processes the activation profile 24, which lists the software entities required to perform the adaptive cruise control. In this case, the software entities are the software entities for propulsion, steering, braking, and lighting.
[0058] The software manager 18 sends the list of software entities to the power manager 28, and the power manager 28 processes the addresses of each software entity to generate an activation path 34 and execute an activation command, which is configured to activate the software entity and its corresponding controller 12 as the case may be. That is, in some cases, the software entity may not reside in the controller 12 but on the printed circuit board of the main control unit. Figure 1 An illustration of the activation path 34 is shown, which can be derived from the table also shown in Figure 1 the table shown in.
[0059] The activation command is configured to wake up each of the controllers 12 listed in the activation profile 24, including any intermediate controllers 12 along the activation path 34 between the initiating controller 12 and the target controller 12. The activation path 34 includes any communication lines 14 that connect the initiating controller 12 to the target controller 12, including Ethernet lines, CAN lines, and GPIO lines. Figure 5Depicts an activation command transmitted from an initiating controller 12 to a target controller 12 via an intermediate controller 12. The activation command can also be configured with instructions to cause each intermediate controller 12 to automatically forward the activation request to the next controller 12 in the activation path 34. Thus, the activation command processes the activation path 34 to determine the appropriate commands and protocols for transmitting a wake-up signal along the communication line 14 that connects the initiating controller 12 to the target controller 12. Accordingly, the activation command includes activation mechanisms for Wake-on-Ethernet, Wake-on-CAN, and WHio-based wake-up. Once the target controller 12 is powered on or awakened, the software manager 18 of each target controller 12 can send a signal to the initiating controller 12 to notify the initiating controller 12 that the adaptive cruise control is ready to operate.
[0060] Referring again to Figure 2 - 5 , a method is provided for activating a plurality of controllers 12 interconnected with each other via a plurality of communication lines 14 in a network 10 to perform a desired function. The method includes the step of providing a plurality of programmable chips 16 communicatively coupled to corresponding ones of the plurality of controllers 12. Each of the programmable chips 16 includes a software manager 18 and a power manager 28.
[0061] The software manager 18 includes first data processing hardware 20 and first memory hardware 22. The first memory hardware 22 stores instructions that cause the first data processing hardware 20 to perform a primary function when executed on the first data processing hardware 20. The power manager 28 has second data processing hardware 30 and second memory hardware 32. The second memory hardware 32 stores instructions that cause the second data processing hardware 30 to emit a signal to wake up each of the other plurality of controllers 12 having the primary function and / or subordinate functions necessary to perform the desired function.
[0062] The method includes the step of providing an activation profile 24 stored in the first memory hardware 22 to each of the plurality of controllers 12. The activation profile 24 includes a list of software entities represented by at least one identifier, each of the at least one identifier being a primary function and / or a subordinate function. The method includes the steps of activating the activation profile 24 to identify each software entity having the primary function and / or subordinate function required to perform the desired function, and processing the activation profile 24 of each of the plurality of controllers 12 having the primary function and / or subordinate function required to perform the desired function to determine the address of each of the plurality of controllers having the primary function and / or subordinate function required to perform the desired function.
[0063] The method includes the following steps: sending the address of each of a plurality of controllers having main and / or subordinate functions required to perform a desired function to a power manager 28, and generating an activation path 34 that defines a path for sending a signal to each of the plurality of controllers 12 having main and / or subordinate functions required to perform a desired function, and sending a signal along the activation path 34 to wake up the plurality of controllers 12 having main and / or subordinate functions required to perform a desired function.
[0064] The method may further include the following steps: when a stop command is received, first stopping the controller 12 that performs the desired function, then subsequently deactivating the activation profile 24 of the controller 12 that performs the desired function, and subsequently deactivating the activation profile 24 of each of the other plurality of controllers 12 having main and / or subordinate functions required to perform the desired function.
[0065] Numerous embodiments have been described. However, it should be understood that various modifications can be made without departing from the spirit and scope of the present disclosure. Accordingly, other embodiments are within the scope of the appended claims.
[0066] The foregoing description has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the present disclosure. The individual elements or features of a particular configuration are generally not limited to that particular configuration but, where applicable, are interchangeable and can be used in a selected configuration, even if not specifically shown or described. It can also vary in many ways. Such variations should not be regarded as a departure from the present disclosure, and all such modifications are intended to be included within the scope of the present disclosure.
Claims
1. A network for actuating a plurality of controllers to perform one of a plurality of selected functions, the plurality of controllers being communicatively coupled to one another via a network of communication lines, the network comprising: a plurality of controllers, each of the plurality of controllers being a programmable chip having a software manager, the software manager having first data processing hardware and first memory hardware, the first memory hardware storing instructions that, when executed on the first data processing hardware, cause the first data processing hardware to perform a primary function; and an activation profile stored in the first memory hardware, the activation profile comprising a list of software entities having at least one identifier, each of the at least one identifier being a primary function and / or a dependent function; and Wherein, the software manager of at least one of the multiple controllers is also configured to process the activation profile and perform activation of the software entity by determining each of the multiple controllers to host the software entity having the primary functions and / or subordinate functions required to perform the desired functions.
2. The network according to claim 1, wherein: Each of the activation profiles includes a discoverable software entity identifier configured to discover the address of each controller of a plurality of controllers having the primary and / or subordinate functions required to perform the desired function so as to allow flexible deployment of the software entity.
3. The network according to claim 2, wherein: The content of the activation profile of each controller of the plurality of controllers having the primary function and / or subordinate functions required to perform the desired function is known only by a software manager on the controller configured to activate the activation profile.
4. The network according to claim 1, wherein: A software manager on one controller is configured to request activation of an activation profile managed by another software manager via network communications to activate a dependent function, and the requested software manager is configured to send a response to the requesting software manager so that the requesting software manager can take appropriate action.
5. The network according to claim 1, wherein: The software manager of the controller executing the desired function is also configured to stop the controller executing the locally set desired function and deactivate activation profiles of each of the other plurality of controllers having primary functions and / or subordinate functions required to execute the desired function.
6. The network according to claim 1, wherein: Each of the plurality of controllers further includes a power manager including a set of instructions stored on the first memory hardware, the set of instructions, when executed on the first data processing hardware, causing the first data processing hardware to send a signal to wake up each of the other plurality of controllers having primary functions and / or slave functions required to perform the desired function.
7. The network according to claim 6, wherein: After the software manager processes the activation profile and determines the address of each of the plurality of controllers required to perform the primary function and the dependent functions, the software manager issues a request to the power manager to start the identified controller of the plurality of controllers using the address of the controller.
8. The network according to claim 7, wherein: Each of the power managers is configured to provide a confirmation to a corresponding software manager that one of the controllers has awakened.
9. The network according to claim 8, wherein: Each of the power managers is configured to generate an activation path and execute an activation command, wherein the activation command is configured to activate any remote controller requested by the software manager, wherein the activation command will wake up multiple intermediate controllers along the activation path, and the activation command is also configured to cause each of the intermediate controllers to automatically forward the activation request to the next controller among the intermediate controllers in the path.
10. Activation of the remote control according to claim 9, wherein: The activation mechanism along the activation path may be at least one of wake-up over Ethernet, wake-up over controller area network, and wake-up over general purpose IO.