
MT90500
55
4.3.3
Non-CBR Data Cell Transmission Capability
The TX_SAR also has the ability to transmit CPU-written non-CBR data cells directly from a user-defined FIFO
in external memory (the Transmit Data Cell FIFO) to the UTOPIA module. Non-CBR data cells include OAM
cells, other signalling cells, and AAL5 cells containing CPU data. Once the CPU writes the complete cell into
the Transmit Data Cell FIFO, the UTOPIA module then treats these non-CBR data cells the same as the normal
CBR cells. All 53 bytes of the non-CBR data cells are written by the microprocessor into the FIFO in 64-byte
long structures located on 64-byte boundaries (see Figure 21). There are 16, 32, 64 or 128 of these structures
contained in the circular FIFO, mapped in the external memory at the address determined by the Transmit Data
Cell FIFO Base Address Register (register 2050h). This FIFO must not overlap an 8-Kbyte boundary. If the
FIFO does overlap an 8K boundary, some or all of the non-CBR cells sent by the TX_SAR will be corrupted.
There are two ways to control transmission of non-CBR data cells: by scheduler, or by AUTODATA. The
scheduler method requires mapping data cell events into one of the transmission schedulers being used. This
is done by writing “001” in the Entry Type section of the VC Pointer entry, as shown in Figure 20.
In this case, when the scheduler hits the frame within which this entry is contained, it will read the next valid
data cell from the Transmit Data Cell FIFO and transmit it. Because non-CBR cell transmission does not
require the use of Transmit Control Structures, the TX_Struct_Pnt field in the VC Pointer is not used and thus
its value is irrelevant. Note that using the scheduler(s) to control non-CBR data transmission results in regularly
spaced non-CBR data cells, as specified in the scheduler entries.
The other possibility for controlling transmission of non-CBR data cells is by using the AUTODATA bit in the
TX_SAR Control Register at 2000h. While that bit is HIGH, once the TX_SAR has completed its assigned cells
for a certain quad frame (or frame) and is waiting for its next pulse (i.e. the TX_SAR is idle), the MT90500 will
automatically transmit data cells, provided that data cells are available in the Transmit Data Cell FIFO. This
process will end as soon as the next pulse is detected (
Note:
The non-CBR cell being treated at that time will
be completed before the TX_SAR returns to CBR cell assembly).
Both these cases require the microprocessor to write the full non-CBR data cell into the Transmit Data Cell
FIFO, and then to write the new (incremented) value of the Transmit Data Cell FIFO Write Pointer (address
2052h). Non-CBR data cells will only be sent if the Transmit Data Cell FIFO Write Pointer and the Transmit
Data Cell FIFO Read Pointer (address 2054h) indicate that there are valid cells contained in the FIFO. When
the pointers are not equal, the TX_SAR goes to the appropriate address indicated by the Transmit Data Cell
FIFO Base Address Register (address 2050h) and reads the non-CBR data cell. Note that although the FIFO
read pointer will be automatically adjusted to fit the Transmit Data Cell FIFO size (for example, if the FIFO size
is 32 cells, when the read pointer is 31 and a cell is read, it will wrap around to 0), that is not true of the write
pointer. Therefore, if the FIFO write pointer is set to 128, non-CBR cells will always be considered valid.
0
2
3
4
15
0
XXXX XXXX XXXX
001
VC Pointer
2
3
4
15
R
TX_Struct_Pnt
T
R = Reserved (must be set to ‘0’)
T = Entry Type (000 = inactive; 001 = non-CBR
data; 010 = AAL1/CBR-AAL0; 111 = CBR-AAL5;
all others: Reserved)
0
Figure 20 - VC Pointer For Scheduler-Controlled Non-CBR Data Cell