Académique Documents
Professionnel Documents
Culture Documents
A. PRESENTATION DU SYSTEME:
1. CONTEXTE :
Plusieurs entreprises ont développé des robots pour évaluer l'état des conduites dans les bâtiments ou
celui des canaux de drainage dans les villes, en vérifiant par exemple le niveau d'empoussièrement, le taux
de certains gaz, la valeur de la température ou la présence de problèmes d'étanchéité.
On se propose dans ce sujet, l'étude d'un robot didactique, capable de réaliser des opérations
d'inspection sur ce type de conduites.
Du point de vue fonctionnel, le robot peut être piloté à distance (vitesse et direction) en se basant sur
les images fournies par une caméra IP embarquée. L’architecture du système donnée à la figure 2, montre le
matériel mis en œuvre:
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 2
28
Ordinateur de
contrôle
Opérateur Emetteur/Récepteur HF
XBee
Robot de
reconnaissance
Console de
commande
Emetteur/Récepteur HF
XBee
Module XBee
Double pont en H
L298N
L293D
Capteur température
Alimentation externe
Microcontrôleur DS1631
DS1621
16F877
Eclairage
7,2V
Capteur gyroscopique
MPU-6050
Détecteur d’obstacle
Système de détection du
Régulation de monoxyde de carbone
tension 5V Caméra IP
Système embarqué
1- Acquisition de la température :
Le circuit DS1621 appartient à la famille des capteurs intelligents. Sur la même puce, est intégré un
capteur de température associé à une électronique d’interface (Transducteur, microcontrôleur, bus I2C)
(Voir Annexe 1).
Le capteur de température communique avec le microcontrôleur à travers le bus I2C, et effectue une
mesure régulière toutes les secondes.
Q.5. En exploitant l’annexe 1 et le schéma structurel de la figure 4, donner l’adresse de ce capteur sur le
bus I2C.
Q.6. Sur le document réponse DR1, donner le mot à mettre dans le registre de configuration permettant
d’avoir une mesure de température en mode continu et une polarité positive de la sortie TOUT.
Q.7. L’initialisation du capteur consiste à programmer son registre de configuration. Pour cela, il suffit
d’envoyer la commande 0xAC (Access Config), puis d’envoyer la valeur à écrire dans le registre
de configuration. Sur le document réponse DR1, donner la trame I2C correspondante.
Q.8. L’algorithme suivant décrit la procédure utilisée pour la lecture de température :
Initialisation du capteur de température
Boucle infinie
o Démarrage de la conversion (mot de commande 0xEE)
o Lecture de la température (mot de commande 0xAA)
o Affichage de la mesure
NB :
- Les fonctions MikroC relatives au bus I2C sont : I2C1_Start, I2C1_Wr, I2C1_Rd et I2C1_Repeated_Start.
- Le paramètre ack de la fonction I2C1_RD doit être à 1 pour signaler un acquittement.
Exemple : I2C1_RD(1) permet une lecture avec acquittement.
Compléter le programme en MikroC, sur le document réponse DR1, correspondant à cet algorithme.
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 5
28
Le robot est équipé de deux moteurs à courant continu permettant d’assurer le déplacement dans toutes
les directions.
Pour commander un moteur à courant continu, le PIC génère une tension analogique image d’une valeur
numérique en utilisant le principe d’un convertisseur CNA, à rapport cyclique variable (sortie PWM)
Un signal PWM est un signal dont la période est fixe, mais le rapport cyclique varie.
V
Vref
La figure suivante illustre le principe d’un CNA à rapport cyclique variable de 4 bits :
Q0
C
Compteur Q1
CLK
4 bits Q2
Q3
Comparateur de 2 Voc Filtre Vs
nombres de 4bits passe bas
N
Le mot binaire C à la sortie du compteur est comparé avec la grandeur numérique N à convertir :
- Voc = "1" Si C < N ;
- Voc = "0" Si C ≥ N.
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 6
28
Q.10. Sur le document réponse DR2, compléter le schéma de réalisation d’un compteur asynchrone
modulo 16.
Q.11. Sur le document réponse DR2, tracer les chronogrammes des signaux Q0, Q1, Q2 et Q3.
Q.12. Pour N = (0101)2, sur le document réponse DR2, tracer l’allure de la tension Voc et préciser
l’intervalle ton.
Q.13. Déterminer l’expression de T en fonction de TCLK.
Q.14. Déterminer l’expression de ton en fonction de N et TCLK.
Q.15. Sachant que le filtre passe-bas est un circuit RC, comment doit-on choisir sa constante de temps τ
par rapport à TCLK pour avoir Vs = VOCmoy ?
Q.16. Déterminer Vs en fonction de Vref et N. En déduire l’expression du quantum q de ce convertisseur.
Pour générer un signal PWM, le PIC utilise le TIMER 2 et le module CCP en mode PWM (voir
figure 7). Le TIMER 2 du PIC est un compteur de 8 bits, commandé par une horloge de fréquence réglable
par un pré-diviseur (Prescaler) par 1, 4 ou 16 de l’horloge interne du PIC de fréquence Fosc/4.
Q.17. Sur le document réponse DR2, déterminer le mot de configuration du registre T2CON permettant
d’activer le TIMER 2 avec un prédiviseur par 1, et un postdiviseur par 1. (Annexe 2)
Q.18. Sachant que Fosc=4MHz, déterminer la valeur à mettre dans PR2 pour que la fréquence du signal
de sortie TMR2Output soit égale à 4KHz.
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 7
28
Le PIC16F877 est constitué de 2 modules CCP qui peuvent être configurés en PWM de 8 ou 10 bits
de résolution. Le signal PWM 1 peut être fourni sur la borne RC2/CCP1 et le signal PWM 2 sur la borne
RC1/CCP1. La figure 8 montre la structure du module CCP1 :
Chaque fois que la valeur du TMR2 est égale à PR2, la sortie CCP1 passe à 1, le TMR2 est remis à
0, et le registre CCPR1H reçoit la valeur de CCPR1L.
La sortie CCP1 repasse à 0 chaque fois que la valeur du TMR2 est égale à CCPR1H.
Le choix du rapport cyclique est donc défini par le contenu d'un registre 8 bits CCPR1L selon la
formule suivante :
ton = CCPR1L * 4 * Tosc * Prescaler
Le PWM ne fonctionnera correctement que si CCPR1L ≤ PR2.
Q.19. Sur le document réponse DR2, déterminer le mot de configuration du registre CCP1CON, et
CCP2CON permettant d’activer le mode PWM pour les 2 modules CCP du PIC. (Annexe 2)
Q.20. Sachant que Vref= Vcc=5V et PR2=250, Déterminer la valeur à mettre dans CCPR1L pour que la
tension Vmoy à la sortie CCP1 soit égale à 3,5V.
Q.21. Sur le document réponse DR3, compléter la fonction InitPWM() permettant de :
- activer le TMR2 ;
- choisir le mode PWM du CCP1 et du CCP2 ;
- configurer les broches CCP1 et CCP2 en sortie ;
- Initialiser la fréquence du signal de sortie à 4Khz ;
- Initialiser la tension moyenne des sorties CCP1, CCP2 à 0.
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 8
28
Le circuit L293D, voir schéma structurel de la figure 4, permet la commande des moteurs du robot ;
dans cette partie, on s’intéressera à la commande du moteur gauche
o L’entrée EN2 est pilotée par la sortie CCP1 pour varier la vitesse du moteur gauche ;
o Les entrées IN3 et IN4 commandées par le bit RB1 pour choisir le sens de rotation du moteur gauche :
RB1=1 pour avancer (sens positif) et RB1=0 pour reculer (sens négatif).
On veut faire varier la vitesse du moteur gauche par la fonction :
SetVitesseMoteurGauche(float vitesse)
Le moteur gauche peut tourner en avant ou en arrière selon la valeur du paramètre vitesse qui peut
prendre des valeurs comprises entre -100 et +100. (Le signe de vitesse indique le sens de rotation)
Le registre CCPR1L permet de choisir la valeur moyenne du signal CCP1 : ce registre doit recevoir
la valeur 250 pour avoir la vitesse maximale (lorsque |𝑣𝑖𝑡𝑒𝑠𝑠𝑒 | = 100)
Le module XBEE est connecté au microcontrôleur PIC16F877 qui possède une liaison USART. La liaison
utilisée est de type asynchrone.
Q.23. Sur le document réponse DR3, déterminer les mots de configuration des registres : (Annexe 3)
- TXSTA permettant d’activer la transmission série asynchrone de données de 8 bits avec le mode
haute vitesse.
- RCSTA permettant d’activer le port série et la réception continue de donnée.
Q.24. En se basant sur le tableau donné en annexe 3, donner la valeur à mettre dans le registre SPBRG
pour avoir un débit de 19200 bauds.
Q.25. Sur le document réponse DR3, compléter la fonction Init_UART qui permet d’initialiser l’UART
du PIC.
Q.26. Sur le document réponse DR3, compléter la fonction de transmission série nommée Send_UART
qui permet de mettre la donnée à transmettre dans TXREG, lorsque le bit PIR1.TXIF est égal à 1.
Q.27. Sur le document réponse DR3, compléter la fonction de réception série nommée Receive_UART
qui permet de retourner le contenu RCREG lorsque le bit PIR1.RXIF est à 1.
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 9
28
Le circuit de communication série asynchrone (UART) du module XBEE est réalisé par un circuit
logique programmable FPGA. Le schéma structurel du circuit émetteur de l’UART est donné à la figure 9 :
8
Din Parite P
La trame transmise est composée d’un bit de START, 8 bits de donnée, un bit de parité paire et un bit
de STOP.
Le signal d’entrée LOAD permet de charger le bit de START (de valeur 0), la donnée de 8 bits, et le
bit de parité dans le registre parallèle/série de 10 bits.
A chaque front montant de l’horloge CLK, un bit est envoyé sur la sortie TX.
Le signal d’entrée PRESET permet de mettre tous les bits du registre à 1.
Le schéma bloc de l’entité Registre est comme suit :
CLK
10 Registre
Din
PRESET TX
LOAD
Les spécifications relatives à la norme Ethernet V2.0 et au protocole IP V4 sont fournies en annexe 4.
Barème de notation
Q.6.
REGISTRE DE CONFIGURATION
DONE THF TLF NVB X X POL 1SHOT
Q.7.
S
Q.8.
void main () {
float Temp ;
char MSB, LSB ;
Init_capteur() ; // initialisations du capteur
********Boucle infinie***************************
while(1)
{
// Démarrage de conversion
I2C1_Start();
I2C1_Wr(……………);
I2C1_Wr(……………);
I2C1_Stop();
// Lecture de température
………………………………………;
I2C1_Wr(……………); // adresse du DS1621 en écriture
I2C1_Wr(……………); // demande de lecture de la température
I2C1_Repeated_Start();
I2C1_Wr(……………); // adresse du DS1621 en lecture
MSB = ………………………………………; // lecture octet haut
LSB = ………………………………………; // lecture octet bas
I2C1_Stop();
// Affichage de la température
Temp = MSB + LSB/256.0 ; // Calcul de la température
Affichage (Temp) ;
delay_ms(1000); // temps de conversion
}
}
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 13
28
Q0 Q1 Q2 Q3
J Q J Q J Q J Q
CLK
H H H H
K K K K
Q11. Q12.
Q0 1 0
Q1 1 0
C
Q2 1 0
Q3 1 0
Vref
Voc
T
Q17.
T2CON
- TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0
Q19.
CCP1CON
- - CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0
CCP2CON
- - CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 14
28
Q21.
Void InitPWM(){
T2CON = ………………………………………;
CCP1CON = ………………………………………;
CCP2CON = ………………………………………;
TRISC = ……………………………………………;
PR2 = ……………………………………;
CCPR1L = …………………………………;
}
Q22.
void SetVitesseMoteurGauche(float vitesse){
float val ;
if (vitesse >= 0) PORTB.RB1= ………………… ;
else PORTB.RB1= ………………… ;
RCSTA
SPEN RX9 SREN CREN ADDEN FERR OERR RX9D
Q.25.
Void Init_UART(){
TXSTA = …………………………………… ;
RCSTA = …………………………………… ;
SPBRG = …………………………………… ;
}
Q.26.
void Send_UART(char c){
…………………………………… ;
…………………………………… ;
}
Q.27.
char Receive_UART(){
…………………………………… ;
return ………………………… ;
}
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 15
28
Q.30. Q.31.
library ieee;
use ieee.std_logic_1164.all;
entity registre is
port(……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
end registre;
architecture rtl of registre is
signal D : std_logic_vector(9 downto 0 );
begin
process (………………………………………………………………………………)
begin
if PRESET='1' then
D <= (others =>'1'); -- mise à 1 des bits du vecteur D
TX <= '1';
elsif LOAD='1' then
D <= ……………………………;
elsif CLK='1' and CLK'event then
TX <= D(0);
for i in 0 to 8 loop
D(………………)<=D(………………) ;
end loop ;
D(9)<='1';
end if;
end process;
end rtl;
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 16
28
entity emetteur is
port(
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
end emetteur;
component registre
port(
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
end component;
component Parite
……………………………………………………………
……………………………………………………………
……………………………………………………………
end component;
begin
u2:Parite port map(…………………………………………);
D(0) <= '0';
D(8 downto 1) <= Din;
D(9) <= P;
u1:registre port map(………………………………………………………………………);
end rtl;
Sujet de l’Examen National du Brevet de Technicien Supérieur - Session de Mai 2017 - Page
Filière: Systèmes électroniques Épreuve de : Electronique 17
28
Q.35.
@IP source sous forme
…………… . …………… . …………… . ……………
normalisée
@IP destination sous
…………… . …………… . …………… . ……………
forme normalisée
@IP source en binaire ………………………… . ………………………… . ………………………… . …………………………
Q.36.
2. Champ Type :
3. Datagramme IP :
4. Classes d’adresses IP