Configuration word updating method, master controller and slave controller
By generating and sending configuration strings through the main controller, the problem of inconsistent configuration word versions caused by the increasing complexity of vehicle software functions is solved, enabling efficient updates and functional coordination from the controller, and improving the system's compatibility and reliability.
Patent Information
- Application Number
- CN202511012918.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-22
- Publication Date
- 2025-11-07
AI Technical Summary
In the automotive technology field, the increasing complexity of in-vehicle software functions leads to inconsistencies in configuration word versions among multiple modules, resulting in functional failures or performance degradation.
The master controller obtains information parameters, generates a configuration string, and sends it to the slave controllers for updates, ensuring that the function options of each slave controller are executed in a consistent manner.
It enables efficient and flexible updates of each slave controller, avoids function execution conflicts, improves system compatibility and reliability, and supports rapid iteration and personalized customization.
Smart Images

Figure CN120909616A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present application relate to the technical field of vehicle control, in particular to a configuration word updating method, a master controller and a slave controller. BACKGROUND
[0002] In the field of automotive technology, configuration words are the core coding system for identifying vehicle configurations and functional options, and their accuracy directly affects the implementation of vehicle functions. Currently, the industry generally uses cloud backup and recovery technology to ensure the consistency of configuration word strings in the context of vehicle controller replacement. However, as vehicle software functions become increasingly complex, inconsistent configuration word versions among multiple modules can lead to functional coordination failure or performance degradation. Therefore, how to generate configuration words to improve their effectiveness has become a pressing problem. SUMMARY
[0003] In view of the above problems, embodiments of the present application provide a configuration word updating method, a master controller and a slave controller to solve the problem of poor functional coordination effect of configuration words in the prior art.
[0004] According to a first aspect of embodiments of the present application, a configuration word updating method is provided, a vehicle including a master controller and multiple slave controllers, the master controller applied to the vehicle, the method comprising:
[0005] In response to a configuration word string update requirement, obtaining information parameters; the information parameters including the association between functional options in different slave controllers;
[0006] Generating a configuration word string according to the information parameters; wherein the configuration word string indicates the execution requirements of the functional options to be executed in different slave controllers;
[0007] Sending the configuration word string to the slave controllers for updating.
[0008] According to a second aspect of embodiments of the present application, a configuration word updating method is provided, a vehicle including a master controller and multiple slave controllers, the slave controller applied to the vehicle, comprising:
[0009] Obtaining a configuration word string sent by the master controller; the configuration word string being generated by the master controller in response to a configuration word string update requirement, obtaining information parameters, and then generating a configuration word string according to the information parameters; wherein the information parameters include the association between functional options in different slave controllers; the configuration word string indicates the execution requirements of the functional options to be executed in different slave controllers;
[0010] According to the predetermined position of the slave controller in the configuration word string, obtaining the configuration word of the slave controller from the configuration word string;
[0011] If the configuration word obtained from the configuration word string is inconsistent with the existing configuration word in the slave controller, the configuration word obtained from the configuration word string is used for updating.
[0012] According to a third aspect of the embodiments of the present application, a configuration word updating apparatus is provided, a vehicle including a master controller and a plurality of slave controllers, the master controller of the vehicle comprising:
[0013] The configuration module is configured to obtain information parameters in response to a configuration word string updating requirement, the information parameters comprising an association relationship between function options in different slave controllers, and generate a configuration word string according to the information parameters, wherein the configuration word string indicates execution requirements of function options to be executed in different slave controllers.
[0014] The sending module is configured to send the configuration word string to the slave controllers for updating.
[0015] According to a fourth aspect of the embodiments of the present application, a configuration word updating apparatus is provided, a vehicle including a master controller and a plurality of slave controllers, the slave controller of the vehicle comprising:
[0016] The obtaining module is configured to obtain a configuration word string sent by the master controller, the configuration word string being generated by the master controller according to information parameters after obtaining the information parameters in response to a configuration word string updating requirement, wherein the information parameters comprise an association relationship between function options in different slave controllers, and the configuration word string indicates execution requirements of function options to be executed in different slave controllers.
[0017] The updating module is configured to obtain a configuration word of the slave controller from the configuration word string according to a preset position of the slave controller in the configuration word string, and update the configuration word of the slave controller using the configuration word obtained from the configuration word string if the configuration word obtained from the configuration word string is inconsistent with the existing configuration word in the slave controller.
[0018] According to a fifth aspect of the embodiments of the present application, a master controller is provided, comprising a processor, a memory, a communication interface and a communication bus, the processor, the memory and the communication interface performing communication with each other through the communication bus; the memory is configured to store at least one executable instruction, the executable instruction causing the processor to perform operations of the first aspect and / or various possible methods of the first aspect.
[0019] According to a sixth aspect of the embodiments of the present application, a slave controller is provided, comprising a processor, a memory, a communication interface and a communication bus, the processor, the memory and the communication interface are capable of communicating with each other through the communication bus; the memory is configured to store at least one executable instruction, the executable instruction is capable of enabling the processor to perform the operations of the method of the second aspect and / or the possible implementation manners of the second aspect.
[0020] According to a seventh aspect of the embodiments of the present application, a computer readable storage medium is provided, the storage medium stores at least one executable instruction, the executable instruction is capable of enabling a master controller to perform the operations of the method of the first aspect and / or the possible implementation manners of the first aspect when the executable instruction is run on the master controller, or the executable instruction is capable of enabling a slave controller to perform the operations of the method of the second aspect and / or the possible implementation manners of the second aspect when the executable instruction is run on the slave controller.
[0021] The embodiments of the present application achieve efficient and flexible update of the configuration word of each slave controller of the vehicle by means of obtaining the information parameter in response to the update requirement, generating the configuration word string according to the information parameter, and sending the configuration word string to the slave controller.
[0022] The above description is only a summary of the technical solutions of the embodiments of the present application, in order to more clearly understand the technical means of the embodiments of the present application, the embodiments of the present application can be implemented according to the content of the description, and in order to make the above and other purposes, characteristics and advantages of the embodiments of the present application more obvious and easy to understand, the specific embodiments of the present application are described below. BRIEF DESCRIPTION OF DRAWINGS
[0023] The accompanying drawings are only used to show the embodiments and are not considered as limitations of the present application. Moreover, the same reference signs are used to represent the same components throughout the drawings. In the drawings:
[0024] Figure 1 A flowchart of a first embodiment of the configuration word update method provided by the present application is shown;
[0025] Figure 2 A flowchart of a second embodiment of the configuration word update method provided by the present application is shown;
[0026] Figure 3 A flowchart of a third embodiment of the configuration word update method provided by the present application is shown;
[0027] Figure 4 A flowchart of a fourth embodiment of the configuration word update method provided by the present application is shown;
[0028] Figure 5 A signaling interaction diagram of a fifth embodiment of the configuration word update method provided by the present application is shown;
[0029] Figure 6 A structure diagram of an embodiment of the configuration word updating device provided by the present application is shown;
[0030] Figure 7 A structure diagram of an embodiment of the configuration word updating device provided by the present application is shown;
[0031] Figure 8 A structure diagram of the master controller provided by the present application is shown;
[0032] Figure 9 A structure diagram of the slave controller provided by the present application is shown. DETAILED DESCRIPTION
[0033] Exemplary embodiments of the present application will be described in detail below with reference to the accompanying drawings. Although exemplary embodiments of the present application are shown in the drawings, it is understood that the present application can be implemented in various forms and should not be limited by the embodiments set forth herein.
[0034] Figure 1 A flow chart of a first embodiment of the configuration word updating method provided by the present application is shown. The configuration word updating method of the present application is applied to a vehicle. The vehicle can include a plurality of controllers.
[0035] In the present application, one of the plurality of controllers can be selected as a master controller for configuration word updating, and the other controllers can be selected as slave controllers for configuration word updating.
[0036] In one example, the master controller is a controller that does not need to update the configuration word.
[0037] In another example, the master controller can be a first execution program in a controller. The first execution program is used to implement management of configuration word updating of each controller. A second execution program for managing the configuration word of the controller itself can also exist in the controller. The second execution program can be a slave controller, used to implement updating of the configuration word of the controller itself.
[0038] As shown in the figure, taking the master controller as the execution subject, the method includes the following steps: Figure 1
[0039] Step 110: In response to a configuration word string updating requirement, obtaining information parameters. The updating requirement represents updating of the configuration word string. The information parameters include the association relationship between the function options in different slave controllers.
[0040] The master controller can obtain the configuration word string updating requirement. In response to the updating requirement, the master controller can obtain information parameters of each slave controller in the vehicle, providing data support for subsequent generation of the configuration word string.
[0041] In one example, the update requirement represents a request for modification of the configuration of the slave controllers due to functional adjustment, optimization or bug fixing.
[0042] In one example, the update requirement is triggered by a user, or automatically detected by the system, or triggered by a remote service.
[0043] In one example, the information parameter can include the association between the functional options in different slave controllers. For example, the activation of functional option A in slave controller 1 can depend on the running state of functional option B in slave controller 2. Or, functional option A in slave controller 1 and functional option B in slave controller 2 need to work in coordination.
[0044] In one example, the information parameter can be stored in the local storage of the vehicle. The master controller can read the preset association rules from the storage module of the vehicle.
[0045] In another example, the information parameter can be obtained by the master controller from a cloud server. The master controller can download the latest information parameter of the vehicle from the cloud server through the on-board communication module, and obtain the association information between the functional options of the slave controllers of the vehicle.
[0046] In another example, the information parameter can be obtained by the master controller from the slave controllers. The master controller can send an information acquisition request to the slave controllers according to the update requirement, and request the slave controllers to send the information parameter to the master controller.
[0047] In another example, the master controller can also obtain the current running state of the vehicle, and dynamically calculate and generate the association between the functional options of the slave controllers according to the running state of the vehicle. For example, in the case of vehicle skidding, if functional option A in slave controller 1 is activated, functional option B in slave controller 2 must be activated correspondingly.
[0048] Step 120: generating a configuration string of the vehicle according to the information parameter. The configuration string indicates the execution requirements of the functional options to be executed in different slave controllers.
[0049] In one example, the master controller can generate a structured configuration string according to the obtained information parameter. The configuration string is used to explicitly indicate the functional options to be executed in each slave controller and the execution requirements of the functional options to be executed.
[0050] In one example, the data in different positions of the configuration string can be used to indicate the functional options to be executed in different slave controllers and the execution requirements thereof. The data in the position corresponding to each slave controller in the configuration string can be the configuration word of each slave controller.
[0051] For example, the 1st and 2nd bits of the configuration string can be used to indicate the function option to be executed from the slave controller 1 and its execution requirement. For example, the 5th to 8th bits of the configuration string can be used to indicate the function option to be executed from the slave controller 2 and its execution requirement. For example, the 9th bit of the configuration string can be used to indicate the function option to be executed from the slave controller 3 and its execution requirement.
[0052] In an example, the configuration string has data encoded in a specific format. For example, the encoding can be in binary, hexadecimal, JSON, etc.
[0053] Optionally, when the data is encoded in binary, the 1st and 2nd bits of the configuration string can form the configuration word for the slave controller 1. The 1st and 2nd bits can correspond to four different encodings, 00, 01, 10, 11.
[0054] For example, 00 can be used to indicate that the function option A is to be started. 01 can be used to indicate that the function option B is to be started. 10 can be used to indicate that the function option C is to be started.
[0055] For another example, 00 can be used to indicate that the function option A is to be started. 01 can be used to indicate that the function option A is to be disabled. 10 can be used to indicate that the function option A is to be started if there is no function option with higher priority than the function option A is started. Otherwise, if there is a function option with higher priority than the function option A is started, the function option A is not to be started.
[0056] Optionally, when the data is encoded in binary, the 5th to 8th bits of the configuration string can form the configuration word for the slave controller 2. Different values of the configuration word can correspond to different execution requirements of the function options of the slave controller 2.
[0057] For example, the 5th and 6th bits can be used to indicate the function code. 00 can be used to indicate the function option A. 01 can be used to indicate the function option B. 10 can be used to indicate the function option C.
[0058] For example, the 7th and 8th bits can be used to indicate the execution requirement. 00 can be used to indicate start. 01 can be used to indicate disable. 10 can be used to indicate high priority start.
[0059] For example, when the configuration word is 0000, it corresponds to indicating that the function option A is to be started from the slave controller 2. For another example, when the configuration word is 1001, it is used to indicate that the function option C is to be disabled.
[0060] Optionally, when the data is encoded in hexadecimal, the 9th bit of the configuration string can be the configuration word for the slave controller 3. The configuration word can have 16 values. The 16 values can correspond to different execution requirements of the function options of the slave controller 3, respectively.
[0061] For example, 1 can correspond to enabling function option A, 2 can correspond to disabling function option A, 4 can correspond to enabling function option B, and so on.
[0062] In an example, the master controller can parse the association relationship in the information parameter, and ensure that the configuration string satisfies the dependency or mutual exclusion condition between the function options of different slave controllers.
[0063] In an example, the master controller can generate the configuration string by using a template filling method. The master controller can fill the configuration word of each slave controller into the corresponding position according to the information parameter based on a predefined configuration template, to generate the configuration string.
[0064] In another example, the master controller can generate the configuration string by using a dynamic coding method. The master controller can dynamically code and construct the configuration string according to the information parameter, to realize flexible configuration of the configuration string.
[0065] In another example, the master controller can generate the configuration string by using a hybrid generation method. The master controller can combine the template and the dynamic coding to construct the configuration string, to balance the efficiency and flexibility of the configuration string construction.
[0066] Step 130: Send the configuration string to the slave controller for updating.
[0067] The master controller can send the generated configuration string to each slave controller. The slave controller can obtain the corresponding configuration word from the configuration string sent by the master controller, and then use the configuration word to complete the updating.
[0068] In an example, the master controller can broadcast or directionally send the configuration string to the slave controller by using a bus.
[0069] In an example, the slave controller can read the corresponding configuration word from the configuration string according to the position preset by the slave controller after receiving the configuration string.
[0070] In an example, the master controller can send the configuration string by using a broadcast method at one time.
[0071] In another example, the master controller can send the configuration string by using a broadcast method multiple times. This method can further ensure that the slave controller can accurately receive the configuration string.
[0072] In another example, the master controller can directionally send the configuration string in batches according to the priority or function grouping of the slave controller. Alternatively, the master controller can directionally send part of the content of the configuration string in batches.
[0073] In an example, when the data length of the configuration string is too large, the master controller can further split the configuration string into multiple sub-strings for transmission.
[0074] In another example, the master controller can split the configuration string into multiple sub-strings according to the priority or function group of the slave controller. The controller can transmit the sub-string corresponding to the priority or function group to the corresponding slave controller.
[0075] In an example, the master controller can further obtain an acknowledgement signal returned by the slave controller after obtaining the configuration string. If the acknowledgement signal indicates a failure, the master controller can retransmit the configuration string.
[0076] In an example, the slave controller can verify the integrity of the configuration string by using a preset verification algorithm. If the integrity verification of the configuration string fails, the feedback acknowledgement signal indicates a failure.
[0077] In another example, the slave controller can obtain the corresponding configuration word from the configuration string according to a preset position. The slave controller can verify whether the configuration word is correct according to a preset verification algorithm. If the configuration word verification fails, the feedback acknowledgement signal indicates a failure.
[0078] Exemplarily, by obtaining the information parameter in response to the update requirement, generating the configuration string according to the information parameter, and transmitting the configuration string to the slave controller, the efficient and flexible update of the configuration word of each slave controller of the vehicle is realized.
[0079] The present application dynamically analyzes the association relationship between the function options of different slave controllers, realizes the automatic generation of the configuration string, ensures the collaboration of the function execution of each slave controller, and avoids the possibility of conflict in the function execution of each slave controller.
[0080] The present application uses the lightweight coding configuration string such as binary, hexadecimal, JSON, and the configuration string transmission mechanism such as broadcast, thereby improving the update efficiency and reliability.
[0081] Meanwhile, the present application can also support the acquisition of information parameters from various ways such as local, cloud server, slave controller, etc., thereby enhancing the compatibility and scalability of the system.
[0082] In addition, the present application takes the master controller as the core, realizes the centralized configuration management of multiple slave controllers, and meets the requirements of rapid iteration, fault repair, or individual customization of vehicle functions.
[0083] In an example, the specific process of generating the configuration string of the vehicle in the above step 120 can include:
[0084] Step 121: According to the association relationship included in the information parameter, determine the function options to be executed by each slave controller.
[0085] In one example, the master controller can determine the specific function options to be executed by each slave controller by analyzing the function association relationship in the information parameter, and take the function options as the function options to be executed.
[0086] In one example, the association relationship represents the logical relationship between the function options of different slave controllers.
[0087] In one example, the association relationship can be a dependency relationship, a mutual exclusion relationship, a priority relationship, etc.
[0088] For example, when the association relationship is a dependency relationship, the association relationship between the function options of different slave controllers can be: the function option A in the slave controller 1 needs to be enabled after the function option B in the slave controller 2 is enabled.
[0089] For example, when the association relationship is a mutual exclusion relationship, the association relationship between the function options of different slave controllers can be: the function option A in the slave controller 1 and the function option B in the slave controller 2 cannot be enabled at the same time.
[0090] For example, when the association relationship is a priority relationship, the association relationship between the function options of different slave controllers can be: the execution priority of the function option A in the slave controller 1 is higher than that of the function option B in the slave controller 2.
[0091] In one example, the function option is a configurable operation or mode supported by the slave controller.
[0092] For example, when the slave controller is a controller for controlling the engine of the vehicle, it can include three function options corresponding to three modes of energy saving mode, sports mode, and economy mode.
[0093] For example, when the slave controller is a controller for controlling the headlamp of the vehicle, it can include four function options of low beam, high beam, fog lamp, and daytime running lamp.
[0094] In one example, the master controller can determine the function options according to the association relationship by rule matching method.
[0095] For example, the master controller can match the information parameter with the rule based on a pre-defined rule library, thereby deriving the function options of each slave controller. The pre-defined rule library can be a decision table, a state machine, etc.
[0096] In one example, the master controller can determine the function options according to the association relationship by dynamic reasoning method.
[0097] Exemplarily, the master controller can dynamically infer the optimal combination of function options based on the association and real-time vehicle data using a machine learning model.
[0098] In an example, the master controller can determine the function options according to the association by a hybrid decision method.
[0099] Exemplarily, the master controller can combine the predefined rule base and dynamic reasoning, input the function options of each slave controller derived according to the predefined rule base into a machine learning model, and output the final function options to be executed of each slave controller, so as to balance reliability and flexibility.
[0100] Step 122: composing the configuration string according to the preset positions of each slave controller in the configuration string and the function options to be executed.
[0101] In the master controller, the preset positions of each slave controller in the configuration string can be preset. The master controller can determine the configuration word corresponding to each slave controller according to the preset coding rule based on the function options of each slave controller determined by the master controller. The master controller can write the configuration word of each slave controller into the corresponding position of the configuration string to compose the configuration string.
[0102] In an example, the preset positions of each slave controller represent the fixed fields or address offsets pre-allocated to each slave controller in the configuration string. For example, the preset positions can be message IDs in a CAN bus or memory address mapping. Each slave controller corresponds to a fixed position.
[0103] In an example, the preset positions can be pre-agreed.
[0104] In an example, the agreement information of the preset positions can be written in the protocol of the configuration string.
[0105] In another example, the agreement information of the preset positions can be written in the storage device of the vehicle.
[0106] In another example, the agreement information of the preset positions can be written in the cloud or the diagnostic device. When the cloud initiates the configuration word update, the agreement information of the preset positions can be sent to the master controller. Alternatively, when the diagnostic device initiates the configuration word update, the agreement information of the preset positions can be sent to the master controller.
[0107] In another example, the agreement information of the preset positions can be written in each slave controller.
[0108] In another example, the agreement information of the preset positions can be generated according to the slave controllers in the vehicle after the master controller obtains the update requirement.
[0109] In an example, the master controller can sequentially write the function options to be executed by each slave controller into the configuration word string according to a physical connection order or a logical order of the slave controllers. For example, the physical connection order can be a bus priority. For example, the logical order can be a function execution timing.
[0110] In an example, the master controller can encode the function options to be executed by each slave controller to obtain a configuration word. Further, the master controller can write the configuration word into a preset position of the configuration word string.
[0111] For example, the encoding process can be converting the function options to be executed by each slave controller into binary code, hexadecimal code, or JSON data format.
[0112] In an example, the information parameters can include a mapping relationship between the function options to be executed by the slave controllers and the configuration words. The master controller can determine the configuration word corresponding to the function option to be executed by each slave controller according to the mapping relationship.
[0113] In another example, the information parameters can include a mapping relationship between the function options to be executed by the slave controllers and their execution requirements and the configuration words. The master controller can determine the configuration word corresponding to the function option to be executed by each slave controller and its execution requirement according to the mapping relationship.
[0114] By intelligently analyzing the association relationship of the function options of different slave controllers, dynamically determining the function options to be executed by each slave controller, and ensuring the optimal decision of system-level function coordination, the function options to be executed by each slave controller are integrated into a transmissible configuration word string through a preset position mapping and a flexible encoding strategy, precise management of the configuration word string is achieved, the integrity and parsability of the configuration instructions are guaranteed, the transmission efficiency is improved through compression optimization and dynamic adaptation mechanism, and finally, fast and reliable configuration update of the multi-controller system is realized, while being compatible with different hardware platforms and function iteration requirements.
[0115] In an example, the specific process of determining the function options to be executed by each slave controller according to the association relationship included in the information parameters in step 121 can include:
[0116] Step 1211: According to the association relationship included in the information parameters, a topology graph of the function options of each slave controller is constructed. The nodes of the topology graph represent the slave controllers. The edges of the topology graph represent the association relationship between the two function options of two slave controllers.
[0117] In which, after obtaining the association relationship in the information parameters, the master controller can visually model the complex association relationship of the function options of the slave controllers through a graphical method to generate a topology graph.
[0118] In an example, the topology graph can be a directed graph structure.
[0119] In an example, a node represents a slave controller instance. A node attribute includes a controller ID, function options available in the slave controller, etc.
[0120] In an example, an edge represents an association between function options of two slave controllers.
[0121] In an example, the association type can be a dependency relationship, a mutual exclusion relationship, a synergy relationship, etc.
[0122] For example, when the dependency relationship is that function option A of slave controller 1 depends on function option B of slave controller 2, an edge can be constructed between the node corresponding to slave controller 1 and the node corresponding to slave controller 2.
[0123] For example, when the mutual exclusion relationship is that function option A of slave controller 1 is mutually exclusive with function option B of slave controller 2, an edge can be constructed between the node corresponding to slave controller 1 and the node corresponding to slave controller 2.
[0124] For example, when the synergy relationship is that function option A of slave controller 1 synergizes with function option B of slave controller 2, an edge can be constructed between the node corresponding to slave controller 1 and the node corresponding to slave controller 2.
[0125] In an example, when there are multiple association relationships between function options of two slave controllers, the master controller can construct multiple edges between the two slave controllers. Each edge can correspond to an association relationship.
[0126] For example, there is an association relationship between function option A of slave controller 1 and function option A of slave controller 2, and there is an association relationship between function option B of slave controller 1 and function option B of slave controller 2. The controller can generate two edges between the node corresponding to slave controller 1 and the node corresponding to slave controller 2. One edge can correspond to the association relationship between function option A of slave controller 1 and function option A of slave controller 2. The other edge can correspond to the association relationship between function option B of slave controller 1 and function option B of slave controller 2.
[0127] In an example, the master controller can construct a fixed topology based on a predefined association rule library. The association rule library can include pre-set association relationships between various slave controllers.
[0128] In an example, the controller can obtain the association rule library from the memory space of the vehicle.
[0129] In another example, the controller can obtain the association rule library from the cloud.
[0130] In another example, the controller can obtain the association relationship of the function options of each slave controller from each slave controller, and then form the association rule base.
[0131] Step 1212: According to the topology graph, determine the function options to be executed by each slave controller.
[0132] Among them, the master controller can calculate the globally optimal function option combination scheme through graph traversal and constraint solving algorithm based on the structured representation of the topology graph.
[0133] In an example, the master controller can solve the combination scheme based on node state, edge constraint and optimization target. The master controller first performs conditional transmission along the edges of the topology graph through the constraint propagation mechanism, then performs conflict detection to identify illegal function combinations, and finally optimizes the scheme in the legal solution space.
[0134] Illustratively, the master controller can use a graph traversal algorithm to search for basic feasible solutions; use constraint programming to handle complex constraint conditions; use reinforcement learning to train an intelligent decision-making body based on historical data; or use a hierarchical decision-making strategy to prioritize hard constraints and optimize secondary indicators, thereby balancing decision-making efficiency and scheme quality.
[0135] Illustratively, through topology modeling and graph optimization algorithms, the decision of the function options to be executed by each slave controller is realized, which significantly improves the decision-making efficiency of complex function coordination, can handle predefined static rules, adapt to dynamic scenarios, support rapid iteration and flexible expansion of constraint conditions, achieve global optimization of function option configuration of each slave controller, and improve the reliability of function option selection.
[0136] In an example, the specific process of determining the function options to be executed by each slave controller according to the topology graph in step 1211 above can include:
[0137] Step 12111: Traverse each slave controller to determine the currently processed slave controller.
[0138] Among them, the master controller can first traverse each controller in the topology graph through a traversal mechanism. The master controller can take the slave controller currently traversed as the currently processed slave controller.
[0139] In an example, the traversal mechanism can be implemented through depth-first, breadth-first and other algorithms. Alternatively, the traversal mechanism can also be regionalized according to the physical location or function grouping of the controller.
[0140] Step 12112: According to the topology graph, determine the function options to be executed by other slave controllers associated with the currently processed slave controller.
[0141] The main controller can determine other slave controllers associated with the currently processed slave controller according to the edges of the node corresponding to the currently processed slave controller. The main controller can also determine the association between the function option of the currently processed slave controller and the function options of other slave controllers according to the edges of the node corresponding to the currently processed slave controller.
[0142] In an example, the main controller can determine the constraints between the function options according to the association between the function option of the currently processed slave controller and the function options of other slave controllers.
[0143] Step 12113: determining the function option to be executed by the currently processed slave controller according to the preset rule of the currently processed slave controller and the function options to be executed by other slave controllers.
[0144] The main controller can determine the function option to be executed by the currently processed slave controller according to the constraints between the function option of the currently processed slave controller and the function options of other slave controllers.
[0145] In an example, the main controller can determine the function option to be executed by each slave controller one by one in the traversal process.
[0146] In another example, the main controller can determine a plurality of function option collocation strategies of the slave controllers in the traversal process. The main controller can select one of the at least one collocation strategy and determine the function option to be executed by each slave controller according to the collocation strategy.
[0147] Optionally, the collocation strategy can include the function options selected by each slave controller.
[0148] By constructing a topology graph and using the progressive processing procedure of traversal-association-decision, the decision-making means for determining the function option to be executed by each slave controller is exemplarily realized, and the collaborative optimization configuration of each slave controller is realized.
[0149] In an example, the information parameter can include the mapping relationship between each function option of the slave controller and the configuration word.
[0150] In an example, the main controller can obtain the mapping relationship between each function option of each slave controller and the configuration word from the cloud or the diagnostic device.
[0151] In another example, the main controller can obtain the mapping relationship between each function option of each slave controller and the configuration word from the storage device of the vehicle.
[0152] In another example, the master controller can request the mapping relationship between the function options and the configuration words of each slave controller from each slave controller.
[0153] The specific process of forming the configuration word string in step 122 can include:
[0154] Step 1221: According to the mapping relationship in the information parameter of the slave controller, determine the target configuration word corresponding to the function option to be executed.
[0155] The master controller can obtain the mapping relationship between the function options and the configuration words of the slave controller from the information parameter. Alternatively, the master controller can obtain the mapping relationship between the function options and the execution requirements and the configuration words of the slave controller from the information parameter. Based on the mapping relationship, the master controller can determine the configuration word corresponding to the function option to be executed, and take the configuration word as the target configuration word.
[0156] In an example, the mapping relationship can be displayed in the form of a mapping table.
[0157] In another example, the mapping relationship can be displayed in the form of a configuration file.
[0158] Step 1222: According to the preset position of each slave controller in the configuration word string, form the target configuration word of each slave controller into a configuration word string.
[0159] The master controller can have a preset position of each slave controller in the configuration word string. The master controller can write the configuration word of each slave controller into the preset position, thereby obtaining the configuration word string.
[0160] In an example, the configuration word string can only include the configuration words of each slave controller.
[0161] In another example, the configuration word string can also include a synchronization header, a length field, a configuration data block, and a check code. The configuration word of each slave controller can be stored in the configuration data block.
[0162] Exemplarily, by obtaining the mapping relationship between the function options and the configuration words, the abstract function options are converted into target configuration words that conform to the communication protocol of the slave controller, ensuring the accuracy of the instructions and the compatibility of the devices, and improving the configuration word update efficiency.
[0163] In an example, during the process of determining the configuration word according to the function option to be executed of the slave controller, the configuration word also needs to be verified. The process can include at least one of the following steps:
[0164] Step 12211: If the function option to be executed of the slave controller is not in the mapping relationship in the information parameter, send a function option exception prompt.
[0165] The master controller needs to verify whether the function option exists in the predefined configuration information library when converting the function option, so as to prevent unauthorized operation and improve the stability and safety of vehicle operation.
[0166] In an example, the function option abnormality reminder indicates that the function option to be executed by the slave controller is a function option that is not registered in the configuration information.
[0167] For example, the slave controller 1 can have function option A, function option B, and function option C. When the function option to be executed by the slave controller is function option D, the function option to be executed by the slave controller is not in the information parameter.
[0168] In an example, the function option abnormality reminder can be caused by version mismatch, configuration error, or malicious request.
[0169] In an example, the master controller can send the abnormality reminder in the form of an alarm notification.
[0170] In an example, the master controller can also record the abnormality in the form of a log record.
[0171] In an example, the master controller can also correct the function option to be executed by the slave controller by selecting a function option that has the highest matching degree with the function option to be executed from the function options provided by the slave controller.
[0172] Step 12212: If the target configuration word of the slave controller does not match the preset verification information of the slave controller, a verification abnormality reminder is sent.
[0173] In an example, the master controller can also verify the target configuration word of the function option to be executed by the slave controller using the preset verification information of the slave controller after determining the target configuration word, and determine whether the target configuration word is a registered configuration word. If the target configuration word is not a registered configuration word, a verification abnormality reminder is sent.
[0174] In an example, the preset verification information can include the registered configuration word of the slave controller. If the target configuration word fails the verification, it means that the target configuration word is out of the permitted range.
[0175] In an example, the registered configuration word of the slave controller can be different according to different software versions and hardware versions of the slave controller.
[0176] For example, the slave controller 1 can have function option A corresponding to configuration word 00, function option B corresponding to configuration word 01, and function option C corresponding to configuration word 10. When the target configuration word of the slave controller is 11, the target configuration word of the slave controller does not match the preset check information of the slave controller.
[0177] In an example, the information parameter further comprises a priority.
[0178] In an example, the priority is used for priority relationship between multiple function options of a slave controller.
[0179] In an example, the priority can be determined according to frequency of use by a user.
[0180] For example, the function options of the slave controller can be sorted according to the number of uses of each function option in the slave controller within a preset time period. Further, the priority of each function option of the slave controller can be determined according to the sorting. That is, the more the number of uses, the higher the priority.
[0181] In step 120, the specific process of generating the configuration word string of the vehicle according to the information parameter can include:
[0182] In step 123, the function options of the slave controller to be executed are determined according to the priority of the function options of the slave controller included in the information parameter.
[0183] In an example, the priority of each function option of the slave controller can be obtained by the master controller. The master controller can select the function option with the highest priority as the function option to be executed of the slave controller.
[0184] In an example, the priority of the function option can be divided into static priority and dynamic priority.
[0185] For example, the static priority can be determined based on factory preset. The static priority can be divided based on Automotive Safety Integrity Level (ASIL).
[0186] For example, the dynamic priority can be adjusted according to the operating state of the vehicle.
[0187] For example, the priority of each function option can be determined according to the frequency of selection by a user or the number of selections by a user within a preset time period.
[0188] For example, the priority of each function option can be calculated according to a preset model by considering real-time factors such as the current driving mode, environmental conditions, etc.
[0189] In an example, when there are multiple function options with equal priority, the master controller can further analyze resource occupation and execution duration of the function options, and select a suitable function option as the function option to be executed by the slave controller.
[0190] In an example, the master controller can select, according to the preset priority, the function option with the highest priority as the function option to be executed by each slave controller.
[0191] In another example, the master controller can select, according to the association relationship of each slave controller and the priority, the function option of each slave controller in the combination with the highest overall priority as the function option to be executed.
[0192] Step 124: composing the configuration string according to the preset position of each slave controller in the configuration string and the function option to be executed.
[0193] The execution of this step is similar to step 122 described above, which will not be repeated here.
[0194] By priority-driven function decision, the decision of the function option to be executed by each slave controller and the generation of the final configuration string are realized, and the combination effectiveness of the configuration string is improved.
[0195] In an example, the specific process of determining the function option to be executed by each slave controller according to the priority in step 123 can include any one of the following steps:
[0196] Step 1231: determining the priority of each function option in the slave controller according to the information parameter of the slave controller, and determining the function option with the highest priority as the function option to be executed.
[0197] Among them, the priority of each function option of the slave controller can be preset in the information parameter of the slave controller. The priority can be written when the slave controller is factory-set. The master controller can realize the decision of the function option based on the priority information.
[0198] Step 1232: obtaining historical execution information of each function option in the slave controller, and determining the function option with the most execution times as the function option to be executed.
[0199] Among them, the master controller can obtain the historical execution information of each function option in the slave controller. The master controller can generate the priority of each function option of the slave controller according to the historical execution information. The master controller can realize the decision of the function option based on the priority.
[0200] In an example, the execution times of a preset duration can be obtained according to the historical execution information, and then the priority can be determined according to the execution times.
[0201] Optionally, the priority corresponding to the function option can be determined according to the execution number and a preset priority mapping table. Alternatively, the priorities of the function options can be determined according to the ranking of the execution numbers. That is, the more the execution number, the higher the priority.
[0202] In another example, the execution frequency can be obtained according to the historical execution information, and then the priority is determined according to the execution frequency.
[0203] Optionally, the priority corresponding to the function option can be determined according to the execution frequency and a preset priority mapping table. Alternatively, the priorities of the function options can be determined according to the ranking of the execution frequencies. That is, the higher the execution frequency, the higher the priority.
[0204] In another example, the historical execution information can be input into a preset data model. Through the data model, the priority of each function option can be predicted.
[0205] Optionally, the data model can be a large language model, a neural network model, etc.
[0206] Exemplarily, through quantitative evaluation, the priorities of the function options are accurately ranked, thereby improving the effectiveness of the final configuration string.
[0207] In an example, the information parameter further includes hardware information. In step 120, a configuration string of the vehicle is generated according to the information parameter, including:
[0208] In step 125, if it is determined that the slave controller is a replacement part according to the hardware information included in the information parameter, the configuration word of the slave controller is determined according to the historical configuration string. The historical configuration string is a configuration string that is successfully configured.
[0209] The master controller can also be optimized for vehicle repair scenarios. When the master controller detects that the slave controller is a replacement part through the hardware information, the master controller can automatically trigger the historical configuration recovery process. This mechanism effectively solves the parameter initialization problem after replacing hardware and avoids errors or omissions that may be caused by manual configuration.
[0210] In an example, the hardware information can include the serial number, firmware version, vehicle identification number (VIN), and the like of the hardware device.
[0211] In an example, a security detection algorithm can be provided in the master controller. When the master controller receives the hardware information, the master controller can determine whether the slave controller is a replacement part through the hardware detection algorithm, thereby determining whether the slave controller is a replacement part.
[0212] In an example, the judgment process of the security detection algorithm can include at least one of device serial number change detection, firmware version compatibility check, physical interface feature comparison, etc.
[0213] In another example, the master controller can determine whether the VIN matches the vehicle after obtaining the VIN of the slave controller, so as to determine whether the slave controller is a replacement part.
[0214] In another example, it can be agreed that a bit character in the configuration word of the slave controller is fixedly set as a factory code. The master controller can determine whether the slave controller is a replacement part according to the value of the factory code.
[0215] For example, the last bit of the configuration word can be used as the factory code.
[0216] For example, when the factory code is 1, it means that the slave controller is a new factory part. That is, the slave controller is a replacement part.
[0217] For example, after the master controller completes reading the slave controller once, the master controller can instruct the slave controller to modify the factory code to 0. Further, when the master controller reads the factory code of the slave controller again, the master controller will no longer consider the slave controller as a factory part.
[0218] In an example, the history configuration word string can be the configuration word string of the last successful configuration at least once.
[0219] In an example, the history configuration word string can also be stored and encrypted by using a blockchain technology.
[0220] In an example, the master controller can obtain the configuration word of the replacement part from the history configuration word string.
[0221] Step 126: According to the preset positions of the slave controllers in the configuration word string and the configuration words, the configuration word string is composed.
[0222] The execution of this step is similar to step 122 described above, which will not be repeated here.
[0223] Exemplarily, by automatically determining whether it is a replacement part and automatically matching the history configuration word string, the recovery of the history configuration is realized, so as to further ensure the validity of the configuration word string.
[0224] In an example, the specific process of determining whether the slave controller is a replacement part in step 125 can include:
[0225] Step 1251: If the hardware information included in the information parameter does not match the pre-stored history hardware information, it is determined that the slave controller is a replacement part.
[0226] The main controller can store pre-stored historical hardware information. The main controller can determine whether the slave controller is a replacement part by comparing the hardware information with the pre-stored historical hardware information.
[0227] In an example, the main controller can obtain the pre-stored historical hardware information from the cloud.
[0228] In another example, the main controller can obtain the pre-stored historical hardware information from a storage device of the vehicle.
[0229] In an example, the hardware information can include device serial number, firmware checksum, hardware version number, software version number, production date code, performance characteristic value, etc.
[0230] In an example, the hardware information of some slave controllers can further include VIN.
[0231] Optionally, the device serial number is the core identification of the slave controller. The firmware checksum is used to judge the code integrity of the slave controller. The hardware version number and the software version number are used to judge the compatibility reference of the slave controller. The production date code is used to indicate the batch characteristics of the slave controller.
[0232] Optionally, the performance characteristics can include response delay, etc.
[0233] In an example, the main controller can determine whether the hardware information matches the pre-stored historical hardware information in a one-by-one matching manner.
[0234] Optionally, the main controller can use a strict matching mode. That is, if any dimension does not match, it is determined as a replacement part.
[0235] In another example, the main controller can use a similarity algorithm to calculate the matching degree of the hardware information and the pre-stored historical hardware information, so as to determine whether the hardware information matches the pre-stored historical hardware information according to the matching degree.
[0236] Optionally, the main controller can use a fuzzy matching mode. That is, a similarity threshold is set. If the similarity of the hardware information and the pre-stored historical hardware information is less than the similarity threshold, it is determined that the hardware information does not match the pre-stored historical hardware information. Otherwise, if the similarity of the hardware information and the pre-stored historical hardware information is greater than or equal to the similarity threshold, it is determined that the hardware information matches the pre-stored historical hardware information.
[0237] Exemplarily, by matching the hardware information with the pre-stored historical hardware information, flexible judgment of the replacement part is realized, and the processing accuracy of the replacement part is improved.
[0238] In an example, the information parameter in step 120 can include at least one of the association relationship, the priority, and the hardware information.
[0239] Steps 121 and 122, steps 123 and 124, and steps 125 and 126 respectively illustrate the generation of the configuration string when the information parameter includes the association relationship, the priority, or the hardware information.
[0240] However, in actual use, the information parameter obtained by the master controller can include multiple items of the association relationship, the priority, and the hardware information.
[0241] In an implementation, when the information parameter includes the association relationship and the priority, the master controller can perform in the order of steps 123, 124, 121, and 122, or perform in the order of steps 121, 122, 123, and 124 to generate the configuration string. Specifically, the steps include:
[0242] Step 123: determining the function option to be executed by each slave controller according to the priority of the function option of each slave controller included in the information parameter.
[0243] Step 124: composing the configuration string according to the preset position of each slave controller in the configuration string and the function option to be executed.
[0244] Step 121: determining the function option to be executed by each slave controller according to the association relationship included in the information parameter.
[0245] Step 122: composing the configuration string according to the preset position of each slave controller in the configuration string and the function option to be executed.
[0246] Optionally, when the slave controller with the priority and the slave controller with the association relationship are independent of each other, the master controller can respectively determine the corresponding configuration string according to steps 121 and 122, and steps 123 and 124, to generate the configuration string.
[0247] Optionally, when there is an association relationship between the function options of the slave controllers and there is a priority, the master controller can first determine the function option to be executed by each slave controller according to the priority of each slave controller. Further, based on the function option to be executed by each slave controller that has been determined, the master controller can determine the function option to be executed by other slave controllers according to the association relationship between the function options of the slave controllers.
[0248] For example, the master controller can determine that the function option to be executed by the slave controller 1 is function option A according to the priority. The master controller can determine that the function option to be executed by the slave controller 2 is function option B according to the association between the function option A of the slave controller 1 and the function option B of the slave controller 2.
[0249] In another implementation, when the information parameter includes the association and the hardware information, the master controller can execute in the order of step 121, step 122, step 125, step 126, or the order of step 125, step 126, step 121, step 122 to generate the configuration substring. Specifically, the steps include:
[0250] Step 125: If it is determined that the slave controller is a replacement part according to the hardware information included in the information parameter, the configuration word of the slave controller is determined according to the historical configuration word string. The historical configuration word string is a configuration word string that is successfully configured.
[0251] Step 126: The configuration word string is composed according to the preset positions of the slave controllers in the configuration word string and the configuration words.
[0252] Step 121: The function options to be executed by the slave controllers are determined according to the association included in the information parameter.
[0253] Step 122: The configuration word string is composed according to the preset positions of the slave controllers in the configuration word string and the function options to be executed.
[0254] Optionally, when the slave controller that is a replacement part does not have an association, the master controller can determine the configuration word of the slave controller according to step 121 and step 122, and step 125 and step 126, respectively, to generate the configuration word string.
[0255] Optionally, when there is an association between the function options of the slave controllers and the slave controller is not a replacement part, the master controller can first determine the configuration word of the replacement part according to the historical configuration word information. Further, based on the configuration word of the replacement part and the association between the function options of the slave controllers, the function options to be executed by other slave controllers are determined.
[0256] For example, the slave controller 1 is a replacement part, and the master controller can determine that the function option to be executed by the slave controller 1 is function option A according to the historical configuration word information. The master controller can determine that the function option to be executed by the slave controller 2 is function option B according to the association between the function option A of the slave controller 1 and the function option B of the slave controller 2.
[0257] In another implementation, when the information parameter includes the priority and the hardware information, the master controller can execute in the order of step 122, step 123, step 124, step 125, or in the order of step 124, step 125, step 122, step 123, to generate the configuration substring. Since the priority and the hardware information are both set for a single slave controller, the order of generating the configuration substring based on the priority and the hardware information is not limited.
[0258] In another implementation, when the information parameter includes the association relationship, the priority, and the hardware information, the master controller can first determine part of the configuration word based on the priority and the hardware information. Then, the master controller can generate the configuration substring based on the determined configuration word and the association relationship included in the information parameter.
[0259] In an example, the information parameter in step 120 can further include user selection information. The master controller can determine the configuration word of the slave controller according to the user selection information, thereby generating the configuration word string.
[0260] In an example, the user selection information can also be used in combination with at least one of the association relationship, the priority, and the hardware information.
[0261] In an example, the process of sending the configuration word string in step 130 can include:
[0262] Step 132: sending the configuration word string to each slave controller in a broadcast manner, so that the slave controller updates according to the configuration word string.
[0263] The master controller can send the configuration word string through a broadcast communication mode. The slave controllers in the same broadcast band as the master controller can read the configuration word string from the broadcast.
[0264] In an example, the master controller can broadcast in a single transmission full network coverage manner.
[0265] By broadcasting the configuration word string, the multicast feature of the in-vehicle network is fully utilized, and the efficiency of large-scale configuration update is significantly improved, which is particularly suitable for scenarios that require multiple controllers to be changed cooperatively.
[0266] In an example, the master controller can further improve the transmission accuracy of the configuration word string and significantly improve the transmission reliability in an interference environment by means of multiple transmissions during the broadcasting process.
[0267] In an example, the slave controller can take the last received configuration word string as the final received information.
[0268] In an example, the master controller can further include a default number of retransmissions. For example, the number of retransmissions can be 2, 3, etc. The number of retransmissions can be set to ensure that the master controller transmits the configuration string multiple times.
[0269] In an example, the master controller can further include a dynamic adjustment factor for the number of retransmissions.
[0270] Optionally, the master controller can increase the number of retransmissions based on the signal quality and the dynamic adjustment factor.
[0271] For example, in the case of poor signal quality, the number of retransmissions can be increased.
[0272] In an example, each broadcast can include a sequence number, a transmission timestamp, and a version identifier.
[0273] In an example, if the data length of the configuration string is too long, the step 132 can further include the following steps before the step 132:
[0274] Step 131: If the data length of the configuration string is greater than a preset data length, the configuration string is split into multiple configuration string sub-strings according to the preset data length. The data length of each configuration string sub-string is less than or equal to the preset data length.
[0275] When the master controller detects that the configuration string exceeds the single-frame transmission capacity limit of the in-vehicle network, the intelligent fragmentation mechanism is automatically triggered to split the configuration string into multiple configuration string sub-strings. This process ensures the safe and reliable transmission of the super-long configuration under the premise of ensuring data integrity, through reasonable fragmentation strategy and recombination control.
[0276] In an example, the preset data length can be determined according to the single-frame transmission capacity of the in-vehicle network.
[0277] In an example, the master controller can determine the size of the configuration string sub-string according to the single-frame transmission capacity of the in-vehicle network. The configuration string sub-string is numbered according to a preset fragmentation numbering rule, so that the slave controller can recombine the configuration string sub-string.
[0278] In an example, the master controller can set a fragmentation verification strategy for each configuration string sub-string, so that the slave controller can verify the integrity of the configuration string sub-string according to the verification strategy after receiving the configuration string sub-string.
[0279] In an example, the slave controller can sort and de-duplicate the configuration string sub-strings transmitted by the master controller multiple times, thereby recombining the final configuration string.
[0280] In an example, the slave controller can use a complete verification mechanism to verify the recombined configuration string, thereby ensuring the validity of the configuration string.
[0281] In an example, the length of each configuration word substring can be fixed.
[0282] In another example, each configuration word substring can be dynamically divided according to the length of each configuration word in the configuration word string, so as to avoid the same configuration word being divided into two configuration word substrings.
[0283] Figure 2 A flowchart of a second embodiment of the configuration word updating method of the present application is shown, which is executed by the master controller. In the embodiment shown in Figure 1 Based on the embodiment shown, the method comprises the following steps: Figure 2
[0284] Step 210: Obtain a configuration word updating request initiated by the cloud or the local.
[0285] In the embodiment shown, the master controller can monitor and obtain the configuration updating request from the cloud or the local in real time through the multi-channel cooperative mechanism.
[0286] In an example, the local configuration word updating request can be triggered by the diagnostic device after the local connection of the diagnostic device.
[0287] In an example, the cloud configuration word updating request can be triggered when the remote diagnosis is initiated by the cloud.
[0288] Step 220: If the vehicle meets the configuration word updating condition, generate an updating requirement.
[0289] In the embodiment shown, the master controller can obtain the vehicle information after obtaining the configuration word updating request, and determine whether the vehicle is suitable for performing the configuration updating according to the vehicle information. If so, the master controller can generate the updating requirement. Otherwise, the master controller can end the configuration word updating request.
[0290] In an example, the configuration word updating generally needs to be completed when the vehicle is stopped and powered on. Therefore, the master controller can determine whether the vehicle can perform the configuration word updating according to the vehicle information, so as to determine whether the vehicle is in the stopped and powered on state.
[0291] Step 230: Obtain information parameters in response to the updating requirement. The updating requirement indicates that the configuration word string is updated. The information parameters include the association relationship between the function options in different slave controllers.
[0292] Step 240: Generate the configuration word string of the vehicle according to the information parameters. The configuration word string indicates the execution requirement of the function options to be executed in different slave controllers.
[0293] Step 250: Send the configuration word string to the slave controller for updating.
[0294] In the step 230, the step 240, and the step 250, the vehicle determines whether the configuration word update condition is met. Figure 1 The implementation of the step 110, the step 120, and the step 130 in the embodiment is similar, and will not be repeated here.
[0295] Illustratively, by configuring the acquisition of the update request of the configuration word and the judgment of the configuration word update condition, it is ensured that the vehicle can perform the configuration word update under suitable conditions, thereby improving the configuration word update efficiency and update security.
[0296] In an example, the configuration word update condition in the step 220 can specifically include at least one of the following:
[0297] The step 221: The vehicle is in a high-voltage power-on state.
[0298] The high-voltage power-on state refers to the vehicle being powered on and normally running. At this time, the system in the vehicle is in an activated state and can be controlled.
[0299] Therefore, the main controller can determine whether each controller in the vehicle can be controlled by judging whether the vehicle is in a high-voltage power-on state.
[0300] The step 222: The gear of the vehicle is in a stop state.
[0301] The gear is a key component in the transmission system of the vehicle, which determines the power transmission mode and driving state of the vehicle. The stop state usually refers to the gear of the vehicle being in the “P” gear (parking gear) or the “N” gear (neutral gear), at which time the power transmission of the vehicle is cut off and the vehicle is in a stationary or freely sliding state.
[0302] Therefore, the main controller can determine whether the vehicle is in a stop state by judging whether the gear of the vehicle is in a stop state, thereby ensuring that the vehicle performs the configuration word update in the stop state.
[0303] The step 223: The vehicle passes the vehicle security authentication. The vehicle security authentication is determined by a preset security authentication process in the vehicle diagnosis process.
[0304] In the diagnosis system of the vehicle, in order to prevent unauthorized access and operation and ensure the safety and stability of the electronic system of the vehicle, a series of security authentication mechanisms are usually set. These security authentication processes can include identity verification, data encryption verification, and other links.
[0305] Therefore, the main controller can determine whether the current operation is an operation with authority by judging whether the vehicle passes the vehicle security authentication, thereby avoiding malicious and illegal operations.
[0306] The step 224: The slave controller of the vehicle is in an updateable state.
[0307] In the above, the slave controller of the vehicle being in the updatable state is a necessary condition for the configuration word update to proceed smoothly. The slave controller being in the updatable state means that the slave controller is not currently performing a critical task, and its internal storage space and communication interface and other resources can meet the needs of the configuration word update.
[0308] Therefore, the master controller can ensure the normal update of the slave controller after entering the configuration word update by judging in advance whether the slave controller of the vehicle is in the updatable state.
[0309] In an example, the state query instruction is sent to the slave controller by the diagnostic system of the vehicle, and the running state information of the slave controller is returned to determine whether the slave controller is in the updatable state.
[0310] In another example, according to the preset rule of the vehicle, it is determined whether the vehicle is in a specific time window, or whether the vehicle is in a specific state, so as to determine whether the slave controller is in the updatable state.
[0311] For example, a period of time after the vehicle is turned off can be considered as a specific time window.
[0312] In an example, the specific condition for the slave controller of the vehicle being in the updatable state in step 224 can be any of the following:
[0313] Step 2241: All slave controllers of the vehicle have no error.
[0314] In the above, the master controller establishes a communication connection with each slave controller through the diagnostic interface of the vehicle, and sends a state query instruction to the slave controller. After receiving the instruction, the slave controller will feed back its current working state, fault code and other information to the master controller. The master controller analyzes these feedback information, and if no fault code is contained in the feedback information of all slave controllers, it is determined that all slave controllers have no error.
[0315] In an example, if there is an error in the slave controller, it means that there may be a hardware failure, software exception or communication problem, etc. These problems may cause data transmission errors in the configuration word update process, update instructions cannot be executed correctly, and thus the update fails or even causes more serious system failure.
[0316] Therefore, when there is an error in the slave controller, the master controller does not perform the configuration word update.
[0317] Step 2242: The core slave controller of the vehicle has no error. In the above, the core slave controller is part of the slave controllers.
[0318] The slave controllers of the vehicle can be assigned core slave controllers and non-core slave controllers. The master controller can determine that the vehicle can perform the configuration word update by determining that the core slave controllers have no error.
[0319] In an example, the core slave controllers are a part of the slave controllers that undertake control tasks of critical functions of the vehicle, which are vital to the safety, performance and basic operation of the vehicle.
[0320] Figure 3 A flow chart illustrating a third embodiment of the configuration word update method of the present application is shown, which is performed by a master controller. In Figure 1 and Figure 2 based on the embodiment shown in Figure 3 , the method comprises the following steps:
[0321] Step 310: In response to an update requirement, obtain information parameters. The update requirement represents an update to the configuration word string. The information parameters include the association between the function options in different slave controllers.
[0322] Step 320: Generate a configuration word string of the vehicle according to the information parameters. The configuration word string indicates the execution requirements of the function options to be executed in different slave controllers.
[0323] Step 330: Send the configuration word string to the slave controllers for updating.
[0324] The steps 230, 240 and 250 are similar to the implementation of the steps 110, 120 and 130 in the embodiment, which will not be described here. Figure 1
[0325] Step 340: Obtain the update results fed back by each slave controller.
[0326] The master controller can obtain the update results fed back by each slave controller. The update results are used to indicate whether the configuration word of each slave controller is successfully updated.
[0327] Step 350: If the update result of at least one slave controller indicates that the update fails, generate a new configuration word string according to a preset strategy and send it to the slave controllers for updating.
[0328] In this example, the master controller can count the update results fed back by each slave controller. If the update result of at least one slave controller indicates that the update fails, the master controller can generate a new configuration word string and send it to each slave controller for updating.
[0329] In an example, the master controller can repeatedly send the generated configuration word string to achieve re-updating of the slave controllers.
[0330] In another example, the master controller can be preconfigured with multiple configuration word generation strategies. When the updating of the configuration word string generated using a configuration word generation strategy fails, the master controller can replace the configuration word generation strategy and regenerate the configuration word string.
[0331] In an example, the master controller can record the number of re-updating times and report an error when the number of updating times reaches a threshold, thereby avoiding entering a dead loop of configuration word updating.
[0332] In the example, the master controller improves the stability of configuration word updating by generating the configuration word string again and updating when it is detected that the updating of the slave controller fails.
[0333] In an example, in step 350, the strategy for regenerating the configuration word string can include at least one of the following:
[0334] Step 351: updating the configuration word of the slave controller in the configuration word string according to the parameter information of the slave controller whose updating fails.
[0335] For example, after the master controller finds that the updating of a slave controller fails, the master controller can update the configuration word of the slave controller according to the parameter information of the slave controller, thereby updating the configuration word string.
[0336] For example, the master controller can first determine the slave controllers whose updating fails according to the updating results of the slave controllers. The master controller can update the configuration words of the slave controllers whose updating fails in the configuration word string. The master controller can write the configuration words of the slave controllers into the configuration word string to generate a new configuration word string.
[0337] In an example, the master controller can obtain the function option of the next priority as the function option to be executed according to the priority indicated in the parameter information of the slave controller, and generate the corresponding configuration word.
[0338] In another example, the master controller can regenerate the function options to be executed of multiple slave controllers having an association relationship according to the association relationship indicated in the parameter information of the slave controller, thereby generating the corresponding configuration word.
[0339] In the example, the updating of the configuration word string is achieved by regenerating the configuration word of the slave controller whose updating fails. The re-attempt of configuration word updating is achieved by re-sending the configuration word string to the slave controllers for updating, thereby improving the reliability of configuration word updating.
[0340] Step 352: Obtain a historical configuration string, and use the historical configuration string as the regenerated configuration string. The historical configuration string is a configuration string that has been successfully configured.
[0341] For example, when the master controller detects that the slave controller update fails, the master controller can obtain a historical configuration string from the memory. The master controller can directly send the historical configuration string to the slave controller for updating.
[0342] Since the historical configuration string is a configuration string that has been successfully updated, using the historical configuration string for updating is equivalent to controlling the slave controller to roll back, thereby ensuring to improve the success rate of the slave controller configuration string update.
[0343] In an example, the master controller can obtain a preset position of the slave controller in the configuration string. The master controller can also obtain a historical configuration word from the historical configuration string according to the preset position. The master controller can write the historical configuration word into the configuration string sent in step 330 to achieve the update of the configuration string.
[0344] For example, by using the historical configuration string, the rollback is implemented to the historical version that has been fully verified, the configuration string rollback is implemented, the success rate of the slave controller configuration word update is improved, and the reliability of the configuration word update is improved.
[0345] Step 353: Obtain a factory configuration string, and use the factory configuration string as the regenerated configuration string. The factory configuration string is a configuration string used and stored by the vehicle when it is set at the factory.
[0346] For example, the master controller can also obtain a factory configuration string as the configuration string for this update. Since the factory configuration string is a configuration string that can be confirmed to be executed, using the factory configuration string for updating is equivalent to implementing the recovery of the vehicle factory settings.
[0347] In this example, by using the factory configuration string, an ultimate safety barrier of the vehicle is constructed, which ensures that the vehicle can ensure the most basic operation of the vehicle through the recovery of the factory state when encountering catastrophic software failure, malicious attacks or unknown compatibility problems, thereby improving the reliability of the vehicle.
[0348] In an example, the execution process of step 351 of regenerating the configuration word of the slave controller that fails to update according to the priority can include:
[0349] Step 3511: According to the priority of the function option of the slave controller included in the information parameter, another function option is selected as the function option to be executed by the slave controller.
[0350] When the master controller detects that the update result of the slave controller is an update failure, the master controller can obtain the priority of each function option of the slave controller. The master controller can reselect a function option as the to-be-executed function option of the slave controller according to the priority.
[0351] In an example, the master controller can select the function option with the highest priority from the unselected function options as the to-be-executed function option of the slave controller.
[0352] For example, when the function option with the highest priority has been selected, the master controller can select the function option with the second highest priority as the to-be-executed function option of the slave controller.
[0353] For example, when the function option with the second highest priority has been selected, the master controller can select the function option with the highest priority as the to-be-executed function option of the slave controller.
[0354] Step 3512: and update the configuration word string according to the to-be-executed function option reselected by the slave controller.
[0355] The master controller determines the configuration word of the slave controller according to the newly determined to-be-executed function option, and replaces the configuration word of the slave controller in the original configuration word string with the new configuration word to obtain a new configuration word string.
[0356] By re-determining the configuration word of the slave controller according to the priority, the update of the configuration word string is realized, the strategy of ensuring the normal operation of the vehicle through autonomous degradation is realized, and the stability and fault tolerance of the vehicle are improved.
[0357] In an example, the execution process of re-generating the configuration word of the slave controller with an update failure in step 351 according to the association relationship can include:
[0358] Step 3513: re-determine the to-be-executed function option of each slave controller according to the association relationship included in the information parameter of the slave controller.
[0359] The master controller can obtain a topology graph constructed according to the association relationship in the information parameter of all slave controllers. The master controller can determine the position of the slave controller with an update failure in the topology. The slave controller can determine other slave controllers that have edges with the slave controller with an update failure according to the slave controller with an update failure, and thus determine the decision rule of the slave controller. The master controller can re-determine the new to-be-executed function option according to the decision rule.
[0360] An example, when the update of the failed slave controller is completed, the topology graph traversal and constraint propagation algorithm can be used to verify and optimize all the function options of the slave controllers to ensure the logical consistency of the function options of all the associated controllers and avoid system-level conflicts caused by local adjustment.
[0361] Step 3514: Update the configuration string according to the re-determined function options of the slave controllers.
[0362] In the step, the master controller determines the configuration word of the slave controller according to the newly determined function option, and replaces the configuration word of the slave controller in the original configuration string with the new configuration word to obtain a new configuration string.
[0363] An example, by reselecting the function options of the failed slave controller according to the global association analysis of the association relationship of the slave controllers, the reconstruction of the configuration string is realized, the strategy of ensuring the normal operation of the vehicle is ensured, and the stability and fault tolerance of the vehicle are improved.
[0364] An example, the execution process of step 351 of re-generating the configuration word of the failed slave controller according to the priority and the association relationship can include:
[0365] Step 3515: According to the decision strategy of the slave controller, determine the first slave controller in the failed slave controller which needs to be determined according to the priority. And determine the second slave controller in the failed slave controller which needs to be determined according to the association relationship.
[0366] Step 3516: According to the topology graph, determine the third slave controller which has an association relationship with the second slave controller and needs to be determined according to the association relationship. According to the topology graph, determine the fourth slave controller which has an association relationship with the second slave controller and needs to be determined according to the priority.
[0367] Step 3517: According to the priority of each function option in the first slave controller and the fourth slave controller, re-determine the function options to be executed of the first slave controller and the fourth slave controller.
[0368] Step 3518: According to the association relationship between the second slave controller and the third slave controller, re-determine the function options to be executed of the second slave controller and the third slave controller.
[0369] Step 3519: Update the configuration string according to the re-determined function options of the slave controllers.
[0370] An example, if there is at least one slave controller whose update result indicates that the update fails, the step 350 can further include the following steps:
[0371] Step 354: If there is at least one slave controller whose update result indicates that the update fails, and the update failure condition is met, an update exception prompt is sent.
[0372] In the example, the master controller can further determine whether the vehicle meets the update failure condition when it is detected that there is at least one slave controller whose update result indicates that the update fails. If the vehicle meets the update failure condition, the master controller can send an update exception prompt and end the update.
[0373] In an example, if the vehicle meets the update failure condition, the master controller can also turn off the configuration word update option to avoid abnormally starting the configuration word update under the condition that the configuration word update cannot be completed.
[0374] In the example, by ending the configuration word update and sending the update exception prompt, the abnormal cycle of the configuration word update is avoided, and the effect of timely reminding the administrator to check and handle is achieved.
[0375] In an example, the update failure condition in step 354 can include any of the following:
[0376] Step 3541: There is at least one slave controller whose update result indicates that the update fails.
[0377] In the example, the master controller can monitor the update results of all slave controllers. When it is detected that any controller fails to update, the master controller can consider that the update failure condition is met, end the configuration word update, and start the exception handling process.
[0378] Exemplarily, by this determination method, the user can be timely reminded to intervene manually, so that the problem of update exception can be solved in time.
[0379] Step 3542: There is at least one core slave controller whose update result indicates that the update fails. In the example, the core slave controller is part of the slave controllers.
[0380] In the example, the slave controllers can be divided into core slave controllers and non-core slave controllers. If the core slave controller fails to update, the master controller can consider that the update failure condition is met, end the configuration word update, and start the exception handling process.
[0381] Otherwise, if only the non-core slave controller fails to update, the master controller can consider that the exception will not affect the normal operation of the vehicle, and the master controller can continue to execute the subsequent program.
[0382] Exemplarily, by dividing the core slave controllers and the non-core slave controllers, the hierarchical processing of the slave controllers that fail to update is achieved, and the update efficiency of the vehicle configuration word is improved.
[0383] Step 3543: The number of update failures of at least one slave controller reaches a preset threshold.
[0384] The master controller can count the number of update failures of each controller in the current configuration word update process, determine whether the number of repeated configuration word updates reaches an upper limit, and determine whether the number of update failures of at least one slave controller reaches a preset threshold. If the number of update failures of at least one slave controller reaches the preset threshold, it means that the configuration word update has been performed for multiple times, but all the update operations fail. At this time, the master controller can consider that the update failure condition is met, end the configuration word update, and start the abnormality processing procedure.
[0385] In an example, the step 350 specifically includes four processing methods for the update result of at least one slave controller indicating update failure, i.e., the steps 351, 352, 353, and 354. In actual execution, the master controller can also select multiple methods to combine and implement the processing for the update result of at least one slave controller indicating update failure.
[0386] In an implementation, two processing methods can be selected to be executed in combination.
[0387] For example, the master controller can execute the step 351 when detecting the update failure of the slave controller for the first time. The master controller can execute the step 352 when detecting the update failure of the slave controller for the second time. Alternatively, the master controller can execute the step 353 when detecting the update failure of the slave controller for the second time. Alternatively, the master controller can execute the step 354 when detecting the update failure of the slave controller for the second time.
[0388] For example, the master controller can execute the step 352 when detecting the update failure of the slave controller for the first time. The master controller can execute the step 351 when detecting the update failure of the slave controller for the second time. Alternatively, the master controller can execute the step 353 when detecting the update failure of the slave controller for the second time. Alternatively, the master controller can execute the step 354 when detecting the update failure of the slave controller for the second time.
[0389] For example, the master controller can execute the step 353 when detecting the update failure of the slave controller for the first time. The master controller can execute the step 351 when detecting the update failure of the slave controller for the second time. Alternatively, the master controller can execute the step 352 when detecting the update failure of the slave controller for the second time. Alternatively, the master controller can execute the step 354 when detecting the update failure of the slave controller for the second time.
[0390] For example, the master controller can perform step 354 when it detects the slave controller update failure for the first time. The master controller can perform step 351 when it detects the slave controller update failure for the second time. Alternatively, the master controller can perform step 352 when it detects the slave controller update failure for the second time. Alternatively, the master controller can perform step 353 when it detects the slave controller update failure for the second time.
[0391] In another implementation, three of the above processing modes can be selected and performed in combination.
[0392] For example, the master controller can perform step 351 when it detects the slave controller update failure for the first time. The master controller can perform step 352 when it detects the slave controller update failure for the second time. The master controller can perform step 353 when it detects the slave controller update failure for the third time. The execution order of steps 351, 352, and 353 can be adjusted as needed.
[0393] For example, the master controller can perform step 351 when it detects the slave controller update failure for the first time. The master controller can perform step 353 when it detects the slave controller update failure for the second time. The master controller can perform step 354 when it detects the slave controller update failure for the third time. The execution order of steps 351 and 354 can be adjusted as needed.
[0394] For example, the master controller can perform step 351 when it detects the slave controller update failure for the first time. The master controller can perform step 352 when it detects the slave controller update failure for the second time. The master controller can perform step 354 when it detects the slave controller update failure for the third time. The execution order of steps 351 and 352 can be adjusted as needed.
[0395] For example, the master controller can perform step 352 when it detects the slave controller update failure for the first time. The master controller can perform step 353 when it detects the slave controller update failure for the second time. The master controller can perform step 354 when it detects the slave controller update failure for the third time. The execution order of steps 352 and 353 can be adjusted as needed.
[0396] In another implementation, four of the above processing modes can be selected and performed in combination.
[0397] For example, the master controller can perform step 351 when detecting the slave controller update failure for the first time. The master controller can perform step 352 when detecting the slave controller update failure for the second time. The master controller can perform step 353 when detecting the slave controller update failure for the third time. The master controller can perform step 354 when detecting the slave controller update failure for the fourth time. The execution order of steps 351, 352, and 353 can be adjusted as needed.
[0398] In an example, the method further includes:
[0399] Step 360: If the update results of the slave controllers all indicate success, the configuration string is stored as a historical configuration string, and / or the hardware information contained in the information parameter is recorded as historical hardware information.
[0400] For example, the master controller can determine that the current configuration string update is successful when the update results of all slave controllers indicate success. At this time, the master controller can store the information corresponding to the slave controller.
[0401] In an example, since the current configuration string update is successful, it can be considered that the current configuration string and the hardware device are matched. At this time, the configuration string is the configuration string that is successfully updated. Therefore, the master controller can store the configuration string as a historical configuration string.
[0402] In an example, the master controller can also record the hardware information of each slave controller. The hardware information is recorded as historical hardware information. The historical configuration string and the historical hardware information can be provided to the user for reference as a feasible solution when an exception occurs next time.
[0403] In the present example, by storing the historical configuration string and / or the historical hardware information when the configuration string update is successful, it is ensured that the historical configuration string and / or the historical hardware information used subsequently is the most recent data, thereby improving the data validity.
[0404] Figure 4 A flowchart of a fourth embodiment of the configuration string update method of the present application is shown, which includes a master controller and a plurality of slave controllers in a vehicle, and is applied to a slave controller of the vehicle. In Figures 1 to 3 Based on the embodiment shown, as Figure 4 The method includes the following steps:
[0405] Step 420: Obtain the configuration string sent by the master controller. The configuration string is generated by the master controller according to the information parameters after obtaining the information parameters in response to the update requirement. The update requirement indicates that the configuration string is to be updated. The information parameters include the association between the function options in different slave controllers. The configuration string indicates the execution requirements of the function options to be executed in different slave controllers.
[0406] The slave controller receives the configuration string sent by the master controller through the vehicle-mounted network interface.
[0407] In an example, the configuration string includes the function options to be executed in each slave controller and the execution requirements of the function options to be executed.
[0408] In an example, the configuration string is the configuration string of the vehicle generated by the master controller according to the information parameters in step 120.
[0409] Step 430: Obtain the configuration word of the slave controller from the configuration string according to the preset position of the slave controller in the configuration string.
[0410] The slave controller can store the preset position of the configuration word of the slave controller in the configuration string. The slave controller can obtain the configuration word corresponding to the slave controller from the configuration string according to the preset position.
[0411] In an example, the preset position can indicate the offset of the configuration word of the slave controller in the configuration string. For example, it can indicate the position from the first bit to the first bit in the configuration string.
[0412] In another example, the preset position can indicate the address ID of the configuration word of the slave controller in the configuration string.
[0413] Step 440: If the configuration word obtained from the configuration string is inconsistent with the existing configuration word in the slave controller, update using the configuration word obtained from the configuration string.
[0414] The slave controller can obtain the configuration word of the slave controller from the configuration string. The slave controller can compare the obtained configuration word with the existing configuration word in the slave controller. If the two configuration words are inconsistent, the slave controller can update using the configuration word obtained from the configuration string. After updating, the configuration word in the slave controller is replaced by the configuration word obtained from the configuration string.
[0415] In an example, if the two configuration words are consistent, the slave controller does not need to update the configuration word.
[0416] In this example, the accurate and safe update of the configuration word from the controller is realized by obtaining the configuration word string and reading the configuration word therefrom, and the intelligent networked vehicle is provided with a safe, real-time and accurate configuration word management basic capability.
[0417] In one example, after the update of the configuration word is completed, the following steps are further included:
[0418] Step 450: feeding back the update result of the configuration word update to the master controller. The update result is update success or update failure.
[0419] In one example, the slave controller can generate the update result after completing the update of the local configuration word. The update result is update success or update failure. The slave controller can send the update result to the master controller, so that the master controller performs subsequent operations according to the update result.
[0420] In one example, if the slave controller does not need to perform the update, the slave controller will not send the update result to the master controller. Therefore, the master controller will only confirm the receipt of the update result, and the slave controller indicating the update failure is the slave controller of the update failure.
[0421] In this example, the accurate basis for subsequent decision-making of the master controller is provided by feeding back the update result, so that the entire configuration word update forms a complete "decision-making - execution - feedback" closed loop, and the maintainability and reliability of the configuration word update are greatly improved.
[0422] In one example, before obtaining the configuration word string sent by the master controller, the following steps are further included:
[0423] Step 410: feeding back the information parameter to the master controller in response to the update demand sent by the master controller.
[0424] In one example, after receiving the update request of the master controller, the slave controller starts the multi-source data collection engine immediately, and collects and feeds back the complete information parameter in real time under the current state.
[0425] In one example, the information parameter can include at least one of the following information: each function option of the slave controller, the priority of each function option, the association relationship between each function option and the function option of other slave controllers, hardware information, the mapping relationship between the function option and the configuration word, the verification rule of the configuration word, etc.
[0426] In this example, by sending the information parameter to the master controller, the master controller can generate the configuration word string according to the information parameter, provide real-time and reliable underlying data support for the decision-making of the configuration word string, and significantly improve the effectiveness of the configuration word string in the complex vehicle environment.
[0427] Figure 5Fig. 5 shows a signaling interaction diagram of a fifth embodiment of the configuration word updating method of the present application, which comprises the following steps:
[0428] In an example, the master controller stores the factory configuration word of each slave controller, the last successfully updated history configuration word, and the currently used configuration word.
[0429] In an example, the master controller internally stores the configuration word updating logic. The configuration word updating logic at least comprises the update failure rollback. The configuration word updating logic can also comprise using the new configuration word combination logic to generate a new configuration word string when the configuration word updating of the slave controller fails.
[0430] In an example, the master controller and the slave controller can directly or indirectly communicate through ETH, CAN, CANFD, etc.
[0431] In an example, the master controller and the slave controller can be connected through one or more controllers such as a gateway, and can also communicate through a mixture of various communication methods.
[0432] In an example, the communication between the master controller and the slave controller can be ensured to be reliable by adding necessary encryption measures.
[0433] Step 501: After receiving the local / cloud configuration word updating request, the master controller determines whether the configuration word updating condition is met; if so, the master controller broadcasts the configuration word updating request to the slave controller.
[0434] In an example, the master controller can activate the configuration word updating remotely or locally. The remote activation is to activate the configuration word updating through the cloud dispute protocol. The local activation is to activate the configuration word updating through the locally connected diagnostic device.
[0435] In an example, the configuration word updating condition can include at least one of the following four conditions: determining whether the vehicle power supply / gear state, vehicle speed signal, etc. meet the requirements; whether the security authentication is passed; whether there is an error in the slave controller by diagnostic reading.
[0436] In an example, the setting of the configuration word updating condition can ensure that the configuration word updating demand is initiated when the configuration word updating precondition is met, thereby improving the success rate of the configuration word updating.
[0437] Step 502: The slave controller feeds back the information parameters to the master controller.
[0438] In an example, the information parameters include hardware information, currently used configuration word, etc.
[0439] In an example, the hardware information can include a device serial number, a firmware checksum, a hardware version number, a software version number, a production date code, a performance characteristic value, a VIN, and the like.
[0440] Step 503: The master controller determines the appropriate configuration word of the slave controller according to the information parameter of the slave controller, and broadcasts the configuration word string after being composed; if the master controller cannot determine the appropriate configuration word of the slave controller according to the information parameter, the master controller broadcasts the factory state and reports a fault.
[0441] In an example, if the slave controller does not have a VIN and the like, it can be determined that the slave controller is a replacement part. The master controller can select the configuration word of the slave controller at the corresponding position from the historical configuration word string.
[0442] In an example, when a single slave controller has multiple configuration words to select from, the master controller can determine the configuration word of the corresponding slave controller and the configuration words of other slave controllers associated with the function option according to the priority of the function option corresponding to each configuration word.
[0443] In an example, the master controller can combine the configuration words of multiple slave controllers according to the association relationship between the multiple slave controllers, thereby establishing a configuration word combination with a priority mutual exclusion relationship, and further generating a corresponding configuration word string.
[0444] In an example, the configuration word of a part of the slave controllers can be determined according to user selection.
[0445] In an example, the priority of a part of the configuration words can be determined according to user selection habits. For example, the priority of each function option can be determined according to the number of user selections.
[0446] In an example, the user selection condition can be uploaded to the vehicle cloud for recording.
[0447] In an example, the master controller initiates an all-event type broadcast frame according to the latest combined configuration word string.
[0448] In an example, the initiation of the broadcast frame can be more than once. The multiple initiations can ensure that the slave controller correctly receives the corresponding configuration word.
[0449] In an example, the configuration word string can be a binary sequence.
[0450] In an example, the master controller can split the configuration word string into multiple configuration word sub-strings according to the length of the configuration word string.
[0451] Step 504: The slave controller acquires the configuration word issued by the master controller according to a pre-set rule.
[0452] An example, from the controller can be in the last accepted configuration string, update configuration word.
[0453] An example, each slave controller can correspond to a preset position on the configuration string.
[0454] Step 505: slave controller updates configuration word, and feeds back the update result to the master controller.
[0455] An example, if the vehicle appears abnormal such as power down during the configuration word update, each slave controller can re-initiate configuration word update after the vehicle is powered on.
[0456] Step 506: if the master controller receives all slave controller update results are all successful, determine this update is over; the master controller can store the configuration word, software and hardware version number of this update to the master controller.
[0457] An example, the master controller selects to end the update or update again according to the state feedback of all slave controllers.
[0458] An example, the master controller can record log files.
[0459] Step 507: if the master controller receives feedback of partial slave controller update failure, re-combines the update strategy according to the failure, and broadcasts the new configuration string generated again.
[0460] An example, the master controller can use the configuration string generated by the update configuration string update strategy the second time to update the slave controller.
[0461] Step 508: the slave controller updates again according to the latest configuration word, and feeds back whether the update is successful to the slave controller.
[0462] An example, the master controller can use the historical configuration string to update the third time.
[0463] Step 509: if the master controller detects that the slave controller fails three times in succession, the whole vehicle is recovered to the last update successful configuration word or factory configuration word.
[0464] An example, the master controller can use the factory configuration string to update the fourth time.
[0465] Step 510: if it is still not updated successfully, update according to the master controller minimum state and report the fault.
[0466] Figure 6 The structure schematic diagram of the embodiment of the configuration word updating device is shown. Figure 6As shown, the vehicle includes one master controller and multiple slave controllers, the master controller applied to the vehicle, the configuration word updating device 600 includes a configuration module 610 and a sending module 620.
[0467] The configuration module 610 is configured to acquire information parameters in response to an updating requirement. The updating requirement indicates that the configuration word string is to be updated. The information parameters include an association relationship between the function options in different slave controllers. The configuration word string of the vehicle is generated according to the information parameters. The configuration word string indicates execution requirements of the function options to be executed in different slave controllers.
[0468] The sending module 620 is configured to send the configuration word string to the slave controllers for updating.
[0469] In an example, the configuration module 610 is configured to: determine the function options to be executed in each slave controller according to the association relationship included in the information parameters; and compose the configuration word string according to the function options to be executed in each slave controller and the preset positions of the slave controllers in the configuration word string.
[0470] In an example, the configuration module 610 is configured to: construct a topology graph of the function options of each slave controller according to the association relationship included in the information parameters; and determine the function options to be executed in each slave controller according to the topology graph.
[0471] In an example, the configuration module 610 is configured to: traverse each slave controller to determine a currently processed slave controller; determine the function options to be executed in other slave controllers that have an association relationship with the currently processed slave controller according to the topology graph; and determine the function options to be executed in the currently processed slave controller according to a preset rule of the currently processed slave controller and the function options to be executed in the other slave controllers.
[0472] In an example, the information parameters can include a mapping relationship between each function option of the slave controller and the configuration word; and the configuration module 610 is configured to: determine a target configuration word corresponding to the function option to be executed according to the mapping relationship in the information parameters of the slave controller; and compose the configuration word string of each slave controller according to the target configuration word of each slave controller and the preset positions of the slave controllers in the configuration word string.
[0473] In an example, the configuration module 610 is further configured to: if the function option to be executed in the slave controller is not in the mapping relationship in the information parameters, send a function option abnormality prompt.
[0474] In an example, the configuration module 610 is further configured to: if the target configuration word of the slave controller does not match preset check information of the slave controller, send a check abnormality prompt.
[0475] In an example, the information parameter further comprises a priority. The configuration module 610 is configured to determine the function option to be executed for each slave controller according to the priority of the function options of the slave controllers included in the information parameter, and to compose the configuration string according to the preset positions of the slave controllers in the configuration string and the function options to be executed.
[0476] In an example, the configuration module 610 is configured to determine the priority of each function option of the slave controllers according to the information parameter of the slave controllers, and to determine the function option with the highest priority as the function option to be executed. Alternatively, the configuration module 610 is configured to acquire historical execution information of each function option of the slave controllers, and to determine the function option with the most execution times as the function option to be executed.
[0477] In an example, the information parameter further comprises hardware information. The configuration module 610 is configured to determine the configuration word of the slave controller according to the historical configuration string if it is determined that the slave controller is a replacement part according to the hardware information included in the information parameter, wherein the historical configuration string is a configuration string that is successfully configured. The configuration module 610 is configured to compose the configuration string according to the preset positions of the slave controllers in the configuration string and the configuration words.
[0478] In an example, the sending module 620 is configured to determine that the slave controller is a replacement part if the hardware information included in the information parameter does not match the pre-stored historical hardware information.
[0479] In an example, the sending module 620 is configured to send the configuration string to each slave controller in a broadcast manner, so that the slave controller is updated according to the configuration string.
[0480] In an example, the sending module 620 is configured to send the configuration string multiple times in a broadcast manner.
[0481] In an example, the sending module 620 is configured to split the configuration string into a plurality of configuration word sub-strings according to the preset data length if the data length of the configuration string is greater than the preset data length, wherein the data length of each configuration word sub-string is less than or equal to the preset data length.
[0482] In an example, the configuration module 610 is configured to acquire a configuration word update request initiated by the cloud or locally. If the vehicle satisfies a configuration word update condition, an update requirement is generated.
[0483] In an example, the configuration word update condition comprises at least one of the following: the vehicle is in a high-voltage power-on state; the gear of the vehicle is in a stop state; the vehicle passes a vehicle safety authentication; the vehicle safety authentication is determined by a preset safety authentication process in a vehicle diagnosis process; and the slave controller of the vehicle is in an updatable state.
[0484] In an example, the slave controllers of the vehicle are in an updatable state, including: all slave controllers of the vehicle are error-free. Alternatively, the core slave controller of the vehicle is error-free. Wherein, the core slave controller is a part of the slave controllers.
[0485] In an example, the sending module 620 is configured to: acquire the update results fed back by the slave controllers. If the update results of all the slave controllers indicate that the update is successful, store the configuration string as a historical configuration string, and / or record the hardware information contained in the information parameter as historical hardware information.
[0486] In an example, the sending module 620 is configured to: if the update result of at least one slave controller indicates that the update fails, update the configuration string according to the slave controller that fails to update. Send the updated configuration string to the slave controller for updating.
[0487] In an example, the sending module 620 is configured to: according to the priority of the function option of the slave controller included in the information parameter, reselect another function option as the function option to be executed by the slave controller. And update the configuration string according to the function option to be executed reselected by the slave controller.
[0488] In an example, the sending module 620 is configured to: according to the function option to be executed reselected by the slave controller, and the association relationship included in the information parameter, re-determine the function option to be executed by each slave controller. And update the configuration string according to the function option to be executed re-determined by each slave controller.
[0489] In an example, the sending module 620 is configured to: if the update result of at least one slave controller indicates that the update fails, acquire a historical configuration string, and send the historical configuration string to the slave controller for updating. Wherein, the historical configuration string is a configuration string that is successfully configured.
[0490] In an example, the sending module 620 is configured to: if the update result of at least one slave controller indicates that the update fails, acquire a factory configuration string, and send the factory configuration string to the slave controller for updating. Wherein, the factory configuration string is a configuration string used and stored by the vehicle when it is set at the factory.
[0491] In an example, the sending module 620 is configured to: if the update result of at least one slave controller indicates that the update fails, and the update failure condition is met, send an update exception prompt.
[0492] In an example, the update failure condition comprises any of the following: an update result of at least one slave controller indicates that the update fails; an update result of at least one core slave controller indicates that the update fails, wherein the core slave controller is a part of the slave controllers; and a number of update failures of at least one slave controller reaches a preset threshold.
[0493] The configuration word updating apparatus provided by the embodiment of the present application can execute the method embodiments, and the specific implementation principles and technical effects can be referred to the method embodiments, which will not be repeated here.
[0494] Figure 7 An embodiment of the configuration word updating apparatus of the present application is shown in a structural schematic diagram. As shown in Figure 7 The configuration word updating apparatus 700 of the slave controller applied to the vehicle comprises an acquisition module 710 and an update module 720.
[0495] The acquisition module 710 is configured to acquire the configuration word string sent by the master controller. The configuration word string is generated by the master controller according to the information parameters in response to the update demand. The update demand indicates that the configuration word string is updated. The information parameters comprise the association relationship between the function options in different slave controllers. The configuration word string indicates the execution requirements of the function options to be executed in different slave controllers.
[0496] The update module 720 is configured to acquire the configuration word of the slave controller from the configuration word string according to the preset position of the slave controller in the configuration word string. If the configuration word acquired from the configuration word string is inconsistent with the existing configuration word in the slave controller, the configuration word acquired from the configuration word string is used for updating.
[0497] In an example, the update module 720 is configured to feed back the update result of the configuration word updating to the master controller. The update result is update success or update failure.
[0498] In an example, the acquisition module 710 is configured to feed back the information parameters to the master controller in response to the update demand sent by the master controller.
[0499] The configuration word updating apparatus provided by the embodiment of the present application can execute the method embodiments, and the specific implementation principles and technical effects can be referred to the method embodiments, which will not be repeated here.
[0500] Figure 8 An embodiment of the master controller of the present application is shown in a structural schematic diagram, and the embodiment of the present application does not limit the specific implementation of the master controller. As shown in Figure 8As shown, the master controller can include a processor 802, a communications interface 804, a memory 806, and a communications bus 808.
[0501] The processor 802, the communications interface 804, and the memory 806 communicate with each other through the communications bus 808. The communications interface 804 is configured to communicate with network elements such as clients or other servers. The processor 802 is configured to execute the program 810, and specifically, execute the steps in the above-described method embodiments.
[0502] Specifically, the program 810 can include program codes containing computer-executable instructions.
[0503] The processor 802 can be a central processing unit (CPU), or an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present application. The one or more processors included in the master controller can be the same type of processor, such as one or more CPUs. There can also be different types of processors, such as one or more CPUs and one or more ASICs.
[0504] The memory 806 is configured to store the program 810. The memory 806 can include a high-speed RAM memory, and can also include a non-volatile memory such as at least one disk memory.
[0505] The master controller provided by the embodiments can be used to execute the above-described method, and has similar implementation manners and technical effects, which will not be described here again.
[0506] Figure 9 The structure of the slave controller is shown in the structural diagram of the slave controller, and the specific implementation of the slave controller is not limited in the embodiments. As shown in the figure, Figure 9 As shown, the slave controller can include a processor 902, a communications interface 904, a memory 906, and a communications bus 908.
[0507] The processor 902, the communications interface 904, and the memory 906 communicate with each other through the communications bus 908. The communications interface 904 is configured to communicate with network elements such as clients or other servers. The processor 902 is configured to execute the program 910, and specifically, execute the steps in the above-described method embodiments.
[0508] In particular, the program 910 can include program code comprising computer-executable instructions.
[0509] The processor 902 can be a central processing unit (CPU), or an application specific integrated circuit (ASIC), or one or more integrated circuits configured to perform the operations of the embodiments of the application. The one or more processors included in the controller can be of the same type or different types. For example, the one or more processors can include one or more CPUs and one or more ASICs.
[0510] The memory 906 is configured to store the program 910. The memory 906 can include a high-speed RAM memory and can also include a non-volatile memory, such as at least one disk memory.
[0511] The slave controller provided by the embodiment can be used to execute the method described above, and the implementation manner and technical effects are similar. Therefore, the embodiment will not be described here.
[0512] The embodiment of the application provides a computer readable storage medium, and the storage medium stores at least one executable instruction. When the executable instruction runs on the master controller or the slave controller, the master controller or the slave controller executes the method in any method embodiment described above.
[0513] The algorithms or displays provided herein are not inherently related to any particular computer, virtual system, or other apparatus. In addition, the embodiments of the application are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the embodiments of the application.
[0514] In the specification provided herein, a large number of specific details are described. However, it can be understood that the embodiments of the application can be practiced without these specific details. Similarly, in order to simplify the application and help understand one or more of the various inventive aspects, in the above description of the exemplary embodiments of the application, various features of the embodiments of the application are sometimes grouped together into a single embodiment, figure, or description thereof. Among them, the claims following the detailed description are hereby expressly incorporated into the detailed description, wherein each claim itself is a separate embodiment of the application.
[0515] It will be appreciated by those skilled in the art that modules in the apparatuses in the embodiments can be adapted and placed in one or more apparatuses other than that of the embodiments. Modules or units or components in the embodiments can be combined into one module or unit or component and furthermore can be divided into multiple sub-modules or sub-units or sub-components. Except that at least some of such features and / or processes or units are mutually exclusive.
[0516] It should be noted that the above-mentioned embodiments illustrate rather than limit the application, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word 'comprising' does not exclude the presence of elements or steps other than those listed in a claim. The word 'a' or 'an' preceding an element does not exclude the presence of a plurality of such elements. The application can be implemented by means of both hardware and software, and any combination thereof. In a unit claim, any reference to 'composition' should not be construed as a limitation unless the composition is a product of manufacturing. The use of the word 'about' in relation to a numerical value preferably means ± 10 % of the value. The word 'first','second', 'third', etc. does not imply any order. The use of the terms 'first' and'second' are merely intended to differentiate between two distinct units. It is to be understood that the steps in the above-described embodiments can not be performed in the order described, unless specifically stated otherwise.
Claims
1. A configuration word update method, characterized by, The method is applied to a master controller of a vehicle including a plurality of slave controllers, and comprises the following steps: In response to a configuration string update requirement, obtaining an information parameter; the information parameter comprises a correlation between function options in different slave controllers; According to the information parameter, generating a configuration string; wherein the configuration string indicates execution requirements of function options to be executed in different slave controllers; Sending the configuration string to the slave controllers for updating.
2. The method of claim 1, wherein, According to the information parameter, generating a configuration string, comprises: According to the correlation included in the information parameter, determining function options to be executed in each slave controller; According to the preset position of each slave controller in the configuration string and the function options to be executed, composing the configuration string.
3. The method of claim 2, wherein, According to the correlation included in the information parameter, determining function options to be executed in each slave controller, comprises: According to the correlation included in the information parameter, constructing a topology graph of the function options of each slave controller; the nodes of the topology graph represent slave controllers; the edges of the topology graph represent the correlation between two function options of two slave controllers; According to the topology graph, determining function options to be executed in each slave controller.
4. The method of claim 2, wherein, The information parameter can include a mapping relationship between each function option of a slave controller and a configuration word; according to the preset position of each slave controller in the configuration string and the function options to be executed, composing the configuration string, comprises: According to the mapping relationship in the information parameter of the slave controller, determining target configuration words corresponding to the function options to be executed; According to the preset position of each slave controller in the configuration string, composing the target configuration words of each slave controller into the configuration string.
5. The method according to any one of claims 1-4, characterized in that, The information parameter further comprises a priority; according to the information parameter, generating a configuration string, comprises: According to the information parameter of the slave controller, determining the priority of each function option in the slave controller, and determining the function option with the highest priority as the function option to be executed; According to the preset position of each slave controller in the configuration string and the function options to be executed, composing the configuration string.
6. The method according to any one of claims 1-4, characterized in that, The information parameter further comprises hardware information; according to the information parameter, generating a configuration string, comprises: If it is determined according to the hardware information included in the information parameter that the slave controller is a replacement part, then according to a historical configuration string, determining a configuration word of the slave controller; wherein the historical configuration string is a configuration string that is successfully configured; According to the preset position of each slave controller in the configuration string and the configuration word, composing the configuration string.
7. The method according to any one of claims 1-4, characterized in that, The method further comprises: Obtaining a configuration word update request initiated by the cloud or locally; If the vehicle meets the configuration word update condition, generating an update requirement.
8. The method of claim 7, wherein, The configuration word update condition comprises at least one of the following: The vehicle is in a high-voltage power-on state; The gear of the vehicle is in a stop state; The vehicle passes a vehicle safety authentication; the vehicle safety authentication is determined by a preset safety authentication process in a vehicle diagnosis process; The slave controller of the vehicle is in an updatable state.
9. The method according to any one of claims 1-4, characterized in that, After sending the configuration string to the slave controller for updating, the method further comprises: Obtaining the updating result fed back by each slave controller; If the updating result of at least one slave controller indicates that the updating fails, generating a configuration string according to a preset strategy and sending the configuration string to the slave controller for updating.
10. The method of claim 9, wherein, The generating of the configuration string according to the preset strategy comprises at least one of the following: According to the parameter information of the slave controller that fails to update, updating the configuration word of the slave controller in the configuration string; Obtaining a historical configuration string and taking the historical configuration string as the generated configuration string; wherein the historical configuration string is a configuration string that is successfully configured; Obtaining a factory configuration string and taking the factory configuration string as the generated configuration string; wherein the factory configuration string is a configuration string used and stored by the vehicle when it is set in the factory.
11. A configuration word update method, characterized by, The vehicle comprises a master controller and a plurality of slave controllers, and the method is applied to a slave controller of the vehicle, and the method comprises: Obtaining a configuration string sent by the master controller; the configuration string is generated by the master controller according to information parameters after the master controller obtains the information parameters in response to a configuration string updating demand; wherein the information parameters comprise an association relationship between function options in different slave controllers; the configuration string indicates execution requirements of function options to be executed in different slave controllers; Obtaining a configuration word of the slave controller from the configuration string according to a preset position of the slave controller in the configuration string; If the configuration word obtained from the configuration string is inconsistent with an existing configuration word in the slave controller, updating the slave controller by using the configuration word obtained from the configuration string.