238 lines
5.9 KiB
TeX
238 lines
5.9 KiB
TeX
|
\documentclass[11pt]{article}
|
||
|
\usepackage[utf8]{inputenc}
|
||
|
\usepackage[T1]{fontenc}
|
||
|
\usepackage{graphicx}
|
||
|
\usepackage{amsmath}
|
||
|
\usepackage{amssymb}
|
||
|
\usepackage{capt-of}
|
||
|
\usepackage{hyperref}
|
||
|
\usepackage{caption}
|
||
|
\usepackage{minted}
|
||
|
\usepackage[margin=2cm]{geometry}
|
||
|
\usepackage{circuitikz}
|
||
|
\author{Pierre-Antoine}
|
||
|
\date{\today}
|
||
|
\title{Étude des microcontrolleur}
|
||
|
\hypersetup{
|
||
|
pdfauthor={Pierre-Antoine},
|
||
|
pdftitle={Étude des microcontrolleur},
|
||
|
pdfkeywords={},
|
||
|
pdfsubject={},
|
||
|
pdfcreator={Emacs 25.2.2 (Org mode 9.1.13)},
|
||
|
pdflang={English}}
|
||
|
\begin{document}
|
||
|
|
||
|
\maketitle
|
||
|
\section{Introduction}
|
||
|
|
||
|
\subsection{Prérequis et rappels}
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item logique cablée
|
||
|
\begin{itemize}
|
||
|
\item Circuit séquentiels
|
||
|
\item circuit combinatoire
|
||
|
\end{itemize}
|
||
|
\item très rapide
|
||
|
\item econome en energie
|
||
|
\item complexe à définir
|
||
|
\item figé ou difficillement modifiable
|
||
|
\item inadapté aux taches complexes
|
||
|
\end{itemize}
|
||
|
\subsection{Autre approche : logique programmée}
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item Le programme est stocké et mémoriser dans le systeme
|
||
|
\item Quantum d'information adopté en général : l'octet : 8bit.
|
||
|
\item stocké dans la mémoire morte (ROM) sous la forme d'une série de mots.
|
||
|
\item les données manipulées sont rangés en mémoire vive (RAM).
|
||
|
\end{itemize}
|
||
|
|
||
|
2 \textbf{espaces} sont nécessaires :
|
||
|
\begin{itemize}
|
||
|
\item Programme
|
||
|
\item Données
|
||
|
\end{itemize}
|
||
|
Ces espaces peuvent être disjoint (ex: PIC), ou commun (PC)
|
||
|
\subsection{Organisation interne de petit système}
|
||
|
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item ROM
|
||
|
\item RAM
|
||
|
\item Processeur
|
||
|
\item Entree/Sortie
|
||
|
\end{itemize}
|
||
|
\subsubsection{interconnexion des élements:}
|
||
|
|
||
|
Utilisation des buffers 3 états : \textbf{images}
|
||
|
\begin{center}
|
||
|
\begin{tabular}{rrl}
|
||
|
\hline
|
||
|
ES & E & S\\
|
||
|
\hline
|
||
|
0 & 0 & 0\\
|
||
|
0 & 1 & 1\\
|
||
|
1 & 0 & Z\\
|
||
|
1 & 0 & Z\\
|
||
|
\hline
|
||
|
\end{tabular}
|
||
|
\end{center}
|
||
|
avec \textbf{Z} état à haute impédance.
|
||
|
on a alors une structure de Bus.
|
||
|
\begin{center}
|
||
|
\includegraphics[width=0.7\textwidth]{./systeme.png}
|
||
|
\end{center}
|
||
|
|
||
|
La structure de bus est composé deux trois type de bus:
|
||
|
\begin{itemize}
|
||
|
\item bus d'adresse : désigne une case menu
|
||
|
\item bus de donnée : circuit des données
|
||
|
\item bus de commande (contrôle) , pour séquencer les opération d'échange
|
||
|
\end{itemize}
|
||
|
\subsection{Analyse d'un exemple}
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item identification des éléments
|
||
|
\begin{itemize}
|
||
|
\item U1 : processeur Z80 (CPU) boitier 40 broches
|
||
|
\item U2 : RAM 32 kB
|
||
|
\item U3 : EPROM : Enable Programmable Read Only Memory
|
||
|
\item U4 : PIO :Parallel Input Output
|
||
|
\end{itemize}
|
||
|
\end{itemize}
|
||
|
\section{Le timer et les séries}
|
||
|
|
||
|
Les timers sont nécessaires pour pouvoir mesurer le temps, sans monopoliser le processeur pour ca
|
||
|
\subsection{Fonction des timers:}
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item mesurer la durée d'une impulsion
|
||
|
\item compter des évènements (exemple codeur)
|
||
|
\item Générer une PWM
|
||
|
\item Lancer une fonction périodique
|
||
|
\end{itemize}
|
||
|
\subsection{fonctionnement du timer}
|
||
|
|
||
|
Voir slide du poly
|
||
|
\subsection{Timers du LPC804}
|
||
|
|
||
|
\section{Programmation des machines à états (FSM)}
|
||
|
|
||
|
\subsection{principe général pour \(\mu\) C}
|
||
|
|
||
|
\begin{center}
|
||
|
\includegraphics[width=0.7\textwidth]{./etat.png}
|
||
|
\end{center}
|
||
|
|
||
|
|
||
|
L'enjeu est de conserver et de mettre à jour facilement l'état de la machine en fonction des différentes taches.
|
||
|
\section{Appel de sous-programme, interruption et utilisation de la pile par le micro controlleur.}
|
||
|
|
||
|
|
||
|
-> faire cohabiter des taches différentes:
|
||
|
\begin{itemize}
|
||
|
\item Longue peux prioritaire (affichage LCD ..)
|
||
|
\item Courte péridique et prioritaire ( échantillonage )
|
||
|
\item Rares (liaison série ..)
|
||
|
\end{itemize}
|
||
|
|
||
|
\subsection{Fonctionnement des processeur: le cas du Cortex M0+}
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item faible consommation électrique
|
||
|
\item 56 instructions , 16 registre internes
|
||
|
\item Controlleur d'interruption NVIC
|
||
|
\item Systick timer
|
||
|
\end{itemize}
|
||
|
|
||
|
\url{http://www.infocenter.arm.com}
|
||
|
|
||
|
\subsection{fonctionnement de la CPU : schéma interne.}
|
||
|
|
||
|
\begin{center}
|
||
|
\includegraphics[width=.9\linewidth]{./arm.png}
|
||
|
\end{center}
|
||
|
\subsection{les exceptions}
|
||
|
|
||
|
\begin{itemize}
|
||
|
\item met en pause le programme pour exécuter un programme annexe,
|
||
|
\item Exception matérielle : interruption
|
||
|
\item 32 exception externe possible pour le cortex M0+ .
|
||
|
\end{itemize}
|
||
|
*
|
||
|
|
||
|
|
||
|
\section{I2C et LPC804}
|
||
|
|
||
|
3 protocoles classiques :
|
||
|
\begin{itemize}
|
||
|
\item Serial
|
||
|
\item I2C
|
||
|
\item SPI
|
||
|
\end{itemize}
|
||
|
\begin{longtable}{|l|l|l|}
|
||
|
Serial & SPI & I2C\\
|
||
|
\hline
|
||
|
\endfirsthead
|
||
|
\multicolumn{3}{l}{Continued from previous page} \\
|
||
|
\hline
|
||
|
|
||
|
Serial & SPI & I2C \\
|
||
|
|
||
|
\hline
|
||
|
\endhead
|
||
|
\hline\multicolumn{3}{r}{Continued on next page} \\
|
||
|
\endfoot
|
||
|
\endlastfoot
|
||
|
\hline
|
||
|
Asynchrone & Synchrone & \\
|
||
|
\hline
|
||
|
Pas d'émulation soft \footnotemark & emulation soft & emulation soft\\
|
||
|
point à point & point à point & BUS (adresse pour chaque périphérique I2C)\\
|
||
|
& & \\
|
||
|
& & \\
|
||
|
\end{longtable}
|
||
|
\footnotetext[1]{nécessité d'une aide physique (timer \ldots{})}
|
||
|
|
||
|
\begin{center}
|
||
|
\includegraphics[width=.9\linewidth]{./i2c.png}
|
||
|
\end{center}}
|
||
|
|
||
|
\subsection{Technologie utilisé pour les bus :}
|
||
|
|
||
|
Les sorties doivent etre à collecteur ouvert (pas de court circuit). La vitesse du bu est limité par la commutation de la résistance,
|
||
|
moins efficace mais plus imple qu'un circuit à état/haute impédance
|
||
|
|
||
|
\subsection{Trame I2C}
|
||
|
|
||
|
cf le poly distribué en cours
|
||
|
\section{CAN et CNA}
|
||
|
|
||
|
|
||
|
\emph{Objectif: interfacer des dispositifs analogique et numérique}
|
||
|
|
||
|
\subsection{Signal analogique / signal numérique}
|
||
|
|
||
|
|
||
|
La numérisation d'un signal fait intervenir:
|
||
|
\begin{itemize}
|
||
|
\item Un echantilonnage
|
||
|
\item Une quantification
|
||
|
\end{itemize}
|
||
|
|
||
|
attention au théorème de shannon.
|
||
|
|
||
|
Différents formats numérique audio (codage des données avec ou sans pertes sur plus ou moins de bits)
|
||
|
|
||
|
\subsection{Convertisseur Numérique analogique}
|
||
|
|
||
|
|
||
|
\begin{circuitikz}
|
||
|
\draw (0,0) to[R,l=\(R\)] ++(2,0) node(A)\{\(\bullet\)\} (A)node[above]\{\(V_3\)\};
|
||
|
\end{circuitikz}
|
||
|
(A) to[R,l=\(R\)] ++(2,0) node(B)\{\(\bullet\)\} node[above]\{\(V_2\)\}
|
||
|
(B) to[R,l=\(R\)] ++(2,0) node(C)\{\(\bullet\)\} node[above]\{\(V_1\)\}
|
||
|
(C) to[R,l=\(R\)] ++(2,0) node(D)\{\(\bullet\)\} node[above]\{\(V_0\)\}
|
||
|
\end{document}
|