diff --git a/Logsys-Linux.tex b/Logsys-Linux.tex index 6d55dc8d313739240b7e6406c4638ea370519fd3..14d41a28d95146633d675cf9c5a1c580297dc58a 100644 --- a/Logsys-Linux.tex +++ b/Logsys-Linux.tex @@ -3,6 +3,7 @@ \usepackage[utf8]{inputenc} \usepackage[hyphens]{url} \usepackage{graphicx} +\usepackage{hhline} %\usepackage[magyar]{babel} \usepackage{amssymb} @@ -144,7 +145,7 @@ Az FPGA konfiguráció fájlok (Serial Vector Format, SVF) kezeléséhez szüks \section{Logsys USB kommunikációs protokoll} \label{sec:LS USB} Az LDC USB-azonosítója (Vendor ID : Product ID) \textit{03eb:f0ff}. Az USB eszköz két interfészt tartalmaz: a 0. interfészen található egy OUT/IN endpoint-pár (0x01, 0x82) a JTAG és SPI adatok átvitelére, illetve egy másik endpoint-pár (0x03 és 0x84) az I\textsuperscript{2}C és BitBang I/O átvitelekhez. Az 1. interfészen található az USART átvitel OUT/IN endpoint-párja (0x05 és 0x86). Ennek a kiosztásnak technikai okai vannak, amiről részletesebben Raikovich Tamás diplomatervének \cite{RT-dipterv} "8.2 A funkciók megvalósítása" fejezetében olvashatunk. -A legtöbb funkció Control blokkal vezérelhető. Az adatátvitelek az USART IN (0x86) végpontját kivéve (ami Interrupt transzfert használ) Bulk átvitelekkel történik. Lejjebb leírom az egyes funkciókat és az őket megvalósító URB-ket. +A legtöbb funkció gyártóspecifikus Control kódokkal vezérelhető. Az adatátvitelek az USART IN (0x86) végpontját kivéve (ami Interrupt transzfert használ) Bulk átvitelekkel történik. Lejjebb leírom az egyes funkciókat és az őket megvalósító URB-ket. Amennyiben a kérés valamilyen struktúrát vár/ad vissza, azt egy ofszet$\rightarrow$mező táblázattal jelzem, majd az egyes mezők leírása következik. A táblázatban a bitmezőket "(abcd efgh)" alakban reprezentálom. @@ -154,7 +155,7 @@ A saját implementációm hivatkozásánál a fájlok nevei és a sorszámok a k \subsubsection{Státusz lekérése} A Logsys GUI működése közben figyeli az LDC állapotleíróit (kimeneti feszültségek, kifolyó áram, túláram védelem bitje stb.), ezeket az információkat másodpercenként többször is lekérdezi az eszköztől. -\textbf{URB Control blokk:}\\ +\noindent\textbf{URB Control blokk:}\\ \begin{tabular}{|l|l|} \hline irány & IN\\ \hline @@ -187,13 +188,59 @@ A kérés egy struktúrát ad vissza, aminek a formátuma a következő:\\ \item E\textsubscript{1}, E\textsubscript{2}: A 0. interfész két endpoint-párjának foglaltsága \end{itemize} -\textbf{Implementáció} +\noindent\textbf{Implementáció} \begin{itemize} \item Státusz lekérdezése: \texttt{logsys\_tx\_get\_status} függvény (\textit{src/shared/control.c:7}) - \item Struktúra kiosztása: \texttt{LogsysStatus} struct (\textit{include/logsys/common.h:16}) + \item Struktúra kiosztása: \texttt{struct LogsysStatus} (\textit{include/logsys/common.h:16}) \item Struktúra feldolgozása: \textit{include/logsys/status.h} által definiált interfész (\textit{src/shared/status.c}) \end{itemize} + +\subsubsection{Tápfeszültség vezérlése} +A tápfeszültséget lehet be- illetve kikapcsolni, a túláram- és visszáram védelmi rendszer küszöbeit lekérdezni és átállítani. Ezek a funkciók mind a bRequest=2 kéréstípusba tartoznak. + +Tápfeszültség állapota: + +\noindent\textbf{URB Control blokk:}\\ +\begin{tabular}{|l|l|l|} + \hline + \textit{Művelet} & \textit{Lekérdezés} & \textit{Beállítás}\\ \hhline{|=|=|=|} + irány & IN & OUT\\ \hline + bRequest & 2 & 2\\ \hline + wValue & 0 & kívánt állapot\\ \hline + wIndex & 0 & 0\\ \hline + hossz & 1 & 0\\ \hline +\end{tabular} + +Az IN kérés egy egybájtos logikai értéket (bool) ad vissza. + +\noindent\textbf{Implementáció} +\begin{itemize} + \item Lekérdezés: \texttt{logsys\_tx\_get\_vcc} (\textit{include/logsys/control.h:35}, implementáció: \textit{src/shared/control.c:50}) + \item Állítás: \texttt{logsys\_tx\_set\_vcc} (\textit{include/logsys/control.h:35}, Implementáció: \textit{src/shared/control.c:50}) +\end{itemize} + +Túláramvédelem: + +\noindent\textbf{URB Control blokk:}\\ +\begin{tabular}{|l|l|l|l|l|} + \hline + \textit{Művelet} & \textit{Lekérdezés} & \textit{Beállítás 450 mA-ra} & \textit{Beállítás 700 mA-ra} & \textit{Beállítás 950 mA-ra}\\ \hhline{|=|=|=|=|=|} + irány & IN & OUT & OUT & OUT\\ \hline + bRequest & 2 & 2& 2& 2\\ \hline + wValue & 0x0100 & 0x0100 & 0x0101 & 0x0102\\ \hline + wIndex & 0 & 0 & 0 & 0\\ \hline + hossz & 1 & 0 & 0 & 0\\ \hline +\end{tabular} +Az IN kérés egy 0-2 közötti számot ad vissza, ami a 450, 700 illetve 950 mA-es küszöböt jelenti. Ezeket egy enumerációba gyűjtöttem a kezelhetőség javításának érdekében. + +\noindent\textbf{Implementáció} +\begin{itemize} + \item Lekérdezés: \texttt{logsys\_tx\_get\_pwr\_limit} (\textit{include/logsys/control.h:22}, implementáció: \textit{src/shared/control.c:31}) + \item Állítás: \texttt{logsys\_tx\_set\_pwr\_limit} (\textit{include/logsys/control.h:24}, Implementáció: \textit{src/shared/control.c:38}) + \item Enumeráció: \texttt{enum LogsysPwrLimit} (\textit{include/logsys/common.h:30}) +\end{itemize} + \pagebreak \begin{thebibliography}{Források} \bibitem{LS-beagy-fejl} LOGSYS – Beágyazott rendszerek fejlesztői környezete\\ diff --git a/variables.tex b/variables.tex index 1e9df4653bd426031bd7b59facef9adec14e8ea1..03249f4637bb93078aae8fc8ff9189f631598d06 100644 --- a/variables.tex +++ b/variables.tex @@ -20,7 +20,7 @@ %-------------------------------------------------------------------------------------- % TDK-specifikus változók %-------------------------------------------------------------------------------------- -\newcommand{\tdkszerzoB}{} % Második szerző neve; hagyd üresen, ha egyedül írtad a TDK-t. +\newcommand{\tdkszerzoB}{~} % Második szerző neve; hagyd üresen, ha egyedül írtad a TDK-t. \newcommand{\tdkev}{2019} % A dolgozat írásának éve (pl. "2014") (Ez OTDK-nál eltérhet az aktuális évtől.) % További adatok az OTDK címlaphoz (BME-s TDK-hoz nem kell kitölteni)