Skip to content
Snippets Groups Projects
Commit 5bdba7df authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Vorbereitung 9.11.2022

parent 2a7f5142
No related branches found
No related tags found
No related merge requests found
../common/I2C_data_transfer.pdf
\ No newline at end of file
../common/SPI_single_slave.pdf
\ No newline at end of file
../common/SPI_three_slaves.pdf
\ No newline at end of file
../common/SPI_three_slaves_daisy_chained.pdf
\ No newline at end of file
No preview for this file type
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
% Attribution-ShareAlike 3.0 Unported License along with this % Attribution-ShareAlike 3.0 Unported License along with this
% document. If not, see <http://creativecommons.org/licenses/>. % document. If not, see <http://creativecommons.org/licenses/>.
% README: VNC, Netzwerkprogrammierung % README: VNC, Netzwerkanalyse, Netzwerkprogrammierung
\documentclass[10pt,t]{beamer} \documentclass[10pt,t]{beamer}
...@@ -71,9 +71,10 @@ ...@@ -71,9 +71,10 @@
\color{red} \color{red}
\item[3.9] Programmierung \item[3.9] Programmierung
\end{itemize} \end{itemize}
\item[\textbf{4}] \textbf{Bus-Systeme}
\item[\textbf{\dots}] \item[\textbf{\dots}]
\end{itemize} \end{itemize}
\strut\hfill \url{https://www.peter.gerwinski.de/download/net-2013ss.tar.gz} % \strut\hfill \url{https://www.peter.gerwinski.de/download/net-2013ss.tar.gz}
% \vspace*{-1cm plus 1filll} % \vspace*{-1cm plus 1filll}
...@@ -118,7 +119,7 @@ ...@@ -118,7 +119,7 @@
\lstinline[style=cmd]{DISPLAY}-Variable: X-Server: Rechner und Bildschirm \lstinline[style=cmd]{DISPLAY}-Variable: X-Server: Rechner und Bildschirm
\item \item
\lstinline[style=cmd]{ssh -X}: X11-Forwarding \lstinline[style=cmd]{ssh -X}: X11-Forwarding
\pause % \pause
\bigskip \bigskip
\item \item
VNC = Virtual Network Computing VNC = Virtual Network Computing
...@@ -145,6 +146,21 @@ ...@@ -145,6 +146,21 @@
\showsection \showsection
\showsubsection \showsubsection
Beispiel: Programmierung eines VNC-Servers per Web-Interface
\begin{itemize}
\item
Grundlagen: RFC~6143
\item
Praxis: Untersuchung mit Wireshark
\item
Implementation: JavaScript, WebSockets, \file{websockify}, Callbacks
\end{itemize}
\bigskip
Weitere Beispiele:
\begin{itemize} \begin{itemize}
\item \item
Shell-Skripte: \file{nc} (\file{traditional} oder \file{OpenBSD}) Shell-Skripte: \file{nc} (\file{traditional} oder \file{OpenBSD})
...@@ -154,18 +170,320 @@ ...@@ -154,18 +170,320 @@
C++: Callbacks C++: Callbacks
\end{itemize} \end{itemize}
\pause \end{frame}
\bigskip
Beispiel: Programmierung eines VNC-Servers per Web-Interface \section{Bus-Systeme}
\subsection{Was sind Bus-Systeme?}
\begin{frame}
\showsection
\showsubsection
\begin{quote}
Ein Bus ist ein System zur Datenübertragung zwischen mehreren
Teilnehmern über einen gemeinsamen Übertragungsweg.
\color{gray}
Findet eine Datenübertragung zwischen zwei Teilnehmern statt, so
müssen die übrigen Teilnehmer schweigen, da sie sich sonst
gegenseitig stören würden. Umgangssprachlich werden mitunter --
oft aus historischen Gründen – auch Datenübertragungssysteme als
"`Bus"' bezeichnet, die technisch eigentlich eine andere
Topologie besitzen.
\medskip
\strut\hfill\url{https://de.wikipedia.org/wiki/Bus_(Datenverarbeitung)}
\end{quote}
Beispiele:
\begin{itemize} \begin{itemize}
\item \item
Grundlagen: RFC~6143 Computer kommuniziert mit Peripherie
\item \item
Praxis: Untersuchung mit Wireshark Computer kommunizieren (direkt) miteinander
\item \item
Implementation: JavaScript, WebSockets, \file{websockify}, Callbacks Prozessor kommuniziert mit externem Speicher
\item
Teile eines Prozessors kommunizieren miteinander
\end{itemize}
\end{frame}
\begin{frame}
\showsection
\showsubsection
Standard-Personal-Computer:
\begin{itemize}
\item
Einsteckkarten: PCI (und Vorgänger)
\item
Festplatten: SATA (und Vorgänger)
\item
USB, FireWire, \dots
\item
Ethernet, CAN-Bus, \dots
\item
WLAN, BlueTooth, IR, \dots
\item
PS/2, RS-232, Centronics
\end{itemize}
\medskip
\begin{visibleenv}<2->
Minimal-Hardware:
\begin{itemize}
\item
RS-232
\item
\ItwoC\ (TWI)
\item
SPI
\end{itemize}
\end{visibleenv}
\begin{onlyenv}<1>
\begin{picture}(0,0)
\put(5,1.5){\includegraphics[height=3cm]{motherboard-anschluesse.jpg}}
\end{picture}
\end{onlyenv}
\begin{onlyenv}<2>
\begin{picture}(0,0)(-1.3,-4)
\put(1.8,-4.9){\includegraphics[height=3.5cm]{kompassmodul-an-roboter.jpg}}
\put(6.1,-3.3){\includegraphics[height=4.5cm]{kompassmodul.jpg}}
\put(6.1,1.2){\makebox(0,0)[tr]{\tikz{\draw(0,0)--(-1.9,-3.6);}}}
\put(6.1,-3.3){\makebox(0,0)[br]{\tikz{\draw(0,0)--(-1.8,0.2);}}}
\end{picture}
\end{onlyenv}
\end{frame}
\begin{frame}[fragile]
\showsection
\showsubsection
\vspace*{-\bigskipamount}
\begin{tabbing}
\newterm{Punkt-zu-Punkt}\quad\=\kill
\newterm{seriell} \> jedes Bit einzeln übertragen\\
\newterm{parallel} \> mehrere Bits gleichzeitig\\[\smallskipamount]
\newterm{synchron} \> Abgleich über Steuerleitung: \newterm{Takt}\\
\newterm{asynchron} \> Abgleich über Zeitvereinbarungen\\[\smallskipamount]
\newterm{Punkt-zu-Punkt} \> genau zwei Teilnehmer\\
\newterm{busfähig} \> mehrere Teilnehmer, mit \newterm{Adressierung}
\end{tabbing}
\begin{itemize}
\item
\ItwoC: seriell, synchron, mit Adressierung
\item
RS-232: seriell, asynchron, Punkt-zu-Punkt
\item
RS-485, USB, CAN: seriell, asynchron, mit Adressierung
\item
SPI: seriell, synchron, Punkt-zu-Punkt oder mit Adressierung
\end{itemize}
\end{frame}
\subsection{RS-232}
\begin{frame}
\showsection
\showsubsection
seriell
\begin{itemize}
\item
\newterm{TX\/}: 1 Leitung für Daten
\item
\newterm{RX\/}: ggf.\ 1 Leitung für Daten in der anderen Richtung
\item
\newterm{GND\/}: gemeinsame \newterm{Masse}
\item
evtl.\ zusätzliche Steuerleitungen
\end{itemize}
\medskip
asynchron
\begin{itemize}
\item
\emph{keine\/} Taktleitung für Abgleich, wann Daten anliegen
\item
Stattdessen: Abgleich über Zeitvereinbarungen
\arrowitem
Jeder Teilnehmer braucht eine eigene Zeitbasis.
\end{itemize}
\medskip
Punkt-zu-Punkt
\begin{itemize}
\item
nur 2 Teilnehmer vorgesehen
\end{itemize}
\end{frame}
\begin{frame}
\showsubsection
\vspace*{-0.35cm}
\begin{center}
\includegraphics[scale=0.9]{rs-232.pdf}
\end{center}
\end{frame}
\subsection{\protect\ItwoC\ (TWI)}
\begin{frame}
\showsection
\showsubsection
\ItwoC\ = Inter-IC; TWI = Two-Wire-Interface
\medskip
seriell
\begin{itemize}
\item
\newterm{SDA\/}: 1 Leitung für Daten (in beiden Richtungen)
\item
\newterm{SCL\/}: Taktleitung (Clock)
\item
\newterm{GND\/}: gemeinsame Masse
\item
evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät
\end{itemize}
\medskip
synchron
\begin{itemize}
\item
Abgleich über\\Taktleitung
\begin{picture}(0,0)
\put(0.4,-0.4){\includegraphics[width=9.7cm]{I2C_data_transfer.pdf}}
\end{picture}
\end{itemize}
\medskip
busfähig
\begin{itemize}
\item
\newterm{Master\/} initiiert Kommuniation und steuert Taktleitung
\item
erstes gesendetes Byte: \newterm{Adresse\/} des Teilnehmers
\item
2 Adressen pro Teilnehmer: Lesen/Schreiben
\end{itemize}
\vspace*{-1cm}
\end{frame}
\subsection{SPI}
\begin{frame}
\showsection
\showsubsection
Serial Peripheral Interface
\medskip
seriell
\begin{itemize}
\item
\newterm{MOSI\/}: Master Out, Slave In
\item
\newterm{MISO\/}: Master In, Slave Out
\item
\newterm{SCLK\/}: Taktleitung (Clock)
\item
\newterm{$\overline{\text{SS}}$\/}: Slave Select (invertiert)
\item
\newterm{GND\/}: gemeinsame Masse
\item
evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät
\end{itemize}
\medskip
synchron
\begin{itemize}
\item
Abgleich über Taktleitung
\end{itemize}
\medskip
busfähig
\begin{itemize}
\item
\newterm{Master\/} initiiert Kommuniation und steuert Taktleitung
\item
\newterm{Slave\/} wird über \newterm{Slave Select\/} ausgewählt
\begin{picture}(0,0)(0,-0.2)
\only<1>{\put(-2.175,2.875){\includegraphics[scale=0.7]{SPI_single_slave.pdf}}}
\only<2>{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves.pdf}}}
\only<2>{\put(2.55,3.1){\begin{minipage}[t]{2.5cm}
\newterm{Stern}
\end{minipage}}}
\only<3->{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves_daisy_chained.pdf}}}
\only<3->{\put(2.55,3.1){\begin{minipage}[t]{2.5cm}
\newterm{Kaskade}\\
\newterm{Daisy Chain}\pause[4]\par\smallskip
\setlength{\leftskip}{-3.5cm}\small
Slave gibt MOSI-Input um 1 Takt verzögert
an MISO aus \textarrow\ Master setzt
"`im richtigen Moment"' $\overline{\text{SS}}$
\end{minipage}}}
\end{picture}
\end{itemize}
\vspace*{-1cm}
\end{frame}
\subsection{PWM}
\begin{frame}
\showsection
\showsubsection
Pulsweitenmodulation -- \emph{pulse-width modulation}
\begin{itemize}
\item
Steuerung von Motoren
\item
Nutzung als allgemeines Protokoll\\
zur Übertragung analoger Werte
\end{itemize}
\end{frame}
\subsection{Sonstiges}
\begin{frame}
\showsection
\showsubsection
Matrix-Schaltung
\begin{itemize}
\item
möglichst viele Aktoren/Sensoren\\
über möglichst wenige digitals Inputs abfragen\\
bzw.\ über möglichst wenige digitale Outputs steuern
\item
Beispiele: LED-Felder, Tastaturen
\end{itemize}
\pause
\bigskip
R/2R-Netzwerk
\begin{itemize}
\item
möglichst viele digitale Inputs\\
über einen einzigen analogen Input abfragen
\item
Beispiele: Tastaturen
\end{itemize} \end{itemize}
\end{frame} \end{frame}
......
../common/kompassmodul-an-roboter.jpg
\ No newline at end of file
../common/kompassmodul.jpg
\ No newline at end of file
../common/motherboard-anschluesse.jpg
\ No newline at end of file
../common/rs-232.pdf
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment