From 007cc1b575ca59b3d993fbfb9aac39fc36039d4b Mon Sep 17 00:00:00 2001 From: hadeshyp Date: Fri, 17 Sep 2010 09:27:49 +0000 Subject: [PATCH] *** empty log message *** --- daqnet.kilepr | 36 ++++++++++++++++++++------- evtbuild.tex | 14 +++++------ hubs.tex | 3 ++- installation_ethernet_table.tex | 42 ++++++++++++++++---------------- networkaddresses.tex | 11 +++------ trigger.tex | 10 +++++++- trigger_to_cts.pdf | Bin 0 -> 13886 bytes 7 files changed, 70 insertions(+), 46 deletions(-) create mode 100644 trigger_to_cts.pdf diff --git a/daqnet.kilepr b/daqnet.kilepr index 245ab3b..493b0bd 100755 --- a/daqnet.kilepr +++ b/daqnet.kilepr @@ -3,7 +3,7 @@ img_extIsRegExp=false img_extensions=.eps .jpg .jpeg .png .pdf .ps .fig .gif kileprversion=2 kileversion=2.0 -lastDocument=main.tex +lastDocument=lvl1trigger.tex masterDocument=main.tex name=daqnet pkg_extIsRegExp=false @@ -42,6 +42,24 @@ line=0 open=false order=-1 +[item:commonfeatures.tex] +archive=true +column=17 +encoding=ISO 8859-15 +highlight=LaTeX +line=6 +open=true +order=15 + +[item:daqnet.kilepr] +archive=true +column=1769099307 +encoding= +highlight= +line=0 +open=false +order=-1 + [item:daqstartup.tex] archive=true column=16 @@ -62,7 +80,7 @@ order=11 [item:gbe.tex] archive=true -column=191 +column=192 encoding=ISO 8859-15 highlight=LaTeX line=30 @@ -71,7 +89,7 @@ order=12 [item:hubs.tex] archive=true -column=91 +column=58 encoding= highlight=LaTeX line=65 @@ -80,28 +98,28 @@ order=6 [item:ipudataformat.tex] archive=true -column=25 +column=151 encoding=UTF-8 highlight=LaTeX -line=204 +line=256 open=true order=1 [item:lvl1trigger.tex] archive=true -column=157 +column=114 encoding=UTF-8 highlight=LaTeX -line=39 +line=114 open=true order=2 [item:main.tex] archive=true -column=10 +column=21 encoding=UTF-8 highlight=LaTeX -line=101 +line=58 open=true order=0 diff --git a/evtbuild.tex b/evtbuild.tex index e599f4e..cb96b55 100644 --- a/evtbuild.tex +++ b/evtbuild.tex @@ -14,7 +14,7 @@ The daq\_evtbuild and daq\_netmem can be configured in three ways: daq\_evetbuild must be executed before daq\_netmem (as daq\_evtbuild is the one who opens buffers in shared memory). -\subsubsection{daq\_evtbuild options} +\subsection{daq\_evtbuild options} daq\_evtbuild can be executed with the following options: \begin{description} @@ -85,7 +85,7 @@ To support data writing to multiple disks the dedicated daq\_disk server runs on The other important script cleanup.pl is aimed to clean up disks when they get occupide up to 90\%. Both processes are executed in the background at boot time. -\subsubsection{daq\_netmem options} +\subsection{daq\_netmem options} daq\_netmem can be executed with the following options: \begin{description} @@ -103,7 +103,7 @@ daq\_netmem can be executed with the following options: \end{description} \end{description} -\subsubsection{Starting Event Builders} +\subsection{Starting Event Builders} Communication (synchronization, RUN Id distribution and monitoring) between parallel Event Builders is based on the Input/Output Controller (IOC) processes running on each EB server. Parallel Event Builders can be started from lxhadesdaq by /home/hadaq/trbsoft/daq/evtbuild/start\_eb\_gbe.pl. @@ -135,7 +135,7 @@ The script reads several configuration files. \end{description} \end{description} -\subsubsection{Monitoring Event Builders} +\subsection{Monitoring Event Builders} As has been already said the monitoring of EBs is based on the IOC processes running on each EB server. @@ -150,7 +150,7 @@ Before starting the monitoring one should set two env variables: The monitoring can be started by executing: lxhadesdaq: /home/scs/Desktop/DAQ/EB\_Monitor.desktop -\subsubsection{Monitoring Event Builder's Logs} +\subsection{Monitoring Event Builder's Logs} To learn more details about the running Event Builders on can look at the output of the monitoring stript which scans the log files of all the @@ -169,7 +169,7 @@ lxhadesdaq: /home/hadaq/Desktop/DAQ/EBLog\_Watch.desktop \section{Storing data to Oracle database} -\subsubsection{Time stamp and current info on boards} +\subsection{Time stamp and current info on boards} The DAQ startup script writes the ascii file with all the active boards in the system and the time stamp. The daq2ora\_client.pl script reads this ascii file on lxhadesdaq (/home/hadaq/\-oper/daq2ora/\-daq2ora\_2010-08-30\_12.49.50.txt) and stores the info in the Oracle database. The info consists of board unique Id, TRB-Net address, subEvent Id, TDC RC Mode, threshold version for RICH and MDC as well as MDC TDC mask version. @@ -192,7 +192,7 @@ The daq2ora\_client.pl script reads this ascii file on lxhadesdaq (/home/hadaq/\ \end{description} \end{description} -\subsubsection{RUN Start/Stop info} +\subsection{RUN Start/Stop info} The event builder writes the data at RUN start and RUN stop to the ascii file (for example /home/hadaq/\-oper/oper\_1/\-eb\_runinfo2ora\_1.txt is the file on lxhadesdaq writen by event builder 1 running on lxhadeb01. lxhadesdaq mounts /home/hadaq/oper/oper\_1/ from lxhadeb01). The runinfo2ora.pl script reads the files and writes the data in the Oracle database. \newline diff --git a/hubs.tex b/hubs.tex index 9fc50f1..05214de 100755 --- a/hubs.tex +++ b/hubs.tex @@ -57,7 +57,8 @@ $\dagger$: Register is not reset during network reset \begin{description} \item[0xC0 - 0xC3: Port Switch] One register for each TrbNet channel. Each bit controls one port. 1: port is switched on (default). 0: port is switched off. \item[0xC4: Port Disable] One bit for each port. Each bit controls one port. 1: port is powered down. 0: port is switched on (default). - \item[0xC5: Timeouts] Configure duration of timeout for each channel. Each hex digit controls one channel. 0xF switches off timeouts, values 0x0 - 0x7 set timeout to $2^{(2 \cdot value+1)}$ms (2,8,32,128ms;1,4,16,64s). Default is 0x106F (8ms on slow control, 1s on IPU, off on LVL1). + \item[0xC5: Timeouts] Configure duration of timeout for each channel. Each hex digit controls one channel. 0xF switches off timeouts, values 0x0 - 0xE set timeout to $2^{(2 \cdot value+1)}$ms (2,8,32,128ms;1,4,16,64s). Default is 0x50FF.\\ + New version: $2^{value+1}$ms (2,4,8,16,32,64,128,256,512ms;1,2,4,8,16,32s;off). Default is 0x90FF (1s on slow control, off on IPU and LVL1). \item[0xC6: Network Reset] One bit for each port. Sends a network reset to the selected ports. 1: send network reset on port, 0: normal operation. Has to be cleared by user. \item[0xC7: Link Lookup] One bit for each port. If bit is set, the corresponding link LED (usually green) will flash (approx. 8 Hz, 25\% off time). \end{description} diff --git a/installation_ethernet_table.tex b/installation_ethernet_table.tex index 91b2b61..ba0c61b 100644 --- a/installation_ethernet_table.tex +++ b/installation_ethernet_table.tex @@ -1,39 +1,39 @@ -\begin{longtable}{|l|l|X|} +\begin{longtable}{|p{0.1\textwidth}|X|p{0.6\textwidth}|} \hline \textbf{Switch} & \textbf{Position} & \textbf{Connection} \\ \hline\hline -1 & SHW-rack & Longshine LCS-GS9240 \newline +1\newline hadsw01 & SHW-rack & Longshine LCS-GS9240 \newline Port 1: white switch for RPC Power Supplies on top of SHW-Rack \newline Port 9: Uplink 05P-17 \newline Port A: Shower Hub \newline Port C: Shower sector 2 \newline Port D: Shower sector 1 \\ \hline -2 & SHW-rack & Longshine LCS-GS9240 \newline +2\newline hadsw06 & SHW-rack & Longshine LCS-GS9240 \newline Port 9: Uplink 05P-18 \newline Port 12: Switch rear right corner of mainframe (Shower/RPC TRBs) Port C: Shower sector 4 \newline Port D: Shower sector 3 \\ \hline -3 & SHW-rack & Longshine LCS-GS9240 \newline +3\newline hadsw05 & SHW-rack & Longshine LCS-GS9240 \newline Port 9: Uplink 05P-19 \newline Port 1: Switch 22 (TOF Rack) \newline Port C: Shower sector 4 \newline Port D: Shower sector 3 \\ \hline -4 & SHW-rack & Longshine LCS-GS9240 \newline +4\newline hadsw02 & SHW-rack & Longshine LCS-GS9240 \newline Port 1: TOF-HV crate switch (underneath PC) \newline Port 9: Uplink 05Q-18 \newline Port C: RPC sector 4,5,6 \newline Port D: RPC sector 1,2,3 \\ \hline -5 & rear right corner& Netgear 24 port \newline +5\newline hadswXX & rear right corner& Longshine LCS-GS9240 \newline 2 links to both RPC hub TRB \newline 1 link to Shower hub TRB \newline 6 links to all RPC/Shower sector hubs \newline 1 Uplink to switch 2 \\ \hline -6 & front rack & Longshine LCS-GS9240 \newline +6\newline hadsw08 & front rack & Longshine LCS-GS9240 \newline Port 1: white switch 16 on MDC1/2 platform \newline Port 2: white switch on platform between MDC1/2 and CTS \newline Port 3: Switch 14/15 on front right corner (TOF and MDC3/4 hubs and TRB) \newline @@ -41,30 +41,30 @@ Port C: MDC 1/2 Hub 2 (address 1010) \newline Port D: MDC 1/2 Hub 1 (address 1000) \\ \hline -7 & front rack & Longshine LCS-GS9240 \newline +7\newline hadsw09 & front rack & Longshine LCS-GS9240 \newline Port 8: Uplink 01C-06 \newline Port C: MDC 1/2 Hub 4 (address 1030) \newline Port D: MDC 1/2 Hub 3 (address 1020) \\ \hline -8 & front rack & Longshine LCS-GS9240 \newline +8\newline hadsw11 & front rack & Longshine LCS-GS9240 \newline Port 8: Uplink 01C-08 \newline Port C: MDC 3/4 Hub 2 (address 1110) \newline Port D: MDC 3/4 Hub 1 (address 1100) \\ \hline -9 & front rack & Longshine LCS-GS9240 \newline +9\newline hadsw12 & front rack & Longshine LCS-GS9240 \newline Port 8: Uplink 05Q-20 \newline Port C: MDC 3/4 Hub 4 (address 1130) \newline Port D: MDC 3/4 Hub 3 (address 1120) \\ \hline -10 & front rack & Netgear 12 port \newline +10\newline hadsw03 & front rack & Netgear 12 port \newline Port 1: Uplink 01C-02 \newline - Port 9: MDC1/2 Hub TRB \newline - Port 10: MDC3/4 Hub TRB \newline + Port 9: MDC1/2 Hub \newline + Port 10: MDC3/4 Hub \newline Port 11: MDC3/4 Hub 5 (address 1140) \newline Port 12: MDC 3/4 Hub 6 (address 1150) \\ \hline -11 & front rack & Netgear 12 port \newline +11\newline hadsw04 & front rack & Netgear 12 port \newline Port 1: Uplink 05Q-16 \newline Port 7: Forward wall switch \newline Port 9: Hub Start/Veto/CTS \newline @@ -80,11 +80,6 @@ Start TRB \newline Switch 12 (MDC power supplies) \\ \hline -14/15 & front right corner & 2x Netgear 8 port \newline - Uplink via switch 11 \newline - TOF TRB \newline - Hub TOF, Hub MDC 3/4 \\ -\hline 16 & MDC1/2 platform & Netgear 8 port \newline MDC 1/2 hub \newline RICH hubs\\ @@ -96,13 +91,13 @@ 18 & front left corner & Netgear 8 port \newline uplink via switch 14/15\\ \hline -19 & forward wall & Longshine LCS-GS9240 \newline +19\newline hadsw07 & forward wall & Longshine LCS-GS9240 \newline Uplink via switch 11 \newline 3 links to FW TRB \newline 2 links to FW power supplies \newline \\ \hline -20 & front rack & Longshine LCS-GS9240 \newline +20\newline hadsw10 & front rack & Longshine LCS-GS9240 \newline Port 8: uplink 05Q-19 \newline Port C: MDC 1/2 sector 6 \newline Port D: MDC 1/2 sector 5\\ @@ -121,6 +116,11 @@ 4 links to TRB \newline 1/2 links to Hadcon \\ \hline +32 & front right corner & Longshine LCS-GS9240 \newline + Uplink via switch 11 \newline + TOF TRB \newline + Hub TOF, Hub MDC 3/4 \\ + \caption{Position and usage of GbE switches} \label{NetworkSwitch} \end{longtable} diff --git a/networkaddresses.tex b/networkaddresses.tex index ae33bdc..fec62c0 100755 --- a/networkaddresses.tex +++ b/networkaddresses.tex @@ -8,13 +8,11 @@ On boards with two or more FPGAs each FPGA gets its own address. The FPGA provid \begin{table}[hb] \begin{center} -\begin{tabularx}{\textwidth}{|l|l|X|} -\hline +\begin{tabularx}{\textwidth}{l|l|X} \textbf{Address(es)} & \textbf{Board(s)} & \textbf{Description} \\ -\hline\hline 0000 - 00FF & CTS & \\ 0100 - 01FF & Slow Control & \\ -0200 - 02FF & Other CTS-like boards & \\ +0200 - 02FF & Other CTS-like boards \\ 1000 - 17FF & MDC Concentrator & 2nd digit: inner(0) / outer(1) MDC; 3rd digit: sector (0-5), 4th digit FPGA (0-4) \\ 2000 - 2FFF & MDC OEP & 2nd digit: MDC layer (0-3); 3rd digit: sector (0-5); 4th digit MBO (0-F) \\ 3000 - 31FF & RICH ADCM & 3rd digit: sector (0-5); 4th digit: segment (0-4) \\ @@ -34,9 +32,8 @@ On boards with two or more FPGAs each FPGA gets its own address. The FPGA provid 8700 - 87FF & Forward Wall Hub & \\ 8800 - 88FF & Start/Veto/CTS Hub & \\ F000 - FDFF & Test Setups & \\ -FE00 - FEFF & Special Broadcast & Special broadcast addresses to access groups of boards. See table \ref{HardwareInformation} for details. \\ -FF00 - FFFF & Broadcasts & \\ -\hline +FE00 - FEFF & Reserved & Reserved for extension of broadcast addresses \\ +FF00 - FFFF & Broadcasts & \end{tabularx} \caption{Network Addresses} \label{networkaddresses} diff --git a/trigger.tex b/trigger.tex index 813d2f4..6ca1a31 100644 --- a/trigger.tex +++ b/trigger.tex @@ -5,7 +5,9 @@ Trigger cables to TOF and MDC3/4 as well as RPC, Shower and Forward Wall are tra From the rear right corner there is a 20m Cat6 Ethernet cable (delay 105 ns) going to each sector of Shower and RPC plus two pais of twisted pair cable (80 ns delay) to Forward Wall. Veto and MDC1/2 are using twisted pair cables directly from the CTS using LVDS. RICH has a Cat7 Ethernet cables with all four wire pairs connecting CTS and RICH. -The delay of standard Ethernet cables has been measured to be 5.17 ns/m. The full setup is shown in figure \ref{trigger_cables}. +The delay of standard Ethernet cables has been measured to be 5.17 ns/m. The full setup is shown in figures \ref{trigger_cables} and \ref{trigger_to_cts}. + +The inputs to the central base line restorer boards are: First six inputs are the signals from all six TOF sectors, the other two lines on the first set of inputs are free. On the second half of inputs, port 1 to 5 and 7 are used for the six signals from RPC sectors. \begin{figure} \centering @@ -13,3 +15,9 @@ The delay of standard Ethernet cables has been measured to be 5.17 ns/m. The ful \caption{Trigger Cables between CTS and detectors. Black times are delay requirements, red times are measured latencies.} \label{trigger_cables} \end{figure} +\begin{figure} + \centering + \includegraphics[width=.9\textheight,angle=90]{trigger_to_cts.pdf} + \caption{Trigger Cables between detectors and CTS.} + \label{trigger_to_cts} +\end{figure} \ No newline at end of file diff --git a/trigger_to_cts.pdf b/trigger_to_cts.pdf new file mode 100644 index 0000000000000000000000000000000000000000..46562821440f752cd4aaf15d2cc1cf7b40ef608b GIT binary patch literal 13886 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 Vp4gu|Dgk`A0@RCmc~!Jk{|715|AYVl literal 0 HcmV?d00001 -- 2.43.0