Automobile software flashing method, device, equipment and storage medium
By using the coordinated work of vehicle deployment nodes and data distribution nodes on the automobile production line, the problem of low write efficiency of vehicle software in the existing technology is solved, and the timely write efficiency of vehicle and vehicle production efficiency is improved.
Patent Information
- Application Number
- CN202310020925.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-01-06
- Publication Date
- 2025-09-02
- Estimated Expiration
- 2043-01-06
AI Technical Summary
In the prior art, the automotive software brushing method is inefficient, and the data packet transmission efficiency between vehicles is relatively low, and it is not considered from the overall process, resulting in the software brushing and writing in time, which affects the production efficiency of the entire vehicle.
By receiving the vehicle upgrade data packets sent by the main control node of the production line, checksum distribution is carried out, and the coordinated work of the vehicle's internal deployment node and the data distribution node can be achieved quickly and decompressed data packets to ensure that the vehicle performs software flashing in a timely manner.
It improves the efficiency of the whole vehicle software writing, ensures that the vehicle can complete the software writing in a timely manner, reduces re-repairs, and improves the efficiency of the vehicle production line.
Smart Images

Figure CN116155944B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of software flashing, and in particular to a method, device, equipment and storage medium for flashing automobile software. Background Art
[0002] With the continuous development of the modern automotive industry, the number of automotive parts and software has increased, making the functions carried by vehicles increasingly diverse. However, this has also led to an increasing complexity in the integration of complete vehicle projects. Therefore, how to shorten the delivery cycle and thereby improve the vehicle delivery rate is a pressing issue. To address this issue, vehicle manufacturers need to parallelize the production of parts and the development of software. That is, while the factory is producing parts, the corresponding software may be under debugging, and its software version may not be stable. Therefore, during the production of the vehicle, the entire vehicle software must be re-flashed or partially re-flashed to achieve stability. Generally speaking, when vehicle manufacturers produce vehicles, they flash the software using diagnostic equipment through the vehicle's diagnostic interface. Because each vehicle requires a large amount of software to be flashed, multiple diagnostic devices are required to flash the software in parallel, resulting in high costs and inconvenient management.
[0003] On an automobile production line, the software flashing method in related technologies usually involves a communication node first establishing an access relationship with one or more vehicle nodes and sending a flash data packet. The vehicle node that receives the flash data packet is then used as an access node. This access node can then establish an access relationship with the vehicle nodes that have not received the flash data packet, and send a flash data packet. This process is repeated until all nodes have received all the flash data packets. In this method, flash data packets can only be transmitted between vehicles through a one-to-one connection, resulting in low transmission efficiency of flash data packets between vehicles. Furthermore, the overall flashing process is not considered. That is, when a vehicle completes downloading the flash data packet but does not enter the flashing state in a timely manner, it will still affect the flashing efficiency of the vehicle software. Summary of the Invention
[0004] In view of the shortcomings of the prior art described above, the present invention provides a method, device, equipment and storage medium for flashing automobile software, which are used to solve the technical problems of low efficiency in distributing vehicle upgrade data packets between vehicles and the inability of vehicles to flash software in a timely manner.
[0005] The present invention provides a method for flashing automobile software, the method comprising:
[0006] Receive a vehicle upgrade data packet sent by the production line flash control node, which includes software upgrade programs for all components of the target vehicle;
[0007] Verifying the vehicle upgrade data packet, and distributing the verified vehicle upgrade data packet to an in-vehicle deployment node of a first vehicle, where the first vehicle is a vehicle within a first range of the target vehicle that is connected to its in-vehicle deployment node;
[0008] If it is determined that the time of connection to the in-vehicle deployment node of the first vehicle exceeds a first preset threshold or is not connected to any vehicle within a second preset threshold, decompressing the vehicle upgrade data packet to obtain one or more installation node upgrade data packets;
[0009] Based on the correspondence between the installation node upgrade data package and the installation node, the one or more installation node upgrade data packages are deployed on the corresponding installation nodes in the vehicle, so that the installation node verifies and decompresses the corresponding installation node upgrade data package to obtain the upgrade data package of the object to be flashed, thereby completing the software flashing of the target vehicle.
[0010] In one embodiment of the present invention, verifying the vehicle upgrade data package includes:
[0011] Based on the correspondence between the in-vehicle deployment node and the vehicle upgrade data packet, determining whether the vehicle upgrade data packet received by the target vehicle is the vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle;
[0012] If it is determined that the whole vehicle upgrade data packet received by the target vehicle is the whole vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle, the verification passes; if it is determined that the whole vehicle upgrade data packet received by the target vehicle is not the whole vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle, the verification fails, and the production line flash control node is requested again to send the whole vehicle upgrade data packet.
[0013] In one embodiment of the present invention, distributing the verified vehicle upgrade data package to the in-vehicle deployment node of the first vehicle includes:
[0014] When the in-vehicle deployment node of the target vehicle verifies and passes the vehicle upgrade data packet, the in-vehicle deployment node of the target vehicle connects to the first vehicle as a data distribution node;
[0015] Distribute the vehicle upgrade data package to the in-vehicle deployment node of the first vehicle.
[0016] In one embodiment of the present invention, the in-vehicle deployment node of the target vehicle connected to the first vehicle as a data distribution node further includes:
[0017] The data distribution node of the target vehicle is provided with a first connection number threshold, and when connected to the first vehicle within the first range, the first vehicle connection number of the data distribution node of the target vehicle is increased by one until the first connection number threshold is reached;
[0018] When the in-vehicle deployment node of the first vehicle passes the verification of the received whole vehicle upgrade data packet, the first vehicle connection number is reduced by one. If the verification fails, the in-vehicle deployment node of the first vehicle re-requests the data distribution node of the first vehicle to distribute the whole vehicle upgrade data packet, and the first vehicle connection number remains unchanged.
[0019] In one embodiment of the present invention, while receiving the vehicle upgrade data packet sent by the production line flashing master control node, the method further includes:
[0020] Receive the total number of bytes of the vehicle upgrade data packet sent by the production line flash control node;
[0021] The method of distributing the verified vehicle upgrade data package to the in-vehicle deployment node of the first vehicle further includes:
[0022] The total number of bytes is sent to the in-vehicle deployment node of the first vehicle, so that the in-vehicle deployment node of the first vehicle receives the complete vehicle upgrade data packet according to the total number of bytes, and verifies the vehicle upgrade data packet based on the in-vehicle deployment node. If the verification is passed, the in-vehicle deployment node distributes the vehicle upgrade data packet to the second vehicle that has not yet received the vehicle upgrade data packet as a data distribution node; if the verification fails, the local data is cleared and the required vehicle upgrade data packet is re-acquired.
[0023] In one embodiment of the present invention, the in-vehicle deployment node of the first vehicle receives the complete vehicle upgrade data packet according to the total number of bytes, including:
[0024] The in-vehicle deployment node of the first vehicle can simultaneously receive the vehicle upgrade data packets distributed by the data distribution nodes of multiple target vehicles and the total number of bytes of the vehicle upgrade data packets;
[0025] Each connection established by the in-vehicle deployment node of the first vehicle carries a transmission start position, an expected number of bytes to be transmitted, and a number of bytes to be transmitted. After receiving the vehicle upgrade data packets sent by multiple target vehicles, the in-vehicle deployment node of the first vehicle writes them to different locations of the file in parallel;
[0026] When the in-vehicle deployment node of the first vehicle has only one connection, receiving the complete vehicle upgrade data packet according to the one connection;
[0027] When there are multiple connections to the in-vehicle deployment node of the first vehicle, find the largest connection with the largest current transmission starting position, calculate the transmission starting position of the target connection based on the transmission starting position of the largest connection, the expected number of transmission bytes and the number of transmitted bytes, and continue to receive the complete vehicle upgrade data packet based on the transmission starting position of the target connection.
[0028] In one embodiment of the present invention, the installation node verifies and decompresses the corresponding installation node upgrade data packet to obtain the upgrade data packet of the object to be flashed, thereby completing the software flashing of the target vehicle, including:
[0029] Based on the correspondence between the installation node and the installation node upgrade data packet, the received installation node upgrade data packet is verified. If the verification passes, the installation node upgrade data packet is decompressed to obtain the upgrade data packet of the flashed object; if the verification fails, the in-vehicle deployment node of the target vehicle is requested to re-send it;
[0030] Executing the flashing program of the object to be flashed, flashing the data upgrade package of the object to be flashed into the storage area of the object to be flashed to complete the flashing of the object to be flashed;
[0031] After determining that all the objects to be flashed in the target vehicle have completed the flashing, the software flashing of the target vehicle is detected to be successful. If the flashing is successful, the software flashing of the target vehicle is completed; if the flashing fails, the target vehicle will enter the repair area to re-flash the software.
[0032] In one embodiment of the present invention, before receiving the vehicle upgrade data packet sent by the production line flashing master control node, the method further includes:
[0033] The production line flashing master control node obtains the vehicle upgrade data packet corresponding to the model configuration of the target vehicle from the cloud backend node;
[0034] Based on the correspondence between the vehicle model configuration and the vehicle upgrade data package, the production line flash master control node verifies the vehicle upgrade data package. If the verification fails, the corresponding vehicle upgrade data package is retrieved from the cloud backend again; if the verification passes, the production line flash master control node is connected to the vehicle within the second range;
[0035] The production line flashing master control node is connected to multiple target vehicles within the second range, and sends the vehicle upgrade data packet to the in-vehicle deployment nodes of the multiple target vehicles, wherein one target vehicle has only one in-vehicle deployment node.
[0036] In one embodiment of the present invention, when the production line flashing master control node is connected to a vehicle within the second range, the method further includes:
[0037] The production line flash master control node is provided with a second connection number threshold. When connected to a target vehicle within the second range, the target vehicle connection number of the production line flash master control node is increased by one until the second connection number threshold is reached.
[0038] When the in-vehicle deployment node of the target vehicle passes the verification of the received whole vehicle upgrade data packet, the target vehicle connection number is reduced by one. If the verification fails, the in-vehicle deployment node of the target vehicle re-requests the production line flash control node to send the whole vehicle upgrade data packet, and the target vehicle connection number remains unchanged.
[0039] In one embodiment of the present invention, the method further includes:
[0040] Before entering the vehicle software flashing, the software flashing program is injected into the vehicle's in-vehicle deployment nodes and installation nodes.
[0041] The present invention also provides a vehicle software flashing device, the device comprising:
[0042] A receiving module is used to receive a vehicle upgrade data packet sent by the production line flash control node, wherein the vehicle upgrade data packet includes the software upgrade program of all components of the target vehicle;
[0043] a verification module, configured to verify the vehicle upgrade data packet and distribute the verified vehicle upgrade data packet to an in-vehicle deployment node of a first vehicle, where the first vehicle is a vehicle within a first range of the target vehicle that is connected to its in-vehicle deployment node;
[0044] a decompression module, configured to decompress the vehicle upgrade data packet to obtain one or more installation node upgrade data packets if it is determined that the time for the in-vehicle deployment node connected to the first vehicle exceeds a first preset threshold or is not connected to any vehicle within a second preset threshold;
[0045] The deployment module is used to deploy the one or more installation node upgrade data packages on the corresponding installation nodes in the vehicle based on the correspondence between the installation node upgrade data packages and the installation nodes, so that the installation nodes can verify and decompress the corresponding installation node upgrade data packages to obtain the upgrade data packages of the flashed objects, thereby completing the software flashing of the target vehicle.
[0046] The present invention also provides an electronic device, comprising: a processor and a memory; the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the electronic device executes the above method.
[0047] The present invention also provides a computer-readable storage medium having a computer program stored thereon: the computer program implements the above method when executed by a processor.
[0048] As described above, the automotive software flashing method, apparatus, device, and storage medium provided by the embodiments of the present invention have the following beneficial effects:
[0049] The system receives a vehicle upgrade data packet sent by the production line flashing master control node, which includes the software upgrade program for all components of the target vehicle. The system then verifies the vehicle upgrade data packet and distributes the verified vehicle upgrade data packet to the in-vehicle deployment node of the first vehicle, where the first vehicle is the target vehicle connected to its in-vehicle deployment node within a first range. If it is determined that the time connected to the in-vehicle deployment node of the first vehicle exceeds a first preset threshold or that the target vehicle has not been connected to any vehicle within a second preset threshold, the vehicle upgrade data packet is decompressed to obtain one or more installation node upgrade data packets. Based on the correspondence between the installation node upgrade data packets and the installation nodes, the one or more installation node upgrade data packets are deployed on the corresponding installation nodes in the vehicle, so that the installation nodes verify and decompress the corresponding installation node upgrade data packets to obtain the upgrade data packet for the target vehicle, thereby completing the software flashing of the target vehicle. This system enables the distribution of vehicle upgrade data packets between vehicles and enables timely software flashing, thereby improving the efficiency of vehicle software flashing.
[0050] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] The accompanying drawings are incorporated into and constitute a part of the specification, illustrating embodiments consistent with the present application and, together with the specification, serving to explain the principles of the present application. It is obvious that the drawings described below are merely some embodiments of the present application, and a person of ordinary skill in the art can derive other drawings based on these drawings without inventive effort. In the drawings:
[0052] Figure 1 1 is a schematic diagram of an implementation environment of an automobile software flashing device according to an exemplary embodiment of the present application;
[0053] Figure 2 is a flow chart of a method for flashing automobile software, shown in an exemplary embodiment of the present application;
[0054] Figure 3 is a flow chart of deployment between vehicles shown in an exemplary embodiment of the present application;
[0055] Figure 4 This is a flowchart of a vehicle flashing process shown in an exemplary embodiment of the present application;
[0056] Figure 5is a diagram showing a node relationship in a vehicle according to an exemplary embodiment of the present application;
[0057] Figure 6 is a flowchart of in-vehicle deployment shown in an exemplary embodiment of the present application;
[0058] Figure 7 is a cloud deployment flow chart illustrating an exemplary embodiment of the present application;
[0059] Figure 8 This is a flow chart showing the conditions for determining whether a production line flashes a master control node and connects it to a vehicle, as shown in an exemplary embodiment of the present application;
[0060] Figure 9 This is a deployment flow chart of connecting a production line flashing master control node to an in-vehicle deployment node, as shown in an exemplary embodiment of the present application;
[0061] Figure 10 1 is a block diagram of an automobile software flashing device shown in an exemplary embodiment of the present application;
[0062] Figure 11 This is a structural diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0063] The following describes the embodiments of the present invention through specific examples. Those skilled in the art can easily understand other advantages and effects of the present invention from the content disclosed in this specification. The present invention can also be implemented or applied through different specific embodiments. The details in this specification can also be modified or changed based on different viewpoints and applications without departing from the spirit of the present invention. It should be noted that the following embodiments and sub-samples in the embodiments can be combined with each other unless there is a conflict.
[0064] It should be noted that the illustrations provided in the following embodiments are merely schematic illustrations of the basic concept of the present invention. Therefore, the illustrations only show components related to the present invention and are not drawn according to the number, shape, and size of components in actual implementation. In actual implementation, the type, quantity, and proportion of each component may be changed arbitrarily, and the component layout may also be more complex.
[0065] In the following description, numerous details are discussed to provide a more thorough explanation of the embodiments of the present invention. However, it will be apparent to those skilled in the art that the embodiments of the present invention may be practiced without these specific details. In other embodiments, well-known structures and devices are shown in block diagram form rather than in detail to avoid obscuring the embodiments of the present invention.
[0066] In the description and claims of the embodiments of the present disclosure, as well as in the accompanying drawings, the terms "first," "second," and the like are used to distinguish similar items and are not necessarily used to describe a particular order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate to describe the embodiments of the present disclosure herein. In addition, the terms "including," "having," and any variations thereof are intended to cover non-exclusive inclusions.
[0067] Unless otherwise stated, the term "plurality" means two or more.
[0068] In the embodiment of the present disclosure, the character " / " indicates that the preceding and following objects are in an "or" relationship. For example, A / B means: A or B.
[0069] The term "and / or" describes an association between objects, indicating that three relationships can exist. For example, A and / or B means: A or B, or A and B.
[0070] In automotive software flashing technology, a communication node typically first establishes an access relationship with one or more vehicle nodes and sends a flash data packet. The vehicle node that receives the flash data packet is then used as an access node. This access node then establishes an access relationship with the vehicle nodes that have not received the flash data packet, and sends the flash data packet. This process is repeated until all nodes have received all the flash data packets, and then the software is flashed. In this method, flash data packets can only be transmitted between vehicles through a one-to-one connection, resulting in low transmission efficiency between vehicles. Furthermore, the overall flashing process is not considered, meaning that when a vehicle completes downloading the flash data packet but fails to enter the flashing state in a timely manner, this also affects the efficiency of the automotive software flashing process.
[0071] To solve the above problem, see Figure 1 , Figure 1 This is a schematic diagram of an implementation environment of a vehicle software flashing device shown in an exemplary embodiment of the present application. Figure 1As shown, the operator can select the vehicle model that needs to be software flashed at the production line flashing master control node. The production line flashing master control node requests the cloud background node to obtain the corresponding vehicle upgrade data package based on the model, and then sends the above-mentioned vehicle upgrade data package to the in-vehicle deployment node of the connected vehicle. The in-vehicle deployment node of the vehicle that receives the vehicle upgrade data package can also serve as a data distribution node to distribute the vehicle upgrade data package to the in-vehicle deployment nodes of other vehicles that are not connected to the master control node. Among them, the in-vehicle deployment node of the vehicle that is not connected to the master control node can simultaneously connect to the data distribution nodes of multiple vehicles to quickly receive the complete vehicle upgrade data package. At the same time, it can also serve as a data distribution node to continue to connect to vehicles that have not yet received the vehicle upgrade data package and distribute the vehicle upgrade data package to them. If the vehicle that receives the vehicle upgrade data package does not connect to other vehicles within a certain period of time or within a certain period of time when connected to other vehicles, such as after the vehicle connected to it receives the complete vehicle upgrade data package, it will start to decompress the vehicle upgrade data package, obtain a series of installation packages, and flash the software of the whole vehicle.
[0072] See Figure 2 , Figure 2 This is a flow chart of a method for flashing car software according to an exemplary embodiment of the present application. Figure 1 The implementation environment shown is specifically implemented by the client and / or server in the implementation environment. It should be understood that the method can also be applied to other exemplary implementation environments and specifically implemented by devices in other implementation environments. This embodiment does not limit the implementation environment to which the method is applicable. To address these issues, the embodiments of the present application respectively propose a method for flashing automotive software, a device for flashing automotive software, a device, and a computer-readable storage medium. These embodiments will be described in detail below.
[0073] like Figure 2 As shown, in an exemplary embodiment, the vehicle software flashing method includes at least steps S201 to S204, which are described in detail as follows:
[0074] Step S201: receiving a vehicle upgrade data packet sent by the production line flashing master control node.
[0075] The vehicle upgrade data package includes the software upgrade programs for all components of the target vehicle. The data in the vehicle upgrade data package is compressed.
[0076] The flashing master control node is responsible for two aspects: one is to obtain the vehicle upgrade data package corresponding to the vehicle model configuration from the cloud background node, and the other is to send the obtained vehicle upgrade data package to the vehicle's in-vehicle deployment node.
[0077] In one embodiment, while receiving the vehicle upgrade data packet sent by the production line flashing master control node, the method further includes:
[0078] The total number of bytes of vehicle upgrade data packets received from the production line flash control node.
[0079] The vehicle's in-vehicle deployment node can determine whether the complete vehicle upgrade data package has been received based on the total number of bytes.
[0080] Step S202: Verify the vehicle upgrade data packet, and distribute the verified vehicle upgrade data packet to the in-vehicle deployment node of the first vehicle.
[0081] The first vehicle is a target vehicle connected to its in-vehicle deployment node within the first range, and the target vehicle is a vehicle that has received a vehicle upgrade data packet from the production line flash control node. The in-vehicle deployment node is responsible for receiving the vehicle upgrade data packet from the production line flash control node or data distribution node.
[0082] The target vehicle's in-vehicle node can connect to the first vehicle's in-vehicle node within a certain range, and through this connection, the verified vehicle upgrade data package can be distributed to the first vehicle. It should be understood that the connection here can be a wireless connection or a wired connection.
[0083] In one embodiment, verifying the vehicle upgrade data package includes:
[0084] Based on the correspondence between the in-vehicle deployment node and the vehicle upgrade data packet, determining whether the vehicle upgrade data packet received by the target vehicle is the vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle;
[0085] If it is determined that the whole vehicle upgrade data packet received by the target vehicle is the whole vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle, the verification passes; if it is determined that the whole vehicle upgrade data packet received by the target vehicle is not the whole vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle, the verification fails, and the production line is requested to re-rewrite the main control node to send the whole vehicle upgrade data packet.
[0086] There is a corresponding relationship between the in-vehicle deployment node and the whole vehicle upgrade data packet. Therefore, the in-vehicle deployment node of the target vehicle can verify the whole vehicle upgrade data packet it receives based on the above correspondence. Verification of the whole vehicle upgrade data packet can ensure that the whole vehicle data packet received by the target vehicle is what it needs for software flashing, avoiding errors in subsequent flashing.
[0087] In one embodiment, distributing the verified vehicle upgrade data package to the in-vehicle deployment node of the first vehicle includes:
[0088] When the in-vehicle deployment node of the target vehicle verifies and passes the vehicle upgrade data packet, the in-vehicle deployment node of the target vehicle connects to the first vehicle as a data distribution node;
[0089] Distribute the vehicle upgrade data package to the in-vehicle deployment node of the first vehicle.
[0090] The data distribution node is responsible for distributing all or part of the local vehicle upgrade data package to other in-vehicle deployment nodes. After the in-vehicle deployment node of the target vehicle verifies the vehicle upgrade data package, it can act as a data distribution node to distribute the vehicle upgrade data package to the in-vehicle deployment node of the first vehicle.
[0091] In one embodiment, the in-vehicle deployment node of the target vehicle connected to the first vehicle as a data distribution node further includes:
[0092] The data distribution node of the target vehicle is provided with a first connection number threshold, and when connected to the first vehicle within the first range, the first vehicle connection number of the data distribution node of the target vehicle is increased by one until the first connection number threshold is reached;
[0093] When the in-vehicle deployment node of the first vehicle passes the verification of the received vehicle upgrade data packet, the connection number of the first vehicle is reduced by one. If the verification fails, the in-vehicle deployment node of the first vehicle re-requests the data distribution node of the first vehicle to distribute the vehicle upgrade data packet, and the connection number of the first vehicle remains unchanged.
[0094] See Figure 3 , Figure 3 This is a flow chart of deployment between vehicles shown in an exemplary embodiment of the present application. Figure 3 As shown, the in-vehicle deployment node of the target vehicle, that is, the data distribution node can connect to the in-vehicle deployment nodes of multiple vehicles within a first range, but a first connection number threshold is set for the data distribution node of the target vehicle, that is, the first vehicles connected to the in-vehicle deployment node of the target vehicle can be multiple, but there is a limit on the number. The data distribution node of the target vehicle can dynamically record the number of first vehicle connections. When the first connection number threshold is reached, the first vehicle can no longer be connected.
[0095] For example, the data distribution node of the target vehicle is set to a connection number threshold of 10, indicating that the data distribution node of the target vehicle can connect to up to 10 first vehicles at the same time. If at a certain moment, the first vehicle connection number is 5, and then it is connected to another first vehicle within the first range, the first vehicle connection number of the data distribution node of the target vehicle is increased by 1, and the first vehicle connection number is 6 (5+1=6). When the first vehicle connection number is 10, no other vehicles can be connected. If at another moment, the first vehicle connection number is 10, and the in-vehicle deployment node of one of the first vehicles passes the verification of the received whole vehicle upgrade data packet, it no longer needs to receive the whole vehicle upgrade data packet and can disconnect from the target vehicle, so the first vehicle connection number will be reduced by 1, and the first vehicle connection number is 9 (10-1=9). If the verification fails, the in-vehicle deployment node of the first vehicle needs to re-request the data distribution node of the first vehicle to distribute the whole vehicle upgrade data packet. At this time, the first vehicle connection number remains unchanged and is still 10.
[0096] In one embodiment, distributing the verified vehicle upgrade data package to the in-vehicle deployment node of the first vehicle further includes:
[0097] The total number of bytes is sent to the in-vehicle deployment node of the first vehicle, so that the in-vehicle deployment node of the first vehicle receives the complete vehicle upgrade data packet according to the total number of bytes, and verifies the vehicle upgrade data packet based on the in-vehicle deployment node. If the verification is passed, the in-vehicle deployment node will distribute the vehicle upgrade data packet to the second vehicle that has not yet received the vehicle upgrade data packet as a data distribution node; if the verification fails, the local data will be cleared and the required vehicle upgrade data packet will be obtained again.
[0098] In one embodiment, the in-vehicle deployment node of the first vehicle receives a complete vehicle upgrade data packet according to the total number of bytes, including:
[0099] The in-vehicle deployment node of the first vehicle can simultaneously receive the vehicle upgrade data packets distributed by the data distribution nodes of multiple target vehicles and the total number of bytes of the vehicle upgrade data packets;
[0100] Each connection established by the in-vehicle deployment node of the first vehicle carries the transmission start position, the expected number of bytes to be transmitted, and the number of bytes transmitted. After receiving the vehicle upgrade data packets sent by multiple target vehicles, the in-vehicle deployment node of the first vehicle writes them to different locations of the file in parallel;
[0101] When the in-vehicle deployment node of the first vehicle has only one connection, receiving a complete vehicle upgrade data packet according to the one connection;
[0102] When there are multiple connections to the in-vehicle deployment node of the first vehicle, find the largest connection with the largest current transmission starting position, calculate the transmission starting position of the target connection based on the transmission starting position of the largest connection, the expected number of transmission bytes and the number of transmitted bytes, and continue to receive the complete vehicle upgrade data packet based on the transmission starting position of the target connection.
[0103] The in-vehicle deployment node of the first vehicle can simultaneously connect to the data distribution nodes of multiple target vehicles, receive vehicle upgrade data packets and the total number of bytes of vehicle upgrade data packets distributed from different data distribution nodes. Each connection established by the in-vehicle deployment node of the first vehicle carries the transmission starting position, the expected number of bytes to be transmitted, and the number of bytes transmitted. After receiving the vehicle upgrade data packets sent by multiple target vehicles, they are written in parallel to different locations of the file. The in-vehicle deployment node of the first vehicle can determine the final target connection to receive the complete vehicle upgrade data packet based on the vehicle upgrade data packets in each location.
[0104] Please continue to see Figure 3 , assuming that a connection is established between the in-vehicle deployment node of the first vehicle and the data distribution node of the target vehicle, denoted as C. Among them, each connection established by the in-vehicle deployment node of the first vehicle will have three attributes: the transmission start position, the expected number of bytes to be transmitted, and the number of bytes transmitted, named begin(C), expect(C), and tans(C) respectively. The size of the vehicle upgrade data packet is denoted as S.
[0105] If this is the first connection, denoted as CF, the in-vehicle deployment node of the first vehicle requests the data distribution node of the target vehicle to send the vehicle upgrade data packet transmission starting position 0, i.e., begin(CF) = 0; the expected number of bytes to be transmitted (in this case, the size of the entire vehicle upgrade data packet, i.e., expect(CF) = S); and the number of bytes to be transmitted, i.e., tans(CF) = 0. If this is the only first connection, the complete vehicle upgrade data packet is received based on this first connection.
[0106] If it is not the first connection, it is recorded as a new connection CN. If there are multiple connections, find the maximum connection CL corresponding to the largest current transmission starting position, modify the expected number of transmission bytes expect(CL) of the maximum connection CL to (S-(begin(CL)+tans(CL))) / 2, and then calculate the transmission starting position of the new connection CN, that is, begin(CN)=(begin(CL)+tans(CL))+expect(CL), where the expected number of transmission bytes of the new connection CN is the same as the expected number of transmission bytes of the maximum connection CL, that is, expect(CN)=expect(CL). At this time, the number of transmitted bytes of the new connection defaults to 0. The above new connection is used as the target connection, and the vehicle upgrade data packet is continued to be received through begin(CN), expect(CN), and tans(CN) until the complete vehicle upgrade data packet is received. Through multi-point transmission and segmented transmission, the transmission efficiency of the vehicle upgrade data packet between vehicles is improved.
[0107] Step S203: If it is determined that the time of connecting to the in-vehicle deployment node of the first vehicle exceeds the first preset threshold or is not connected to any vehicle within the second preset threshold, the vehicle upgrade data package is decompressed to obtain one or more installation node upgrade data packages.
[0108] See Figure 4 , Figure 4 This is a flowchart of the vehicle flashing process shown in an exemplary embodiment of this application. Figure 4 As shown, when the in-vehicle deployment node of the target vehicle is connected to the in-vehicle deployment node of the first vehicle as a data distribution node, when it is determined that all the first vehicles it can connect to have received the complete vehicle upgrade data package, that is, after exceeding the first preset threshold, it can no longer distribute the vehicle upgrade data package to any other vehicle. If it does not exceed the first preset threshold, it continues to connect to the in-vehicle deployment node of the first vehicle. Or when the target vehicle cannot connect to any vehicle within the first range, that is, after exceeding the second preset threshold, the in-vehicle deployment node of the target vehicle decompresses the vehicle upgrade data package to obtain one or more installation node upgrade data packages. If it does not exceed the second preset threshold, it continues to connect to the in-vehicle deployment node of the first vehicle. It should be noted that there is no limit on the size relationship between the first preset threshold and the second preset threshold. The in-vehicle deployment node will then serve as the in-vehicle installation control node to perform subsequent software flashing to complete the vehicle software flashing upgrade. If the upgrade is successful, the flashing operation ends. If the upgrade fails, the vehicle enters the repair area, indicating the end of the flashing operation. The in-vehicle installation control node is responsible for initiating and controlling the flashing of the entire vehicle software. It should be noted that although the in-vehicle deployment node, data distribution node, and in-vehicle installation control node have different roles, they can be the same software entity.
[0109] Step S204: Based on the correspondence between the installation node upgrade data package and the installation node, one or more installation node upgrade data packages are deployed on the corresponding installation nodes in the vehicle, so that the installation node verifies and decompresses the corresponding installation node upgrade data package to obtain the upgrade data package of the object to be flashed, thereby completing the software flashing of the target vehicle.
[0110] See Figure 5 , Figure 5 This is a diagram showing the node relationship in a vehicle according to an exemplary embodiment of the present application. Figure 5 As shown, the in-vehicle deployment node of the target vehicle acts as the in-vehicle installation deployment node to deploy one or more installation node upgrade data packets on the corresponding installation nodes in the vehicle. After receiving the installation node upgrade data packet, the installation node verifies the received installation node upgrade data packet through the correspondence between the installation node and the installation node upgrade data packet. If the verification is passed, the installation node upgrade data packet is decompressed to obtain the upgrade data packet of the object to be flashed; if the verification fails, the in-vehicle deployment node of the target vehicle is requested to re-send it.
[0111] In one embodiment, the installation node verifies and decompresses the corresponding installation node upgrade data packet to obtain the upgrade data packet of the object to be flashed, thereby completing the software flashing of the target vehicle, including:
[0112] Based on the correspondence between the installation node and the installation node upgrade data package, the received installation node upgrade data package is verified. If the verification passes, the installation node upgrade data package is decompressed to obtain the upgrade data package of the flashed object; if the verification fails, the in-vehicle deployment node of the target vehicle is requested to re-send it;
[0113] Execute the flashing program of the object to be flashed, and write the data upgrade package of the object to be flashed into the storage area of the object to be flashed to complete the flashing of the object to be flashed;
[0114] After confirming that all the objects to be flashed in the target vehicle have completed the flashing, the software flashing of the target vehicle is detected to be successful. If the flashing is successful, the software flashing of the target vehicle is completed; if the flashing fails, the target vehicle will enter the repair area to flash the software again.
[0115] The installation node is responsible for executing the specific flashing process of the flashed object, and the flashed object is responsible for receiving the instructions and data from the installation node and flashing them into the designated storage area to complete the flashing.
[0116] See Figure 6 , Figure 6 This is a flow chart of in-vehicle deployment shown in an exemplary embodiment of the present application. Figure 6As shown, the in-vehicle deployment node of the target vehicle acts as the vehicle installation deployment node to decompress the vehicle upgrade data packet to obtain the installation node upgrade data packet, and then sends the installation node upgrade data packet to the corresponding installation node. After receiving the installation node upgrade data packet, the installation node verifies it. If the verification passes, the installation node upgrade data packet is decompressed to obtain the upgrade data packet of each object to be flashed. If the verification fails, the in-vehicle installation deployment node is requested to retransmit. The installation node then executes the flashing program of the object to be flashed, and writes the flashed object data upgrade package into the storage area of the object to complete the flashing of the object. When all the objects to be flashed in the target vehicle have been flashed, it is detected whether the software flashing of the target vehicle is successful. If the flashing is successful, the software flashing of the target vehicle is completed; if the flashing fails, the target vehicle will enter the repair area to flash the software again.
[0117] In one embodiment, before receiving the vehicle upgrade data packet sent by the production line flashing master control node, the method further includes:
[0118] The production line flashing master control node obtains the vehicle upgrade data package corresponding to the target vehicle's model configuration from the cloud backend node;
[0119] Based on the correspondence between the vehicle model configuration and the vehicle upgrade data package, the production line flash master control node verifies the vehicle upgrade data package. If the verification fails, the corresponding vehicle upgrade data package is retrieved from the cloud backend again. If the verification succeeds, the production line flash master control node connects to the vehicle in the second range.
[0120] The production line flashing master control node connects to multiple target vehicles within the second range and sends the vehicle upgrade data packet to the in-vehicle deployment nodes of the multiple target vehicles, where one target vehicle has only one in-vehicle deployment node.
[0121] The cloud backend node is responsible for two aspects: one is to send the vehicle model configuration to the production line flashing master control node, and the other is to send the corresponding vehicle upgrade data package to the production line flashing master control node.
[0122] See Figure 7 , Figure 7 This is a cloud deployment flow chart showing an exemplary embodiment of the present application. Figure 7As shown, the operator selects a specific vehicle model through the production line flash master control node. The production line flash master control node then requests the corresponding vehicle upgrade data package from the cloud backend node. The cloud backend node then queries the database to see if the vehicle model exists. If not, the process ends and the vehicle software flash cannot be performed. If the vehicle model exists, the vehicle model configuration and its corresponding vehicle upgrade data package are sent to the production line flash master control node. The production line flash master control node verifies the received vehicle upgrade data package based on the correspondence between the vehicle model configuration and the vehicle upgrade data package. If the verification fails, the node continues to request the corresponding vehicle upgrade data package from the cloud backend. If the verification passes, the acquisition of the vehicle upgrade data package ends, and the node then connects to multiple target vehicles within the second range, sending the vehicle upgrade data package to the in-vehicle deployment nodes of the multiple target vehicles.
[0123] In one embodiment, when the production line flashing master control node is connected to a vehicle within the second range, the method further includes:
[0124] The production line flashing master control node is provided with a second connection number threshold. When connected to a target vehicle within the second range, the target vehicle connection number of the production line flashing master control node is increased by one until the second connection number threshold is reached.
[0125] When the in-vehicle deployment node of the target vehicle passes the verification of the received vehicle upgrade data packet, the target vehicle connection number is reduced by one. If the verification fails, the in-vehicle deployment node of the target vehicle re-requests the production line flashing master control node to send the vehicle upgrade data packet, and the target vehicle connection number remains unchanged.
[0126] See Figure 8 , Figure 8 This is a flow chart showing the conditional judgment of the production line flashing master control node connecting to the vehicle according to an exemplary embodiment of the present application. Figure 8 As shown, the production line flashing master control node determines whether the number of vehicle connections reaches the second connection number threshold. If it reaches the second connection number threshold, the vehicle will no longer be connected. If it does not exceed the second connection number threshold, it will enter the in-vehicle deployment node search and deployment process. The connection here can be a wired connection or a wireless connection. It should be noted that the in-vehicle deployment node connection and deployment are parallel, allowing the production line flashing master control node to operate on one or more vehicles at the same time.
[0127] See Figure 9 , Figure 9 This is a deployment flow chart of connecting the production line flash master control node to the in-vehicle deployment node, as shown in an exemplary embodiment of the present application. Figure 9As shown, this is a flow chart of the wireless connection and deployment of the production line flashing master control node to the in-vehicle deployment node. The production line flashing master control node connects to the target vehicle within the second range. It can be by searching for vehicles that meet the signal strength conditions within a certain signal range and connecting. When connected to a target vehicle, the production line flashing master control node increases the vehicle connection number by one, and sends a whole vehicle upgrade data packet to the in-vehicle deployment node corresponding to the target vehicle. The in-vehicle deployment node verifies the received whole vehicle upgrade data packet. After the verification is passed, the production line flashing master control node subtracts the vehicle connection number by one. If the verification fails, the in-vehicle deployment node re-requests the production line flashing master control node to send the whole vehicle upgrade data packet. The production line flashing master control node keeps the vehicle connection number unchanged.
[0128] In some embodiments, the method further comprises:
[0129] Before entering the vehicle software flashing, the software flashing program is injected into the vehicle's in-vehicle deployment nodes and installation nodes.
[0130] See Figure 10 , Figure 10 FIG. 1 is a block diagram of an exemplary embodiment of the present application showing a vehicle software flashing device. Figure 10 As shown, this embodiment provides an image association storage device 110, which includes:
[0131] The receiving module 111 is used to receive a vehicle upgrade data packet sent by the production line flashing master control node, and the vehicle upgrade data packet includes the software upgrade program of all components of the target vehicle;
[0132] A verification module 112 is configured to verify the vehicle upgrade data packet and distribute the verified vehicle upgrade data packet to the in-vehicle deployment node of the first vehicle, where the first vehicle is a vehicle connected to its in-vehicle deployment node within the first range of the target vehicle;
[0133] The decompression module 113 is configured to decompress the vehicle upgrade data packet to obtain one or more installation node upgrade data packets if it is determined that the time for the in-vehicle deployment node connected to the first vehicle exceeds a first preset threshold or is not connected to any vehicle within a second preset threshold;
[0134] The deployment module 114 is used to deploy one or more installation node upgrade data packages on the corresponding installation nodes in the vehicle based on the correspondence between the installation node upgrade data packages and the installation nodes, so that the installation nodes can verify and decompress the corresponding installation node upgrade data packages to obtain the upgrade data packages of the flashed objects, thereby completing the software flashing of the target vehicle.
[0135] See Figure 11 , Figure 11 The following is a schematic diagram showing the structure of a computer system suitable for implementing an electronic device according to an embodiment of the present application. Figure 11 The computer system 120 of the electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0136] like Figure 11 As shown, the computer system 120 includes a central processing unit (CPU) 121, which can perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 122 or the program loaded from the storage part 128 to the random access memory (RAM) 123, such as executing the method in the above embodiment. Various programs and data required for system operation are also stored in the RAM 123. The CPU 121, ROM 122 and RAM 123 are connected to each other via a bus 124. An input / output (I / O) interface 125 is also connected to the bus 124.
[0137] The following components are connected to the I / O interface 125: an input section 126 including a keyboard, a mouse, and the like; an output section 127 including devices such as a cathode ray tube (CRT), a liquid crystal display (LCD), and a speaker; a storage section 128 including a hard disk and the like; and a communication section 129 including a network interface card such as a LAN (Local Area Network) card or a modem. The communication section 129 performs communication processing via a network such as the Internet. A drive 130 is also connected to the I / O interface 125 as needed. Removable media 131, such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, is installed in the drive 130 as needed, so that computer programs read therefrom can be installed into the storage section 128 as needed.
[0138] In particular, according to an embodiment of the present application, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present application includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a computer program for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 129, and / or installed from a removable medium 131. When the computer program is executed by the central processing unit (CPU) 121, the various functions defined in the system of the present application are executed.
[0139] It should be noted that the computer-readable medium shown in the embodiments of the present application can be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium can be, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media can include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, which carries a computer-readable computer program. This propagated data signal can take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. A computer program embodied on a computer-readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, or any suitable combination thereof.
[0140] The embodiments of the present disclosure further provide a computer-readable storage medium on which a computer program is stored. When the program is executed by a processor, any one of the methods in the embodiments is implemented.
[0141] Regarding the computer-readable storage media in the embodiments of the present disclosure, those skilled in the art will understand that all or part of the steps in implementing the aforementioned method embodiments can be accomplished by hardware associated with the computer program. The aforementioned computer program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the aforementioned method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.
[0142] The electronic device disclosed in this embodiment includes a processor, a memory, a transceiver, and a communication interface. The memory and the communication interface are connected to the processor and the transceiver and complete communication with each other. The memory is used to store computer programs, the communication interface is used to communicate, and the processor and the transceiver are used to run the computer program, so that the electronic device executes each step of the above method.
[0143] In this embodiment, the memory may include a random access memory (RAM), and may also include a non-volatile memory (non-volatile memory), such as at least one disk storage.
[0144] The above-mentioned processor can be a general-purpose processor, including a central processing unit (CPU), a graphics processing unit (GPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
[0145] The above description and the accompanying drawings fully illustrate the embodiments of the present disclosure to enable those skilled in the art to practice them. Other embodiments may include structural, logical, electrical, process and other changes. The embodiments represent only possible variations. Unless expressly required, individual components and functions are optional, and the order of operations may vary. Parts and subsamples of some embodiments may be included in or replace parts and subsamples of other embodiments. Moreover, the terms used in this application are only used to describe the embodiments and are not used to limit the claims. As used in the description of the embodiments and claims, unless the context clearly indicates otherwise, the singular forms "a", "an" and "the" are intended to also include the plural forms. Similarly, the term "and / or" as used in this application refers to any and all possible combinations of one or more associated listings. In addition, when used in this application, the term "comprise" and its variations "comprises" and / or comprising refer to the presence of a stated subsample, whole, step, operation, element, and / or component, but do not exclude the presence or addition of one or more other subsamples, wholes, steps, operations, elements, components and / or groups of these. In the absence of further restrictions, an element defined by the statement "comprises a..." does not exclude the presence of other identical elements in the process, method or device that includes the element. In this article, each embodiment may focus on the differences from other embodiments, and the same and similar parts between the various embodiments can be referenced to each other. For the methods, products, etc. disclosed in the embodiments, if they correspond to the method part disclosed in the embodiments, then the relevant parts can be found in the description of the method part.
[0146] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software may depend on the specific application and design constraints of the technical solution. Technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the embodiments of the present disclosure. Technicians can clearly understand that for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0147] In the embodiments disclosed herein, the disclosed methods and products (including but not limited to devices, equipment, etc.) can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of units can be merely a logical functional division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some sub-samples can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between each other shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, and can be electrical, mechanical or other forms. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to implement this embodiment. In addition, the functional units in the embodiments of the present disclosure may be integrated into a processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0148] The flowcharts and block diagrams in the accompanying drawings show the possible implementation architectures, functions and operations of the systems, methods and computer program products according to the embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram can represent a module, program segment or part of the code, and the module, program segment or part of the code contains one or more executable instructions for implementing the specified logical functions. In some alternative implementations, the functions marked in the box can also occur in an order different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, or they can sometimes be executed in the opposite order, which can depend on the functions involved. In the descriptions corresponding to the flowcharts and block diagrams in the accompanying drawings, the operations or steps corresponding to different boxes can also occur in an order different from that disclosed in the description, and sometimes there is no specific order between different operations or steps. For example, two consecutive operations or steps can actually be executed substantially in parallel, or they can sometimes be executed in the opposite order, which can depend on the functions involved. Each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action, or may be implemented by a combination of dedicated hardware and computer instructions.
Claims
1. A method for flashing automobile software, characterized in that: The method comprises: Receive a vehicle upgrade data packet sent by the production line flash control node, which includes software upgrade programs for all components of the target vehicle; Verifying the vehicle upgrade data packet, and distributing the verified vehicle upgrade data packet to an in-vehicle deployment node of a first vehicle, where the first vehicle is a vehicle within a first range of the target vehicle that is connected to its in-vehicle deployment node; If it is determined that the time of connection to the in-vehicle deployment node of the first vehicle exceeds a first preset threshold or is not connected to any vehicle within a second preset threshold, decompressing the vehicle upgrade data packet to obtain one or more installation node upgrade data packets; Based on the correspondence between the installation node upgrade data package and the installation node, the one or more installation node upgrade data packages are deployed on the corresponding installation nodes in the vehicle, so that the installation node verifies and decompresses the corresponding installation node upgrade data package to obtain the upgrade data package of the object to be flashed, thereby completing the software flashing of the target vehicle.
2. The automobile software flashing method according to claim 1, characterized in that: Verifying the vehicle upgrade data package includes: Based on the correspondence between the in-vehicle deployment node and the vehicle upgrade data packet, determining whether the vehicle upgrade data packet received by the target vehicle is the vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle; If it is determined that the whole vehicle upgrade data packet received by the target vehicle is the whole vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle, the verification passes; if it is determined that the whole vehicle upgrade data packet received by the target vehicle is not the whole vehicle upgrade data packet required by the in-vehicle deployment node of the target vehicle, the verification fails, and the production line flash control node is requested again to send the whole vehicle upgrade data packet.
3. The automobile software flashing method according to claim 1, characterized in that: Distributing the verified vehicle upgrade data package to the in-vehicle deployment node of the first vehicle includes: When the in-vehicle deployment node of the target vehicle verifies and passes the vehicle upgrade data packet, the in-vehicle deployment node of the target vehicle connects to the first vehicle as a data distribution node; Distribute the vehicle upgrade data package to the in-vehicle deployment node of the first vehicle.
4. The automobile software flashing method according to claim 3, characterized in that: The in-vehicle deployment node of the target vehicle is connected to the first vehicle as a data distribution node and further comprises: The data distribution node of the target vehicle is provided with a first connection number threshold, and when connected to the first vehicle within the first range, the first vehicle connection number of the data distribution node of the target vehicle is increased by one until the first connection number threshold is reached; When the in-vehicle deployment node of the first vehicle passes the verification of the received whole vehicle upgrade data packet, the first vehicle connection number is reduced by one. If the verification fails, the in-vehicle deployment node of the first vehicle re-requests the data distribution node of the first vehicle to distribute the whole vehicle upgrade data packet, and the first vehicle connection number remains unchanged.
5. The automobile software flashing method according to claim 1, characterized in that: While receiving the vehicle upgrade data packet sent by the production line flashing master control node, the method further includes: Receive the total number of bytes of the vehicle upgrade data packet sent by the production line flash control node; The method of distributing the verified vehicle upgrade data package to the in-vehicle deployment node of the first vehicle further includes: The total number of bytes is sent to the in-vehicle deployment node of the first vehicle, so that the in-vehicle deployment node of the first vehicle receives the complete vehicle upgrade data packet according to the total number of bytes, and verifies the vehicle upgrade data packet based on the in-vehicle deployment node. If the verification is passed, the in-vehicle deployment node distributes the vehicle upgrade data packet to the second vehicle that has not yet received the vehicle upgrade data packet as a data distribution node; if the verification fails, the local data is cleared and the required vehicle upgrade data packet is re-acquired.
6. The automobile software flashing method according to claim 5, characterized in that: The in-vehicle deployment node of the first vehicle receives the complete vehicle upgrade data packet according to the total number of bytes, including: The in-vehicle deployment node of the first vehicle can simultaneously receive the vehicle upgrade data packets distributed by the data distribution nodes of multiple target vehicles and the total number of bytes of the vehicle upgrade data packets; Each connection established by the in-vehicle deployment node of the first vehicle carries a transmission start position, an expected number of bytes to be transmitted, and a number of bytes to be transmitted. After receiving the vehicle upgrade data packets sent by multiple target vehicles, the in-vehicle deployment node of the first vehicle writes them to different locations of the file in parallel; When the in-vehicle deployment node of the first vehicle has only one connection, receiving the complete vehicle upgrade data packet according to the one connection; When there are multiple connections to the in-vehicle deployment node of the first vehicle, find the largest connection with the largest current transmission starting position, calculate the transmission starting position of the target connection based on the transmission starting position of the largest connection, the expected number of transmission bytes and the number of transmitted bytes, and continue to receive the complete vehicle upgrade data packet based on the transmission starting position of the target connection.
7. The automobile software flashing method according to claim 1, characterized in that: The installation node verifies and decompresses the corresponding installation node upgrade data packet to obtain the upgrade data packet of the object to be flashed, thereby completing the software flashing of the target vehicle, including: Based on the correspondence between the installation node and the installation node upgrade data packet, the received installation node upgrade data packet is verified. If the verification passes, the installation node upgrade data packet is decompressed to obtain the upgrade data packet of the flashed object; if the verification fails, the in-vehicle deployment node of the target vehicle is requested to re-send it; Executing the flashing program of the object to be flashed, flashing the data upgrade package of the object to be flashed into the storage area of the object to be flashed to complete the flashing of the object to be flashed; After determining that all the objects to be flashed in the target vehicle have completed the flashing, the software flashing of the target vehicle is detected to be successful. If the flashing is successful, the software flashing of the target vehicle is completed; if the flashing fails, the target vehicle will enter the repair area to re-flash the software.
8. The automobile software flashing method according to claim 1, characterized in that: Before receiving the vehicle upgrade data packet sent by the production line flashing master control node, the method further includes: The production line flashing master control node obtains the vehicle upgrade data packet corresponding to the model configuration of the target vehicle from the cloud backend node; Based on the correspondence between the vehicle model configuration and the vehicle upgrade data package, the production line flash master control node verifies the vehicle upgrade data package. If the verification fails, the corresponding vehicle upgrade data package is retrieved again from the cloud backend. If the verification passes, the production line flash master control node is connected to the vehicle within the second range. The production line flashing master control node is connected to multiple target vehicles within the second range, and sends the vehicle upgrade data packet to the in-vehicle deployment nodes of the multiple target vehicles, wherein one target vehicle has only one in-vehicle deployment node.
9. The automobile software flashing method according to claim 8, characterized in that: When the production line flashing master control node is connected to a vehicle within a second range, the method further includes: The production line flash master control node is provided with a second connection number threshold. When connected to a target vehicle within the second range, the target vehicle connection number of the production line flash master control node is increased by one until the second connection number threshold is reached. When the in-vehicle deployment node of the target vehicle passes the verification of the received whole vehicle upgrade data packet, the target vehicle connection number is reduced by one. If the verification fails, the in-vehicle deployment node of the target vehicle re-requests the production line flash control node to send the whole vehicle upgrade data packet, and the target vehicle connection number remains unchanged.
10. The automobile software flashing method according to any one of claims 1 to 9, characterized in that: The method further comprises: Before entering the vehicle software flashing, the software flashing program is injected into the vehicle's in-vehicle deployment nodes and installation nodes.
11. A car software flashing device, characterized in that: The device comprises: A receiving module is used to receive a vehicle upgrade data packet sent by the production line flash control node, wherein the vehicle upgrade data packet includes the software upgrade program of all components of the target vehicle; a verification module, configured to verify the vehicle upgrade data packet and distribute the verified vehicle upgrade data packet to an in-vehicle deployment node of a first vehicle, where the first vehicle is a vehicle within a first range of the target vehicle that is connected to its in-vehicle deployment node; a decompression module, configured to decompress the vehicle upgrade data packet to obtain one or more installation node upgrade data packets if it is determined that the time for the in-vehicle deployment node connected to the first vehicle exceeds a first preset threshold or is not connected to any vehicle within a second preset threshold; The deployment module is used to deploy the one or more installation node upgrade data packages on the corresponding installation nodes in the vehicle based on the correspondence between the installation node upgrade data packages and the installation nodes, so that the installation nodes can verify and decompress the corresponding installation node upgrade data packages to obtain the upgrade data packages of the flashed objects, thereby completing the software flashing of the target vehicle.
12. An electronic device, characterized in that: include: one or more processors; A storage device for storing one or more programs, which, when executed by the one or more processors, enables the electronic device to implement the method according to any one of claims 1 to 10.
13. A computer-readable storage medium, characterized in that Computer-readable instructions are stored thereon, and when the computer-readable instructions are executed by a processor of a computer, the computer is caused to execute the method according to any one of claims 1 to 10.
Citation Information
Patent Citations
Vehicle ECU software upgrading method and system, and microcontroller and SOC end of vehicle-mounted TBOX
CN111930407A
Automobile ECU (Electronic Control Unit) software compression upgrading system and method, electronic equipment and storage medium
CN114860277A