Communication method for reducing time delay of motor controller and motor controller

By using duplex communication between the main controller and the drive controller in the motor controller, data is sent alternately through the UART and SPI interfaces, the problem of delay in the dual motor controller is solved, and more efficient data transmission and control is achieved efficiency.

CN119472231APending Publication Date: 2025-02-18广东兴颂科技有限公司
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411446031.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-16
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

In the prior art, dual motor controllers require time to transmit data between controllers, resulting in delay and affect control efficiency.

Method used

By introducing the main controller and the drive controller into the motor controller, and alternately sending control data and receiving feedback data through two communication ports (UART interface and SPI interface), communication congestion is avoided and duplex communication effect is formed.

Benefits of technology

Theoretically, the communication delay is reduced by half, which improves the efficiency of data transmission and improves the control efficiency of the motor controller.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119472231A_ABST
    Figure CN119472231A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of motors, in particular to a communication method for reducing time delay of a motor controller and the motor controller, the motor controller comprises a main controller and a driving controller, and the main controller is in communication connection with the driving controller; the main controller and the driving controller are in communication connection through two communication ports; the main controller alternately sends control data to the driving controller through the two communication ports at intervals of a set transmission period; when the driving controller receives the control data for the first time, sending first feedback data to the main controller by adopting another communication port different from the main controller; according to the invention, the transmission time delay of the motor controller can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of motor technology, and in particular to a communication method for reducing the time delay of a motor controller and a motor controller. Background Art

[0002] In the related technology, the dual-motor controller uses one controller to receive and feedback user commands, and uses two independent controllers to control the two motors respectively. Since data transmission between controllers takes a certain amount of time, delays occur, affecting control efficiency. Therefore, reducing the transmission delay of the motor controller has become a technical problem that the industry hopes to solve. Summary of the invention

[0003] In view of this, an embodiment of the present invention aims to provide a communication method and a motor controller for reducing the delay of a motor controller, so as to solve one or more technical problems existing in the prior art and provide at least one beneficial option or create conditions.

[0004] On the one hand, an embodiment of the present invention provides a motor controller, the motor controller comprising a main controller and a drive controller, the main controller and the drive controller are communicatively connected; The main controller and the drive controller are communicatively connected via two communication ports; The main controller is used to send control data to the drive controller alternately through the two communication ports every set transmission period; The drive controller is used to send first feedback data to the main controller by using another communication port different from that of the main controller when receiving the control data for the first time.

[0005] Optionally, the drive controller is connected to a motor, and the main controller is communicatively connected to the drive controller via a communication bus; The main controller is used to receive control instructions from the user and generate corresponding control data, and send the control data to the drive controller; The drive controller is used to control the operation of the motor according to the control data.

[0006] Optionally, there are two drive controllers, the main controller is connected to the two drive controllers respectively, and the two drive controllers are communicatively connected via the communication bus.

[0007] Optionally, the two communication ports are respectively a UART interface and an SPI interface; the main controller and the drive controller are respectively communicated via the UART interface and the SPI interface; The main controller is used to send control data to the drive controller alternately through the UART interface and the SPI interface every set transmission cycle; The drive controller is used to receive feedback data through the SPI interface when the main controller sends control data through the UART interface; when the main controller sends control data through the SPI interface, receive feedback data through the UART interface.

[0008] Optionally, the transmission period is pre-acquired in the following manner: Control the main controller to send control data to the drive controller; Recording the time when the main controller sends the control data as a first timestamp; Recording the time when the drive controller receives the control data as a second timestamp; A time difference between the first timestamp and the second timestamp is determined as a transmission period.

[0009] On the other hand, an embodiment of the present invention provides a method for reducing the delay of a motor controller, wherein the motor controller includes a main controller and two drive controllers, wherein the main controller is connected to the two drive controllers respectively; the main controller and the drive controllers are connected to each other through two communication ports; The method comprises the following steps: The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle; wherein the transmission cycle is the time difference between the main controller sending the control data and the drive controller receiving the control data; When the drive controller receives the control data for the first time, it uses another communication port different from that of the main controller to send the first feedback data to the main controller.

[0010] Optionally, the drive controller is connected to the motor, the main controller is respectively connected to the two drive controllers for communication via a communication bus, and the two drive controllers are connected to each other for communication via the communication bus; the method further includes: The main controller receives the user's control instruction and generates corresponding control data, and sends the control data to the drive controller; The drive controller controls the operation of the motor according to the control data.

[0011] Optionally, the two communication ports are respectively a UART interface and an SPI interface; the main controller and the drive controller are respectively communicated via the UART interface and the SPI interface; The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle, including: The main controller sends control data to the drive controller alternately through the UART interface and the SPI interface every set transmission cycle.

[0012] Optionally, when the drive controller receives the control data for the first time, the drive controller uses another communication port different from that of the main controller to send first feedback data to the main controller, including: The drive controller receives feedback data through the SPI interface when the main controller sends control data through the UART interface; and receives feedback data through the UART interface when the main controller sends control data through the SPI interface.

[0013] Optionally, the method further comprises: Control the main controller to send control data to the drive controller, and record the time when the main controller sends the control data as a first timestamp; When the drive controller receives the control data, recording the time when the drive controller receives the control data as a second timestamp; A time difference between the first timestamp and the second timestamp is determined as a transmission period.

[0014] The embodiment of the present invention includes the following beneficial effects: In this embodiment, the main controller and the drive controller are connected to each other through two communication ports. The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle. When the drive controller receives the control data for the first time, it uses another communication port different from the main controller to send the first feedback data to the main controller. Since the communication between the main controller and the drive controller is performed alternately through the two communication ports, communication congestion can be avoided, forming a duplex communication effect, and theoretically the communication delay can be reduced by half, thereby improving the efficiency of data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.

[0016] Figure 1 is a structural block diagram of a motor controller provided by an embodiment of the present invention; Figure 2 1 is a schematic flow chart of steps of a method for reducing time delay of a motor controller provided by an embodiment of the present invention; Figure 3 It is a structural block diagram of a motor controller in the prior art; Figure 4yes Figure 3 Communication timing diagram of the motor controller; Figure 5 yes Figure 1 Communication timing diagram of the motor controller. DETAILED DESCRIPTION

[0017] 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.

[0018] It should be noted that, 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.

[0019] In addition, described feature, structure or characteristic can be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present application. However, those skilled in the art will appreciate that the technical scheme of the present application can be put into practice without one or more of the specific details, or other methods, components, devices, steps, etc. can be adopted. In other cases, known methods, devices, realizations or operations are not shown or described in detail to avoid blurring the various aspects of the present application.

[0020] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities may be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.

[0021] The flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps can be decomposed, and some operations / steps can be combined or partially combined, so the actual execution order may change according to actual conditions.

[0022] In related technologies, the delay can be reduced to a certain extent by increasing the baud rate of communication, but too high a baud rate will cause the bit error rate to increase, affecting the effective control of the motor. At the same time, the baud rate is also limited by the main frequency of the controller, so the baud rate cannot be increased after reaching a certain number, which has certain limitations.

[0023] To this end, the present invention provides a communication method and a motor controller for reducing the delay of a motor controller, which increases the execution return cycle of instructions by adopting multiple communication paths, thereby reducing the delay.

[0024] like Figure 1 As shown, Figure 1 A motor controller provided by an embodiment of the present invention comprises a main controller and a drive controller, wherein the main controller and the drive controller are in communication connection; The main controller and the drive controller are communicatively connected via two communication ports; The main controller is used to send control data to the drive controller alternately through the two communication ports every set transmission period; The drive controller is used to send first feedback data to the main controller by using another communication port different from that of the main controller when receiving the control data for the first time.

[0025] In the embodiment provided by the present invention, the main controller and the drive controller are connected to each other through two communication ports. The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle. When the drive controller receives the control data for the first time, it uses another communication port different from the main controller to send the first feedback data to the main controller. Since the communication between the main controller and the drive controller is carried out alternately through the two communication ports, communication congestion can be avoided, forming the effect of duplex communication, and theoretically the communication delay can be reduced by half, thereby improving the efficiency of data transmission.

[0026] In some embodiments, the drive controller is connected to the motor, and the main controller is in communication connection with the drive controller via a communication bus; The main controller is used to receive control instructions from the user and generate corresponding control data, and send the control data to the drive controller; The drive controller is used to control the operation of the motor according to the control data.

[0027] In this embodiment, the interaction with the user is achieved through the main controller. After receiving the user's control instruction, the corresponding control data is generated and sent to the drive controller, so that the operating state of the motor is adjusted through the drive controller.

[0028] In some embodiments, there are two drive controllers, the main controller is connected to the two drive controllers respectively, and the two drive controllers are communicatively connected via the communication bus.

[0029] In this embodiment, the main controller is communicatively connected with the two drive controllers respectively through a communication bus, and the two drive controllers are communicatively connected with each other through the communication bus; the communication bus can support multiple communication protocols, realize direct communication between the main controller and the drive controllers, and between the drive controllers, and realize high-speed data transmission.

[0030] In some embodiments, the two communication ports are respectively a UART interface and an SPI interface; the main controller and the drive controller are respectively communicated via the UART interface and the SPI interface; The main controller is used to send control data to the drive controller alternately through the UART interface and the SPI interface every set transmission cycle; The drive controller is used to receive feedback data through the SPI interface when the main controller sends control data through the UART interface; when the main controller sends control data through the SPI interface, receive feedback data through the UART interface.

[0031] In the embodiment provided by the present invention, by adopting the UART (Universal Asynchronous Receiver / Transmitter) interface and the SPI (Serial Peripheral Interface) interface, the UART interface is based on asynchronous communication and uses two ports (transmitting port and receiving port) for communication, but is simple and easy to use. The SPI interface is based on synchronous communication and usually requires four lines (master output slave input line, master input slave output line, clock line, chip select line), with a fast transmission speed, suitable for high-speed data transmission. In this embodiment, the main controller sends control data to the drive controller alternately through the UART interface and the SPI interface, and data transmission can be performed independently. The most suitable interface is selected according to different communication requirements to reduce communication delay. It is suitable for motor control systems that require high-speed and reliable communication, especially in the fields of industrial automation, robot control, etc.

[0032] In some embodiments, the transmission period is pre-acquired by: Control the main controller to send control data to the drive controller; Recording the time when the main controller sends the control data as a first timestamp; Recording the time when the drive controller receives the control data as a second timestamp; A time difference between the first timestamp and the second timestamp is determined as a transmission period.

[0033] In the embodiment provided by the present invention, by measuring the actual transmission time of the control data, the change of the communication delay can be detected and adapted, and the transmission period can be dynamically adjusted according to the actual communication conditions to adapt to different communication environments and load changes, thereby improving the reliability of communication. This embodiment can determine the transmission period more accurately, which is conducive to optimizing communication efficiency and reducing delay.

[0034] like Figure 2 As shown, Figure 2 A method for reducing the time delay of a motor controller provided by an embodiment of the present invention, the motor controller comprises a main controller and two drive controllers, the main controller is connected to the two drive controllers respectively; the main controller and the drive controllers are connected to each other through two communication ports; The method comprises the following steps: S100, the main controller sends control data to the drive controller alternately through two communication ports every set transmission period; wherein the transmission period is the time difference between the main controller sending the control data and the drive controller receiving the control data; S200, when the driving controller receives the control data for the first time, the driving controller sends first feedback data to the main controller by using another communication port different from that of the main controller.

[0035] In the embodiment provided by the present invention, the main controller and the drive controller are connected to each other through two communication ports. The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle. When the drive controller receives the control data for the first time, it uses another communication port different from the main controller to send the first feedback data to the main controller. Since the communication between the main controller and the drive controller is carried out alternately through the two communication ports, communication congestion can be avoided, forming the effect of duplex communication, and theoretically the communication delay can be reduced by half, thereby improving the efficiency of data transmission.

[0036] In some embodiments, the drive controller is connected to the motor, the main controller is respectively connected to the two drive controllers via a communication bus, and the two drive controllers are connected to each other via the communication bus; the method further includes: S310, the main controller receives a control instruction from the user and generates corresponding control data, and sends the control data to the drive controller; S320: A driving controller controls the operation of the motor according to the control data.

[0037] In this embodiment, the interaction with the user is achieved through the main controller. After receiving the user's control instruction, the corresponding control data is generated and sent to the drive controller, so that the operating state of the motor is adjusted through the drive controller.

[0038] In some embodiments, the two communication ports are respectively a UART interface and an SPI interface; the main controller and the drive controller are respectively communicated via the UART interface and the SPI interface; The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle, including: The main controller sends control data to the drive controller alternately through the UART interface and the SPI interface every set transmission cycle.

[0039] In the embodiment provided by the present invention, by adopting the UART (Universal Asynchronous Receiver / Transmitter) interface and the SPI (Serial Peripheral Interface) interface, the UART interface is based on asynchronous communication and uses two ports (transmitting port and receiving port) for communication, but is simple and easy to use. The SPI interface is based on synchronous communication and usually requires four lines (master output slave input line, master input slave output line, clock line, chip select line), with a fast transmission speed, suitable for high-speed data transmission. In this embodiment, the main controller sends control data to the drive controller alternately through the UART interface and the SPI interface, and data transmission can be performed independently. The most suitable interface is selected according to different communication requirements to reduce communication delay. It is suitable for motor control systems that require high-speed and reliable communication, especially in the fields of industrial automation, robot control, etc.

[0040] In some embodiments, when the drive controller receives the control data for the first time, the drive controller uses another communication port different from the main controller to send the first feedback data to the main controller, including: The drive controller receives feedback data through the SPI interface when the main controller sends control data through the UART interface; and receives feedback data through the UART interface when the main controller sends control data through the SPI interface.

[0041] In the embodiment provided by the present invention, the drive controller and the main controller use the UART interface and the SPI interface alternately at the same time. Since the transmission cycles are basically the same, synchronous two-way communication can be achieved, minimizing the delay.

[0042] In some embodiments, the method further comprises: Control the main controller to send control data to the drive controller, and record the time when the main controller sends the control data as a first timestamp; When the drive controller receives the control data, recording the time when the drive controller receives the control data as a second timestamp; A time difference between the first timestamp and the second timestamp is determined as a transmission period.

[0043] In the embodiment provided by the present invention, by measuring the actual transmission time of the control data, the change of the communication delay can be detected and adapted, and the transmission period can be dynamically adjusted according to the actual communication conditions to adapt to different communication environments and load changes, thereby improving the reliability of communication. This embodiment can determine the transmission period more accurately, which is conducive to optimizing communication efficiency and reducing delay.

[0044] The following is an embodiment of a specific application scenario provided by the present invention: like Figure 3 , Figure 4 and Figure 5 As shown, in the figure, A represents a drive controller, B represents another drive controller, and C represents the main controller; Figure 3 The communication method in the prior art is that the main controller communicates with the drive controller A through the first UART interface and communicates with the drive controller B through the second UART interface. Figure 4 , the time required for data transmission is 1ms. Taking drive controller A as an example, the main controller starts transmitting data at 1ms and ends at 2ms. Drive controller A receives data at 2ms and then sends feedback data to the main controller. The main controller receives feedback data at 3ms. It can be said that a complete control feedback cycle is 2ms.

[0045] like Figure 5 As shown, the main controller communicates with the drive controller A through the first UART interface and the first SPI interface, and communicates with the drive controller B through the second UART interface and the second SPI interface, and the time required for data transmission is also 1 ms.

[0046] The main controller sends data to the drive controller A through the first UART interface at 1ms, and the transmission ends at 2ms; at 2ms, the drive controller A returns data to the main controller through the first UART interface, and the main controller sends data to the drive controller A through the first SPI interface; at 3ms, the main controller sends data to the drive controller A through the first UART interface, and the drive controller A returns data to the main controller through the first SPI interface. This regular cycle is executed, and starting from the 2ms, the execution cycle is increased from the original 2ms to 1ms.

[0047] The communication rules between the main controller and the drive controller B are the same as above.

[0048] It can be seen that in the embodiment provided by the present invention, the effect of full-duplex communication is achieved through the first UART interface and the first SPI interface, and the delay is theoretically reduced by half.

[0049] Those skilled in the art will appreciate that all or some of the steps in the methods disclosed above, and the functional modules / units in the systems and devices may be implemented as software, firmware, hardware, or a suitable combination thereof.

[0050] The terms "first", "second", "third", "fourth", etc. (if any) in the specification of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example: a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0051] It should be understood that in this application, "at least one (item)" means one or more, and "plurality" means two or more. "And / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the objects associated before and after are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.

[0052] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0053] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0054] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0055] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including multiple instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (Read-Only Memory, referred to as ROM), random access memory (Random Access Memory, referred to as RAM), disk or optical disk and other media that can store programs.

[0056] The preferred embodiments of the present application are described above with reference to the accompanying drawings, but the scope of the rights of the present application is not limited thereto. Any modification, equivalent substitution and improvement made by a person skilled in the art without departing from the scope and essence of the present application should be within the scope of the rights of the present application.

Claims

1. A motor controller, characterized in that: The motor controller comprises a main controller and a drive controller, and the main controller and the drive controller are communicatively connected; The main controller and the drive controller are communicatively connected via two communication ports; The main controller is used to send control data to the drive controller alternately through the two communication ports every set transmission period; The drive controller is used to send first feedback data to the main controller by using another communication port different from that of the main controller when receiving the control data for the first time.

2. The motor controller according to claim 1, characterized in that: The drive controller is connected to the motor, and the main controller is in communication connection with the drive controller via a communication bus; The main controller is used to receive control instructions from the user and generate corresponding control data, and send the control data to the drive controller; The drive controller is used to control the operation of the motor according to the control data.

3. The motor controller according to claim 2, characterized in that: There are two drive controllers in total, the main controller is connected to the two drive controllers respectively, and the two drive controllers are communicatively connected via the communication bus.

4. The motor controller according to claim 1, characterized in that: The two communication ports are respectively a UART interface and an SPI interface; the main controller and the drive controller are respectively communicated via the UART interface and the SPI interface; The main controller is used to send control data to the drive controller alternately through the UART interface and the SPI interface every set transmission cycle; The drive controller is used to receive feedback data through the SPI interface when the main controller sends control data through the UART interface; when the main controller sends control data through the SPI interface, receive feedback data through the UART interface.

5. The motor controller according to claim 4, characterized in that: The transmission period is pre-acquired by: Control the main controller to send control data to the drive controller; Recording the time when the main controller sends the control data as a first timestamp; Recording the time when the drive controller receives the control data as a second timestamp; A time difference between the first timestamp and the second timestamp is determined as a transmission period.

6. A method for reducing the time delay of a motor controller, characterized in that: The motor controller comprises a main controller and two drive controllers, wherein the main controller is connected to the two drive controllers respectively; the main controller and the drive controllers are connected to each other through two communication ports; The method comprises the following steps: The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle; wherein the transmission cycle is the time difference between the main controller sending the control data and the drive controller receiving the control data; When the drive controller receives the control data for the first time, it uses another communication port different from that of the main controller to send the first feedback data to the main controller.

7. The method according to claim 6, characterized in that The drive controller is connected to the motor, the main controller is respectively connected to the two drive controllers via a communication bus, and the two drive controllers are connected to each other via the communication bus; the method further includes: The main controller receives the user's control instruction and generates corresponding control data, and sends the control data to the drive controller; The drive controller controls the operation of the motor according to the control data.

8. The method according to claim 6, characterized in that The two communication ports are respectively a UART interface and an SPI interface; the main controller and the drive controller are respectively communicated via the UART interface and the SPI interface; The main controller sends control data to the drive controller alternately through the two communication ports every set transmission cycle, including: The main controller sends control data to the drive controller alternately through the UART interface and the SPI interface every set transmission cycle.

9. The method according to claim 8, characterized in that When the drive controller receives the control data for the first time, the drive controller uses another communication port different from the main controller to send first feedback data to the main controller, including: The drive controller receives feedback data through the SPI interface when the main controller sends control data through the UART interface; and receives feedback data through the UART interface when the main controller sends control data through the SPI interface.

10. The method according to claim 6, characterized in that The method further comprises: Control the main controller to send control data to the drive controller, and record the time when the main controller sends the control data as a first timestamp; When the drive controller receives the control data, recording the time when the drive controller receives the control data as a second timestamp; A time difference between the first timestamp and the second timestamp is determined as a transmission period.