Touch system and method for updating firmware
By storing and verifying the validity of updated data in blocks within the touch system, and combining methods such as parity checking, the error problem in firmware updates was solved, achieving the integrity and reliability of firmware updates, and reducing the risk of device failure and maintenance costs.
Patent Information
- Application Number
- CN202011478271.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-12-20
- Filing Date
- 2020-12-15
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2040-12-15
AI Technical Summary
When updating firmware, existing technologies are prone to device malfunctions due to incomplete updates, and updates by ordinary users may cause system operation problems, increasing maintenance costs.
The system employs a touch system to ensure the integrity of firmware updates by storing and verifying the validity of update data in blocks in the first memory and storing header data after successful verification. It uses methods such as parity check and cyclic redundancy check to verify the validity of data and switches to the second firmware for update when the first firmware is faulty.
It effectively avoids errors in firmware updates, ensures the integrity and reliability of the update process, reduces the risk of device failure due to updates, and reduces maintenance costs.
Smart Images

Figure CN113010035B_ABST
Abstract
Description
Technical Field
[0001] The embodiments relate to a touch system and a method for updating firmware. Background Technology
[0002] Typically, various embedded systems (such as digital cameras and smartphones), especially digital devices that include touch functionality, have a system operating program called firmware set in the controller (e.g., central processing unit (CPU)) and memory unit.
[0003] These devices allow for external firmware updates to expand touch functionality and troubleshoot malfunctions.
[0004] In addition, firmware updates in digital devices by ordinary users have the advantage of reducing the manufacturer's maintenance costs by allowing users to resolve problems with the device itself.
[0005] However, since firmware is a program that directly affects system operation, its update process needs to be handled with great care, and incomplete updates due to errors or accidents can lead to serious problems such as device malfunction. Summary of the Invention
[0006] In this context, one aspect of the embodiments is to provide a technique for eliminating errors that occur in firmware when firmware is updated.
[0007] To achieve the above objectives, the present invention provides a touch system, comprising: a processor; a first memory configured to store first firmware and second firmware for driving the processor in different storage areas; and a second memory through which the processor uploads the first firmware to the second memory, wherein the first firmware is configured to receive update data for the first firmware from a host after being executed by the processor in the state of being uploaded to the second memory, store the main body data of the update data in the first memory, and then store the header data of the update data in a blank segment provided before the storage segment storing the main body data in the first memory.
[0008] The touch system may further include a touch driving circuit configured to supply a driving signal to sensor electrodes of a touch panel disposed in the electronic device, and to receive a response signal to the driving signal from the sensor electrodes, thereby generating touch data. Furthermore, a first firmware executed by the processor may calculate touch coordinates on the touch panel based on the touch data, and may provide the touch coordinates to the host.
[0009] The first firmware can verify the validity of the main data after storing the main data in the first memory, and if the validity of the main data is verified, the header data can be stored in the first memory.
[0010] The first firmware can verify the validity of the header data after storing it in the first memory, and can complete the update of the first firmware if the validity of the header data is verified.
[0011] The first firmware can divide the main data into multiple data blocks and store the data blocks sequentially in the first memory. Each time a data block is stored in the first memory, the validity of that data block can be verified. Moreover, if the validity of all multiple data blocks has been verified, the header data can be stored in the first memory.
[0012] The touch system may further include a communication interface, which includes a first communication interface configured to provide a communication path between the processor and the first memory, and a second communication interface configured to provide a communication path between the processor and the host.
[0013] The first firmware can temporarily store the update data in the second memory, configure the first address to the Nth address in the first memory as a blank segment, and then store the main data in the (N+1)th address and subsequent addresses of the first memory, wherein the first address to the Nth address belongs to the range of addresses of the memory segment storing the header data, and N is a natural number.
[0014] In the event of an error in the first firmware, the second firmware can be uploaded to the second memory and executed by the processor.
[0015] The second firmware can receive update data from the first firmware from the host, and can store the header data of the update data in the first memory after storing the main body data of the update data in the first memory, such that the header data is stored in a blank segment set before the memory segment storing the main body data.
[0016] A blank area corresponding to a predetermined memory segment can be set in the first memory between the storage area of the first firmware and the storage area of the second firmware.
[0017] In another embodiment, a method for updating firmware, the firmware being disposed in a touch system of an electronic device, the method may include: a data receiving step for receiving update data for the firmware from a host of the electronic device; a temporary data storage step for temporarily storing the update data in a second memory of the electronic device; a main data storage step for storing the main data of the update data in a first memory of the electronic device and verifying the validity of the main data; and a header data storage step for storing the header data of the update data in the first memory if the validity of the main data has been verified. In the header data storage step, the touch system may store the header data in a blank segment preceding the segment storing the main data in the first memory. The main data storage step may include the following steps: dividing the main data temporarily stored in the second memory into multiple data blocks; storing the multiple data blocks sequentially in the first memory if the validity of a data block is verified each time it is stored in the first memory; and verifying the validity of all the multiple data blocks.
[0018] The touch system may include: a touch driving circuit configured to supply a driving signal to sensor electrodes of a touch panel disposed in the electronic device, and to receive a response signal to the driving signal from the sensor electrodes, thereby generating touch data; and a touch device configured to receive the touch data from the touch driving circuit through the execution of the firmware, and to calculate touch coordinates on the touch panel based on the touch data.
[0019] In the main data storage step, one or more of parity check, cyclic redundancy check (CRC), and checksum are used to verify the validity of the main data.
[0020] As described above, according to the embodiments, firmware updates can be completed normally by storing the header data of the update data after storing the main data of the update data and verifying its validity, thereby eliminating errors that may occur during firmware updates. Attached Figure Description
[0021] The above and other aspects, features and advantages of the present invention will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:
[0022] Figure 1 This is a diagram illustrating the structure of a touch system according to an embodiment.
[0023] Figure 2 This is a diagram illustrating an example of a data storage area of a first memory according to an embodiment;
[0024] Figures 3 to 5 This is a diagram illustrating the firmware update process according to an embodiment; and
[0025] Figure 6 This is a flowchart illustrating the process of updating firmware in a touch system according to an embodiment. Detailed Implementation
[0026] Figure 1 This is a diagram illustrating the structure of a touch system according to an embodiment.
[0027] refer to Figure 1 The touch system 100 according to an embodiment may include a touch driving circuit 110, a touch microcontroller unit (MCU) 120, and a first memory 130 that cooperate with the touch panel 10 and host 20 of an electronic device. Here, the host 20 may be the main controller of the electronic device. For example, if the electronic device is a mobile communication terminal, the host 20 may be the application processor of the mobile communication terminal, and if the electronic device is a monitor or television (TV), the host 20 may be a multi-core processor of the monitor or TV. On the other hand, the touch panel 10 may be bonded to the upper polarizer of a display panel (not shown), or may be formed between the upper polarizer and the upper substrate. In addition, if the touch panel 10 is formed in-line, the touch panel 10 may be formed on the lower substrate together with the pixel array (not shown) in the display panel. The touch panel 10 may include sensor electrodes, which include driving electrodes and receiving electrodes. The touch driving circuit 110 supplies driving signals to the sensor electrodes of the touch panel 10.
[0028] In addition, the touch driving circuit 110 can receive response signals from the sensor electrodes and output touch data based on the response signals.
[0029] When an object (such as a user's body or a stylus) approaches or touches a portion of the touch panel 10, the difference in magnitude between the response signal corresponding to that portion of the touch panel 10 and the response signals corresponding to other portions of the touch panel 10 may increase. Accordingly, the touch driving circuit 110 can generate touch data relating to the object approaching or touching that portion of the touch panel 10.
[0030] The touch MCU 120 (i.e., the touch device) can use the touch data generated in the touch driving circuit 110 to calculate the touch coordinates on the touch panel 10.
[0031] In addition, the touch MCU 120 can send touch coordinates to the host 20.
[0032] The touch MCU 120 may include a processor 122, a second memory 124, and a communication interface 126. Here, the communication interface 126 may include a first communication interface 126a providing a communication path between the processor 122 and the first memory 130, and a second communication interface 126b providing a communication path between the processor 122 and the host 20. Additionally, the second memory 124 may be a volatile memory such as RAM (Random Access Memory).
[0033] The processor 122 can receive touch data from the touch driver circuit 110 through a third communication interface (not shown), upload the first firmware (which will be described below) stored in the first memory 130 to the second memory 124, and execute the first firmware.
[0034] Accordingly, the touch MCU 120 can calculate the touch coordinates on the touch panel 10 based on the touch data, and can send the touch coordinates to the host 20, so that the electronic device can generate events through the touch coordinates. In other words, the first firmware may include a first algorithm for calculating the touch coordinates on the touch panel 10 based on the touch data.
[0035] On the other hand, the first firmware may also include a second algorithm for managing updates to the first firmware. Specifically, the first firmware executed by the processor 122 can receive update data for the first firmware from the host 20. Here, the first firmware can temporarily store the update data in the second memory 124. Alternatively, the first firmware can store the main data of the update data in a memory such as... Figure 2 The header data for updated data is subsequently stored in the first firmware storage area 220 of the first memory 130 shown. Here, the first firmware may store the header data in a blank area preceding the memory section storing the main data. (Refer to...) Figures 3 to 5 Provide a detailed description.
[0036] Traditionally, the validity of the header data is verified only after the header data of the updated data is stored in the first memory 130. If the validity of the header data is verified, the validity of the body data is stored in the first memory 130 without verifying the validity of the body data. Therefore, if an error occurs in the body data during firmware update, the firmware update cannot be completed normally.
[0037] To address this issue, in this embodiment, header data is stored after the main data is stored in the first memory 130. Here, the first memory 130 may be a non-volatile memory such as flash memory.
[0038] In this embodiment, the first firmware uploaded to the second memory 124 and currently running can verify the validity of the main data after storing the main data in the first firmware storage area 220 of the first memory 130. If the validity of the main data is verified, the header data can be stored in the first firmware storage area 220. Here, the first firmware can delete any existing first firmware stored in the first firmware storage area 220 before storing the main data in the first firmware storage area 220.
[0039] When the main data is stored in the first memory 130, the first firmware can divide the main data into multiple data blocks and store the multiple data blocks sequentially in the first firmware storage area 220 of the first memory 130. Whenever a data block is stored in the first memory 130, the first firmware can verify the validity of the data block.
[0040] If the validity has been proven for all multiple data blocks by the above method, the first firmware can store the header data in the first firmware storage area 220 of the first memory 130.
[0041] Subsequently, the first firmware can verify the validity of the header data, and if the validity of the header data is verified, the update of the first firmware can be completed. Here, since the first firmware is uploaded to the second memory 124 by the processor 122 and is running, the existing first firmware stored in the first memory 130 can be updated.
[0042] In an embodiment, the first firmware may use one or more of parity check, cyclically redundancy checking (CRC), and checksum to verify the validity of the body data or the header data.
[0043] In an embodiment, when the update data is stored in such a Figure 2 When the firmware is stored in the first firmware storage area 220 of the first memory 130, the firmware can configure the first address to the Nth address (the first address to the Nth address belongs to the address range of the memory segment used to store header data in the first firmware storage area 220 of the first memory 130) as a blank segment. Then, the firmware can store the main data temporarily stored in the second memory 124 in the (N+1)th address and subsequent addresses of the first firmware storage area 220, such as... Figure 3 As shown.
[0044] Furthermore, if the validity of the main data is proven, the first firmware can store the header data temporarily stored in the second memory 124 in the blank segment of the first firmware storage area 220, such as... Figure 4 As shown.
[0045] Subsequently, if the validity of the header data is verified, the first firmware can complete the update, such as... Figure 5 As shown.
[0046] As described above, in the embodiments, firmware updates can be completed normally by storing the header data of the update data after storing the main data of the update data and verifying its validity, thereby eliminating errors that may occur during firmware updates.
[0047] On the other hand, in the embodiment, a second firmware different from the first firmware can also be stored in the first memory 130, and when an error occurs in the first firmware due to frequent execution of the first firmware, the processor 122 can execute the second firmware to update the first firmware with the error to the normal first firmware.
[0048] Specifically, in this embodiment, the first memory 130 can store the first firmware in the first firmware storage area 220, and can store the second firmware in the second firmware storage area 240, such as... Figure 2 As shown.
[0049] Here, when power is supplied to the electronic device including the touch system 100, the bootloader stored in the bootloader storage area 210 causes the processor 122 to upload the first firmware stored in the first firmware storage area 220 to the second memory 124 and execute the first firmware.
[0050] Additionally, when an error occurs in the first firmware, the bootloader causes the processor 122 to upload the second firmware stored in the second firmware storage area 240 to the second memory 124 and execute the second firmware. The first firmware stored in the first firmware storage area 220 may be firmware used to drive the processor 122 during normal operation. In other words, the first firmware may include a first algorithm for calculating touch coordinates on the touch panel 10 based on touch data, and may also include a second algorithm for managing updates to the first firmware.
[0051] Here, the first firmware storage area 220 can be a memory area capable of read and write operations. When an error occurs in the first firmware, the second firmware stored in the second firmware storage area 240 can be uploaded to the second memory 124 by the processor 122 and can be executed by the processor 122 to receive update data for the first firmware from the host 20. The second firmware storage area 240 can be a read-only memory area.
[0052] The second firmware can store the header data of the updated data in the first firmware storage area 220 of the first memory 130 after storing the main body data of the updated data in the first firmware storage area 220, such that the header data is stored in a blank area set before the memory area used to store the main body data.
[0053] In other words, the second firmware may include a third algorithm for managing updates to the first firmware. Additionally, the second firmware may also include a first algorithm for calculating touch coordinates on the touch panel 10 based on touch data.
[0054] Here, similar to the first firmware, the second firmware can verify the validity of the main data after storing the main data in the first firmware storage area 220 of the first memory 130, and if the validity of the main data is verified, the header data can be stored in the first firmware storage area 220. Here, the second firmware can delete the existing first firmware stored in the first firmware storage area 220 before storing the main data in the first firmware storage area 220.
[0055] When the main data is stored in the first firmware storage area 220, the second firmware can divide the main data into multiple data blocks, and can sequentially store the multiple data blocks in the first firmware storage area 220 of the first memory 130 when verifying the validity of a data block each time it is stored in the first memory 130.
[0056] If the validity of all the multiple data blocks is proven by the above method, the second firmware can store the header data in the first firmware storage area 220 of the first memory 130.
[0057] After that, the second firmware can verify the validity of the header data, and if the validity of the header data is proven, the update of the first firmware can be completed.
[0058] In an embodiment, when the second firmware stores update data in such a location... Figure 2 When the second firmware is stored in the first firmware storage area 220 of the first memory 130, the second firmware can configure the first address to the Nth address (the first address to the Nth address belongs to the address range of the memory segment used for storing header data in the first firmware storage area 220 of the first memory 130) as a blank segment. Then, the second firmware can store the main data in the (N+1)th address and subsequent addresses of the first firmware storage area 220, such as... Figure 3 As shown. Additionally, if the validity of the main data is proven, the second firmware can store the header data in a blank segment of the first firmware storage area 220, such as... Figure 4 As shown.
[0059] As described above, in the embodiment, a first firmware for driving the processor 122 during normal operation and a second firmware for driving the processor 122 in case of an error in the first firmware are respectively stored in the first memory 130, and the first firmware can be updated by the second firmware even if an error occurs in the first firmware.
[0060] If the size of the data related to the first firmware becomes larger than its existing size during the first firmware update, the updated data for the first firmware can be stored beyond the first firmware storage area 220. Therefore, a blank area 230 corresponding to a specific memory segment can be set between the first firmware storage area 220 and the second firmware storage area 240 in the first memory 130. In other words, when allocating memory segments in the first memory 130, a blank area 230 can be allocated between the first firmware storage area 220 and the second firmware storage area 240.
[0061] The process of updating the firmware in the touch system 100 will be described below.
[0062] Figure 6 This is a flowchart illustrating the process of updating firmware in a touch system according to an embodiment.
[0063] refer to Figure 6 The first firmware, uploaded from the first memory 130 to the second memory 124 and executed by the processor 122 of the touch MCU 120, can receive update data of the first firmware from the host 20 (S610). Here, the host 20 can receive the update data of the first firmware from an external server via a wired / wireless communication module provided in the electronic device, or it can receive the update data of the first firmware from an external memory (e.g., a USB memory) connected to the electronic device, thereby sending the update data to the touch system 100. The first firmware can temporarily store the update data in the second memory 124, such as random access memory (RAM) (S620).
[0064] Furthermore, the first firmware can store the main data of the update data in the first firmware storage area 220 of the first memory 130, and can verify the validity of the main data (S630). Here, the first firmware can divide the main data temporarily stored in the second memory 124 into multiple data blocks, and can sequentially store these multiple data blocks in the first firmware storage area 220 of the first memory 130. In addition, the first firmware can verify the validity of each data block whenever it is stored in the first memory 130. Therefore, the validity can be verified and proven for all multiple data blocks.
[0065] Before step S630, the first firmware may delete the existing first firmware stored in the first firmware storage area 220.
[0066] Before step S630, such as Figure 3 As shown, the first firmware can configure the first address to the Nth address (the first address to the Nth address belongs to the address range of the memory segment used for storing header data in the first firmware storage area 220 of the first memory 130) as a blank segment. Then, the first firmware can store the main data temporarily stored in the second memory 124 in the (N+1)th address and subsequent addresses of the first firmware storage area 220.
[0067] On the other hand, if the validity of the main data is proven, the first firmware can store the header data in the first firmware storage area 220 and verify the validity of the header data (S640 and S650). If the validity of the main data is not proven in step S640, the first firmware can delete the main data stored in the first firmware storage area 220, and then store the main data temporarily stored in the second memory 124 back in the first firmware storage area 220, thereby re-verifying the validity of the main data.
[0068] If the validity of the header data is proven, the first firmware can complete the first firmware update (S660). If the validity of the header data is not proven in step S650, the first firmware can delete the header data stored in the first firmware storage area 220, and then store the header data temporarily stored in the second memory 124 back in the first firmware storage area 220 to re-verify its validity. In the embodiment, the first firmware can use one or more of parity check, cyclic redundancy check (CRC), and checksum to verify the validity of the body data or the header data.
[0069] Cross-references to related applications
[0070] This application claims priority to Korean Patent Application No. 10-2019-0171570, filed on December 20, 2019, which, as set forth in its entirety herein, is incorporated herein by reference for all purposes.
Claims
1. A touch system, the touch system comprising: processor; A first memory is configured to store first firmware and second firmware for driving the processor in different memory areas; as well as The second memory is used by the processor to upload the first firmware to the second memory. Specifically, the first firmware is configured to receive update data for the first firmware from the host after being executed by the processor while being uploaded to the second memory, store the main body data of the update data in the first memory, and then store the header data of the update data in a blank segment set before the memory segment storing the main body data in the first memory. The first firmware is configured to verify the validity of the main data after storing it in the first memory, and, if the validity of the main data is verified, store the header data in the first memory. The second firmware is configured to be uploaded to the second memory and executed by the processor in the event of an error in the first firmware. The second firmware is configured to receive the update data of the first firmware from the host, and after storing the body data of the update data in the first memory, store the header data of the update data in the first memory, such that the header data is stored in a blank segment provided before the memory segment storing the body data.
2. The touch system of claim 1, further comprising a touch driving circuit configured to supply a driving signal to sensor electrodes of a touch panel disposed in an electronic device, and to receive a response signal to the driving signal from the sensor electrodes, thereby generating touch data, wherein... The first firmware executed by the processor calculates the touch coordinates on the touch panel based on the touch data and provides the touch coordinates to the host.
3. The touch system according to claim 1, wherein, The first firmware is configured to verify the validity of the header data after storing the header data in the first memory, and to complete the update of the first firmware if the validity of the header data is verified.
4. The touch system according to claim 1, wherein, The first firmware is configured to divide the main data into multiple data blocks and store the data blocks sequentially in the first memory, and the first firmware is configured to verify the validity of a data block whenever it is stored in the first memory, and store the header data in the first memory after the validity has been verified for all multiple data blocks.
5. The touch system of claim 1, further comprising a communication interface, the communication interface including a first communication interface configured to provide a communication path between the processor and the first memory, and a second communication interface configured to provide a communication path between the processor and the host.
6. The touch system according to claim 1, wherein, The first firmware is configured to temporarily store the update data in the second memory, set the first address to the Nth address in the first memory as a blank segment, and then store the main data in the (N+1)th address and subsequent addresses of the first memory, wherein the first address to the Nth address belongs to the range of addresses of the memory segment storing the header data, and N is a natural number.
7. The touch system according to claim 1, wherein, In the first memory, a blank area corresponding to a predetermined memory segment is provided between the storage area of the first firmware and the storage area of the second firmware.
8. A method for updating firmware, the firmware being disposed in a touch system in an electronic device, the method comprising: A data receiving step is used to receive update data for the firmware from the host of the electronic device; A temporary data storage step is used to temporarily store the updated data in the second memory of the electronic device; The main data storage step is used to store the main data of the updated data in the first memory of the electronic device and verify the validity of the main data; as well as The header data storage step is used to store the header data of the updated data in the first memory, provided that the validity of the main data has been verified. The first memory is configured to store first firmware and second firmware for driving the processor in different storage areas. The second firmware is configured to be uploaded to the second memory and executed by the processor in the event of an error in the first firmware. The second firmware is configured to receive the update data of the first firmware from the host, and after storing the body data of the update data in the first memory, store the header data of the update data in the first memory, such that the header data is stored in a blank segment provided before the memory segment storing the body data.
9. The method according to claim 8, wherein, In the head data storage step, the touch system is configured to store the head data in a blank segment provided before the segment storing the main body data in the first memory.
10. The method according to claim 8, wherein, The main data storage step includes the following steps: The main data temporarily stored in the second memory is divided into multiple data blocks; In verifying the validity of a data block each time it is stored in the first memory, the plurality of data blocks are sequentially stored in the first memory; and Verify validity for all multiple data blocks.
11. The method of claim 8, wherein, The touch system includes: A touch driving circuit is configured to supply a driving signal to sensor electrodes of a touch panel disposed in the electronic device, and to receive a response signal to the driving signal from the sensor electrodes, thereby generating touch data; and A touch device configured to receive touch data from the touch driving circuit via the execution of the firmware, and to calculate touch coordinates on the touch panel based on the touch data.
12. The method according to claim 8, wherein, In the main data storage step, one or more of parity check, cyclic redundancy check (CRC), and checksum are used to verify the validity of the main data.
Citation Information
Patent Citations
Control circuit, electronic device using the same, and firmware update method
US20070038801A1
Computer device with a touch controller and method for updating the touch controller
US20160342252A1