Upgrading method and device for ventricular assist device
By setting up the first kernel and the second kernel in the internal controller of the ventricular auxiliary device, the software upgrade is achieved without stopping the operation of the motor. Patient risk.
Patent Information
- Application Number
- CN202411356551.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-27
- Publication Date
- 2025-01-28
AI Technical Summary
When the existing ventricular assist devices are updated, they need to stop running to complete the upgrade, which will affect the patient and the upgrade process is complicated and time-consuming.
By setting up the first kernel and the second core in the internal controller, the second kernel is used to write the upgrade application into the shared memory without stopping the operation of the motor, and through the switch between the first kernel and the second kernel and the second kernel, Control the operation of the motor and realize the software upgrade without stopping the motor.
Software upgrades that achieve the ventricular auxiliary device do not need to stop the motor operation, reduce the risk and impact of the upgrade process on patients, and simplify the upgrade process.
Smart Images

Figure CN119380962A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of medical device technology, and in particular to a method and device for upgrading a ventricular assist device. Background Art
[0002] Ventricular Assist Devices (VAD) are currently the main solution for patients with heart failure or congestive heart failure. They are used to pump fluid from one location to another, which can effectively assist or replace the function of the natural heart. VADs can be implanted in the patient's body and powered by a power source inside or outside the patient.
[0003] As VAD systems continue to evolve, software updates or upgrades for VAD-related medical devices can be complex and time-consuming. For example, a software update may require stopping the VAD and waiting for the software update to complete before restarting it, but stopping the VAD for too long can have an impact on patients. Summary of the invention
[0004] The embodiments of the present application provide a method and device for upgrading a ventricular assist device, which realizes software upgrade without stopping the motor by setting a first core and a second core in an internal controller, thereby reducing the risk of stopping operation.
[0005] In a first aspect, an embodiment of the present application provides an upgrade method for a ventricular assist device, the ventricular assist device comprising: a motor and an internal controller disposed in the ventricular assist device, the internal controller comprising a first core, a second core and a memory, the first core and the second core jointly operating the memory;
[0006] The method comprises:
[0007] Based on the upgrade command, the second kernel writes the upgraded application in the first memory into the second memory, the first memory being the memory in the memory used to store the application backup, and the second memory being the memory in the memory occupied by the second kernel;
[0008] After writing is completed, the second core sends a first signal to the first core, wherein the first signal is used to instruct to write the operation data of the motor into a third memory, wherein the third memory is a memory shared by the first core and the second core in the memory;
[0009] The second core reads the operation data from the third memory, controls the operation of the motor using the operation data based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
[0010] In a second aspect, an embodiment of the present application provides a built-in controller for a ventricular assist device, the built-in controller comprising: a first core, a second core and a memory, the first core and the second core jointly operating the memory;
[0011] The built-in controller is used to:
[0012] Based on the upgrade command, the second kernel writes the upgraded application in the first memory into the second memory, the first memory being the memory in the memory used to store the application backup, and the second memory being the memory in the memory occupied by the second kernel;
[0013] The second core sends a first signal to the first core after writing is completed, wherein the first signal is used to instruct to write the operation data of the motor into a third memory, wherein the third memory is a memory shared by the first core and the second core in the memory;
[0014] The second core reads the operation data from the third memory, controls the operation of the motor using the operation data based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
[0015] In a third aspect, an embodiment of the present application provides a ventricular assist device, the ventricular assist device comprising: a motor and a built-in controller disposed in the ventricular assist device, the built-in controller comprising a first core, a second core and a memory, the first core and the second core jointly operating the memory;
[0016] The built-in controller is used to execute part or all of the steps described in the method described in the first aspect above.
[0017] In a fourth aspect, an embodiment of the present application provides a medical device, comprising a processor, a memory, a communication interface, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the processor, and the program includes instructions for executing some or all of the steps described in the method described in the first aspect above.
[0018] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program for electronic data exchange, wherein the computer program enables a computer to execute some or all of the steps described in the method described in the first aspect above.
[0019] In a sixth aspect, an embodiment of the present application provides a computer program product, wherein the computer program product includes a non-transitory computer-readable storage medium storing a computer program, and the computer program is operable to cause a computer to execute some or all of the steps described in the method described in the first aspect of the embodiment of the present application. The computer program product may be a software installation package.
[0020] The technical solution provided by the present application is that based on the upgrade command, the second core writes the upgrade application in the first memory into the second memory, the first memory is the memory in the memory used to store the application backup, and the second memory is the memory occupied by the second core in the memory; after the second core completes the writing, it sends a first signal to the first core, the first signal is used to indicate that the operation data of the motor is written into the third memory, the third memory is the memory shared by the first core and the second core in the memory; the second core reads the operation data from the third memory, controls the operation of the motor based on the use of the upgrade application, and sends a second signal to the first core, the second signal is used to indicate to stop the control of the motor. The present application sets the first core and the second core in the controller, and when receiving the upgrade command, downloads the upgrade application to the shared memory, and controls the operation of the motor by switching between the first core and the second core, so as to realize the software upgrade without stopping the motor and avoid the harm to the user caused by the stop of the ventricular assist device. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0022] Figure 1 is a schematic diagram of a ventricular assist system provided by the present application;
[0023] Figure 2 It is a schematic diagram of the framework of the built-in controller of the ventricular assist device provided by the present application;
[0024] Figure 3 It is a schematic diagram of the memory space division of the memory in the built-in controller provided by this application;
[0025] Figure 4 is a flow chart of a method for upgrading a ventricular assist device provided by the present application;
[0026] Figure 5 is a flowchart of a method for upgrading a ventricular assist device provided in Embodiment 1 of the present application;
[0027] Figure 6is a flow chart of a method for upgrading a ventricular assist device provided in Embodiment 2 of the present application;
[0028] Figure 7 It is a structural schematic diagram of the medical device provided in this application. DETAILED DESCRIPTION
[0029] In order to help those skilled in the art better understand the technical solutions of the present application, the following is a clear and complete description of the technical solutions in the embodiments of the present application in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only some embodiments of the present application, not all embodiments. Based on the description of the embodiments of the present application, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present application.
[0030] The terms "first", "second", etc. in the specification and claims of this application and the above-mentioned drawings are used to distinguish different objects, rather than to describe a specific order. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions. For example, a process, method, software, product, or device that includes a series of steps or units is not limited to the listed steps or units, but also includes steps or units that are not listed, or also includes other steps or units inherent to these processes, methods, products, or devices.
[0031] Reference to "embodiments" herein means that a particular feature, structure, or characteristic described in conjunction with the embodiments may be included in at least one embodiment of the present application. The appearance of the phrase in various locations in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment that is mutually exclusive with other embodiments. It is explicitly and implicitly understood by those skilled in the art that the embodiments described herein may be combined with other embodiments.
[0032] The ventricular assist device involved in the present application may be an interventional ventricular assist device for percutaneous coronary intervention (PCI) surgical protection, an implantable ventricular assist device, or a biventricular assist device. The ventricular assist device may be attached to the apex of the left ventricle, or the right ventricle, or both ventricles of the heart. The ventricular assist device may further include a centrifugal pump, an axial flow pump, or a magnetic levitation pump capable of delivering the entire output to the left ventricle according to the pulmonary circulation or the blood circulation.
[0033] For examples, see Figure 1 ,like Figure 1As shown, the ventricular assist system includes a ventricular assist device 100, an external controller 200, and a transmission assembly 300 that connects the ventricular assist device 100 to the external controller 200. One end of the transmission assembly 300 is connected to the motor in the ventricular assist device 100, and the other end is connected to the external controller 200 disposed outside the body through the patient's skin. The external controller 200 is used to monitor the ventricular assist device 100, which can realize functions such as control and data display of the ventricular assist device 100, fault detection alarm, and data recording. The transmission assembly 300 can be a percutaneous cable, which may include one or more power cables and one or more communication cables.
[0034] The ventricular assist device 100 includes an impeller, a motor for driving the impeller to rotate, and a built-in controller 110 for controlling the operation of the motor. The built-in controller 110 is electrically connected to an external controller 200, which supplies power to the built-in controller 110 and sends operation control commands (e.g., motor start commands, speed setting commands, etc.) to the built-in controller 110 according to user operations. The built-in controller 110 uses the stored application software program to control the operation of the motor, thereby realizing the pumping function of the ventricular assist device 100.
[0035] See also Figure 2 , Figure 2 Schematic diagram of a built-in controller 110 of a ventricular assist device provided in this application. Figure 2 As shown, the built-in controller 110 includes a processor, a memory, and a plurality of input and output interfaces. The processor includes a first core and a second core, and both the first core and the second core can control the operation of the motor. The plurality of input and output interfaces may include interfaces for motor control and communication, for example, a control interface for driving the motor, an input interface for feedback current, an input interface for feedback Hall value, a CAN communication interface, etc. For example, the first core is the main core, and the second core is the redundant core. The main core is used for the ventricular assist device 100 to use the first core by default when it is running, and the first core is used to initialize the plurality of input and output interfaces; the redundant core is used for the core used when the first core fails and cannot be used, and the core used when upgrading the application program is switched. In another example, the second core is the main core, and the first core is the redundant core. The ventricular assist device 100 uses the second core by default when it is running, and the second core is used to initialize the plurality of input and output interfaces. The first core is used as the main core as an example for explanation.
[0036] The first core and the second core jointly operate the memory, such as Figure 3As shown, the memory is divided into five parts, namely: memory space A, memory space B, memory space C, memory space D and memory space E. Among them, the memory space A is the memory space occupied by the first kernel, which may include the boot program BOOT of the first kernel and the application used by it; the memory space B is the memory space occupied by the second kernel, which may include the boot program BOOT and the application of the second kernel; the memory space C is the storage space for application backup, which is used to download the application online; the memory space D is the shared memory of the first kernel and the second kernel, which is used to share some data and send some instructions or signals when the first kernel and the second kernel perform switching control; the memory space E is the memory space for other operating overheads, for example, the memory space required when running RAM, ARAM, etc.
[0037] The present application can maintain synchronization between the first core and the second core by setting a shared memory, thereby achieving seamless switching of motor control.
[0038] In combination with the above description, the present application is described below from the perspective of method examples.
[0039] See also Figure 4 , Figure 4 A schematic diagram of a method for upgrading a ventricular assist device provided in this application is applied to Figure 1-3 The ventricular assist device shown. Figure 4 As shown, the method includes the following steps.
[0040] S410. Based on the upgrade command, the second kernel writes the upgraded application in the first memory into the second memory, where the first memory is the memory in the memory used to store application backups, and the second memory is the memory in the memory occupied by the second kernel.
[0041] In the present application, when the control software in the ventricular assist device 100 needs to be upgraded or updated, the user can operate the external controller 200 to generate an upgrade command, and send the upgrade command to the internal controller 110 through the external controller 200. The upgrade application can be transmitted to the external controller 220 by wired or wireless means, such as by inserting a USB flash drive or an SD card into the USB interface of the external controller 200 to trigger the software update operation, downloading the upgrade application to the external controller 200, or the external controller 200 can read the upgrade application stored in the USB flash drive or the SD card, or establish a communication connection with the external controller 200 through WiFi or Bluetooth, and then download the upgrade application to the external controller 200.
[0042] After receiving the upgrade command from the external controller 200 , the built-in controller 110 may perform an application upgrade operation according to the upgrade command to upgrade the application currently in the built-in controller 110 .
[0043] After the built-in controller 110 receives the upgrade command, the built-in controller 110 can download the upgrade application from the external controller 200 to the memory space C (i.e., the first memory) in the memory. After the upgrade application is downloaded, the application can be upgraded by switching the motor control between the first core and the second core.
[0044] Specifically, the second core writes the upgraded application program into the application storage area in the memory space B occupied by the second core from the memory space C storing the application backup according to the boot program BOOT of the second core in the memory space B (i.e., the second memory), so that the upgraded application program overwrites the original application program. Subsequently, the second core directly controls the motor to continue to run through the upgraded application program, so that the application program can be upgraded without stopping the motor.
[0045] S420. After writing is completed, the second core sends a first signal to the first core, where the first signal is used to instruct to write the operating data of the motor into a third memory, and the third memory is a memory shared by the first core and the second core in the memory.
[0046] Among them, after the relocation of the second kernel is completed, the second kernel needs to obtain the operating parameters of the current motor to control the motor to continue running, so that the motor does not stop and there is no obvious jitter. After the writing is completed, the second kernel can send a first signal to the first kernel, and the first signal is used to synchronize the second kernel to the first kernel after the relocation and upgrade of the application, so that the first kernel writes its current operating data for controlling the operation of the motor into the shared memory space D (i.e., the third memory) after receiving or reading the first signal. The first signal can be implemented by a semaphore or an interrupt. For example, the second kernel sets the register or flag position for indicating the relocation of the application stored in the shared memory space D to 1. The register or flag position is 1, indicating that the relocation of the application is completed. The first kernel can obtain the write status of the second kernel by reading the value of the register or flag position in the memory space D. When the first kernel reads the register or flag position and the value is 1, the operation data currently controlling the motor operation can be written into the shared memory space D, and then the completion of the writing of the operation data can be synchronized to the second kernel through a semaphore or an interrupt. For example, the first kernel sets the register or flag position for indicating the writing of the operation data stored in the shared memory space D to 1. The register or flag position being 1 indicates that the writing of the operation data is completed. The second kernel can obtain the writing status of the operation data by the first kernel by reading the value of the register or flag position in the memory space D.
[0047] S430, the second core reads the operating data from the third memory, uses the operating data to control the operation of the motor based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
[0048] When the value of the register or flag position indicating the writing of the operation data read by the second core is 1, the second core can read the operation data written by the first core from the memory space D, and then the second core runs the upgraded application stored in the memory space B, uses the read operation data to control the motor to continue running, and sends a second signal to the first core to instruct the first core to stop controlling the operation of the motor. After the first core stops controlling the motor, the application upgrade is completed.
[0049] For example, the second signal can be implemented through a semaphore or an interrupt. For example, the second kernel sets the register or flag position stored in the shared memory space D for indicating to stop controlling the motor to 1. The register or flag position being 1 indicates that the control of the motor needs to be stopped. The first kernel can determine that it needs to stop controlling the motor and go to sleep by reading the value of the register or flag position in the memory space D.
[0050] The present application sets up a dual-core processor, and the dual-core processors share a memory. By downloading upgraded applications in the memory space divided in the memory and interacting between the dual-core processors, the switching of motor control between the first core and the second core can be achieved, and the application upgrade without stopping the motor can be achieved, avoiding the risks to the user caused by the ventricular assist device 100 stopping operation.
[0051] Embodiment 1
[0052] In this embodiment, the first core is an occupied core, that is, when the motor is started, the first core is used by default to occupy multiple input and output interfaces to control the operation of the motor. Figure 5 As shown, Figure 5 A flowchart of a method for upgrading a ventricular assist device provided in Example 1.
[0053] S510: The first core receives an upgrade command sent by an external controller.
[0054] When the application of the ventricular assist device 100 needs to be upgraded, the user can trigger the upgrade procedure on the external controller 200. For example, the application upgrade operation is triggered by inserting a USB flash drive or an SD card into the USB interface of the external controller 200, generating a corresponding upgrade command and sending it to the built-in controller 110 of the ventricular assist device 100.
[0055] S520 , in response to the received upgrade command, the first core downloads the upgrade application to the memory space C, and the first core continues to control the operation of the motor.
[0056] In response to the received upgrade command, the first core downloads the upgrade application that needs to be upgraded this time from the external controller 200 to the memory space C, so that the upgrade application replaces the old standby application.
[0057] For example, the upgrade command carries the application version, application size and checksum value. After receiving the upgrade command, the first kernel may compare the application version carried in the upgrade command with the application version used in the memory space A (i.e., the fourth memory) occupied by it. If the application versions of the two are the same or the application version carried in the upgrade command is lower than the application version used by the first kernel, the first kernel may terminate the upgrade of this application and send an upgrade termination command to the external controller 200. The upgrade termination command may carry a prompt message, which is used to display on the external controller 200 that "the current application version of the ventricular assist device is the latest version and does not need to be upgraded" or "the upgraded application version is the same as the application version in use and does not need to be upgraded."
[0058] At the same time, the first kernel can verify the integrity of the downloaded upgrade application according to the verification value in the upgrade command. If the upgrade application is complete, the subsequent upgrade operation will continue; if the upgrade application is incomplete, the upgrade of this application will be terminated, and an upgrade termination command will be sent to the external controller 200. The upgrade termination command may carry a prompt message, which is used to display "The upgrade application is destroyed and the upgrade cannot be completed" on the external controller 200.
[0059] S530: The first core sends a reset signal to the second core.
[0060] After the upgrade application is downloaded, the first core can send a reset signal to the second core to execute the subsequent switching of the control motor between the first core and the second core. The reset signal can be implemented by a semaphore or an interrupt, which will not be described in detail here.
[0061] S540: The second core receives the reset signal, executes the boot program of the second core after the reset, and writes the upgraded application in the memory space C into the application area in the memory space B.
[0062] In the first embodiment, the first core is the occupied core. When the first core receives the upgrade command, in order to prevent the motor from stopping running, it can be switched to the second core to continue to control the motor. The second core is reset upon receiving the reset signal, and after the reset, the boot program BOOT stored in the memory space B it occupies is executed. According to the boot program BOOT, the upgrade application in the memory space C is written into the application area in the memory space B, so that the upgrade application covers the application used by the second core. Subsequently, the second core can directly use the upgrade application to control the motor.
[0063] S550. After writing is completed, the second core sends a first signal to the first core, where the first signal is used to instruct to write the operation data of the motor into the memory space D.
[0064] After the relocation is completed, the second core can send a first signal to the first core to obtain the current motor operation data, synchronize its current write state to the first core, and instruct the first core to share the current motor operation data with the second core.
[0065] S560: The first core receives the first signal, writes the current operation data of the motor into the memory space D, and sends a third signal to the second core, where the third signal is used to indicate that the writing of the operation data of the motor is completed.
[0066] The operation data of the motor may include parameters such as electrical angle, current loop integral sum, speed loop integral sum, etc. The third signal may also be realized by a signal quantity or an interruption mode, which will not be described in detail here.
[0067] S570: The second core receives the third signal, reads the operating data from the memory space D, uses the operating data to control the operation of the motor based on the upgraded application, and sends a second signal to the first core.
[0068] The second core reads the motor's operating data from the memory space D, and then uses the upgraded application and the motor's operating data to control the motor's operation, thereby realizing the motor control switching between the first core and the second core, so that the motor can realize the application upgrade during continuous operation.
[0069] S580: The first core receives the second signal and stops controlling the operation of the motor.
[0070] After receiving the second signal, the first core immediately stops controlling the operation of the motor, and the application upgrade is now completed.
[0071] Furthermore, to achieve synchronization of the application programs between the first core and the second core, the first core may execute the boot program BOOT in the memory space A after stopping the operation control of the motor, and write the upgraded application program in the memory space C into the application program storage area in the memory space A, so that the upgraded application program overwrites the application program used by the first core. Furthermore, after executing the synchronization of the application programs, the first core may enter a dormant state.
[0072] For example, when the first core is the occupied core and controls the operation of the motor, in order to prevent the first core from failing and causing the motor to fail to operate, the first core can periodically send a dog-feeding signal to the second core. The second core can determine that the current first core is operating normally by receiving the dog-feeding signal at regular intervals; if the second core times out and does not receive the dog-feeding signal, it is considered that the current first core has failed, and the second core can occupy multiple input and output interfaces, use its application to start the motor, and control the operation of the motor.
[0073] The present application uses mutual feeding between the first core and the second core, so that when one of the cores fails, the other core can be used to continue to control the operation of the motor, thereby extending the service life of the ventricular assist device 100 and ensuring user safety.
[0074] Embodiment 2
[0075] In this embodiment, the second core is an occupied core, that is, when the motor is started, the second core is used by default to occupy multiple input and output interfaces to control the operation of the motor. Figure 6 As shown, Figure 6 A flowchart of a method for upgrading a ventricular assist device provided in Embodiment 2.
[0076] S610: The second core receives an upgrade command sent by an external controller.
[0077] When the application of the ventricular assist device 100 needs to be upgraded, the user can trigger the upgrade procedure on the external controller 200. For example, the application upgrade operation is triggered by inserting a USB flash drive or an SD card into the USB interface of the external controller 200, generating a corresponding upgrade command and sending it to the built-in controller 110 of the ventricular assist device 100. After receiving the upgrade command sent by the external controller 200, the second core executes the upgrade operation of the application.
[0078] S620: In response to the received upgrade command, the second kernel downloads the upgrade application to the memory space C.
[0079] In response to the received upgrade command, the second core downloads the upgrade application that needs to be upgraded this time from the external controller 200 to the memory space C, so that the upgrade application replaces the old standby application.
[0080] For example, the upgrade command carries the application version, application size, and checksum. After receiving the upgrade command, the second core can compare the application version carried in the upgrade command with the application version used in the memory space B it occupies. If the application versions of the two are the same or the application version carried in the upgrade command is lower than the application version used by the second core, the second core can terminate the upgrade of this application and send an upgrade termination command to the external controller 200. The upgrade termination command can carry a prompt message, which is used to display on the external controller 200 that "the current application version of the ventricular assist device is the latest version and does not need to be upgraded" or "the upgraded application version is the same as the application version in use and does not need to be upgraded."
[0081] At the same time, the second core can verify the integrity of the downloaded upgrade application according to the verification value in the upgrade command. If the upgrade application is complete, the subsequent upgrade operation will continue; if the upgrade application is incomplete, the upgrade of this application will be terminated, and an upgrade termination command will be sent to the external controller 200. The upgrade termination command may carry a prompt message, which is used to display "The upgrade application is destroyed and the upgrade cannot be completed" on the external controller 200.
[0082] S630: The second core writes the current operation data of the motor into the memory space D, and sends a third signal to the first core, where the third signal is used to indicate that the writing of the operation data of the motor is completed.
[0083] In the present application, the first kernel is set as the initialization kernel of multiple input and output interfaces, and the first kernel cannot perform a reset because the reset of the first kernel will cause the initialization of the multiple input and output interfaces, and the multiple input and output interfaces after initialization will cause the motor to stop running. The second kernel is a redundant kernel, and the reset of the second kernel will not cause the initialization of multiple input and output interfaces, so the reset in the upgrade program is completed in the second kernel. For example, if the second kernel is set as the initialization kernel of multiple input and output interfaces, the second kernel cannot perform a reset. This application is described by taking the first kernel as the initialization kernel of multiple input and output interfaces as an example.
[0084] Based on this, the second core can write the current motor operation data into the memory space D, switch the control of the motor from the second core to the first core, and then switch to the second core to control the motor operation after the application of the second core is upgraded, thereby realizing continuous application upgrades of the motor.
[0085] The operation data of the motor may include parameters such as electrical angle, current loop integral sum, speed loop integral sum, etc. The third signal may also be realized by a signal quantity or an interruption mode, which will not be described in detail here.
[0086] S640: The first core receives the third signal, reads the operating data from the memory space D, uses the operating data to control the operation of the motor based on the application stored in the memory space A, and sends a second signal to the second core.
[0087] The first core reads the motor's operating data from the memory space D, and then uses the application program stored in the memory space A occupied by the first core and the motor's operating data to control the motor's operation, thereby achieving motor control switching between the second core and the first core.
[0088] S650: The second core receives the second signal, stops controlling the operation of the motor, and performs a reset.
[0089] After receiving the second signal, the second core immediately stops controlling the operation of the motor and resets the second core.
[0090] S660: After the second core is reset, the boot program of the second core is executed to write the upgraded application in the memory space C into the application area in the memory space B.
[0091] After being reset, the second core executes the boot program BOOT stored in the memory space B it occupies. According to the boot program BOOT, the upgrade application in the memory space C is written into the application area in the memory space B, so that the upgrade application overwrites the application used by the second core. Subsequently, the second core can directly use the upgrade application to control the operation of the motor.
[0092] S670. After writing is completed, the second core sends a first signal to the first core, where the first signal is used to instruct to write the operation data of the motor into the memory space D.
[0093] After the relocation is completed, the second core can send a first signal to the first core to obtain the current motor operation data, synchronize its current write state to the first core, and instruct the first core to share the current motor operation data with the second core.
[0094] S680. The first core writes the current operation data of the motor into the memory space D in response to the first signal, and sends a third signal to the second core, where the third signal is used to indicate that the writing of the operation data of the motor is completed.
[0095] S690: The second core reads the operating data from the memory space D in response to the third signal, uses the operating data to control the operation of the motor based on the upgraded application, and sends a second signal to the first core.
[0096] The second core reads the motor's operating data from the memory space, and then uses the upgraded application and the motor's operating data to control the motor's operation, thereby realizing the motor control switching between the first core and the second core, so that the motor can realize the application upgrade during continuous operation.
[0097] S6100: The first core stops controlling the operation of the motor in response to the received second signal.
[0098] After receiving the second signal, the first core immediately stops controlling the operation of the motor, and the application upgrade is now completed.
[0099] Furthermore, to achieve synchronization of the application programs between the first core and the second core, the first core may execute the boot program BOOT in the memory space A after stopping the operation control of the motor, and write the upgraded application program in the memory space C into the application program storage area in the memory space A, so that the upgraded application program overwrites the application program used by the first core. Furthermore, after executing the synchronization of the application programs, the first core may enter a dormant state.
[0100] For example, when the second core is the occupied core and controls the operation of the motor, in order to prevent the second core from failing and causing the motor to fail to operate, the second core can periodically send a dog-feeding signal to the first core. The first core can determine that the current second core is operating normally by receiving the dog-feeding signal at regular intervals; if the first core times out and does not receive the dog-feeding signal, it is considered that the current second core has failed, and the first core can occupy multiple input and output interfaces, use its application to start the motor, and control the operation of the motor.
[0101] The present application realizes mutual feeding between the first core and the second core, so that when one of the cores fails, the other core can be used to continue to control the operation of the motor, thereby extending the service life of the ventricular assist device and ensuring user safety.
[0102] It can be seen that the present application proposes an upgrade method for a ventricular assist device. Based on the upgrade command, the second core writes the upgrade application in the first memory into the second memory. The first memory is the memory in the memory used to store the application backup, and the second memory is the memory occupied by the second core in the memory. After the second core completes the writing, it sends a first signal to the first core. The first signal is used to indicate that the operation data of the motor is written into the third memory. The third memory is the memory shared by the first core and the second core in the memory. The second core reads the operation data from the third memory, and controls the operation of the motor based on the use of the upgrade application, and sends a second signal to the first core. The second signal is used to indicate to stop the control of the motor. The present application sets the first core and the second core in the controller. When the upgrade command is received, the upgrade application is downloaded to the shared memory, and the operation of the motor is controlled by switching between the first core and the second core. The software upgrade of the motor can be realized without stopping, and the stop of the ventricular assist device can be avoided. Harm to the user.
[0103] The above mainly introduces the scheme of the embodiment of the present application from the perspective of the execution process on the method side. It is understandable that in order to realize the above functions, the network device includes a hardware structure and / or software module corresponding to each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiment provided in this article, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel 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 this application.
[0104] By way of example, the present application also provides a built-in controller for a ventricular assist device, the built-in controller comprising: a first core, a second core and a memory, the first core and the second core jointly operating the memory;
[0105] The built-in controller is used to:
[0106] Based on the upgrade command, the second kernel writes the upgraded application in the first memory into the second memory, the first memory being the memory in the memory used to store the application backup, and the second memory being the memory in the memory occupied by the second kernel;
[0107] The second core sends a first signal to the first core after writing is completed, wherein the first signal is used to instruct to write the operation data of the motor into a third memory, wherein the third memory is a memory shared by the first core and the second core in the memory;
[0108] The second core reads the operation data from the third memory, controls the operation of the motor using the operation data based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
[0109] By way of example, the present application further provides a ventricular assist device, characterized in that the ventricular assist device comprises: a motor and a built-in controller disposed in the ventricular assist device, the built-in controller comprises a first core, a second core and a memory, the first core and the second core jointly operate the memory;
[0110] The built-in controller is used to: based on the upgrade command, the second core writes the upgrade application in the first memory into the second memory, the first memory is the memory in the memory used to store the application backup, and the second memory is the memory occupied by the second core in the memory;
[0111] The second core sends a first signal to the first core after writing is completed, wherein the first signal is used to instruct to write the operation data of the motor into a third memory, wherein the third memory is a memory shared by the first core and the second core in the memory;
[0112] The second core reads the operation data from the third memory, controls the operation of the motor using the operation data based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
[0113] By way of example, the present application also provides a ventricular assist system, which includes the above-mentioned ventricular assist device or a built-in controller of the ventricular assist device.
[0114] Among them, the first kernel, the second kernel and the boot program BOOT of each of the above-mentioned solutions have the function of implementing the corresponding steps executed by the medical device in the above-mentioned method; the functions can be implemented by hardware, or by hardware executing corresponding software implementations.
[0115] In the embodiment of the present application, the first core and the second core may also be a chip or a chip system, such as a system on chip (SoC). Correspondingly, the multiple input and output interfaces may be pin interfaces of the chip or hardware structures in the CPU, which are not limited here.
[0116] See also Figure 7 , Figure 7 It is a structural diagram of a medical device provided in an embodiment of the present application, wherein the medical device comprises: one or more processors, one or more memories, one or more communication interfaces, and one or more programs; the one or more programs are stored in the memories and are configured to be executed by the one or more processors.
[0117] The above program includes instructions for performing the following steps:
[0118] Based on the upgrade command, the second kernel writes the upgraded application in the first memory into the second memory, the first memory being the memory in the memory used to store the application backup, and the second memory being the memory in the memory occupied by the second kernel;
[0119] The second core sends a first signal to the first core after writing is completed, wherein the first signal is used to instruct to write the operation data of the motor into a third memory, wherein the third memory is a memory shared by the first core and the second core in the memory;
[0120] The second core reads the operation data from the third memory, controls the operation of the motor using the operation data based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
[0121] Among them, all relevant contents of each scenario involved in the above method embodiment can be referred to the functional description of the corresponding functional module, which will not be repeated here.
[0122] It should be understood that the above-mentioned memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. A portion of the memory may also include a non-volatile random access memory. For example, the memory may also store information about the device type.
[0123] In the embodiment of the present application, the processor of the above-mentioned device may be a central processing unit (CPU), and the processor may also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.
[0124] It should be understood that the "at least one" involved in the embodiments of the present application refers to one or more, and "plurality" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and subsequent associated objects are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, c can be single or multiple.
[0125] Furthermore, unless otherwise specified, ordinal numbers such as "first" and "second" mentioned in the embodiments of the present application are used to distinguish multiple objects, and are not used to limit the order, timing, priority or importance of multiple objects. For example, the first information and the second information are only used to distinguish different information, and do not indicate the difference in content, priority, sending order or importance of the two types of information.
[0126] In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware in a processor or an instruction in the form of software. The steps of the method disclosed in conjunction with the embodiment of the present application can be directly embodied as a hardware processor for execution, or a combination of hardware and software units in a processor for execution. The software unit can be located in a storage medium mature in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in a memory, and the processor executes the instructions in the memory, and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it is not described in detail here.
[0127] An embodiment of the present application also provides a computer storage medium, wherein the computer storage medium stores a computer program for electronic data exchange, and the computer program enables a computer to execute part or all of the steps of any method recorded in the above method embodiments.
[0128] The present application also provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program, and the computer program is operable to cause a computer to execute some or all of the steps of any method described in the above method embodiment. The computer program product may be a software installation package.
[0129] It should be noted that, for the aforementioned method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the present application is not limited by the described order of actions, because according to the present application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present application.
[0130] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0131] In the several embodiments provided in the present application, it should be understood that the disclosed devices can be implemented in other ways. For example, the device embodiments described above are only schematic, such as the division of the above-mentioned units, which is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or units can be electrical or other forms.
[0132] The units described above 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 distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
[0133] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.
[0134] If the above-mentioned integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable memory. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art or all or part of the technical solution, can be embodied in the form of a software product, which is stored in a memory and includes several instructions for a computer device (which can be a personal computer, server or TRP, etc.) to execute all or part of the steps of the various embodiments of the present application. The aforementioned memory includes: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, disk or optical disk and other media that can store program codes.
[0135] A person skilled in the art may understand that all or part of the steps in the various methods of the above embodiments may be completed by instructing the relevant hardware through a program, and the program may be stored in a computer-readable memory, which may include a flash drive, ROM, RAM, a magnetic disk or an optical disk, etc.
[0136] The embodiments of the present application are introduced in detail above. Specific examples are used in this article to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core idea of the present application. At the same time, for general technical personnel in this field, according to the idea of the present application, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.
Claims
1. A method for upgrading a ventricular assist device, characterized in that: The ventricular assist device comprises: a motor and a built-in controller disposed in the ventricular assist device, the built-in controller comprises a first core, a second core and a memory, the first core and the second core jointly operate the memory; The method comprises: Based on the upgrade command, the second kernel writes the upgraded application in the first memory into the second memory, the first memory being the memory in the memory used to store the application backup, and the second memory being the memory in the memory occupied by the second kernel; After writing is completed, the second core sends a first signal to the first core, wherein the first signal is used to instruct to write the operation data of the motor into a third memory, wherein the third memory is a memory shared by the first core and the second core in the memory; The second core reads the operation data from the third memory, uses the operation data to control the operation of the motor based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
2. The method according to claim 1, characterized in that: The method further comprises: In response to the received upgrade command, the target kernel downloads the upgrade application to the first memory, and the target kernel is the kernel currently controlling the operation of the motor.
3. The method according to claim 1 or 2, characterized in that: The first core is a main core, and the second core is a redundant core.
4. The method according to claim 2, characterized in that: When the target kernel is the first kernel, the method further includes: In response to receiving the upgrade command, the first core continues to control the operation of the motor.
5. The method according to claim 2, characterized in that: When the target kernel is the second kernel, the method further includes: In response to the received upgrade command, the second kernel writes the operating data into the third memory; After the writing is completed, the second core sends a third signal to the first core, where the third signal is used to instruct to start controlling the motor; The first core reads the operation data from the third memory, uses the operation data to control the operation of the motor based on the application stored in the fourth memory, and sends the second signal to the second core, the fourth memory being the memory occupied by the first core in the storage device; In response to the second signal, the second core stops controlling the motor and performs a reset of the second core.
6. The method according to claim 5, characterized in that After controlling the operation of the motor using the operation data based on the upgraded application, the method further includes: The first kernel writes the upgraded application in the first memory into the fourth memory.
7. The method according to claim 2, characterized in that The method further comprises: The idle core periodically receives a dog feeding signal from the target core, when the target core is the first core, the idle core is the second core, and when the target core is the second core, the idle core is the first core; If the idle core does not receive the dog feeding signal, the control of the motor is started.
8. A built-in controller for a ventricular assist device, characterized in that: The built-in controller includes: a first core, a second core and a memory, wherein the first core and the second core operate the memory together; The built-in controller is used to: Based on the upgrade command, the second kernel writes the upgraded application in the first memory into the second memory, the first memory being the memory in the memory used to store the application backup, and the second memory being the memory in the memory occupied by the second kernel; The second core sends a first signal to the first core after writing is completed, wherein the first signal is used to instruct to write the operation data of the motor into a third memory, wherein the third memory is a memory shared by the first core and the second core in the memory; The second core reads the operation data from the third memory, controls the operation of the motor using the operation data based on the upgraded application, and sends a second signal to the first core, where the second signal is used to instruct to stop controlling the motor.
9. A ventricular assist device, characterized in that: The ventricular assist device comprises: a motor and a built-in controller disposed in the ventricular assist device, the built-in controller comprises a first core, a second core and a memory, the first core and the second core jointly operate the memory; The built-in controller is used for the steps in the method according to any one of claims 1-7.
10. A medical device, characterized in that: The method comprises a processor, a memory and a communication interface, wherein the memory stores one or more programs, and the one or more programs are executed by the processor, and the one or more programs include instructions for executing the steps in the method according to any one of claims 1 to 7.
11. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program for electronic data exchange, wherein the computer program enables a computer to execute the steps of the method according to any one of claims 1 to 7.
Citation Information
Cited By
Method, system and device for upgrading blood pump firmware without stopping pump
CN119565019A
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for upgrading blood pump firmware without stopping the pump
CN119565019B