From: Michael Wiebusch Date: Tue, 15 Apr 2014 09:05:11 +0000 (+0200) Subject: cosmetic changes to overview drawing, some more documentation X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=1c8824b0f50d961df70bf3f2297afa6deae4587c;p=mvd_docu.git cosmetic changes to overview drawing, some more documentation --- diff --git a/electronics/overview.pdf b/electronics/overview.pdf index 6ed427f..f0e695c 100644 Binary files a/electronics/overview.pdf and b/electronics/overview.pdf differ diff --git a/electronics/overview.svg b/electronics/overview.svg index a68eeb9..9397118 100644 --- a/electronics/overview.svg +++ b/electronics/overview.svg @@ -13,8 +13,8 @@ height="1015.7612" id="svg2" version="1.1" - inkscape:version="0.48.3.1 r9886" - sodipodi:docname="Link to overview.svg"> + inkscape:version="0.48.4 r9939" + sodipodi:docname="overview.svg"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -349,12 +1063,6 @@ d="m 434.69561,319.44131 0,126.56962" style="fill:#000000;fill-opacity:1;stroke:#000000" sodipodi:nodetypes="cc" /> - + @@ -1217,7 +1931,7 @@ id="path5911" inkscape:connector-curvature="0" /> @@ -1268,7 +1982,7 @@ inkscape:connector-curvature="0" id="path6207" d="m 396.59426,305.5468 0,-54.4836 -100.39315,0 0,-193.264277" - style="fill:none;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;display:inline" + style="fill:none;stroke:#000000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:1,1;stroke-dashoffset:0;display:inline" sodipodi:nodetypes="cccc" /> @@ -1327,11 +2041,11 @@ inkscape:connector-curvature="0" id="path6356" d="m 654.78188,305.5468 0,-15.88454 -81.38349,0 0,-232.620951" - style="fill:none;stroke:#800000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;display:inline" + style="fill:none;stroke:#800000;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:1,1;stroke-dashoffset:0;display:inline" sodipodi:nodetypes="cccc" /> @@ -1396,11 +2110,11 @@ inkscape:connector-curvature="0" id="path7017" d="m 226.865,490.88388 0,60.82623 -85.49698,0 0,79.7017" - style="fill:none;stroke:#000080;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:0.5, 0.5;stroke-dashoffset:0;display:inline" + style="fill:none;stroke:#000080;stroke-width:2;stroke-linejoin:miter;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:1,1;stroke-dashoffset:0;display:inline" sodipodi:nodetypes="cccc" /> @@ -2653,9 +3367,9 @@ inkscape:connector-curvature="0" id="path3291" d="m 38.928571,-41.152154 35.000001,0" - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.75;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:3.79999995000000013;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> @@ -2663,9 +3377,9 @@ inkscape:connector-curvature="0" id="path3295" d="m 158.55357,-170.79979 35,0" - style="fill:#ffffff;fill-opacity:1;stroke:#000080;stroke-width:0.75;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + style="fill:#ffffff;fill-opacity:1;stroke:#000080;stroke-width:1;stroke-miterlimit:3.79999995000000013;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> @@ -2684,7 +3398,7 @@ inkscape:connector-curvature="0" id="path3891" d="m 158.55357,-154.79979 35,0" - style="fill:#d42aff;fill-opacity:1;stroke:#800080;stroke-width:0.75;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + style="fill:#d42aff;fill-opacity:1;stroke:#800080;stroke-width:1;stroke-miterlimit:3.79999995000000013;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> + d="m -110.76954,294.30487 a 1.9887378,1.9887378 0 1 1 -3.97748,0 1.9887378,1.9887378 0 1 1 3.97748,0 z" /> - - - - - - + style="fill:#ffffff;stroke:#800000;stroke-width:1;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" /> + sodipodi:nodetypes="ccc" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5812,7 +6274,7 @@ style="fill:none;stroke:#000000;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:3.79999995;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mvdsensorcontrol/daqsetup.tex b/mvdsensorcontrol/daqsetup.tex new file mode 100644 index 0000000..8132e92 --- /dev/null +++ b/mvdsensorcontrol/daqsetup.tex @@ -0,0 +1,119 @@ +\section{Introduction} +The Micro Vertex Detector (MVD) of the Compressed Baryonic Matter (CBM) experiment employs +Monolithic Active Pixsel Sensors (MAPS) due to their unique properties concerning spacial +resolution, low material budget and radiation hardness. + +At the present time (march 2014) the Detector is not yet in the production phase but there +is ongoing research and development. Due to the fact that the sensor, intended for use in +the final detector, is not available yet, a prototype data acquisition (DAQ) system is developed +around the MIMOSA26 chip. +This documentation aims for describing the latest revision of the DAQ system, as well as providing +a guide to the monitoring, control and data acquisition software for the high level user. + +\section{Breakdown of the data acquisition system} + +\subsection{Overview} + +\begin{figure}[H] +\centering +\includegraphics[width=.8\textwidth]{principlechain.pdf} +\caption{Simplified schema of the MVD DAQ} +\label{fig:principlechain} +\end{figure} + +A strand of a MVD DAQ chain consists of the following items (see figure \ref{fig:principlechain}): +\begin{description} +\item[The sensors:] +MAPS of the model MIMOSA26 +\item[Front-end electronics] +Specialized electronics (PCBs and cables) that supply the sensors with power and external reference +voltages and to some extend convert between different logic signal standards (for example +TTL$\Leftrightarrow$LVDS). +\item[FPGA boards] +TRB3 boards, the latest general purpose FPGA platform used by the HADES experiment. +\item[Computer] +Common PC running Linux and custom control, monitoring, and data acquisition software. +\end{description} + +\subsection{The sensors} +The MIMOSA26 sensors are Monolithic Active Pixel Sensors (MAPS). In contrast to CCD sensors +MAPS can be produced in a standard CMOS process and have an amplifying transistor in each +pixel (thus "active"). This way even small amounts of charge separation can produce a measurable +electronic signal. When the sensor pixel matrix is read out, each pixel can have only one of two +states: fired or not fired (1 or 0). To achieve this hard distinction, the chip possesses a +line of discriminators at the bottom of the pixel matrix: One discriminator per matrix column. +The reference threshold voltages of the discriminators can be digitally controlled with four sensor +internal DACs (one for each fourth of the sensor). +The pixel matrix is read out sequentially (pixel by pixel) within a time period of +\SI{115}{\micro\second} which corresponds to one frame. +The sequential data is not directly transmitted, but processed by a dedicated compression +logic, the SUZE. It is designed to suppress the redundant transmission of unfired pixels. + +The readout logic of MIMOSA26 is clocked by an external clock signal +CLKL (LVDS) at \SI{80}{\mega\hertz}. + +MIMOSA26 has two synchronous serial data output ports, which operate at a frequency of +\SI{80}{\mega\hertz}. +The data output possesses an additional signal, MKD, which signals the beginning of a readout frame. + +The sensor's settings are being programmed via a JTAG interface (LVTTL) which provides the +possibility to queue multiple sensors to a JTAG chain. + +To start the sensor's data acquisition modus a short pulse has to be sent to the START input (LVDS), +while a pulse in the sensor's RESET input brings the sensor back to an idle state and resets +all previously programmed JTAG settings. + +MIMOSA26 requires two \SI{3.3}{\volt} power supply lines: analog and digital. +The digital part of the chip consumes \num{60}-\SI{100}{\milli\ampere} while the analog part +consumes up to \SI{170}{\milli\ampere}. + +The chip possesses several analog voltage lines: +\begin{itemize} +\item +The anode of a silicon diode implemented on the sensor for temperature measurement purposes. +The cathode is connected to analog ground. +\item +External outputs of the discriminator threshold voltage DACs. One differential voltage pair +for each of the four DACs. +\item +The clamping voltage (VClp) input. The clamping voltage is a reference voltage that has to be +supplied to all pixels in the pixel matrix. It serves as a reset potential for parts of the +correlated double sampling circuit. +It is suspected that the stability of this voltage has a crucial effect on the signal quality +and thus on the efficiency of the sensor. +\end{itemize} + +\begin{figure}[H] +\centering +\includegraphics[width=.6\textwidth]{m26lines.pdf} +\caption{Peripheral connections of the MIMOSA26 chip} +\label{fig:m26lines} +\end{figure} + + +\subsection{TRB3 FPGA board} +The + + +[what is where] +to explain +\begin{itemize} +\item +hub +\item +ccu +\item +roc + \begin{itemize} + \item + actual roc + \item + JTAG + \item + CbController + \end{itemize} +\item +tjah + +\end{itemize} + diff --git a/mvdsensorcontrol/documentation.tex b/mvdsensorcontrol/documentation.tex index 67f59e9..6d6f902 100644 --- a/mvdsensorcontrol/documentation.tex +++ b/mvdsensorcontrol/documentation.tex @@ -9,7 +9,9 @@ \usepackage{eurosym} \usepackage{amsmath} % \usepackage{listings} -\usepackage{hyperref} +% \usepackage{hyperref} +\usepackage[urlcolor=blue,linkcolor=blue,colorlinks=true]{hyperref} +\usepackage{siunitx} \geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=3cm,rmargin=3cm} @@ -55,6 +57,8 @@ % \include{bib} \newpage + + \section{Prerequisites (draft)} \begin{itemize} \item @@ -72,29 +76,8 @@ libxml-perl has to be installed. git \end{itemize} -\section{DAQ set-up (draft)} -[what is where] -to explain -\begin{itemize} -\item -hub -\item -ccu -\item -roc - \begin{itemize} - \item - actual roc - \item - JTAG - \item - CbController - \end{itemize} -\item -tjah - -\end{itemize} +\include{daqsetup} \section{The prototype DAQ configuration file structure} In this section the MVD DAQ prototype configuration file structure is explained top to bottom. diff --git a/mvdsensorcontrol/jtag.tex b/mvdsensorcontrol/jtag.tex index 1cd4385..950a4c0 100644 --- a/mvdsensorcontrol/jtag.tex +++ b/mvdsensorcontrol/jtag.tex @@ -129,26 +129,17 @@ ini2xml.pl -i file.ini -s specFile.xml [-o output.xml] -r, --redundant write settings to config file that are identical with the specification defaults \end{verbatim} -\subsubsection{changeConfigVal.pl} -The script parses STDIN for attribution directives in the format "registerName/fieldName=value" and applies -these attributions to a denoted configuration XML file. Multiple attributions can be processed at -the same time when separated by semicolon or line break. -Values can be entered as hex (with prefix "0x"), binary (with prefix "0b") or decimal number -(no prefix). -\begin{verbatim} -changeConfigVal.pl -c config.xml [-v] - Options: - -h, --help brief help message - -v, --verbose detailed debugging info about ongoing actions - -c, --config specifies the input config xml file - (including path if necessary!) -\end{verbatim} \subsubsection{xmlOperation.pl} +\label{sec:xmlOperation.pl} This script is a tool to edit parameters of an XML configuration file. It can edit any editable entry of a given configuration file, but can only process one command at a time. The script has a CGI interface (invoked via HTTP request) but it can also be used from the command line. +The configuration and the specification XML files are declared without path. +The tool assumes, that the configuration XML files are stored in "../../mvdconfig/config/" +and the specification files are stored in "../specs/" +(relative to the location of xmlOperation.pl). \begin{verbatim} usage: @@ -196,7 +187,25 @@ parameter explanation: action=copyFile&configFile=[configFile]&newFile=[newFile] \end{verbatim} +\subsubsection{changeConfigVal.pl} +Regarding \hyperref[sec:xmlOperation.pl]{xmlOperation.pl}, changeConfigVal.pl is redunant in its +functionality. It is merely a comfortable shortcut to change parameters inside a configuration +XML file on the fly. +The script parses STDIN for attribution directives in the format "registerName/fieldName=value" and applies +these attributions to a denoted configuration XML file. Multiple attributions can be processed at +the same time when separated by semicolon or line break. +Values can be entered as hex (with prefix "0x"), binary (with prefix "0b") or decimal number +(no prefix). +The configuration file has to be declared with its full path. +\begin{verbatim} +changeConfigVal.pl -c config.xml [-v] + Options: + -h, --help brief help message + -v, --verbose detailed debugging info about ongoing actions + -c, --config specifies the input config xml file + (including path if necessary!) +\end{verbatim} \subsubsection{startup.pl} \label{sec:startup.pl} @@ -226,6 +235,7 @@ startup.pl setupFile \subsection{Graphical JTAG Editor} +\label{sec:jtageditor} To further facilitate JTAG register manipulation an editor with graphical user interface has been implemented. When "mvdsensorcontrol/tools/jtageditor.pl" is invoked from a browser, the user will be presented with a three panel layout (see figure \ref{fig:jtageditor_ssht}). In the top panel @@ -270,4 +280,38 @@ and the specification files are stored in "../specs/" \label{fig:jtageditor_ssht} \end{figure} +\subsection{Testgui} +The Testgui application was designed to test the data acquisition of the sensors on the fly. +It greatly facilitates experimenting with distinct sensor parameters +while the reaction of the sensors can be directly observed. + +When "mvdsensorcontrol/tools/testgui.pl" is invoked from a browser the user has to choose +a \hyperref[sec:setupFile]{detector setup file} from a dropdown menu. Consequently the user +is presented with a hierarchical overview of the controller/chain/sensor topology as +described inside the setup file (see figure \ref{fig:testgui_ssht}). +Each sensor is represented by a rectangular area that will show a matrix plot of the +fired pixels during a given time period, once the user clicks on the "run" button at the +bottom of the page. Clicking on the button initiates the JTAG programming of all sensors +in the setup, followed by a period of data acquisition. The data taking time is defined +in a text field next to the "run" button. + +Alongside the plot area of each sensor there is another box labeled "quick editor". +This quick edit area is an embedded miniature edition of the \hyperref[sec:jtageditor]{JTAG editor} +which only shows a small selection of all possible JTAG settings. The selection is defined by +creating a configuration XML file with the name "quickEditMask.xml"; +all settings inside this file (regardless of their values) are used to create a selection mask. +By clicking on the XML file name at the top of the quick editor, the user is conveniently redirected +to the full featured JTAG editor that opens the respective configuration file. + +\begin{figure}[H] +\centering +\includegraphics[width=1\textwidth]{testgui.png} +\caption{Screenshot of the Testgui application} +\label{fig:testgui_ssht} +\end{figure} + + + + + diff --git a/mvdsensorcontrol/m26lines.pdf b/mvdsensorcontrol/m26lines.pdf new file mode 100644 index 0000000..86552d3 Binary files /dev/null and b/mvdsensorcontrol/m26lines.pdf differ diff --git a/mvdsensorcontrol/principlechain.pdf b/mvdsensorcontrol/principlechain.pdf new file mode 100644 index 0000000..50e69f4 Binary files /dev/null and b/mvdsensorcontrol/principlechain.pdf differ diff --git a/mvdsensorcontrol/testgui.png b/mvdsensorcontrol/testgui.png new file mode 100644 index 0000000..b9ec7ef Binary files /dev/null and b/mvdsensorcontrol/testgui.png differ