From: Jan Michel Date: Fri, 10 Oct 2014 09:50:01 +0000 (+0200) Subject: Added description of data formats X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=736970a237f2c1652f59465d7ceb78077d17db3d;p=mvd_docu.git Added description of data formats --- diff --git a/dataformat/DataFileStructure.tex b/dataformat/DataFileStructure.tex index 44951d8..e7b3605 100644 --- a/dataformat/DataFileStructure.tex +++ b/dataformat/DataFileStructure.tex @@ -17,7 +17,8 @@ This section is followed by the individual sensor data. \hline \textbf{Bits} & \textbf{Description} \\ \hline\hline -31 -- 24 & Version Number. Defines how the following data is to be unpacked. \\ +31 -- 24 & Header Version. Defines how the following header is to be unpacked. \\ +23 -- 16 & Data Version. Defines how the following data is to be unpacked. \\ 7 -- 0 & Header Size. Number of additional 32 Bit words inside the header before the first frame header is sent\\ \hline \end{tabularx} @@ -36,10 +37,13 @@ This section is followed by the individual sensor data. \hline\hline 1 & 31 & Frame Marked. If this bit is set, the ROC got an external trigger / marker signal during reception of this frame on the first spare input (J6, 1) on the first converter board.\\ -1 & 23 -- 0 & Timestamp. Clock Cycles (100 MHz) since the last rising edge on the trigger / marker signal input.\\ +1 & 23 -- 0 & Marker Timestamp. Clock Cycles (100 MHz) since the last rising edge on the trigger / marker signal input.\\ +\hline +2 & 31 -- 0 & Frame Timestamp. Timestamp of the frame, counting clock cycles. Gives the starting time of a frame. \\ \hline \end{tabularx} -\caption{The ROC header words} +\caption{The ROC header version 1 words. Number of words can vary as indicated in the first header word.} + \label{rocheaderwords} \end{center} \end{table} @@ -48,6 +52,10 @@ marker signal during reception of this frame on the first spare input (J6, 1) on \subsection{Frame Structure} The content of the frame header may change with different roc data format versions as indicated in the ROC header. +The first version forsees two data formats: Containing normal data with few debugging information, and a testmode +format. Later, a more concise format with debugging or a more verbose one can be added. + +The first word must be equal for all data formats, containing sensor id and total frame length, including headers. \begin{table}[htbp] \begin{center} @@ -55,18 +63,55 @@ The content of the frame header may change with different roc data format versio \hline \textbf{Word} & \textbf{Bits} & \textbf{Description} \\ \hline\hline -1 & 31 -- 0 & Frame Header. Should always read 0xFFFFFFFF\\ -2 & 31 -- 0 & Sensor ID. The 16 Bit sensor ID, repeated twice. The sensor id is an integer marking the position of the sensor -on the respective ROC. The first sensor ont he first converter board as ID 0\\ -3 & 31 -- 0 & Status \\ -4 & 31 -- 0 & Debug 1 \\ -5 & 31 -- 0 & Debug 2 \\ -6 & 31 -- 0 & Timestamp, LSB \\ -7 & 31 -- 0 & Timestamp, MSB \\ +1 Header & 7 -- 0 & Sensor ID \\ + & 31 -- 16 & Frame Length \\ +2 Status & 31 -- 0 & 32 Bit status word, defined elsewhere. \\ +3 Time & 31 -- 0 & 32 Bit timestamp, when the frame has been received by the FPGA\\ +4 Start & 31 -- 0 & Sensor Header, should be 0x55555555 \\ +5 Frame & 31 -- 0 & Frame Number \\ +6 Length & 15 -- 0 & Frame Length, copied in upper 16 Bit \\ +7 -- N & & Sensor Data \\ +\hline +\end{tabularx} +\caption{Frame format for normal data (type 0x01). In case of a non-working sensor, only words 1 to 3 are present.} +\label{frameNormalData} +\end{center} +\end{table} + +\begin{table}[htbp] +\begin{center} +\begin{tabularx}{\textwidth}{|c|c|C|} +\hline +\textbf{Word} & \textbf{Bits} & \textbf{Description} \\ +\hline\hline +1 Header & 7 -- 0 & Sensor ID \\ + & 15 -- 8 & Status \\ + & 31 -- 16 & Frame Length \\ +2 -- N & & Sensor Data \\ \hline \end{tabularx} -\caption{The frame header words, data format version 1.} -\label{frameheaderwords} +\caption{Frame format for normal data, optimized version (type 0x02). Timestamp and frame number will be moved to ROC header, but remain checked by the FPGA.} +\label{frameNormalDataShort} \end{center} -\end{table} \ No newline at end of file +\end{table} + + +\begin{table}[htbp] +\begin{center} +\begin{tabularx}{\textwidth}{|c|c|C|} +\hline +\textbf{Word} & \textbf{Bits} & \textbf{Description} \\ +\hline\hline +1 Header & 7 -- 0 & Sensor ID \\ + & 31 -- 16 & Frame Length \\ +2 Info & 23 -- 16 & Threshold \\ + & 15 -- 0 & Run Number \\ +3 Row & 15 -- 0 & Internal frame counter. I.e. the row scanned\\ +4 -- 39 & & Sensor Data. One bit per pixel, from 0 (first word, MSB) to 1152 (last word, LSB) \\ +\hline +\end{tabularx} +\caption{Frame format for testmode data (type 0xC0).} +\label{frameTestmodeData} +\end{center} +\end{table} diff --git a/dataformat/main.pdf b/dataformat/main.pdf index b9e652f..20741f5 100644 Binary files a/dataformat/main.pdf and b/dataformat/main.pdf differ