% Artikel \documentclass[ 11pt, % Schriftgröße a4paper, % Papiergröße ngerman % Sprache ]{article} % Geometrie \usepackage[ left=2.75cm, % linker Seitenabstand right=2.75cm, % rechter Seitenabstand top=2.0cm, % oberer Seitenabstand bottom=2.0cm, % unterer Seitenabstand includeheadfoot ]{geometry} % Links \usepackage[ bookmarks=true, % PDF-Lesezeichen bookmarksopen=true, % Lesezeichen ausgeklappt bookmarksnumbered=true, % Anzeige der Kapitelzahlen am Anfang der Namen der pdfstartpage=2, % PDF-Startseite baseurl=http://www.sebastianbartsch.de/data/TEMP/document.pdf, pdftitle={Protokoll zum Mikrocomputertechnik-Praktikum},% PDF-Titel pdfauthor={Sebastian Bartsch}, % PDF-Autor pdfsubject={/}, % Inhaltsbeschreibung pdfkeywords={/}, % Stichwortangabe breaklinks=true, % ermöglicht einen Umbruch von URLs colorlinks=true, % Einfärbung von Links linkcolor=black, % Linkfarbe: schwarz anchorcolor=black, % Ankerfarbe: schwarz citecolor=black, % Literaturlinks: schwarz filecolor=black, % Links zu lokalen Dateien: schwarz menucolor=black, % Acrobat Menü Einträge: schwarz pagecolor=black, % Links zu anderen Seiten im Text: schwarz urlcolor=black % URL-Farbe: schwarz ]{hyperref} % weitere Includes \usepackage{ngerman} % deutsches Wörterbuch \usepackage[ngerman]{babel} % für Silbentrennung \usepackage[utf8]{inputenc} % Zeichensatz \usepackage[T1]{fontenc} % Vektorgrafik \usepackage[automark]{scrpage2} % für Kopf/Fußzeilen \usepackage{lastpage} % für Seitenanzahl \usepackage{graphicx} % für Grafiken \usepackage{amsmath,amssymb,amstext} % für Mathematik usw %\usepackage[thinspace,thinqspace,squaren,textstyle]{SIunits} % SI-Einheiten \usepackage{prettyref} \usepackage{titleref} % für Komplett-Verweise % Autor und Title \author{Sebastian Bartsch} \title{Protokoll zum Mikrocomputertechnik-Praktikum} % Zeilenabstand 1,5 \renewcommand{\baselinestretch}{1.3} % Kopf/Fußzeilen \pagestyle{scrheadings} \ihead[]{Protokoll zum Mikrocomputertechnik-Praktikum} % Kopfzeile \chead[]{} \ohead[]{\rightmark} \setheadsepline[15.5cm]{0.1mm} \ifoot[]{Sebastian Bartsch} % Fußzeile \cfoot[]{Seite \pagemark ~von \pageref{LastPage}} \ofoot[]{\today} \setfootsepline[15.5cm]{0.1mm} % Abbildungsunterschriften \usepackage[bf]{caption2} \renewcommand{\captionfont}{\small\slshape} % klein und schräg (Schräg: \slshape Kursiv: \itshape) \renewcommand{\figurename}{Abb.} \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}} % [Kapitel].[Bildnummer] \makeatletter \@addtoreset{figure}{section} \makeatother % Verweise \newrefformat{chp}{Kapitel~\ref{#1}} % für Abschnitte \newrefformat{sec}{Abschnitt~\ref{#1}} % für Abschnitte \newrefformat{fig}{Abb.~\ref{#1}} % für Abbildungen \newrefformat{tab}{Tab.~\ref{#1}} % für Tabellen % ---BEGIN--- \begin{document} % Deckblatt \begin{titlepage} \thispagestyle{empty} % keine Kopf/Fußzeilen \begin{minipage}[b]{10 cm} PROTOKOLL ZUM \\ MIKROCOMPUTERTECHNIK-PRAKTIKUM \end{minipage} \begin{minipage}[b]{5 cm} \begin{flushright}\href{http://www.haw-ingolstadt.de/}{\includegraphics[height=0.05\textheight]{FH-Logo}}\end{flushright} \end{minipage} \vspace{6 cm} \begin{center} {\LARGE LIN-Bus, Request mit Response,\\ Anstiegs- und Abfallzeiten der Flanken} \vspace{1 cm} \\ \large von Sebastian Bartsch \vspace{1 cm} \\ %%% VERSION %%% \small (Version 1.0) \end{center} \vspace{5 cm} Unterschrift des Verfassers: \\ \begin{center} \line(1,0){150} ~Ingolstadt, den \today \\ \end{center} {\small Mit der Unterschrift bestätigen Sie, das Protokoll selbstständig verfasst zu haben und alle Hilfsmittel angegeben zu haben (Literatur- und Quellenverzeichnis).} \vspace{1 cm} \flushright \href{http://creativecommons.org/licenses/by-sa/3.0/deed.de}{Creative-Commons(by-sa)} \clearpage \end{titlepage} % Zusammebfassung \begin{center}\textbf{Zusammenfassung}\end{center} Dieses Protokoll enthält eine Beschreibung des grundlegenden Versuchsaufbaus zum Praktikum Mikrocomputertechnik 2011, sowie eine Auswertung der Kommunikation in einem LIN-Bussystem. Die LIN-Buskommunikation wird anhand von Messungen praktisch dargestellt und im Hinblick auf die Anstiegs- und Abfallzeiten der Flanken analysiert. % Inhaltsverzeichnis \tableofcontents \clearpage % 1. Einleitung \section{Einleitung} Aufgabe des Versuchs ist es, das bestehende C-Programm \glqq so zu erweitern, dass eine Kommunikation in einem LIN-Bussystem möglich ist\grqq . \cite{gaul-pa} \\ Da der LIN-Master sowie das Busprotokoll gegeben sind, müssen nur noch das UART-Modul, sowie einzelne Ports des Mikrocontrollers konfiguriert werden. Für die LIN-Kommunikation sind dann die notwendigen Interrupts zu implementieren. \\ Im Folgenden wird auf den Entwicklungsplatz und auf die Messungen bezüglich des implementierten LIN-Bussystems eingegangen. Weitere Einzelheiten zur Implementierung des XC161 als LIN-Slave können dem \emph{Protokoll zum Mikrocomputertechnik-Praktikum -- Thema: LIN-Kommunikation} von Markus Becker \footnote{\url{http://files.mbecker-tech.de/FH/Mikrocomputertechnik_Praktikum_LIN_Bus.pdf} (CC (by-nc-sa))} entnommen werden. \begin{figure}[h]\begin{center} \includegraphics[width=0.9\textwidth]{Arbeitsplatz} \caption{Übersicht über den im Praktikum verwendeten Arbeitsplatz} \label{fig:Arbeitsplatz} \end{center}\end{figure} Wie auf \prettyref{fig:Arbeitsplatz} ersichtlich, besteht der Arbeitsplatz aus einem PC mit zwei Bildschirmen, einem auf einem Holzbrett angebrachten Mikrocontroller, sowie einem FPGA-Board. An den Mikrocontroller sind noch Erweiterungen wie das Display, die Tastaturmatrix, eine Drosselklappe und das LIN-Modul angeschlossen. Nicht sichtbar auf \prettyref{fig:Arbeitsplatz} ist das Oszilloskop. Auf die für die LIN-Kommunikation wichtigen Komponenten wird nun genauer in \prettyref{chp:Entwicklungsplatz} eingegangen. \clearpage % 2. Entwicklungsplatz \section{Entwicklungsplatz} \label{chp:Entwicklungsplatz} Der Entwicklungsplatz besteht im Westenlichen aus einem XC161-Mikrocontroller von Infineon, einem DE1 FPGA-Board von Altera, einem Oszilloskop und einem handelsüblichen Windows-PC mit der vorinstallierten Entwicklungsumgebung Keil. Des weiteren sind verschiedene Schnittstellenanalysatoren und die dazu nötige Software vorhanden. Auch ein speziell für das Beobachten der LIN-Buskommunikation bestimmtes Oszilloskop ist für alle zugänglich. % 2.1. Der XC161-Mikrocontroller \subsection{Der XC161-Mikrocontroller} Als Derivat der XC166-Familie der Infineon Technologies AG verfügt der \emph{XC161}, wie im Blockdiagramm (siehe \prettyref{fig:XC161}) ersichtlich, über eine C166SV2 CPU. Die anderen XC16x-Mikrocontroller unterscheiden sich hier im Bezug auf Peripherie-Module und Speicherkapazitäten von dem vorliegenden Controller. \cite{gaul-pe} \begin{figure}[h]\begin{center} \includegraphics[width=0.8\textwidth]{XC161} \caption{Blockdiagramm des XC161 Mikrocontrollers von Infineon (Quelle: XC161 User Manual, V2.2 Januar 2004, Infineon)} \label{fig:XC161} \end{center}\end{figure} Das in \prettyref{fig:XC161} dargestellte Blockdiagramm ermöglicht bereits einen guten Überblick. Für weitere Informationen über den vorliegenden Mikrocontroller ist die \emph{Einführung Mikrocomputertechnik Praktikum [L. Gaul]} sowie das jeweilige Datenblatt von Infineon zu empfehlen. % 2.2. Die Entwicklungsumgebung von Keil \subsection{Die Entwicklungsumgebung von Keil} Im Praktikum findet die \emph{$\mu$Vision4 IDE} der ARM Ltd and ARM Germany GmbH Verwendung. Eine Demoversion der Evaluationssoftware lässt sich auf der \href{http://www.keil.com/demo/}{Homepage von Keil} herunter\-laden. \\ Es handelt sich hierbei um eine moderne Entwicklungsumgebung mit intuitiver, grafischer Oberfläche (siehe \prettyref{fig:KeilTK}). Die Programmerstellung erfolgt in einem integrierten Texteditor, wahlweise in den Programmiersprachen C oder Assembler. Die dafür benötigten Compiler und Linker (inklusive Bibliotheken) sind selbstverständlich vorhanden und ein Debugger erlaubt eine Simulation des erstellten Programms. Mit dem sogenannten ULINK JTAG Adapter lässt sich das fertige Maschinenprogramm dann auf die Zielhardware flashen. Er ermöglicht ebenso den direkten Zugriff des Debugger auf den Mikrocontroller, sodass sich der Programmverlauf auch auf der Hardware verfolgen lässt. \begin{figure}[h]\begin{center} \includegraphics[width=0.9\textwidth]{KeilTK} \caption{Screenshot des Keil-Toolkits im Debuggingmodus mit simulierten Ports} \label{fig:KeilTK} \end{center}\end{figure} Die den im Praktikum verwendeten XC161-Mikrocontroller betreffenden Einstellungen sind ebenfalls der \emph{Einführung Mikrocomputertechnik Praktikum [L. Gaul]} zu entnehmen, für weitere Einstellungen sind auch hier die jeweiligen Hilfsdialoge und Datenblätter zu empfehlen. \newpage % 2.3. Das WaveRunner 44Xi-A Oszilloskop \subsection{Das WaveRunner 44Xi-A Oszilloskop} Das WaveRunner 44Xi-A der LeCroy AG ist ein 4 Kanal Oszilloskop mit 10.4" Farbdisplay. Es ist zum Triggern auf \emph{I$^2$C}, \emph{SPI}, \emph{UART}, \emph{RS-232}, \emph{AudioBus}, \emph{LIN}, \emph{CAN}, \emph{FlexRay} oder \emph{MIL-STD-1553} Signale geeignet. \cite{lecroy-com} \\Die Bedienoberfläche ist, soweit sie für den Versuch benötigt wird, recht intuitiv gestaltet. \begin{figure}[h]\begin{center} \includegraphics[width=0.9\textwidth]{44Xi-A} \caption{Fotographie des WaveRunner 44Xi-A Oszilloskops} \end{center}\end{figure} Zum Triggern auf das im Praktikum verwendete Signal ist das Oszilloskop auf LIN einzustellen und die passende Frequenz von 19.200\,kbit/s auszuwählen. Des weiteren muss man die Frame-ID des Masterrequests als Hexadezimalzahl angeben. Diese besteht aus einer Responsenummer für die Temperatur-/Frequenz-/Tastatur-Auswahl und einer Slavenummer für die Gruppe. \clearpage % 3. Messungen \section{Messungen} Die von mir durchgeführten Messungen erfolgen bei fertig implementierter LIN-Kommunikation zwischen Praktikumsbetreuung (Master) und XC161 (Slave). Meine Messergebnisse sind als Screenshot dem jeweiligen Oszilloskop entnommen und werden kurz beschrieben. Anschließend folgt eine kurze Interpretation. % 3.1. Messergebnisse \subsection{Request mit Response} Der LIN-Master schickt abwechselnd mehrere Master-Requests an das Netzwerk. Dabei werden die einzelnen LIN-Slaves nacheinander angesprochen und es wird ihnen die Möglichkeit zum Antworten auf die betreffende Anfrage gegeben. \begin{figure}[h]\begin{center} \includegraphics[width=0.9\textwidth]{Request} \caption{Screenshot des Master-Request ohne anschließenden Slave-Response} \label{fig:Request} \end{center}\end{figure} Nach einer Synchronisationspause und dem 0x55-Synchronisationsfeld folgt der Identifier, in diesem Fall die 0x22 für die Frequenz der zweiten Gruppe. Danach kann dann der betreffende Slave auf diese Anfrage antworten. Wie in \prettyref{fig:Request} zu sehen, muss keine Antwort erfolgen, in \prettyref{fig:Response} ist zusätzlich noch die Antwort des Slaves abgebildet. \clearpage Nach korrekter Implementierung des Mikrocontrollers als LIN-Slave wird auf diesen Request ein korrekter Slave-Response gesendet. Dazu muss der Mikrocontroller den eingehenden Request verarbeiten und, sollte der passende Identifier gesendet werden, entsprechend reagieren. \begin{figure}[h]\begin{center} \includegraphics[width=0.9\textwidth]{Response} \caption{Screenshot des Master-Request mit anschließendem Slave-Response} \label{fig:Response} \end{center}\end{figure} Nach der Synchronisation und dem entsprechenden Identifier wird nun mit vier Nullen 0x00 (die Frequenzmessung liefert 0000\,MHz) und einer Prüfsumme geantwortet. Diese Übertragung kann dann vom Master empfangen werden. Die Prüfsumme wird arithmetisch aus den davor übertragenen Bytes berechnet und dient zur Protokollabsicherung. \clearpage % 3.2. Anstiegs- und Abfallzeiten der Flanken \subsection{Anstiegs- und Abfallzeiten der Flanken} Zum Aufzeichnen der Flanken wird das normale Oszilloskop am Arbeitsplatz an die LIN-Huckepack Platine angeschlossen. Nach Auswahl der richtigen Auflösung wird ein einzelnes LIN-Signal aufgezeichnet. \\ Da der Mikrocontroller als LIN-Slave konfiguriert ist, kann leider keine klar dem Slave zugeordnete Flanke aufgezeichnet werden. Die Idee dem Normal- den Soft-Slope-Modus gegenüberzustellen konnte somit leider aus Zeitgründen nicht realisiert werden. \begin{figure}[h]\begin{center} \includegraphics[width=0.9\textwidth]{Flanken} \caption{Screenshot eines einzelnen LIN-Bus-Signals mit Flanken} \label{fig:Flanken} \end{center}\end{figure} Die aufgezeichnete Spannungsamplitude von 10\,V wird 40\,$\mu$s lang gehalten. Es ergibt sich eine Anstiegszeit von zirka 20\,$\mu$s und eine Abfallzeit von zirka 10\,$\mu$s. Damit ergibt sich für die Anstiegsflanke eine Flankensteilheit von 0,5\,V/$\mu$s und für die Abstiegsflanke eine entsprechende Steilheit von 1\,V/$\mu$s. \clearpage % 3.3. Interpretation \subsection{Interpretation} Die klare und einfache Struktur der LIN-Buskommunikation ist auch bei praktischen Messungen deutlich zu erkennen. Vergleiche dazu die Aufzeichnungen zum Request (\prettyref{fig:Request}) beziehungsweise zum gesamten Response (\prettyref{fig:Response}). \\ Request- und Response-Signale der seriellen LIN-Buskommunikation entsprechen dem dargestellten Standard. \begin{figure}[h]\begin{center} \includegraphics[width=0.8\textwidth]{LIN-Frames} \caption{Prinzipieller Aufbau eines LIN-Frames (Quelle: C. Eis, Projektbericht 2005 / Grzemba, A.: LIN Bus – die Technologie, Teil 1: Netzwerkarchitektur mechatronischer Systeme und Übersicht über die Technologie sowie das Protokoll, 2003. Verfügbar: www.elektroniknet.de)} \label{fig:LIN-Frames} \end{center}\end{figure} Da leider keine Messung von Flanken im Low-Slope-Modus gemacht werden konnte, ist zur Flankensteilheit nur festzustellen, dass die Flanken der Charakteristik des LIN-Busses entsprechen. Die Flankensteilheit ist zwar nicht explizit definiert, sie ist aber nach EMV-Vorschriften vom Transceiver auf unter 1\,V/$\mu$s zu begrenzen. \cite{lin-bus} \\ Die unterschiedlichen Übertragungsraten von 20\,kBaud und 10\,kBaud würde eine Unterschied in der Flankensteilheit zwischen Normal- und Low-Slope-Modus ergeben. Leider liegen uns nur die im Normalmodus gemessenen Flanken vor. (Vergleiche hierzu \prettyref{fig:Flanken}) \begin{figure}[h]\begin{center} \includegraphics[width=0.8\textwidth]{Slope-Modus} \caption{Charakterisierte Übergangszeiten eines Signalwechsels nach Slope-Modus (Quelle: M. Müller -- D. Mayr -- M. Junginger , Projektarbeit Bus-Syteme und Interfaces -- Implementierung eines LIN-Slaves, 2005, Verfügbar: \href{http://davey.de/uploads/media/Projekt-BusSys-Dokumentation.pdf}{www.davey.de})} \end{center}\end{figure} \clearpage % 4. Fazit \section{Fazit} Trotz fehlender zusätzlicher Messungen im Low-Slope-Modus besticht die LIN-Buskommunikation nicht nur in der Theorie durch ihre Einfachheit. Die einfache Implementierung in C auf einem XC161-Mikrocontroller und die klaren und deutlichen Messungen unterstreichen diesen Vorteil des LIN-Busses gegenüber dem schon komplexeren CAN-Bus. \\ Wo also weder eine hohe Datenrate noch eine hohe Übertragungssicherheit benötigt wird, kann aus Entwicklungs- und Kosten-Gründen der LIN-Bus als gute Alternative zu anderen Bussystemen angesehen werden. Natürlich kann diese Einfachheit aber bei höheren Ansprüchen im Wege stehen. \\ \\ Insgesamt ermöglicht das Praktikum, verbunden mit den Messungen, einen praxisnahen Einblick in Entwicklung und Analyse. Durch den Einsatz verschiedener Tools und Ansätze kann eine realistische Arbeitsumgebung geschaffen werden. Als Begleitung zur Vorlesung bietet das Praktikum praktisches Verständnis und Motivation. Die Erstellung eines Protokolls ist als gute Vorbereitung für zukünftige Arbeiten zu sehen. \clearpage % Literaturverzeichnis \phantomsection \addcontentsline{toc}{section}{Literaturverzeichnis} \bibliographystyle{unsrt} % durchnummeriert (nach referenzreihenfolge: unsrt, nach namen: abbrv) \bibliography{referenzen} % benötigt referenzen.bib % Abbildungsverzeichnis \phantomsection \addcontentsline{toc}{section}{Abbildungsverzeichnis} \listoffigures \clearpage % Lizenz \section*{Lizenz} % ohne Kapitel Nummer \addcontentsline{toc}{section}{Lizenz} % im Inhaltsverzeichnis Diese Arbeit steht unter der freien Creative Commons Lizenz \\ \href{http://creativecommons.org/licenses/by-sa/3.0/deed.de}{\emph{Namensnennung-Weitergabe unter gleichen Bedingungen 3.0 Unported (CC BY-SA 3.0)}}. \subsection*{Sie dürfen:} das Werk bzw. den Inhalt vervielfältigen, verbreiten und öffentlich zugänglich machen. \\ Abwandlungen und Bearbeitungen des Werkes bzw. Inhaltes anfertigen. \subsection*{Zu den folgenden Bedingungen:} \textbf{Namensnennung} -- Sie müssen den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. \\ \textbf{Weitergabe unter gleichen Bedingungen} -- Wenn Sie das lizenzierte Werk bzw. den lizenzierten Inhalt bearbeiten oder in anderer Weise erkennbar als Grundlage für eigenes Schaffen verwenden, dürfen Sie die daraufhin neu entstandenen Werke bzw. Inhalte nur unter Verwendung von Lizenzbedingungen weitergeben, die mit denen dieses Lizenzvertrages identisch oder vergleichbar sind. \subsection*{Wobei gilt:} \textbf{Verzichtserklärung} -- Jede der vorgenannten Bedingungen kann aufgehoben werden, sofern Sie die ausdrückliche Einwilligung des Rechteinhabers dazu erhalten. \\ \textbf{Public Domain (gemeinfreie oder nicht-schützbare Inhalte)} -- Soweit das Werk, der Inhalt oder irgendein Teil davon zur \href{http://wiki.creativecommons.org/Public_domain}{\underline{\textbf{Public Domain}}} der jeweiligen Rechtsordnung gehört, wird dieser Status von der Lizenz in keiner Weise berührt. \\ \textbf{Sonstige Rechte} -- Die Lizenz hat keinerlei Einfluss auf die folgenden Rechte: \begin{itemize} \item Die Rechte, die jedermann wegen der Schranken des Urheberrechts oder aufgrund gesetzlicher Erlaubnisse zustehen (in einigen Ländern als grundsätzliche Doktrin des \href{http://wiki.creativecommons.org/Frequently_Asked_Questions#Do_Creative_Commons_licenses_affect_fair_use.2C_fair_dealing_or_other_exceptions_to_copyright.3F}{\underline{\textbf{fair use}}} etabliert); \item Das Urheberpersönlichkeitsrecht des Rechteinhabers; \item Rechte anderer Personen, entweder am Lizenzgegenstand selber oder bezüglich seiner Verwendung, zum Beispiel Persönlichkeitsrechte abgebildeter Personen. \end{itemize} \textbf{Hinweis} -- Im Falle einer Verbreitung müssen Sie anderen alle Lizenzbedingungen mitteilen, die für dieses Werk gelten. Am einfachsten ist es, an entsprechender Stelle einen Link auf diese Seite einzubinden. % ---ENDE--- \end{document}