Charging control method and device and electronic equipment
By detecting whether the power supply equipment supports the target fast charging protocol and adopting the communication processing strategy of the corresponding protocol, the problem of easy resetting of the converged fast charging processing mechanism is solved, and a more stable and efficient charging process is achieved.
Patent Information
- Application Number
- CN202311145900.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-06
- Publication Date
- 2025-03-07
AI Technical Summary
The existing integrated fast charging processing mechanism can easily lead to reset during the charging process, affecting the stability and efficiency of charging.
By detecting whether the power supply device supports the target fast charging protocol, the communication frames from the power supply device are processed using the communication processing strategy of the corresponding protocol. Specific measures include configuring scheduling rules after the handshake is successful to ensure real-time scheduling of data processing threads and avoiding resets caused by untimely scheduling.
It realizes avoiding reset during charging, improves the timely processing rate of communication frames by charging equipment, and ensures that the charging equipment can maintain fast charging communication stably when the power supply equipment is quickly shipped.
Smart Images

Figure CN119582374A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of charging technology, and in particular to a charging control method, device and electronic equipment. Background Art
[0002] With the rapid development of fast charging technology, the charging speed, charging safety and intelligent charging management have been significantly improved, and the fast charging experience has become a standard feature of terminal devices. In order to solve the problem of incompatibility between interoperable fast charging, a fusion fast charging standard has been formulated. However, the traditional charging method causes the existing fusion fast charging processing mechanism to cause a reset. Summary of the invention
[0003] Based on this, it is necessary to provide a charging control method, device and electronic device that can avoid resetting in order to solve the above technical problems.
[0004] In a first aspect, the present application provides a charging control method, which is applied to a charging device, and the method includes:
[0005] In response to determining that the connected power supply device currently supports the target fast charging protocol, adopting a communication processing strategy corresponding to the target fast charging protocol to process a communication frame from the power supply device;
[0006] The communication processing strategy is used to indicate the scheduling rules of the data processing thread that processes the communication frame.
[0007] In one embodiment, the target fast charging protocol includes a universal fast charging protocol; and the method further includes:
[0008] In response to the charging device being electrically connected to the power supply device, performing a universal fast charging protocol handshake with the power supply device;
[0009] Based on the successful handshake of the universal fast charging protocol, it is determined that the power supply device currently supports the universal fast charging protocol.
[0010] In one embodiment, a communication processing strategy corresponding to a target fast charging protocol is adopted to process a communication frame from a power supply device, including:
[0011] In response to triggering the preemption prohibition condition, the scheduling rule is configured to instruct the execution processor of the data processing thread to enter a shutdown scheduling mode until the data processing thread is executed; the shutdown scheduling mode is used to indicate a mode of stopping responding to the scheduling of the charging device.
[0012] In one of the embodiments, the preemption prohibition condition includes that a plurality of consecutive communication frames belong to the same communication event;
[0013] The scheduling rule includes instructing the execution processor of the data processing thread to be in a mode of running an atomic lock during the processing time of each communication frame belonging to the same communication event.
[0014] In one embodiment, a communication processing strategy corresponding to a target fast charging protocol is adopted to process a communication frame from a power supply device, including:
[0015] In response to the completion of the handshake between the charging device and the power supply device based on the target fast charging protocol, sending a communication packet to the power supply device;
[0016] In response to receiving a communication frame fed back by the power supply device based on the communication packet, the scheduling rule is configured to increase the frequency of the processor until the data processing thread obtains the execution permission of the processor.
[0017] In one embodiment, the method further comprises:
[0018] Determine the frequency increase based on the frequency level that the charging equipment can support;
[0019] Boost the processor frequency according to the boost frequency.
[0020] In one of the embodiments, the communication processing policy is further used to indicate a processing rule for processing the communication frame;
[0021] Adopt the communication processing strategy corresponding to the target fast charging protocol to process the communication frames from the power supply device, including:
[0022] Run the data processing thread to parse the communication frame and obtain the command value of the communication command from the power supply device;
[0023] The processing rule is configured such that if it is determined that the communication command satisfies the communication condition according to the command value and the tag information corresponding to the communication frame, the communication command is responded to and the tag information is updated;
[0024] The communication condition includes: the communication command is the next command of the most recently executed command in the command sequence corresponding to the current communication event, or the communication command is the next-next command of the most recently executed command in the command sequence corresponding to the current communication event.
[0025] In one embodiment, the method further comprises:
[0026] In response to receiving a communication frame, the processing rule is configured to count a counter, and the count value of the counter is used as the tag information corresponding to the communication frame.
[0027] In one embodiment, updating the marking information includes:
[0028] Reset the counter to zero.
[0029] In one embodiment, the method further comprises:
[0030] The processing rule is configured to execute a reset operation if it is determined that the communication command does not meet the communication condition according to the command value and the tag information corresponding to the communication frame.
[0031] In a second aspect, the present application further provides a charging control device, which is applied to a charging device, and the device includes:
[0032] A charging processing module is used to process communication frames from the power supply device in response to determining that the connected power supply device currently supports the target fast charging protocol, using a communication processing strategy corresponding to the target fast charging protocol; wherein the communication processing strategy is used to indicate the scheduling rules of the data processing thread that processes the communication frame.
[0033] In a third aspect, the present application further provides an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the above method when executing the computer program.
[0034] In a fourth aspect, the present application also provides a computer-readable storage medium having a computer program stored thereon, which implements the steps of the above method when the computer program is executed by a processor.
[0035] In a fifth aspect, the present application also provides a computer program product, including a computer program, which implements the steps of the above method when executed by a processor.
[0036] In the above-mentioned charging control method, device and electronic device, the charging device responds to determining that the connected power supply device currently supports the target fast charging protocol, and then adopts the communication processing strategy corresponding to the target fast charging protocol to process the communication frame from the power supply device; wherein the communication processing strategy is used to indicate the scheduling rules of the data processing thread that processes the communication frame. In this application, the charging device uses the communication processing strategy to schedule the data processing thread that processes the communication frame in real time, thereby improving the timeliness of the charging device's processing of the communication frame, and can ensure that the power supply device can send packets quickly and when the charging device system is heavily loaded, it can still maintain the integrated fast charging communication well without resetting. BRIEF DESCRIPTION OF THE DRAWINGS
[0037] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related technologies, the drawings required for use in the embodiments or the related technical descriptions are briefly introduced below. Obviously, the drawings described below are only 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.
[0038] Figure 1 An application environment diagram of a charging control method in an embodiment;
[0039] Figure 2 is a flow chart of a charging control method in one embodiment;
[0040] Figure 3 A schematic diagram of a flow chart of steps for determining a target fast charging protocol supported by a power supply device in one embodiment;
[0041] Figure 4 A schematic diagram of a process of increasing the frequency of a processor in one embodiment;
[0042] Figure 5 A schematic diagram of a flow chart of responding to a communication command in one embodiment;
[0043] Figure 6 A schematic diagram of a specific flow chart of a charging control method in an embodiment;
[0044] Figure 7 is a structural block diagram of a charging control device in one embodiment;
[0045] Figure 8 FIG. 4 is a diagram showing the internal structure of an electronic device in one embodiment. DETAILED DESCRIPTION
[0046] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0047] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.
[0048] It is understood that terms such as "first" and "second" in this application are only used to distinguish similar objects, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. The "connection" appearing in the embodiments of this application refers to various connection methods such as direct connection or indirect connection to achieve communication between devices, and the embodiments of this application do not make any limitation on this.
[0049] It will be understood that “at least one” means one or more, and “plurality” means two or more.
[0050] When used herein, the singular forms "a", "an", and "said / the" may also include plural forms, unless the context clearly indicates otherwise. It should also be understood that the terms "include / comprise" or "have" and the like specify the presence of stated features, wholes, steps, operations, components, parts, or combinations thereof, but do not exclude the possibility of the presence or addition of one or more other features, wholes, steps, operations, components, parts, or combinations thereof. At the same time, the term "and / or" used in this specification includes any and all combinations of the relevant listed items.
[0051] Fast charging: refers to the fast charging of the terminal device through the fast charging control chip after the terminal device is connected to the adapter. During the fast charging process, the terminal device will comply with the fast charging protocol. For example, common fast charging protocols include PD (Power Delivery) fast charging protocol, Qualcomm QC (Quick Charge) fast charging protocol, PE (Pump Express) fast charging protocol, VOOC (Voltage Open Loop Multi-step Constant-Current Charging) / SVOOC fast charging protocol, FCP (Fast Charger Protocol) fast charging protocol, etc. The terminal device is charged based on the fast charging protocol.
[0052] At present, there is a problem of incompatibility between protocols in fast charging: terminals and adapters of different brands cannot be effectively identified, and can only achieve low-power charging. On the one hand, the user's fast charging experience is greatly restricted and limited, and the incompatibility problem seriously affects the user experience; on the other hand, due to the lack of unified charging standards, the risk and cost of upstream and downstream manufacturers in the industry chain to develop universal fast charging power chips and accessories are relatively high. The inconsistency of technical standards will also hinder the development of terminal green energy and circular economy. Formulate integrated fast charging standards for terminal equipment to solve the problem of incompatibility between interoperable fast charging, and serve as the basis for the long-term evolution of fast charging technology, promote the interoperability of manufacturers' fast charging technology in existing terminal equipment in the industry, and guide and standardize the product development and production of equipment manufacturers (upstream and downstream industry chains) to create fast, safe and compatible charging for terminal users. As a result, the "Terminal Equipment Integrated Fast Charging Technical Specification" was launched. The technical specification is abbreviated as UFCS (Universal Fast Charging Specification) fast charging protocol, that is, the universal fast charging protocol.
[0053] Among them, the charging device and the power supply device running the UFCS protocol interact through communication frames. For example, if the charging device is a mobile phone and the power supply device is an adapter, the mobile phone will request voltage and current from the UFCS adapter. First, the mobile phone will send a request communication packet to the adapter. After receiving the request communication packet, the adapter will reply to the mobile phone with an ack communication packet. After receiving the ack communication packet, the mobile phone will wait for the adapter to send an accept reply to the communication packet agreeing to adjust the voltage and current. The adapter sends an accept communication packet to the mobile phone, and the mobile phone replies to the adapter with an ack communication packet. The mobile phone continues to wait for the adapter to actually adjust the voltage and current to the target voltage and current. The power_ready communication packet; the adapter replies to the power_ready communication packet to the mobile phone, and the mobile phone replies to the ack communication packet to the adapter. At this point, the interactive process of voltage and current adjustment between the mobile phone and the adapter is completed.
[0054] The current software processing mechanism on the mobile phone is: when receiving a data interrupt from the UFCS chip, the mobile phone software schedules the corresponding interrupt handler, and schedules the thread in the interrupt handler to execute the sending and receiving of data. Since the mobile phone's CPU (Central Processing Unit) is a multi-task scheduling system, the thread may not be scheduled in time, resulting in message leakage. Secondly, when the mobile phone is waiting for the adapter to send a message, due to system scheduling or system freeze, the adapter has already sent the communication packet before the mobile phone software executes a certain communication packet, causing the software to wait but never get the message, resulting in a waiting timeout, and eventually causing the mobile phone UFCS to reset. In addition, the UFCS protocol fixes the time interval between two frames to a maximum level, but the time interval of some communication frames of some UFCS adapters is limited to a very short time (such as 2ms), which places high demands on the real-time processing of the software.
[0055] In the above conventional solutions, the software threads of the adapter-based fast packet transmission + multi-task scheduling system are not strictly scheduled in real time, which results in the existing UFCS software processing mechanism causing a low probability of communication packet loss and reset.
[0056] To this end, an embodiment of the present application provides a charging control method, and the execution subject of the charging control method can be a chip provided in the embodiment of the present application, or a charging device integrated with a chip, for example, an electronic device integrated with a chip. It should be noted that the chip in the embodiment of the present application can include a UFCS chip, that is, a UFCS chip IC (Integrated Circuit).
[0057] The charging control method provided in the embodiment of the present application can be applied to Figure 1In the application environment shown in FIG. 1 , the terminal device 102 is used as a charging device and the adapter 104 is used as a power supply device. For example, the terminal device 102 and the adapter 104 can be connected through the charging interface in the terminal device 102, and the adapter 104 can be connected to an external power source. Further, when the terminal device 102 needs to be charged, the user can connect the terminal device 102, the adapter 104 and the charging cable as shown in FIG. Figure 1 The adapter 104 is connected in the manner shown, and the terminal device is charged by plugging the adapter 104 into a socket.
[0058] Optionally, the power supply device may be a charger, a charging head, a power bank, an adapter, etc., and the charging device may be various terminal devices such as mobile phones, tablet computers, watches, etc. Furthermore, the power supply device and the charging device both support multiple charging protocols, and the power supply device and the charging device may select a charging protocol supported by both of them for charging from the multiple charging protocols supported by both of them.
[0059] Exemplarily, the terminal device 102 includes a battery, and the terminal device 102 is any device that needs to charge the battery; Exemplarily, the terminal device 102 may be an electronic device, which may be, but is not limited to, various personal computers, laptops, smart phones, tablet computers, IoT devices, and portable wearable devices, and the IoT devices may be smart speakers, smart TVs, smart air conditioners, smart car-mounted devices, etc. Portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc.
[0060] Optionally, the adapter 104 may support charging protocols of VOOC2.0, VOOC3.0, SUPERVOOC, UFCS or other fast charging technologies. The embodiment of the present application does not limit the charging protocols supported by the adapter 104.
[0061] In an exemplary embodiment, Figure 2 As shown, a charging control method is provided, which is applied to Figure 1 The charging device in the embodiment is used as an example to illustrate, and the method includes the following steps 202. Among them:
[0062] Step 202, in response to determining that the connected power supply device currently supports the target fast charging protocol, adopt a communication processing strategy corresponding to the target fast charging protocol to process communication frames from the power supply device; wherein the communication processing strategy is used to indicate a scheduling rule for a data processing thread that processes the communication frame.
[0063] Specifically, after the charging device is connected to the power supply device, the charging device can, when it determines that the power supply device currently supports the target fast charging protocol, if it receives a communication frame from the power supply device, use the communication processing strategy corresponding to the target fast charging protocol to process the communication frame. The communication processing strategy is used to indicate the scheduling rules of the data processing thread that processes the communication frame. The charging device can then implement real-time scheduling of the data processing thread, improve the timeliness of the charging device's processing of communication frames, and avoid a low probability of communication packet loss and reset due to untimely scheduling of the data processing thread.
[0064] Exemplarily, when receiving a communication frame from a power supply device, the charging device may process the communication frame using a data processing thread. After receiving a data interrupt, the data from the power supply device may be processed by the data processing thread, and the data to be replied may be sent to the power supply device (e.g., an adapter) after the data is processed.
[0065] Furthermore, the communication processing strategy is used to indicate the scheduling rules of the data processing thread that processes the communication frame; the charging device can determine the communication processing strategy after confirming that the power supply device supports the target fast charging protocol, such as configuring the scheduling rules to be a strict real-time scheduling of the data processing thread, so as to optimize the target fast charging protocol information interaction, thereby avoiding the problem of software processing hardware packet sending untimely.
[0066] Optionally, the scheduling rules may include configuring the scheduling authority of the execution processor of the data processing thread, thereby ensuring that the processor scheduling can be continuously occupied during data processing to avoid being scheduled out during thread execution; illustratively, the scheduling rules may also include configuring the operating frequency of the execution processor of the data processing thread, thereby avoiding untimely scheduling of the data processing thread, thereby improving the timeliness of the charging device's processing of communication frames.
[0067] Furthermore, the communication processing strategy can also be used to indicate the processing rules for processing communication frames, and the processing rules can be configured to respond to the communication command corresponding to the communication frame when the communication frame meets the communication conditions without performing a reset operation. Exemplarily, the processing rules can be configured to allow a frame to be dropped with conditional judgment. For example, when the communication frame meets the communication conditions, a frame is allowed to be dropped in the protocol communication process, so that the fast charging protocol communication can be maintained without resetting.
[0068] Exemplarily, a communication frame may refer to communication data, such as a frame communication packet; alternatively, a communication frame may also be referred to as a communication packet, a command packet, etc., which is not limited in the present application. After parsing the communication frame, a communication command from the communication frame sender may be obtained.
[0069] Furthermore, the target fast charging protocol may refer to a charging protocol between a charging device and a power supply device that uses a one-send-one-receive mechanism for communication. The embodiments of the present application can ensure fast packet transmission for the power supply device and that such fast charging protocol communication can be well maintained without resetting when the charging device system is under heavy load. Among them, taking the power supply device as an adapter as an example, the adapter supports UFCS, and by modifying the firmware to allow it to quickly transmit packets within 1ms, when the embodiments of the present application are adopted, UFCS fast charging communication can be maintained without resetting.
[0070] Exemplarily, the target fast charging protocol may include a universal fast charging protocol.
[0071] Specifically, the target fast charging protocol may adopt the universal fast charging protocol UFCS. It is understood that the target fast charging protocol may also adopt other types of charging protocols, and is not limited to the forms mentioned in the above embodiments.
[0072] In an exemplary embodiment, Figure 3 As shown, the method may further include steps 302 to 304. Among them:
[0073] Step 302, in response to the charging device being electrically connected to the power supply device, performing a universal fast charging protocol handshake with the power supply device;
[0074] Specifically, taking the target fast charging protocol adopting the universal fast charging protocol UFCS as an example, when the charging device is electrically connected to the power supply device, the charging device can perform a universal fast charging protocol handshake with the power supply device to determine whether the power supply device supports the universal fast charging protocol.
[0075] Optionally, taking the charging device as the terminal device and the power supply device as the adapter as an example, when the user uses the terminal device, the terminal device can be connected to the adapter at any time to charge the terminal device. When the terminal device is connected to the adapter, the terminal device can activate the adapter by sending a pulse train. After activation, the adapter and the terminal device begin to enter the fast charging process.
[0076] For example, when the terminal device is plugged into the adapter, the terminal device detects that the adapter is plugged in and sends a pulse string to the adapter on D- to activate the adapter to enter the UFCS fast charging protocol. After the adapter receives the pulse string, if it is a UFCS adapter, it will pull up D+. If the terminal device detects that D+ is pulled up, it indicates that the UFCS handshake between the adapter and the mobile phone is successful, otherwise other fast charging protocols are used.
[0077] Among them, D+ can refer to the D+ transmission channel of the adapter, and D- can refer to the D- transmission channel of the adapter; the adapter sends data to the terminal device through D+, and the terminal device receives data through D+; the terminal device sends data to the adapter through D-, and the adapter receives data through D-.
[0078] Step 304: Based on the success of the universal fast charging protocol handshake, it is determined that the power supply device currently supports the universal fast charging protocol.
[0079] Specifically, after the handshake based on the universal fast charging protocol is successful, the charging device can determine that the power supply device currently supports the universal fast charging protocol, and then the charging device can actively send instructions to interact with the power supply device. Optionally, after the above activation, the power supply device can also actively send instructions to interact with the terminal device.
[0080] Taking the communication negotiation of the UFCS protocol as an example, in an embodiment of the present application, the process of the charging device and the power supply device performing a UFCS protocol handshake may include: the charging device activates the power supply device through a pulse string to enter the UFCS fast charging protocol, and after activation enters the UFCS fast charging process, and then the power supply device can respond to the UFCS communication package request of the charging device.
[0081] It should be noted that if the target fast charging protocol handshake is successful, the first communication packet can be initiated by the charging device or the power supply device, and there is no limitation on this. If the target fast charging protocol handshake is unsuccessful, the charging device and the power supply device can use other fast charging protocols.
[0082] In an exemplary embodiment, Figure 4 As shown, step 202 includes steps 402 to 404 .
[0083] in:
[0084] Step 402, in response to the completion of the handshake between the charging device and the power supply device based on the target fast charging protocol, sending a communication packet to the power supply device;
[0085] Specifically, when the handshake between the charging device and the power supply device is successful, that is, the handshake between the charging device and the power supply device is completed based on the target fast charging protocol, the charging device can send a communication packet to the power supply device. For example, the power supply device can also send a communication packet to the charging device. After the charging device sends the communication packet to the power supply device, it can wait for feedback from the power supply device.
[0086] Taking the target fast charging protocol adopting the universal fast charging protocol UFCS, the charging device being a mobile phone, and the power supply device being an adapter as an example, after the UFCS handshake between the adapter and the mobile phone is successful, the mobile phone can initiate the first communication packet communication (the adapter can also initiate the first communication packet). After the communication packet sent by the mobile phone is sent to the adapter, it will wait for the reply of the UFCS command packet of the adapter, that is, the UFCS chip IC receives the UFCS fast charging interrupt. When it does not receive the interrupt, it will keep waiting for the interrupt.
[0087] Step 404 , in response to receiving a communication frame fed back by the power supply device based on the communication packet, configure the scheduling rule to increase the frequency of the processor until the data processing thread obtains the execution permission of the processor.
[0088] Specifically, when receiving a communication frame based on communication packet feedback from the power supply device, the charging device can configure the scheduling rules to increase the frequency of the processor, shorten the execution time of the processor, and thereby shorten the waiting time for the data processing thread to run, so as to quickly call the processing thread that processes the received communication frame and ensure timely scheduling of the data processing thread.
[0089] Among them, after the processor frequency is increased, the processor frequency can be restored to a normal level (for example, the frequency before the frequency increase) at an appropriate time, thereby preventing the charging device from heating up; optionally, the processor frequency can be restored to a normal level when the data processing thread obtains the execution authority of the processor.
[0090] In the embodiment of the present application, the data processing thread obtains the processor running permission and is scheduled to run. If the data processing thread has been scheduled by the processor, there is no need to perform frequency increase processing, and the processor frequency can be restored to a normal level. The processor can be implemented by a CPU, which is not limited in the embodiment of the present application.
[0091] In one embodiment, the method may further include:
[0092] Determine the frequency increase based on the frequency level that the charging equipment can support;
[0093] Boost the processor frequency according to the boost frequency.
[0094] Specifically, the frequency boosting frequency can be determined according to the frequency level that the charging device can support, and then the processor can be boosted according to the frequency boosting frequency, thereby shortening the execution time of each instruction of the processor and reducing the waiting time of the data processing thread.
[0095] Exemplarily, the frequency of the processor can be divided into levels, such as high\medium\low levels, and the frequency increase processing in this application can be to increase the processor frequency to the highest level. Taking the charging device as a mobile phone as an example, the main frequency of the mobile phone is 2Ghz, then the CPU frequency can be set to 2Ghz in the frequency increase processing. Optionally, taking the use of UFCS protocol analyzer and systrac system tools as an example, when the charging device adopts the charging control method provided in the embodiment of the present application, it can be detected that the charging device has a CPU frequency increase action each time a UFCS communication frame is received.
[0096] The above charging control method increases the frequency immediately upon receiving a hardware interrupt, and restores the normal frequency when data processing begins, thereby avoiding the problem of software processing hardware packets untimely, and optimizing the software design in the information interaction of the charging protocol, which can ensure fast packet sending for certain adapters and maintain fast charging communication without resetting when the mobile phone system is heavily loaded.
[0097] In an exemplary embodiment, using a communication processing strategy corresponding to a target fast charging protocol to process a communication frame from a power supply device may include:
[0098] In response to triggering the preemption prohibition condition, the scheduling rule is configured to instruct the execution processor of the data processing thread to enter a shutdown scheduling mode until the data processing thread is executed; the shutdown scheduling mode is used to indicate a mode of stopping responding to the scheduling of the charging device.
[0099] Specifically, the scheduling rule is configured to instruct the execution processor of the data processing thread to enter the shutdown scheduling mode, thereby avoiding the situation where the processor is scheduled out when the execution thread is executed. The embodiment of the present application can match the multi-tasking operating system, and by occupying the processor scheduling during the data processing of the communication frame, the low probability of untimely processing is greatly reduced.
[0100] Among them, the shutdown scheduling mode instructs the execution processor of the data processing thread to stop responding to the scheduling of the processor by the charging device. Exemplarily, the shutdown scheduling mode may include a mode in a hard interrupt (also known as a hardware interrupt), and a mode in which an atomic lock is included. It should be noted that, taking the processor as a CPU and the charging device as a terminal device as an example, when a thread in the CPU is holding a lock such as an atomic lock that prohibits process preemption mechanism, the terminal device can determine that the CPU is in the shutdown scheduling mode.
[0101] Furthermore, the preemption prohibition condition can be used to determine whether the execution processor of the data processing thread is currently triggered to enter the shutdown scheduling mode. Exemplarily, the preemption prohibition condition can be determined based on each communication event between the charging device and the power supply device under the target fast charging protocol, for example, within the processing time for the same communication event, it is ensured that the execution processor of the data processing thread is not scheduled out.
[0102] In one of the embodiments, the preemption prohibition condition includes that a plurality of consecutive communication frames belong to the same communication event;
[0103] The scheduling rule includes instructing the execution processor of the data processing thread to be in a mode of running an atomic lock during the processing time of each communication frame belonging to the same communication event.
[0104] Specifically, the preemption prohibition condition may include that a plurality of consecutive communication frames belong to the same communication event, that is, within the processing time of each communication frame of the same communication event, the execution processor of the data processing thread is indicated to be in the shutdown scheduling mode; wherein the shutdown scheduling mode may refer to the execution processor of the data processing thread being in the mode of running the atomic lock. Further, the atomic lock of the processor may be released after the thread is executed, wherein the thread execution may refer to the completion of the processing of the current communication event.
[0105] Taking the processor as a CPU as an example, within a certain communication event, the data processing thread holds the atomic lock of the CPU scheduling, and then the thread can always obtain the permission of the CPU scheduling, which can greatly reduce the low probability of untimely processing.
[0106] Among them, each communication frame in the same communication event can be understood as a communication frame contained in an operation unit of the charging device and the power supply device. The operation unit can refer to all commands included in the power supply device and the charging device to complete a basic function.
[0107] For example, taking the power supply device as an adapter and the charging device as a mobile phone as an example, the mobile phone needs to obtain the device information function of the adapter (the mobile phone first sends a getdeviceinfo communication frame to the adapter, the adapter replies with an ack communication frame, and then the adapter sends the deviceinfo communication frame to the mobile phone, and the mobile phone replies with an ack communication frame to the adapter), and the operation unit includes 4 communication frames. For another example, the mobile phone applies for the charging voltage and charging current functions from the adapter (the mobile phone sends a request communication packet to the adapter, the adapter replies with an ack communication frame, the adapter replies with an accept communication frame to the mobile phone, the mobile phone replies with an ack communication frame to the adapter, the adapter sends a power_ready communication frame to the mobile phone, and the mobile phone replies with an ack communication frame), that is, the operation unit includes 6 communication frames.
[0108] In the above charging control method, in a certain operation unit, the data processing thread holds the atomic lock of the CPU scheduling, so that the data processing thread always obtains the authority of the CPU scheduling, which can greatly reduce the low probability of untimely processing. Optionally, taking the use of the UFCS protocol analyzer and the system tool of systrac as an example, when the charging device adopts the charging control method provided in the embodiment of the present application, it can be detected that the data processing thread has been occupying the CPU in the UFCS operation unit command every time a UFCS communication frame is received.
[0109] It should be noted that by increasing the CPU frequency and continuously occupying the CPU scheduling authority, UFCS fast charging communication can be well maintained without resetting. In the case where the CPU frequency is increased and the CPU scheduling authority is continuously occupied, which aggravates the heating of the mobile phone during charging, it can be solved from the perspective of the UFCS chip. For example, the chip detects whether the mobile phone can process it in time. If not, the adapter is configured to resend the communication packet.
[0110] In an exemplary embodiment, the communication processing strategy is also used to indicate the processing rules for processing the communication frame; Figure 5 As shown, step 202 includes steps 502 to 504. Among them:
[0111] Step 502, running a data processing thread to parse a communication frame and obtain a command value of a communication command from a power supply device;
[0112] Specifically, the charging device can parse the current communication frame, obtain the communication command sent by the power supply device, and obtain the command value cmd of the command; and then confirm whether the current communication frame meets the communication condition according to the command value cmd.
[0113] Step 504, configuring the processing rule to respond to the communication command and update the marking information if it is determined that the communication command meets the communication condition according to the command value and the marking information corresponding to the communication frame;
[0114] The communication condition includes: the communication command is the next command of the most recently executed command in the command sequence corresponding to the current communication event, or the communication command is the next-next command of the most recently executed command in the command sequence corresponding to the current communication event.
[0115] Specifically, when the command value of the communication command is obtained, it is possible to determine whether the communication command meets the communication conditions based on the command value and the mark information corresponding to the communication frame. If the communication conditions are met, the communication command is responded to and the mark information is updated without performing a reset operation, ensuring that fast charging communication can be maintained well without resetting for certain fast packet sending and when the system is heavily loaded.
[0116] Exemplarily, the tag information corresponding to the communication frame can be used to confirm the order in which the communication command is received in the command sequence corresponding to the current communication event, so as to serve as a mark for determining whether the charging device has no time to read the communication data.
[0117] The communication condition may be that the communication command is the next command of the most recently executed command in the command sequence corresponding to the current communication event. Taking the communication event referring to the operation unit as an example, if the communication command is determined to be the next command of the current operation unit based on the command value and the tag information corresponding to the communication frame, the communication frame sent by the power supply device is considered normal, and the communication command can be responded to.
[0118] Optionally, the communication condition may be that the communication command is the next command of the most recently executed command in the command sequence corresponding to the current communication event. Taking the communication event referring to the operation unit as an example, if the communication command is determined to be the next command of the current operation unit based on the command value and the tag information corresponding to the communication frame, the communication frame sent by the power supply device is still considered normal and can respond to the communication command, thereby avoiding the reset due to the low probability of communication packet loss caused by the untimely scheduling of the data processing thread.
[0119] It should be noted that the communication command is the next command of the most recently executed command in the command sequence corresponding to the current communication event. It is caused by the data processing thread of the charging device lagging behind the interrupt processing, resulting in the data processing thread processing after the sender sends two interrupts. Take the power supply device as an adapter and the charging device as a mobile phone as an example. For example, if the mobile phone sends a request communication packet to the adapter, the adapter sends an ack to the mobile phone, and the mobile phone does not have time to process it, and the adapter will continue to send an accept communication packet to the mobile phone. At this time, the mobile phone can process it, but what is received at this time is the accept communication packet, not the expected ack packet. In this process, the accept communication packet is the next command of the request communication packet.
[0120] In the above situation, unlike the traditional solution that determines that a communication anomaly has occurred and instructs the mobile phone to perform a reset operation, the embodiment of the present application determines that the above situation is normal by confirming that the current communication command satisfies the communication condition detection, that is, conditionally allowing one frame to be lost, while avoiding the loss of too many frames and the inability of the software to obtain the intermediate frame information. At the same time, it matches the target fast charging protocol of the one-send-one-receive mechanism, and can handle the rapid packet sending of some adapters and the low probability of communication packet loss and reset when the mobile phone system is heavily loaded and the data processing thread is not scheduled in time.
[0121] In an exemplary embodiment, the method may further include:
[0122] In response to receiving a communication frame, the processing rule is configured to count a counter, and the count value of the counter is used as the tag information corresponding to the communication frame.
[0123] Specifically, each time a chip hardware interrupt is received, the charging device may increase the count irq_count by 1; wherein irq_count may be used to determine whether the charging device has no time to read the chip data.
[0124] In one embodiment, updating the marking information includes:
[0125] Reset the counter to zero.
[0126] Specifically, when the communication command meets the communication condition, the charging device responds to the communication command, for example, continues the next step of the current operation unit, and clears irq_count to 0.
[0127] In one embodiment, the method may further include:
[0128] The processing rule is configured to execute a reset operation if it is determined that the communication command does not meet the communication condition according to the command value and the tag information corresponding to the communication frame.
[0129] Specifically, if the communication command does not meet the communication conditions, the charging device can perform a reset operation. Taking the power supply device as an adapter and the charging device as a mobile phone as an example, the reset can include the following two actions: ① The mobile phone uses the UFCS chip to pull down D- for more than 1ms. The adapter detects that D- is pulled down for more than 1ms, and the UFCS adapter writes the chip's RESET register to return the entire chip to its initial default state; ② The mobile phone writes the chip's RESET register to return the entire chip to its initial default state.
[0130] In order to further illustrate the solution of the embodiment of the present application, a specific example is given below. Figure 6 As shown, taking the power supply device as an adapter, the charging device as a mobile phone, the target fast charging protocol as UFCS, and the mobile phone system as an Android operating system as an example, the implementation process of the charging control method may include:
[0131] 1. When the phone is plugged into the adapter, the phone detects that the adapter is plugged in and sends a pulse string to the adapter on D- to activate the adapter to enter the UFCS fast charging protocol. After the adapter receives the pulse string, if it is a UFCS adapter, it will pull up D+. If the phone detects that D+ is pulled up, it means that the UFCS handshake between the adapter and the phone is successful, otherwise other fast charging protocols are used.
[0132] 2. Taking the UFCS protocol as an example, the mobile phone initiates the communication process (that is, the mobile phone first initiates the first communication packet communication, and of course the adapter can also initiate the first communication packet). After the mobile phone sends the communication packet (including the communication command) to the adapter, it waits for the adapter's reply, that is, the UFCS chip IC receives the UFCS fast charging interrupt. When it does not receive the interrupt, it keeps waiting for the interrupt. If the data hardware interrupt reported by the UFCS chip to the mobile phone CPU is received. In order to be able to quickly call the processing thread that processes the received communication frame, the embodiment of the present application proposes to increase the frequency of the mobile phone (that is, to shorten the execution time of each instruction of the CPU), thereby shortening the waiting time for the data processing thread to run. Among them, it is necessary to restore the CPU frequency to a normal level at an appropriate time (to cope with the situation where the frequency increase will inevitably cause a certain degree of heating). Each time a UFCS chip hardware interrupt is received, the count irq_count is increased by 1, and the subsequent irq_count will be used to mark whether the mobile phone has no time to read the UFCS chip data. Then load the UFCS data processing thread to the CPU's running queue and wait for it to run.
[0133] 3. The data processing thread obtains the CPU running authority and is scheduled to run. When the data processing thread has been scheduled by the CPU, the CPU frequency is restored to the normal level (no need to increase the frequency again). The Android operating system is a multi-tasking operating system (when executing a thread, the CPU time slice running time is up and it will be scheduled out), and in the embodiment of the present application, the CPU will not be scheduled out within the operating unit of the mobile phone and the adapter, where the operating unit may refer to all the commands included in the completion of a basic function of the adapter and the mobile phone. In a certain operating unit, the data processing thread holds the atomic lock of the CPU scheduling, and then the thread can always obtain the authority of the CPU scheduling, which can greatly reduce the low probability of untimely processing.
[0134] 4. Parse the current communication frame and obtain the UFCS command sent by the adapter (and obtain the current command value cmd). If the command is the next command of the current operation unit and irq_count=1, or the command is the next command of the current operation unit and irq_count=2, the communication frame sent by the adapter is considered normal.
[0135] When the command is the next command of the current operation unit and irq_count = 2 (this happens because the data processing thread on the mobile phone lags behind the interrupt processing, resulting in the data processing thread processing after UFCS sends two interrupts), for example, in the communication event where the mobile phone applies to the adapter for the charging voltage and charging current functions, if the mobile phone sends a request communication packet to the adapter, the adapter replies with an ack communication frame, and this ack command is the next command of the request command, irq_count = 1. If the adapter sends an ack communication frame to the mobile phone, irq_count = 1, but the mobile phone processing thread does not have time to process it, and then the adapter sends an accept communication frame, and then the accept command is the next command of the request, irq_count = 2, in this case, the mobile phone confirms that it is a normal situation. That is, the command expected by the operation unit is normal, and the next step of the operation unit is continued, and irq_count is cleared to 0. After the thread is executed, the atomic lock of the CPU operation will be released.
[0136] The above-mentioned charging control method can handle the rapid packet transmission of certain adapters and the low probability of communication packet loss and reset when the data processing thread is not scheduled in time due to heavy load of the mobile phone system. The embodiment of the present application provides a software optimization design scheme based on UFCS information interaction, which can circumvent the problem of software processing hardware packet transmission in a timely manner in a variety of ways: on the one hand, the frequency is immediately increased upon receiving a hardware interrupt, and the normal frequency is restored when data processing begins; on the other hand, the CPU scheduling is always occupied during data processing; on the other hand, one frame loss is allowed under conditional judgment. The present application can ensure that UFCS fast charging communication can be well maintained without reset for certain adapters that send packets quickly and when the mobile phone system is heavily loaded.
[0137] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0138] Based on the same inventive concept, the embodiment of the present application also provides a charging control device for implementing the charging control method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more charging control device embodiments provided below can refer to the limitations of the charging control method above, and will not be repeated here.
[0139] In an exemplary embodiment, Figure 7 As shown, a charging control device is provided, comprising:
[0140] The charging processing module 701 is used to process the communication frames from the power supply device in response to determining that the connected power supply device currently supports the target fast charging protocol, using the communication processing strategy corresponding to the target fast charging protocol; wherein the communication processing strategy is used to indicate the scheduling rules of the data processing thread that processes the communication frame.
[0141] In one embodiment, the target fast charging protocol includes a universal fast charging protocol; and the apparatus further includes:
[0142] A protocol handshake module, configured to perform a universal fast charging protocol handshake with the power supply device in response to the charging device being electrically connected to the power supply device;
[0143] The protocol support determination module is used to determine that the power supply device currently supports the universal fast charging protocol based on a successful handshake of the universal fast charging protocol.
[0144] In one of the embodiments, the charging processing module 701 is used to configure the scheduling rules to instruct the execution processor of the data processing thread to enter the shutdown scheduling mode in response to triggering the preemption prohibition condition until the data processing thread is executed; the shutdown scheduling mode is used to indicate a mode of stopping responding to the scheduling of the charging device.
[0145] In one of the embodiments, the preemption prohibition condition includes that a plurality of consecutive communication frames belong to the same communication event;
[0146] The scheduling rule includes instructing the execution processor of the data processing thread to be in a mode of running an atomic lock during the processing time of each communication frame belonging to the same communication event.
[0147] In one embodiment, the charging processing module 701 includes:
[0148] A communication packet sending module, configured to send a communication packet to the power supply device in response to the completion of a handshake between the charging device and the power supply device based on a target fast charging protocol;
[0149] The frequency increasing module is used to configure the scheduling rules to increase the frequency of the processor in response to receiving the communication frame fed back by the power supply device based on the communication packet, until the data processing thread obtains the execution permission of the processor.
[0150] In one of the embodiments, the frequency boosting module is used to determine the frequency boosting frequency according to the frequency level that the charging device can support; and boost the frequency of the processor according to the frequency boosting frequency.
[0151] In one embodiment, the communication processing strategy is also used to indicate a processing rule for processing a communication frame; the charging processing module 701 includes:
[0152] A command value acquisition module, used for running a data processing thread to parse a communication frame and obtain a command value of a communication command from a power supply device;
[0153] A command response module, configured to configure the processing rule to respond to the communication command and update the tag information if it is determined that the communication command meets the communication condition according to the command value and the tag information corresponding to the communication frame;
[0154] The communication condition includes: the communication command is the next command of the most recently executed command in the command sequence corresponding to the current communication event, or the communication command is the next-next command of the most recently executed command in the command sequence corresponding to the current communication event.
[0155] In one embodiment, the device further comprises:
[0156] The counting module is used to configure the processing rule to count the counter in response to receiving the communication frame, and use the count value of the counter as the marking information corresponding to the communication frame.
[0157] In one of the embodiments, the command response module is used to reset the counter to zero.
[0158] In one embodiment, the device further comprises:
[0159] The reset module is used to configure the processing rule to execute a reset operation if it is determined that the communication command does not meet the communication condition according to the command value and the tag information corresponding to the communication frame.
[0160] Each module in the above charging control device can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute the operations corresponding to each module.
[0161] In an exemplary embodiment, an electronic device is provided. The electronic device may be a terminal, and its internal structure diagram may be as shown in FIG. Figure 8As shown. The electronic device includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. Among them, the processor, the memory and the input / output interface are connected through a system bus, and the communication interface, the display unit and the input device are connected to the system bus through the input / output interface. Among them, the processor of the electronic device is used to provide computing and control capabilities. The memory of the electronic device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the electronic device is used to exchange information between the processor and the external device. The communication interface of the electronic device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a charging control method is implemented. The display unit of the electronic device is used to form a visually visible picture, which can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen, and the input device of the electronic device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the electronic device casing, or an external keyboard, touchpad or mouse.
[0162] Those skilled in the art will understand that Figure 8 The structure shown in the figure is merely a block diagram of a partial structure related to the scheme of the present application, and does not constitute a limitation on the electronic device to which the scheme of the present application is applied. The specific electronic device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
[0163] In an exemplary embodiment, an electronic device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the charging control method when executing the computer program.
[0164] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the charging control method are implemented.
[0165] In one embodiment, a computer program product is provided, comprising a computer program, which implements the steps in the charging control method when executed by a processor.
[0166] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0167] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0168] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A charging control method, characterized in that: Applied to a charging device, the method comprises: In response to determining that the connected power supply device currently supports a target fast charging protocol, adopting a communication processing strategy corresponding to the target fast charging protocol to process a communication frame from the power supply device; The communication processing strategy is used to indicate a scheduling rule for a data processing thread that processes the communication frame.
2. The method according to claim 1, characterized in that: The target fast charging protocol includes a universal fast charging protocol; and the method further includes: In response to the charging device being electrically connected to the power supply device, performing a universal fast charging protocol handshake with the power supply device; Based on the success of the universal fast charging protocol handshake, it is determined that the power supply device currently supports the universal fast charging protocol.
3. The method according to claim 1 or 2, characterized in that: The adopting a communication processing strategy corresponding to the target fast charging protocol to process a communication frame from the power supply device includes: In response to triggering a preemption-prevention-prohibiting condition, the scheduling rule is configured to instruct the execution processor of the data processing thread to enter a shutdown scheduling mode until the data processing thread is executed; the shutdown scheduling mode is used to indicate a mode of stopping responding to the scheduling of the charging device.
4. The method according to claim 3, characterized in that: The preemption prohibition condition includes that a plurality of consecutive communication frames belong to the same communication event; The scheduling rule includes instructing the execution processor of the data processing thread to be in a mode of running an atomic lock during the processing time of each of the communication frames belonging to the same communication event.
5. The method according to claim 1 or 2, characterized in that: The adopting a communication processing strategy corresponding to the target fast charging protocol to process a communication frame from the power supply device includes: In response to the completion of the handshake between the charging device and the power supply device based on the target fast charging protocol, sending a communication packet to the power supply device; In response to receiving a communication frame fed back by the power supply device based on the communication packet, the scheduling rule is configured to increase the frequency of the processor until the data processing thread obtains the execution permission of the processor.
6. The method according to claim 5, characterized in that The method further comprises: Determining a frequency increase frequency according to a frequency level that the charging device can support; The processor is frequency-increased according to the frequency-increased frequency.
7. The method according to claim 1 or 2, characterized in that: The communication processing strategy is also used to indicate a processing rule for processing the communication frame; The adopting a communication processing strategy corresponding to the target fast charging protocol to process a communication frame from the power supply device includes: Running the data processing thread to parse the communication frame to obtain a command value of a communication command from the power supply device; The processing rule is configured to respond to the communication command and update the marking information if it is determined that the communication command meets the communication condition according to the command value and the marking information corresponding to the communication frame; The communication condition includes: the communication command is the next command of the most recently executed command in the command sequence corresponding to the current communication event, or the communication command is the next-next command of the most recently executed command in the command sequence corresponding to the current communication event.
8. The method according to claim 7, characterized in that The method further comprises: In response to receiving the communication frame, the processing rule is configured to count a counter, and the count value of the counter is used as the tag information corresponding to the communication frame.
9. The method according to claim 8, characterized in that The updating of the marking information comprises: Reset the counter to zero.
10. The method according to claim 7, characterized in that The method further comprises: The processing rule is configured to execute a reset operation if it is determined that the communication command does not meet the communication condition based on the command value and the tag information corresponding to the communication frame.
11. A charging control device, characterized in that: Applied to charging equipment, the device comprises: A charging processing module is used to, in response to determining that the connected power supply device currently supports a target fast charging protocol, adopt a communication processing strategy corresponding to the target fast charging protocol to process communication frames from the power supply device; wherein the communication processing strategy is used to indicate the scheduling rules of the data processing thread that processes the communication frames.
12. An electronic device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 10 are implemented.
13. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.
14. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.