On-vehicle system and electronic control device
The in-vehicle system addresses the challenge of packet loss in UDP communication by using a transmitting device with a transmission restriction unit to manage data transmission speed and retransmit lost packets, ensuring reliable and efficient data transfer over Ethernet.
Patent Information
- Application Number
- PCT/JP2023/039733
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-02
- Publication Date
- 2025-05-08
AI Technical Summary
In in-vehicle systems, the use of UDP for real-time communication over Ethernet can lead to packet loss due to exceeding the communication capacity, while TCP's retransmission function can disrupt other ECUs' communication. Existing solutions like speed limiting and scheduling are inefficient and require accurate estimation of communication path capabilities.
The system includes a transmitting device with a transmission processing unit, an ACK determination unit, and a transmission restriction unit. This setup allows for effective utilization of the communication path's capacity by comparing the amount of transmitted data with the acknowledged received data, limiting data transmission when necessary, and retransmitting lost packets.
This solution ensures reliable and efficient data transmission over Ethernet in in-vehicle systems by effectively managing data transmission speed and retransmitting lost packets, thereby improving communication speed and integrity.
Smart Images

Figure JP2023039733_08052025_PF_FP_ABST
Abstract
Description
In-vehicle systems and electronic control units
[0001] The present invention relates to an electronic control unit in an in-vehicle system.
[0002] An in-vehicle system is composed of electronic control units (ECUs) that operate electronic vehicle control devices, and multiple ECUs communicate via CAN, Ethernet, etc., working together to control the vehicle. In recent years, large volumes of data such as images are communicated between autonomous driving ECUs, and Ethernet is sometimes used as the communication path. Generally, the communication protocols used in Ethernet are UDP, which excels in real-time performance but does not guarantee packet arrival, and TCP, which guarantees packet arrival but has poor real-time performance.
[0003] In automotive systems, where real-time performance is important, UDP is used to design communication timing in advance, and reliability can be improved by preventing other ECUs from communicating while one ECU is communicating with another. In this case, packet transfer using UDP can result in packets being dropped if the communication capacity of the communication path is exceeded, so it is necessary to leave some leeway in the communication speed of the communication path, which tends to result in insufficient performance. On the other hand, TCP, which has a retransmission function, may retransmit outside the communication timing range, which could affect the communication of other ECUs.
[0004] Against this background, communication methods that ensure reliability using UDP have been studied, and include technologies such as those disclosed in the following patent documents. Patent document 1 (JP 2012-100165 A) describes a data transmission method for transmitting data from a transmitting device to a receiving device via a packet communication network, the data transmission method including a first step in which the transmitting device continuously transmits a plurality of packets to the receiving device, a second step in which the transmitting device receives acknowledgments sent from the receiving device indicating that the receiving device has received at least some of the plurality of packets, and a third step in which the transmitting device retransmits packets that were transmitted before the packets whose reception by the receiving device has been confirmed by the acknowledgments and for which no acknowledgments have been received.
[0005] Furthermore, Patent Document 2 (JP 2017-55336 A) describes a data communication control method for performing highly reliable packet communication in which the transmission volume fluctuates over time in a long-distance broadband network (LFN) having a transmission bandwidth of 10 Gbit / s or more, in which packet transmission loss occurs from the perspective of a user who transmits and receives data over the LFN, and (1) suppresses the influence of transmission delays in the LFN by returning acknowledgments (ACK) at predetermined equal time intervals, and (2) calculates a loss rate for the packet transmission loss and calculates the packet loss rate from the loss rate. (3) in packet transmission, a settable maximum transmittable information rate is searched for, and for a predetermined transmittable information rate equal to or less than the searched maximum transmittable information rate, a transmission rate control is performed at predetermined time intervals to cause the transmission rate of the packet transmission to converge to the predetermined transmittable information rate, thereby performing congestion control.
[0006] JP 2012-100165 A JP 2017-55336 A
[0007] Communication on Ethernet is carried out in units called packets. Packet loss during communication occurs more often when a packet processing request occurs that exceeds the limits of the communication path than due to noise on the transmission path or hardware failure. To avoid packet loss, methods are used such as limiting the speed on the sending side so that the capacity is not exceeded, or setting a schedule so that other ECUs do not communicate during that time.
[0008] However, when limiting the speed, it is necessary to accurately estimate the capacity of the communication path, as the limit may change if the hardware of the communication path is replaced, etc. Also, if a design is made with a margin to prepare for unexpected communication occurrences, the communication path will not be able to demonstrate its maximum performance.
[0009] The present invention has been made to solve the above problems, and aims to improve communication speed and ensure data integrity by retransmitting data when it is lost.
[0010] A representative example of the invention disclosed in the present application is as follows: That is, an in-vehicle system includes a first electronic control unit having a transmitting device for transmitting data, and a second electronic control unit having a receiving device for receiving the data, wherein the second electronic control unit has a receiving processing unit that tallies the amount of received data and an ACK transmitting unit that notifies the first electronic control unit of the amount of received data, and the first electronic control unit has a transmitting processing unit that controls the transmission of the data, an ACK determining unit that compares the amount of data that has already been transmitted with the amount of received data notified from the first electronic control unit, and a transmission limiting unit that limits data transmission based on the result of the comparison.
[0011] According to one aspect of the present invention, it is possible to transmit data by effectively utilizing the capacity of a communication path. Problems, configurations, and effects other than those described above will become apparent from the following description of the preferred embodiment of the present invention.
[0012] 1 is a configuration diagram of an in-vehicle system according to a first embodiment; FIG. 2 is a diagram illustrating details of a transmitting device according to a first embodiment; FIG. 3 is a diagram illustrating details of a communication relay device according to a first embodiment; FIG. 4 is a diagram illustrating details of a receiving device according to a first embodiment; FIG. 5 is a flowchart of a process executed by a transmission restriction unit according to a first embodiment; FIG. 6 is a flowchart of a process executed by an ACK transmitting unit according to a first embodiment;
[0013] Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0014] First Embodiment FIG. 1 is a diagram showing the configuration of an in-vehicle system according to a first embodiment of the present invention.
[0015] The in-vehicle system of the first embodiment includes a transmitting device 1 and a receiving device 3. The transmitting device 1 and the receiving device 3 are connected by a communication path 16 via a communication relay device 2. The transmitting device 1 transmits data, and the data transmitted from the transmitting device 1 reaches the receiving device 3 via the communication relay device 2 and is received by the receiving device 3.
[0016] The transmitting device 1 and the receiving device 3 may be implemented in separate electronic control devices as shown in Figure 1, but typically the transmitting device 1 and the receiving device 3 are implemented in a single electronic control device, and the electronic control device transmits and receives data to and from other electronic control devices.
[0017] The transmitting device 1 has a transmitting application 11, a transmission data storage unit 12, a transmission processing unit 13, a network adapter 14, an ACK receiving unit 41, an ACK determining unit 42, a transmission limiting unit 43, and a retransmission processing unit 44. In the transmitting device 1, the transmitting application 11 stores data in the transmission data storage unit 12. Then, the transmission processing unit 13 sends the data stored in the transmission data storage unit 12 to the network adapter 14. The network adapter 14 sends data 15 to a communication path 16. At this time, the transmission limiting unit 43 limits the amount of data to be transmitted.
[0018] The communication relay device 2 transfers the data 15 transmitted from the transmitting device 1 to the receiving device 3 .
[0019] The receiving device 3 includes a network adapter 14, a receiving processing unit 31, a received data storage unit 32, a received data determination unit 33, a receiving application 34, and an ACK transmission unit 35. In the receiving device 3, the receiving processing unit 31 tallies the amount of received data received by the network adapter 14 and stores the received data in the received data storage unit 32. The received data determination unit 33 evaluates the data stored in the received data storage unit 32 and passes the data to the receiving application 34 if reception of the entire data, i.e., reception of all packets constituting a block of data, is complete. The receiving device 3 transmits an ACK packet 36 created by the ACK transmission unit 35. The ACK packet 36 transmitted from the receiving device 3 reaches the transmitting device 1 via the communication relay device 2 and is received by the transmitting device 1. The ACK packet 36 transmitted from the receiving device 3 includes information on received packets, and may include, for example, a list of sequence numbers of received packets. The receiving device 3 notifies the transmitting device of the amount of received data using the information on received packets included in the ACK packet 36.
[0020] In the transmitting device 1, an ACK receiving unit 41 receives an ACK packet 36, and an ACK determining unit 42 determines the ACK packet 36. A retransmission processing unit 44 controls data transmission (for example, retransmits the data) in accordance with the determination result of the ACK packet 36 by the ACK determining unit 16. Furthermore, a transmission limiting unit 43 switches the data transmission limit from the transmission processing unit 13 between valid and invalid, and changes the data transmission speed.
[0021] The communication relay device 2 may not be a device independent of the transmitting device 1 or the receiving device 3, but may be built into the transmitting device 1 or the receiving device 3. The transmitting device 1 and the receiving device 2 may be directly connected to each other without going through the communication relay device 2. Importance information may be included in the data transmitted from the transmitting application 11. Depending on the importance information included in the transmitted data, the received data determination unit 33 may pass the data to the receiving application 33 upon receiving a portion of the important data (e.g., one packet) without waiting for the end of the data to be received. By placing the important data at the beginning of the data and transmitting the packet containing the important data first, the important data is passed to the receiving application 34 quickly, allowing the receiving application 34 to process the important data quickly.
[0022] FIG. 2 is a diagram showing details of the transmitting device 1 according to the first embodiment of the present invention.
[0023] The transmission processing unit 13 divides the transmission data 101 stored in the transmission data storage unit 12 into divided data 102. Since an upper limit on the packet size is set in a network (e.g., Ethernet), it is preferable to divide the transmission data 101 into sizes that do not exceed this upper limit.
[0024] The divided data 102 includes a sequence number 103, a total number of divided data 104, and a data body 105. The sequence number 103 is a unique number for distinguishing the divided data, and may be, for example, a monotonically increasing consecutive number. The total number of divided data 104 is the number of divided data 102 that make up a single piece of data.
[0025] The transmission processing unit 13 converts the divided data 102 into a communication packet 106 and transmits it to the communication path 16 via the network adapter 14. In the case of Ethernet, the communication packet 106 includes information such as an IP address indicating the destination device.
[0026] In response to a request to transmit a communication packet 106, the network adapter 14 stores the communication packet 106 in a transmission buffer 107, and transmits the communication packet 106 from the transmission buffer 107 to the communication path 16 when it becomes available for transmission to the communication path 16.
[0027] The ACK receiving unit 41 receives the ACK packet 36 transmitted by the receiving device 3 .
[0028] The ACK determination unit 42 determines the ACK packet 36 received by the ACK receiving unit 41. For example, the ACK determination unit 42 compares the number of packets transmitted by the transmitting device 1 with the number of packets received by the receiving device 3, and if the number of unreceived packets, which represents the amount of unreceived data, is greater than a predetermined threshold, the ACK determination unit 42 determines that an excessive number of packets has been transmitted and that a packet reception delay has occurred, and notifies the transmission restriction unit 43 of the determination result. If the transmission restriction unit 43 determines that the number of unreceived packets is greater than the predetermined threshold, the transmission restriction unit 43 restricts (e.g., temporarily suspends) the packet transmission process of the transmission processing unit 13 to reduce the packet transmission speed.
[0029] Furthermore, the ACK determination unit 42 determines the ACK packets 36 received by the ACK reception unit 41, and if there are any packets that have not been received by the receiving device 3 even after the designed allowable time for packet reception delay has elapsed, the retransmission processing unit 44 retransmits the unreceived divided data 102. The timing at which the retransmission processing unit 44 retransmits the divided data 102 may be each time an ACK packet 36 is received, after a plurality of ACK packets 36 have been received, or after transmission of all the divided data 102 has been completed.
[0030] Furthermore, in the case of a configuration in which important data is placed at the beginning of the data, the timing may be the timing at which it is determined that important data is missing.
[0031] The electronic control device in which the transmitting device 1 is implemented is a control device having an arithmetic unit and a storage device. The arithmetic unit is a processor (e.g., a microcomputer) that executes programs stored in the storage device. The arithmetic unit operates as a functional unit that provides various functions by executing predetermined programs. The storage device includes a non-volatile storage area and a volatile storage area. The non-volatile storage area includes a program area that stores programs executed by the arithmetic unit, and a data area that temporarily stores data used by the arithmetic unit when executing programs. The volatile storage area stores data used by the arithmetic unit when executing programs.
[0032] FIG. 3 is a diagram showing details of the communication relay device 2 according to the first embodiment of the present invention.
[0033] The communication relay device 2 has a function of analyzing the received communication packet 106, determining the destination, and relaying the packet, and includes a packet receiving unit 201, a packet transmitting unit 202, and a destination determining unit (not shown). The communication relay device 2 also has communication ports 203, each consisting of a packet receiving unit 201 and a packet transmitting unit 202, the number of which is equal to the number of communication partner devices.
[0034] The packet receiving unit 201 stores the received communication packet 106 in a relay buffer 204. The destination determining unit analyzes the destination information included in the communication packet 106 and determines the communication port 203 to output the received communication packet 106. The packet transmitting unit 202 of the communication port 203 corresponding to the analyzed destination transmits the communication packet 26 to the destination receiving device 3. This is the same as a typical well-known operation of a network device.
[0035] FIG. 4 is a diagram showing details of the receiving device 3 according to the first embodiment of the present invention.
[0036] When the communication packet 106 arrives at the network adapter 14, the receiving device 3 starts the receiving process.
[0037] The network adapter 14 stores the communication packet 106 arriving from the communication path 16 in the receive buffer 301. The reception processing unit 31 processes the communication packet 106 stored in the receive buffer 301. For example, the divided data reconstruction unit 302 analyzes the divided data 102 included in the communication packet 106, stores the number corresponding to the sequence number 103 in the received data list table 303, and stores the data body 105 in the received data storage unit 32.
[0038] The received data determination unit 33 refers to the received data list table 303 to determine whether all packets constituting a group of data have been received or whether the group of data is in the middle of being received, and if all packets have been received or if important data has been received, passes the data to the receiving application 34. The ACK packet creation unit 304 creates an ACK packet 36 including information on the packets that have been received, and sends it to the transmitting device 1.
[0039] The ACK transmitting unit 35 may transmit the ACK packet 36 at the timing when the communication packet 106 is received, or may transmit a thinned-out ACK packet 36 to reduce the load on the communication path. Alternatively, the ACK packet 36 may be transmitted repeatedly at a predetermined timing (for example, at a fixed time interval) to avoid the ACK not being transmitted when no packet is received at all.
[0040] The electronic control device in which the receiving device 3 is implemented is a control device having an arithmetic unit and a storage device. The arithmetic unit is a processor (e.g., a microcomputer) that executes programs stored in the storage device. The arithmetic unit operates as a functional unit that provides various functions by executing predetermined programs. The storage device includes a non-volatile storage area and a volatile storage area. The non-volatile storage area includes a program area that stores programs executed by the arithmetic unit, and a data area that temporarily stores data used by the arithmetic unit when executing programs. The volatile storage area stores data used by the arithmetic unit when executing programs.
[0041] 5A and 5B are flowcharts of the process executed by the transmission restriction unit 43 according to the first embodiment of the present invention.
[0042] The values used by the transmission control unit 43 in this process are the number of received packets, the estimated buffer capacity, and the estimated communication speed. The number of received packets is the number of packets received by the receiving device 3 and included in the ACK packet 36. The estimated buffer capacity is the storage capacity of the smallest buffer among the buffers provided on the communication path, such as the transmission buffer 107, relay buffer 204, and receiving buffer 301. The estimated communication speed is the slowest communication speed among the communication speeds of each section between devices on the communication path. Note that the estimated communication speed may be the maximum communication speed among the communication speeds of the transmitting device 1, relay device 2, and receiving device 3, or the communication speed achieved during the previous communication. Using the communication speed achieved during the previous communication allows control to avoid speed restrictions during communication.
[0043] As shown in FIG. 5A, in step 501, the transmission control unit 43 sets the transmission restriction to be invalid as an initialization process.
[0044] In step 502, the transmission control unit 43 subtracts the number of received packets from the number of transmitted packets to calculate the number of unreceived packets, which indicates the amount of data that has not yet been received.
[0045] In step 503, if the number of unreceived packets is smaller than the expected buffer capacity, the transmission control unit 43 disables the transmission limit, since an appropriate number of packets have been transmitted, and continues transmitting packets (504). Note that if the number of unreceived packets is smaller than the expected buffer capacity, there is sufficient capacity on the communication path 16, so the number of packets transmitted per unit time may be increased to improve the communication speed. On the other hand, if the number of unreceived packets is equal to or greater than the expected buffer capacity, an additional number of packets have been transmitted, so the transmission limit is enabled and packet transmission is stopped (505). Since the transmission limit is switched depending on the number of unreceived packets, the difference between the amount of transmitted data and the amount of received data can be controlled to fall within a certain range. Furthermore, since the number of transmitted packets is increased when there is sufficient capacity on the communication path 16, the speed can be increased to the limit where packets are not dropped, and the communication path's capacity can be effectively utilized.
[0046] After steps 504 and 505, the process returns to step 502, where the number of unreceived packets is repeatedly compared with the estimated buffer capacity.
[0047] 5A, the number of unreceived packets is compared with the estimated buffer capacity, and control is performed to prevent the buffer on the path from overflowing or becoming empty, thereby improving the communication speed. Then, packet transmission may be stopped, and the speed may be reduced within the allowable range of the communication timing, thereby reducing power consumption.
[0048] Furthermore, the number of unreceived packets may be calculated at the timing when the ACK packet 36 is received.
[0049] The transmission control unit 43 may execute the process shown in Fig. 5B instead of the process shown in Fig. 5A. In the process shown in Fig. 5A, the determination as to whether to disable the transmission limit is repeated until the number of unreceived packets is updated. In order to avoid wasting computational resources, the processing load may be reduced by the process shown in Fig. 5B.
[0050] In step 501, as an initialization process, the transmission control unit 43 disables the transmission restriction and calculates the number of packets that have not been received by subtracting the number of packets that have been received from the number of packets that have been transmitted.
[0051] In step 511, the transmission control unit 43 subtracts the estimated buffer capacity from the number of unreceived packets to calculate the number of surplus packets. The number of surplus packets will be a large value if more packets than expected have been transmitted.
[0052] In step 512, the transmission control unit 43 calculates the excess processing time by dividing the number of excess packets by the expected communication speed. The excess processing time means the time that packet transmission precedes the expected design value. Then, in step 513, the transmission control unit 43 suspends packet transmission for the excess processing time. For example, the processor executing the processing of the transmitting device 3 may be put into a sleep state to suspend packet transmission. A function provided by the processor or OS can be used for sleep. Alternatively, packet transmission may be suspended by waiting for the excess processing time.
[0053] FIG. 6 is a flowchart of the process executed by the ACK transmitting unit 35 according to the first embodiment of the present invention.
[0054] The values used by the ACK transmitting unit 35 in this process are the maximum sequence number, the number of received packets, the next receive threshold, and the receive threshold constant. The maximum sequence number is the maximum value of the sequence numbers of packets received by the receiving device 3. The number of received packets is the number of packets received by the receiving device 3. The next receive threshold is a value that expresses the timing of transmitting the next ACK packet in units of received packets. The receive threshold constant is a value that expresses the interval for transmitting ACK packets in units of received packets. If the receive threshold constant is set to 1, an ACK packet 36 is transmitted every time, but this increases the communication load. By setting the receive threshold constant to a large number that does not exceed the expected buffer capacity, the load of transmitting the ACK packet 36 can be reduced.
[0055] In step 601, the ACK transmitting unit 35 initializes by setting the maximum sequence number to 0, the number of received packets to 0, and the next reception threshold to a reception threshold constant.
[0056] In step 602 , the ACK transmitting unit 35 waits for reception of the communication packet 26 .
[0057] In step 603, the ACK transmitting unit 35 adds 1 to the number of received packets.
[0058] In step 604, if sequence number 23 is greater than the maximum sequence number, ACK transmitting unit 35 sets sequence number 23 as the maximum sequence number and updates the maximum sequence number.
[0059] In step 605, the ACK transmitting unit 35 determines whether the number of received packets is smaller than the next reception threshold. If the number of received packets is equal to or greater than the next reception threshold, the process proceeds to step 607.
[0060] In step 606, the ACK transmitting unit 35 determines whether the maximum sequence number is smaller than the next reception threshold. If the maximum sequence number is equal to or greater than the next reception threshold, the process proceeds to step 607. On the other hand, if the maximum sequence number is smaller than the next reception threshold, the process returns to step 602. Step 606 is a process performed when the arrival order of packets has been changed.
[0061] In step 607, the ACK transmitting unit 35 adds the reception threshold constant to the next reception threshold to update the next reception threshold.
[0062] In step 608 , the ACK transmitting unit 35 transmits the ACK packet 36 , and the process returns to step 602 .
[0063] In step 602, subsequent processing is not performed until the communication packet 26 is received. In this case, if the received packet is interrupted, the ACK packet 36 is not transmitted. To avoid this, the ACK packet 36 may be transmitted after a certain time has elapsed since the communication packet 26 was received in step 602.
[0064] In step 607, the reception threshold constant is added to the next reception threshold. However, if the reception buffer is highly utilized and there is a high possibility of packet loss, or if packets have actually been lost, the reception threshold constant may be reduced, the frequency of sending ACK packets 36 may be increased, and the transmission restriction unit 41 may be operated more frequently, thereby restricting transmission earlier.
[0065] As described above, according to the embodiment of the present invention, data transmission is enabled by effectively utilizing the capacity of the communication path, and large volumes of data such as image data can be efficiently transferred between electronic control devices. Furthermore, even if the speed or quality of the communication path changes, communication can be performed at an appropriate communication speed according to the current performance.
[0066] The present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the spirit and scope of the appended claims. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to configurations including all of the described configurations. Furthermore, part of the configuration of one embodiment may be replaced with the configuration of another embodiment. Furthermore, the configuration of another embodiment may be added to the configuration of one embodiment. Furthermore, part of the configuration of each embodiment may be added, deleted, or replaced with other configurations.
[0067] Furthermore, the aforementioned configurations, functions, processing units, processing means, etc. may be realized in part or in whole in hardware, for example by designing them as integrated circuits, or may be realized in software by a processor interpreting and executing a program that realizes each function.
[0068] Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, hard disk, or SSD (Solid State Drive), or in a recording medium such as an IC card, SD card, or DVD.
[0069] In addition, the control lines and information lines shown are those that are considered necessary for the explanation, and do not necessarily show all the control lines and information lines that are necessary for implementation. In reality, it can be considered that almost all components are interconnected.
Claims
1. An in-vehicle system comprising: a first electronic control unit having a transmitting device for transmitting data; and a second electronic control unit having a receiving device for receiving the data, wherein the second electronic control unit has a receiving processing unit that tallys up the amount of received data of the received data, and an ACK transmitting unit that notifies the first electronic control unit of the amount of received data, and the first electronic control unit has a transmitting processing unit that controls the transmission of the data, an ACK determination unit that compares the amount of data already transmitted with the amount of received data notified by the first electronic control unit, and a transmission limiting unit that limits data transmission based on the result of the comparison.
2. An in-vehicle system according to claim 1, characterized in that the transmission restriction unit restricts data transmission when the amount of unreceived data, which is the difference between the amount of transmitted data and the amount of received data, is greater than a predetermined threshold value.
3. An in-vehicle system as described in claim 1, characterized in that the transmission restriction unit increases the amount of data transmitted per unit time when the amount of unreceived data, which is the difference between the amount of transmitted data and the amount of received data, is smaller than a predetermined threshold value.
4. An in-vehicle system according to claim 1, wherein the transmission processing unit transmits data at a communication speed achieved during the previous communication.
5. An in-vehicle system according to claim 1, wherein the ACK transmission unit changes the timing of notifying the amount of received data according to the amount of usage of the receiving buffer.
6. An electronic control device comprising: a reception processing unit that aggregates the amount of received data; an ACK transmission unit that notifies other electronic control devices of the amount of received data; a transmission processing unit that controls the transmission of the data; an ACK determination unit that compares the amount of data already transmitted with the amount of received data notified from the other electronic control devices; and a transmission restriction unit that restricts data transmission based on the result of the comparison.
Citation Information
Patent Citations
Communication system, communication terminal equipment and communication method
JP1998023017A
Data telecommunication system
JP2004064270A
Communication device, communication method, communication program, record medium recorded with the program and communication system
JP2006157889A