The FEE Server Control Engine of the ALICE-TRD - Westfälische ...
The FEE Server Control Engine of the ALICE-TRD - Westfälische ...
The FEE Server Control Engine of the ALICE-TRD - Westfälische ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5 <strong>The</strong> <strong>FEE</strong><strong>Server</strong> <strong>Control</strong> <strong>Engine</strong><br />
<strong>The</strong> differences for SCSN_CMD_READ are small because only broadcasts require a<br />
different handling. One would expect that sending <strong>the</strong> SCSN_CMD_READ command<br />
to <strong>the</strong> broadcast address results in one answer frame from each MCM in <strong>the</strong> linkpair.<br />
However, <strong>the</strong> concept <strong>of</strong> <strong>the</strong> SCSN bus hardware is one frame in – one frame out (see<br />
section 4.3.5). <strong>The</strong>refore <strong>the</strong> function SCSNBus::readData() which is called by execute(struct<br />
* , unsigned, int) to handle SCSN_CMD_READ creates a separate frame with <strong>the</strong> read<br />
command for each MCM in <strong>the</strong> linkpair. <strong>The</strong>se frames are <strong>the</strong>n processed as described<br />
above.<br />
<strong>The</strong> command SCSN_CMD_BRIDGE sets MCMs to bridge mode. It is used by SCSNBus<br />
::learnConfig() and by <strong>the</strong> bridge test. In normal configurations this command should not<br />
be used. Before <strong>the</strong> command is processed all remaining frames in <strong>the</strong> send buffer are sent<br />
because a SCSN_CMD_BRIDGE always modifies <strong>the</strong> address scheme <strong>of</strong> <strong>the</strong> linkpair. <strong>The</strong><br />
function SCSNBus::learnConfig() creates and sends <strong>the</strong> bridge frames on its own. A bridge<br />
request from <strong>the</strong> bridge test is processed by <strong>the</strong> function void SCSNBus::Bridging(unsigned<br />
, unsigned, int).<br />
<strong>The</strong> command SCSN_CMD_PAUSE has two completely different purposes, depending<br />
on <strong>the</strong> value in <strong>the</strong> data field. <strong>The</strong> dual use <strong>of</strong> this command has historical reasons. In<br />
both cases first <strong>the</strong> frames stored in <strong>the</strong> send buffer are sent. If <strong>the</strong> value in <strong>the</strong> data<br />
field is bigger than 0 <strong>the</strong> program halts for <strong>the</strong> time in micro seconds given in <strong>the</strong> data<br />
field. Such a wait command is used when <strong>the</strong> MCMs need some time to process <strong>the</strong><br />
previous commands. If <strong>the</strong> value in <strong>the</strong> data field is smaller than zero <strong>the</strong> status <strong>of</strong> <strong>the</strong><br />
state machine <strong>of</strong> <strong>the</strong> MCM named in <strong>the</strong> dest field is read. This functionality is needed<br />
by some tests.<br />
5.3.4 Transmission Speed<br />
In section 4.3.5 measurements <strong>of</strong> <strong>the</strong> throughput <strong>of</strong> <strong>the</strong> SCSN bus hardware were shown.<br />
<strong>The</strong> throughput achieved by class SCSNBus much lower because <strong>the</strong> class has to compose<br />
<strong>the</strong> SCSN frames, send <strong>the</strong>m via <strong>the</strong> SCSN bus, receive <strong>the</strong> returning frames and check<br />
<strong>the</strong>m. For a list <strong>of</strong> 5000 ping/write/read SCSN commands, it takes about 1.2 s between<br />
<strong>the</strong> moment <strong>the</strong> class SCSNBus gets <strong>the</strong> list and <strong>the</strong> moment <strong>the</strong> class signalize that <strong>the</strong><br />
last frame has been received. This results in a transmission speed <strong>of</strong> 4200 frames per<br />
second or 361.2 kBits/s. Because an SCSN frame has only 32 bit <strong>of</strong> payload (<strong>the</strong> data field<br />
<strong>of</strong> <strong>the</strong> frame) <strong>the</strong> netto data transmission rate for <strong>the</strong> SCSN access in <strong>the</strong> control engine is<br />
about 134.4 kBits/s.<br />
5.4 Hardware Test Functions<br />
<strong>The</strong> control engine <strong>of</strong> <strong>the</strong> <strong>FEE</strong><strong>Server</strong> provides various tests to check <strong>the</strong> ROC electronics.<br />
<strong>The</strong> tests can run only from state STDBY. <strong>The</strong> reasons for this were already discussed in<br />
section 5.2.2. During a test is running <strong>the</strong> FSM is in <strong>the</strong> state TESTING.<br />
All tests are mutually independent so <strong>the</strong>y can be run in any order. However it is<br />
impossible to run more <strong>the</strong>n one test on a chamber concurrently. To launch a test <strong>the</strong> same<br />
overall procedure is used as for <strong>the</strong> transition from STDBY to STDBY_CONFIGURED:<br />
<strong>The</strong> electronics is switched on, configured and <strong>the</strong> list <strong>of</strong> SCSN commands is executed<br />
(see section 5.2.3).<br />
68