1 / 23

The Real-Time Sequencer (more)

The Real-Time Sequencer (more). B.D.Kelly, X.Gao. RTS Overview. Observation driver. ACSIS. Four-signal real-time link. Drama messages. Drama messages. HARP-B. RTS. Tel. Configuration files. RTS tasks. DitsEnableTask for drama para update. rtsTimeStamp vxWorks task.

lise
Télécharger la présentation

The Real-Time Sequencer (more)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Real-Time Sequencer(more) B.D.Kelly, X.Gao

  2. RTS Overview Observation driver ACSIS Four-signal real-time link Drama messages Drama messages HARP-B RTS Tel Configuration files

  3. RTS tasks DitsEnableTask for drama para update rtsTimeStamp vxWorks task RTS drama task semaphores semaphore semaphores vxWorks Interrupt ISRs rtsIoTask vxWorks task

  4. rtsIoTask flowchart Semaphore from INITIALISATION no Trigger reschedule & report Error rtsStartCheck() =Error? yes rtsDelete=1 return no yes rtsDelete=1 rtsIoInit() =Error? rtsIoreInit() no rtsPreHandShake() =Error? yes yes no Semaphore from SEQUENCE yes yes return Opmode=0(FIXSAMP) or=1 (FIXITG)? rtsStdSequence() =Error? yes no Opmode=2(EXTCLK) ? rtsNonStdSequence() =Error? no no no sprintf (errmess, "At least %s %s . INPORTS[1][0] logic=%04X %04X", sysname, rtsErrStrings[(int)rtsInfoprt->outResult[0]],rtsInfoprt->outResult[2], rtsInfoprt->outResult[1] ); ErsRep ( 0, status, errmess );

  5. rtsStdSequence() flowchart FIX SAMP? Setup time1, enable time1 no putNSCNDV(p) (enable time1) SeqNo=1? FIXSAMP? yes no rtsTimeSC() =Error? timeSC=-1? putNSCNDV(p) (disable time1) putNSCNDV(p) (disable time) yes yes waitNSR(p) =Error? waitSR(p) =Error? yes return waitNSR (p,stTimeout) =Error? FIXSAMP? putSCNDV(p) (enable time1) yes yes putSCDV(p) (enable time1) rtsTimeRead() no semWait4Time1() =Error? return putSCNDV(p) (disable time1) no waitNSR(p) =Error? SeqNo finished? putNSCNDV(p) (disable time1) semGive TimeStamp rtsTimeRead() yes return

  6. rtsNonStdSequence() flowchart rtsTimeSC() =Error? timeSC=-1? yes putSCNDV(p) yes return putMask (SRMask) yes no waitSR&Samp (p,Timeout)=Error? putNSCNDV(p) putMask (SRMask| SampMask) waitNSR (p,stTimeout) =Error? rtsTimeRead() putSCDV(p) yes yes return semWait4ExtClk =Error? enable ErrINT rtsTimeRead() putSCNDV(p) Check if one SR drop? yes putMask (| SampMask) yes no no waitSamp (j+1) (p,sampTimeout)=Error? waitNSR(p) =Error? SeqNo finished? putNSCNDV(p) semGive TimeStamp yes return

  7. Start and End Sanity Check Connected? Listening? Finished? ACSIS SR Tel SR SC DV Time

  8. Protocol-1 preliminary check First Sequence Start check waitNSR(p) waitNSR waitSR waitNSR(p) waitSR(p) SR timeSC(I) Start time1 FIXSAMP SC Time interrupt Stop time2 FIXITG, continue time1,FIXSAMP putNSC(p), putNDV(p) putSC(p), putNDV(p) putNSC(p), putNDV(p) putNSC,putNDV putSC, putNDV DV Start time2 FIXITG

  9. protocol-2 Middle Sequence waitNSR(p) waitNSR(p) waitSR(p) timeSC(I) SR Time INT Stop time2 FIXITG, continue time1,FIXSAMP SC putSC(p), putDV(p) putNSC(p), putNDV(p) putSC(p), putNDV(p) putNSC(p), putNDV(p) DV Start time2 FIXITG

  10. protocol-3 Last Sequence Finish check waitNSR(p) waitNSR(p) waitSR(p) timeSC(I) SR Time interrupt Stop time2 FIXITG, continue time1,FIXSAMP SC putNSC(p), putNDV(p) putSC(p), putNDV(p) putSC(p), putDV(p) putNSC(p), putNDV(p) DV Start time2 FIXITG

  11. RTS CPLD LOGIC input logic 32 bits (4 8-bit I/O port) 32 input lines CPLD1 Input Interrupt Input bit pattern == demand bit pattern ? 8 bit (one I/O port) Error Interrupt Control logic block 21 -bit Timer2 counter 8 bit (Flagout) Timer2=0 interrupt output logic CPLD2 Control logic Block 31- bit Timer1 counter 16 bits (2 8-bit I/O port) 16 SC lines 16 DV lines 8 bit (one I/O port) Timer 1 =0 interrupt

  12. 1 2 3 4 5 6 7 8 RTS RJ45 Signal Sockets Output 1 Input 1 Input 2 16 connection sockets Output 2

  13. Protocol-example I’m ready I’m done ACSIS SR Tel SR Get ready Integrate Finish SC DV Stop integration Time Sequence number 42 43

  14. Programmability-example waitSR waitNSR ACSIS SR Tel SR putSC putDV putNSC SC DV putNDV Time Sequence number 42 43

  15. Programmability (cont.) waitSamp ACSIS SR Tel SR SC DV Time Sequence number 42 43

  16. RTS Initialisation File <Connections> <System name=“TCS” socket=“1” /> <System name=“HARPB” socket=“2” /> <System name=“ACSIS” socket=“9” /> <System name=“SCUBA” socket=“3” /> <System name=“TRYSUB” socket=“15” /> </Connections> This provides a list of the physical connections. It doesn’t say whether these are standard or non-standard subsystems, and doesn’t say whether they will actually be used.

  17. RTS Configuration File <Configuration> <TCS SC=“1” SR=“1” DV=“2” /> <HARPB SC=“1” SR=“1” DV=“2” /> <ACSIS SC=“1” SR=“1” DV=“2” /> <SCUBA SC=“1” SR=“1” DV=“2” /> </Configuration> The Configuration lists all the standard subsystems which are going to be involved in the subsequent sequence.

  18. RTS Sequence File The most trivial sequence file is:- <Sequence/> This means that only the standard subsystems as listed in the Configuration file are going to be used.

  19. EXAMPLE (1, initial) RTS - ditscmd "RTS INITIALISE connection.xml 0 ” DITSCMD_1b7f5a8:RTS:rts: got argument = connection.xml iolinks[0].sname=TCS sockNo=1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[1].sname=HARP sockNo=2 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[2].sname=SCUBA sockNo=3 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[3].sname=ACSIS sockNo=9 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[4].sname=TRYSUB sockNo=15 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[5].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[6].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[7].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[8].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[9].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[10].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[11].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[12].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[13].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[14].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[15].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 DITSCMD_1b7f5a8:RTS:rts: in NON-simulation mode

  20. EXAMPLE (2, configure) RTS - ditscmd "RTS CONFIGURE configurationSc9.xml 0” DITSCMD_1b7f5a8:RTS:rts: got argument = configuration.xml iolinks[0].sname=TCS sockNo=1 RTS_CONN_SR=1 DV=1 SC=2 iolinks[1].sname=HARPB sockNo=2 RTS_CONN_SR=1 DV=1 SC=2 iolinks[2].sname=SCUBA sockNo=3 RTS_CONN_SR=1 DV=1 SC=2 iolinks[3].sname=ACSIS sockNo=9 RTS_CONN_SR=1 DV=1 SC=2 iolinks[4].sname=TRYSUB sockNo=15 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[5].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[6].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[7].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[8].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 iolinks[9].sname= sockNo=-1 RTS_CONN_SR=-1 DV=-1 SC=-1 ..................... activeSR;Mask[1][0]=00000107;00000107 activeNSR;Mask[1][0]=0000FEF8;00000107 activeSC;Mask[1][0]=00070100;00070100 activeDV;Mask[1][0]=01000007;01000007

  21. EXAMPLE (3,sequence,std) ditscmd "RTS SEQUENCE 1 1000 sequence.xml 50 50 10" activeSR;Mask[1][0]=00000107;00000107 activeNSR;Mask[1][0]=0000FEF8;00000107 waitSR;Mask[1][0]=FFFFFFFF;00000107 waitNSR;Mask[1][0]=00000000;00000107 putSC;Mask[1][0]=FFFFFFFF;00070100 putNSC;Mask[1][0]=00000000;00070100 putDV;Mask[1][0]=FFFFFFFF;01000007 putNDV;Mask[1][0]=00000000;01000007

  22. EXAMPLE (3,sequence,nonstd) <Sequence size="4"> <position num="1"> <putDV name="TRYSUB" output="1" value="1"/> <putSC name="TRYSUB" output="2" value="1"/> <putNDV name="TRYSUB" output="1" value="0"/> <putNSC name="TRYSUB" output="2" value="0"/> </position> <position num="2"> <putDV name="TRYSUB" output="1" value="0"/> <putSC name="TRYSUB" output="2" value="0"/> <putNDV name="TRYSUB" output="1" value="1"/> <putNSC name="TRYSUB" output="2" value="1"/> </position> <position num="3"> <putDV name="TRYSUB" output="1" value="1"/> <putSC name="TRYSUB" output="2" value="1"/> <putNDV name="TRYSUB" output="1" value="0"/> <putNSC name="TRYSUB" output="2" value="0"/> </position> <position num="4"> <putDV name="TRYSUB" output="1" value="0"/> <putSC name="TRYSUB" output="2" value="1"/> <putNDV name="TRYSUB" output="1" value="1"/> <putNSC name="TRYSUB" output="2" value="0"/> </position> </Sequence>

  23. EXAMPLE (4,sequence,nonstd) RTS - ditscmd "RTS SEQUENCE 1 100 sequencetry.xml 50 100 10” Seq.TableEntry=0 activeSR;Mask[1][0]=00000107;00000107 activeNSR;Mask[1][0]=00000000;00000107 waitSR;Mask[1][0]=FFFFFFFF;00000107 waitNSR;Mask[1][0]=00000000;00000107 putSC;Mask[1][0]=FFFFFFFF;40070100 putNSC;Mask[1][0]=00000000;40070100 putDV;Mask[1][0]=FFFFFFFF;01004007 putNDV;Mask[1][0]=00000000;01004007 Seq.TableEntry=1 activeSR;Mask[1][0]=00000107;00000107 activeNSR;Mask[1][0]=00000000;00000107 waitSR;Mask[1][0]=FFFFFFFF;00000107 waitNSR;Mask[1][0]=00000000;00000107 putSC;Mask[1][0]=BFFFFFFF;40070100 putNSC;Mask[1][0]=40000000;40070100 putDV;Mask[1][0]=FFFFBFFF;01004007 putNDV;Mask[1][0]=00004000;01004007 Seq.TableEntry=2 activeSR;Mask[1][0]=00000107;00000107 activeNSR;Mask[1][0]=00000000;00000107 waitSR;Mask[1][0]=FFFFFFFF;00000107 waitNSR;Mask[1][0]=00000000;00000107 putSC;Mask[1][0]=FFFFFFFF;40070100 putNSC;Mask[1][0]=00000000;40070100 putDV;Mask[1][0]=FFFFFFFF;01004007 putNDV;Mask[1][0]=00000000;01004007 Seq.TableEntry=3 activeSR;Mask[1][0]=00000107;00000107 activeNSR;Mask[1][0]=00000000;00000107 waitSR;Mask[1][0]=FFFFFFFF;00000107 waitNSR;Mask[1][0]=00000000;00000107 putSC;Mask[1][0]=FFFFFFFF;40070100 putNSC;Mask[1][0]=00000000;40070100 putDV;Mask[1][0]=FFFFBFFF;01004007 putNDV;Mask[1][0]=00004000;01004007

More Related