![](http://datasheet.mmic.net.cn/380000/-PD98405_datasheet_16745025/-PD98405_66.png)
CHAPTER 4 INTERFACES
66
(4) Byte alignment transfer
The
μ
PD98405 can align transmit/receive cell data on byte boundaries in system memory. When the
μ
PD98405 executes a DMA cycle, it checks the 2 low-order bits of the start address, AD1 and AD0. When
these bits indicate other than 00, the
μ
PD98405 executes byte alignment transfer.
(a) Byte alignment transfer for transmit cell data
The
μ
PD98405 loads transmit cell data from the data buffer in system memory by performing DMA read
cycles. The start address of the data buffer need not always be on a 32-bit boundary. When transmit
cell data does not start on a 32-bit boundary, the
μ
PD98405 performs DMA read cycles in 32-bit (word)
units. Internally, it ignores any unnecessary bytes.
Figure 4-7 shows an example. In this example, the data buffer contains 12-word data that can configure
1 cell, the start address is on a byte boundary, and 12-word burst is enabled.
Figure 4-7. Transmit Cell Data Byte Alignment (in Little Endian Format)
Output address AD[1:0]
00
SIZE[2:0]
101
31
Payload01
Payload05
24 23
16 15
8 7
0
Payload00
Payload04
Payload03
Payload02
Payload06
Payload45
Payload44
Payload43
00
000
Payload47
Payload46
First, the
μ
PD98405 performs a DMA read cycle for 12-word burst. It internally discards the 2 high-order
bytes of the first word. Then, the
μ
PD98405 performs a 1-word DMA read cycle and discards the 2 low-
order bytes. For these two DMA cycles, the address output by the
μ
PD98405 indicates an address on a
32-bit boundary whose 2 low-order bits are 00.
(b) Byte alignment transfer for receive cell data
The
μ
PD98405 stores receive cell data in the free buffer in system memory by performing DMA write
cycles. The start address of the free buffer need not always start on a 32-bit boundary, and can start on
a byte boundary. When the start address of the free buffer (set in the batch) is aligned with a byte
boundary, the
μ
PD98405 outputs "00," indicating a word boundary address, to the AD[1:0] pins and a
low level from the BE_B[3:0] pins corresponding to the bytes to be written. It also outputs a burst size
from the SIZE[2:0] pins.
Data buffer
12-word
cycle
1-word
cycle