23.11.2012 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!