Download SPW-RTC User Manual - ESA Microelectronics Section

Transcript
143
TxVC arbiter defines when an atomic send list entry handling can start by setting
SPW TxVC Status Register[$].ChAct.
The TxVC[$] uses the SPW TxVC Send List Pointer Register[$] as address and
fetches the first two words of the send list entry (i.e. header address, size, type, and
page) and loads and starts the common DMA handler with this content.
The header bytes fetched are directly passed on to the TxFIFO for transmission.
Note that both the DMA start address and size can be misaligned and only the
portion starting from DMA start address and the exact number of bytes are
transmitted. A null size is also possible, in which case no bytes are fetched.
Next, the second part of the send list entry (i.e. data address, size, type, and page)
are fetched, followed by a reload and start of the common DMA handler channel
with this content.
The data fetched is directly passed on to the TxFIFO for transmission. Note that
both the DMA start address and size can be misaligned and only the portion starting
from DMA start address and the exact number of bytes is transmitted. A null size is
also possible, in which case no bytes are fetched.
During data fetch, the CRC8 checksum is calculated over the full data transmission.
The result is added after the last data byte transmitted, when the Data Type field is
set to an RMAP write command.
Finally, an EOP is transmitted.
The SPW TxVC Send List Size Register[$] is decremented by one.
The SPW TxVC Send List Pointer Register[$] is incremented by 16.
The SPW TxVCStatus Register[$].ChAct is then cleared, i.e. allowing the TxVC
arbiter to reassign another channel.
At send list completion:
When the last send list entry is completed, the TxEOB interrupt is issued and the
SPW TxVC Status Register[$].ChTrig is disabled. Note that this applies even for
zero-length send lists.
Note that there is no automatic generation of the CRC checksum for the header.
10.6.6.4
Status
Each virtual transmit channel, TxVC[$], provides the following status monitoring:
• A TxVC Send List Size Register which indicates the number of remaining packets
in the send list.
• A TxVC Send List Pointer Register which points to the current send list element.
• A TxVC Status Register indicating if the channel is triggered (started), and
whether the channel is active (transfer ongoing).
10.6.6.5
Interrupts
Each TxVC, while transmitting, can issue interrupts as defined in SPW TxVC Interrupt
Status Register [$]. See 10.7.1.7 for details. Further transmission is halted for the virtual
channel.
Copyright © 2006, 2007, 2008, 2009 Aeroflex Gaisler and RUAG
RTC-100-0012, December 2009, Version 2.4