π
<-

ESI BTS IRIS 2010


File hierarchy

 Downloads
 Files created online(37412)
 TI-Nspire
(24594)

 mViewer GX Creator Lua(19090)

DownloadTélécharger


LicenceLicense : Non spécifiée / IncluseUnspecified / Included

 TéléchargerDownload

Actions



Vote :

ScreenshotAperçu


Informations

Catégorie :Category: mViewer GX Creator Lua TI-Nspire
Auteur Author: skynet_360rg
Type : Classeur 3.6
Page(s) : 16
Taille Size: 1,020.48 Ko KB
Mis en ligne Uploaded: 01/04/2015 - 09:46:15
Uploadeur Uploader: skynet_360rg (Profil)
Téléchargements Downloads: 55
Visibilité Visibility: Archive publique
Shortlink : http://ti-pla.net/a181328

Description 

BTS INFORMATIQUE ET RESEAUX
POUR L’INDUSTRIE ET LES SERVICES
TECHNIQUES

Session 2010
EPREUVE E.4
Etude d’un Système Informatisé

AIDE A L’EXPLOITATION D’UN TRAMWAY
ET INFORMATION DES VOYAGEURS

CORRIGE


B. ANALYSE DU CONTEXTE

B.1. Topologie du réseau du tramway

B1.1. Répondre aux questions suivantes sur la topologie du réseau du tramway, en cochant
pour chaque question la case « Oui » ou « Non ».



questions Oui Non
Un parcours dispose d’exactement deux terminus *
Une ligne dispose d’exactement deux destinations *
Un chaînage d’arrêts est la même chose qu’un parcours *
Une voie est un chaînage de tronçons orientés *
Plus de deux arrêts peuvent être présents sur un tronçon *
L’ordre des arrêts desservis est indiqué par un parcours *
Les deux stations du tronçon t36 sont Isard et Cascade *
Il existe sept destinations *
Un itinéraire est identifié par les étiquettes de recalage *



B1.2. Quel est le sens du parcours BUISSON-ACANTHE ( ID_Parcours = 9 ) ?

Nb : attention à l'utilité des identifiants !

BTS INFORMATIQUE ET RÉSEAUX POUR L’INDUSTRIE ET LES SERVICES TECHNIQUES
SESSION 2010 Étude d’un système informatisé IRSES
Coefficient : 5 CORRIGE Durée : 6 heures
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


Lecture de la table PARCOURS : Retour



B1.3. A quoi sert le champ « ordre » dans la table DESSERT, donner un exemple pour
PIVOINE-BUISSON ( ID_Parcours = 12 ) ?



Les PARCOURS desservent les arrêts dans un certain ORDRE.

DESSERT

ID_Parcours ID_Arret Ordre

12 21 1

12 22 2

12 23 3


Soit : ID_PArcours = 12 :
Arrêt 21 PIVOINE puis Arrêt 22 FONTAINE puis Arrêt 23 BUISSON


B1.4. En vous basant sur les parcours « ID_Parcours 4 » et « ID_Parcours 13 » compléter la
table DESSERT « ID_Parcours 15 ».

DESSERT DESSERT(suite) DESSERT(suite)

ID_Parcours ID_Arr Ordre 13 8 1 14 11 3
et
… … … 13 7 2 14 10 4
4 4 1 13 3 3 … … …
4 5 2 13 6 4 15 27 1
4 6 3 13 5 5 15 26 2
4 3 4 13 4 6 15 25 3
4 7 5 14 13 1 15 24 4
4 8 6 14 12 2 15 10 5


B.2. Système d’Exploitation Embarqué (SEE)


B2.1. Le système permettant de détecter la rotation (capteur + roue crénelée) peut-il être
assimilé à un codeur incrémental ou un codeur absolu ? (justifier votre réponse)

Un codeur incrémental. En effet, chaque détection d'un créneau de la roue correspond à un
incrément de distance. En comptant les incréments, on obtient une distante relative au début du
comptage.




IRSES – SP10 ESI-Corrigé Page 2 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE



B2.2. Calculer la distance parcourue par le tramway entre deux impulsions générées par le
capteur à effet Hall.

Distance = (π x Diamètre) / Nb créneau
= 3,14 x 0,6 / 64
= 0,0296 m = 29,6 mm


B2.3. Sachant que le compteur 32 bits représente une valeurs signée, donner les positions
odométriques extrêmes (en m) que peut calculer le boitier odomètrique,

Soit D la distance entre 2 impulsions, les valeurs extrêmes sont :
mini : (-1) x 231 x D
maxi : (231 -1) x D
soit approx +/-231 x 0,0296 = 63,6.106m

B.3. Borne d’Information Voyageurs (BIV)

B3.1. Justifier le choix de l’afficheur SX502 – 440/03/ 2R/131/5A – M0 (Annexe 7).
440 : 4 lignes de 40 caractères
03 : hauteur des caractères : 33/66/75mm
2R : LED Rouge pour application extérieure
Cela correspond bien aux spécifications demandées pour les BIV (voir sujet paragraphe A5)

B3.3. Déterminer les fontes de caractères pouvant être utilisées.
Les fontes « Acala7 » et « Acala7 extented » permettent d’avoir des caractères de 33mm de
hauteur.


B. ORGANISATION DES DONNÉES

C1.1. Dans la liste des arrêts, l’arrêt 2 est manquant. Coder la balise « arret »
correspondante

<arret id_arret=’2’ nom=’sentier’ />
C1.2. Quel est l’élément racine du fichier XML fourni ?

Element "référentiel_Embarque", ouvert ligne 3

C1.3 En vous aidant de la table « LIGNE » présentée dans l'Annexe 2 : « Topologie et référentiel
SAE », proposer un codage XML de la classe « LIGNE » qui respecte les règles de l'encadré 1 : Règles
de codage en XML du sujet.

<liste_lignes>
<ligne ID_Ligne='97' mnemo='A' libelle='A'/>
<ligne ID_Ligne='98' mnemo='B' libelle='B'/>
<ligne ID_Ligne='99' mnemo='C' libelle='C'/>

IRSES – SP10 ESI-Corrigé Page 3 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


</liste_lignes>

C. CONCEPTION DU SYSTÈME EMBARQUÉ

D.2. Conception générale du SEE


D2.1. Quelle est la différence entre « inclut » et « étend » dans le diagramme de cas
d’utilisation de la Figure 3?




Relation Signification
Un cas d’utilisation A inclut un cas d’utilisation B si le
« inclut »
comportement décrit par le cas A inclut le comportement du cas
B. Lorsque A est sollicité, B l’est obligatoirement, comme une
A B partie de A.

Un cas d’utilisation A étend un cas d’utilisation B lorsque le cas
« étend » d’utilisation A peut être appelé au cours de l’exécution du cas
d’utilisation B. Exécuter B peut éventuellement entraîner
A B l’exécution de A. Contrairement à l’inclusion, l’extension est
optionnelle.

D2.2. Compléter, dans le document réponse, les types de relations de 1 à 3 entre classes et
la cardinalité en 4 du Diagramme des classes de la figure 5. Consulter pour cela l'Annexe 1.

N° de relation Type de relation
1 Composition (ou agrégation)
2 Composition (ou agrégation)
3 Héritage (ou généralisation)

Cardinalité de 5 = 2


D2.3. Relier par un trait les événements, l’activité et les actions proposés avec les numéros
correspondants de 1 à 5 du diagramme d’état de la Figure 5.

N° Intitulé
1 Étiquette non reconnue
Evénements 2 Étiquette lue = Aval
3 Étiquette non reconnue
Activité 4 Localisation tramway
Actions 5 Arrêt de l’odomètre
6 Recalage odomètre



IRSES – SP10 ESI-Corrigé Page 4 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


D2.4. Quels sont les objets et les fonctions membres qui réalisent les actions en sortie et les
activités de l’état « En ligne » du diagramme d’état de la Figure 6 ?


Action/activité Classe Fonction membre
Obtention n° étiquette LecteurEtiquettes FournirNumeroEtiquette
Obtention trame odomètre Odometre DelivrerDonneesOdometre( )
Localisation tramway Localisateur LocaliserTramway ( )
Envoi localisation Localisateur EnvoyerLocalisationTramway()
Arrêt de l’odomètre Odometre Arreter()
Recalage odomètre Odometre Recaler()


D2.5. Compléter la matrice Événement/État qui correspond au diagramme d’état Figure 6 et
qui montre la transition qui s’opère quand un événement se produit lors d’un état donné.

État Déb En ligne Arrêt Hors Ligne Panne Fin
Événement ut
EtiquetteLue = sortieTerminus En
ligne
1s écoulee En ligne Arrêt HorsLigne
10s écoulées En ligne Arrêt HorsLigne
EtiquetteLue = Amont Arret Arret
EtiquetteLue = Aval En ligne En ligne
Etiquette Non Reconnue HorsLigne HorsLigne HorsLigne
EtiquetteLue = entréeTerminus Fin Fin
Etiquette Non Lue Depuis 10min Panne Panne
Etiquette Non Lue Depuis 20min Panne
Panne Signalée Fin




IRSES – SP10 ESI-Corrigé Page 5 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE



D. PROGRAMMATION DU SYSTÈME EMBARQUÉ

E.1. Programmation de la classe Odomètre



E1.1. Compléter le constructeur de la classe Odometre

Odometre:: Odometre(CPortSerie *port, short diamRoue, short nbCren){
//affecter données privées

this-> diametreRoue = diamRoue;
this-> nbCreneaux = nbCren
this->serieBoitierOdo = port;
//configurer port série
this->serieBoitierOdo ->ouvrir(_PORTSERIE_CFG) ;
// étalonner le module odomètre
this->Etalonner();
}



E1.2. Ecrire dans la ligne de code permettant à la classe Odometre de lire une trame du
boîtier odomètre et de la placer dans la donnée membre privée trameBrute

SerieBoitierOdo->RecevoirTrame(trameBrute) ;

E1.3. En vous aidant de l'annexe 3, compléter dans le document réponse cette série de
« #define ».

#define I_STX 0 // indice du tableau ou l’on trouve STX
#define I_VL 1 // indice du tableau ou l’on trouve vitesseLineaire
#define I_P_ODO 8 // indice du tableau ou l’on trouve positionOdometrique
#define I_T_ROUL 16 // indice du tableau ou l’on trouve tempsRoulage
#define I_T_IMMO 22 // indice du tableau ou l’on trouve tempsImmobilisation
#define I_STX 28 // indice du tableau ou l’on trouve ETX




IRSES – SP10 ESI-Corrigé Page 6 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE



E1.4. Compléter le code de la fonction membre
void Odometre::extraireDonneesOdo ().

void Odometre::extraireDonneesOdo (){
donneesOdometre.vitesseLineaire = atof(&trameBrute[I_VL]);
donneesOdometre. positionOdometrique=
atof(&trameBrute[I_P_ODO]);
donneesOdometre. tempsRoulage=
atoi(&trameBrute[I_T_ROUL]);
donneesOdometre. tempsImmobilisation =
atoi(&trameBrute[I_T_IMMO]);
}




IRSES – SP10 ESI-Corrigé Page 7 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


E.2. Programmation de la classe Lecteur étiquettes

Question E2.1. Coder en C++ la fonction membre privée Char2NumeroEtiquette.

Version courte :
numeroEtiquette_t Char2NumeroEtiquette (char cfort, char cfaible){
return ((numeroEtiquette_t)cfort << 8 | cfaible);
}

Version longue :
numeroEtiquette_t Char2NumeroEtiquette (char cfort, char cfaible){
numeroEtiquette_t result ;
result = cfort ;
result = result << 8 ;
result = result | cfaible ;
return (result);
}

Question E2.2. Coder en C++ la fonction membre privée RecevoirTrame

Solution utilisant l'opérateur >> :
bool RecevoirTrame(char* tampon) {
const char STX = 02;
int i;
char check;
// reception et test premier caractère
liaisonBalogh >> tampon[0];
if (tampon[0] != STX) return false;
// reception 5 caractères suivants – calcul check à la volée
check = tampon[0];
for(i=1; i<=5; i++) {
liaisonBalogh >> tampon[i];
check ^= tampon[i];
}
// réception checksum
liaisonBalogh >> tampon[6];
return (tampon[6] == check);
}




IRSES – SP10 ESI-Corrigé Page 8 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


E.3. Programmation multithread


Question E.3.1. Compléter en C++ le constructeur de la classe LecteurEtiquettes de
façon à lancer la fonction membre RecevoirBalogh()dans le thread pointé par
pThreadRecevoirBalogh , avec une priorité par défaut.

LecteurEtiquettes::LecteurEtiquettes(char *cheminLiaisonBalogh){
liaisonBalogh.open(cheminLiaisonBalogh, ios::in) ;
pThreadRecevoirBalogh = new Thread(RecevoirBalogh);
}


E.3.2. Entourer la section critique dans le code suivant :

etatLecture_t LecteurEtiquettes::FournirNumeroEtiquette(
numeroEtiquette_t * pNumEtiquette,
time_t* pDateLecture )
{
etatLecture_t ret;

ret = _etatDerniereLecture;
if (ret == LECTOK ) {
*pNumEtiquette = _numeroEtiquette;
}
if (pDateLecture != NULL) {
*pDateLecture = _dateLecture;
}
return ret;
}


E3.3. Avec NTR++, quel type d'objet peut-on utiliser pour implémenter une exclusion
mutuelle ?

Un sémaphore, initialisé à 1.

E3.4. Indiquer la donnée membre privée qu’il faut ajouter à la classe
LecteurEtiquettes pour implémenter cet objet.
Ecrire les lignes de code à ajouter avant et après la section critique.

En donnée membre privée : Semaphore sem;
Avant la section critique : sem.wait();
Après la section critique : sem.post();




IRSES – SP10 ESI-Corrigé Page 9 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


F. INFORMATION STATION DES VOYAGEURS


F.1. Etude de l’interconnexion des BIV

F1.1 Donner le nombre et le type d’interfaces séries présentes sur les BIV.

Les BIV possèdent deux interfaces série :
Une RS232
Une RS485

F1.2 Justifier l'utilisation de la RS485 pour le raccordement des BIV.
La RS232 n'est pas une liaison multipoint, afin de connecter plusieurs BIV sur la passerelle il
est nécessaire d'utiliser la RS485 qui elle est une liaison multipoint.
De plus la RS485 utilise un support de transmission en mode différentiel ce qui permet de
limiter l'influence des perturbations extérieures.

F1.3 Compléter sur le schéma l’interconnexion des BIV et de cette passerelle.




IRSES – SP10 ESI-Corrigé Page 10 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


F.2. Analyse des trames de commande des BIV

F2.1 Quel est le principe de l'arbitrage maitre / esclave utilisé par Modbus?


Le principe d’arbitrage est un maitre qui gère la communication avec des esclaves.
Le maître interroge les esclaves et ces derniers répondent au maître.
Les esclaves ne peuvent pas communiquer directement entre eux, seul le maître peut initier
une communication?

F2.2 . La passerelle ModbusTCP / ModbusRTU est-elle maitre ou bien esclave sur le réseau
RS485 des BIV (justifiez votre réponse) ?


La passerelle est le maitre Modbus, les SX502 sont des esclaves Modbus RTU(Annexe 8).

F2.3 Indiquer sur quel réseau cette trame a été capturée. Justifier votre réponse.


C’est une trame Modbus TCP, elle à donc été capturé sur le réseau RMS. Dans les champs
de cette trame on peut remarquer les champs des couches Ethernet et TCP/IP qui ne sont
pas présent dans une trame Modbus « pure ».



Question F2.4
- Quel est le code fonction Modbus utilisé pour piloter l’afficheur (Annexe7) ?
- Donner sa signification.
- Quels sont les noms des champs de la requête Modbus associés à ce code fonction
(Annexe 8)?


Code fonction Modbus n° 16 (Ox10) : Write Multiple Register

Paramètres de Write Multiple register :

Adresse du premier mot : 2 octets
Nombre de mot à écrire : 2 octets
Nombre d’octet de donnée : 1 octet
Donnée à écrire



Question F2.5 : Donner la commande à envoyer à l’afficheur permettant l'affichage de la
3ième ligne de l’exemple fig10 (Annexe 7).
24 4c 30 33 : $L03 écriture sur la troisième ligne

2d 50 69 63 20 20 20 20 20 3a 20 34 20 6d 69 6e : -PIC : 4 min



IRSES – SP10 ESI-Corrigé Page 11 sur 16
CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE … CORRIGE


Question F2.6 Analyse de l'entête MBAP Header la trame Modbus TCP du tableau 2 :
- Trouver et donner dans l'entête ModbusTCP (MBAP Header, annexe 8) le nom du
champ qui contient l'adresse Modbus de l'afficheur.
- Donner l'adresse Modbus de l'afficheur qui va recevoir cette trame.
Dans l'entête MBAP Header de ModbusTCP, le champ "Unit Identifier" permet de passer l'adresse
Modbus du périphérique Modbus esclave qui recevra cette trame par l'intermédiaire de la passerelle
ModbusTCP /modbus

Dans la trame l'adresse Modbus de l'afficheur qui va recevoir la trame est : 5

F2.7. Interpréter les 6 premiers octets de la requête Modbus contenus dans la trame
ModbusTCP du tableau 2 : Capture d'une trame ModbusTCP.

10 : code fonction : Write Multiple Register

00 00 : Adresse du premier registre à écrire

00 1a : 26 mots à écrire

34 : 52 : octets à écrire


F2.8. Extraire de la requête Modbus les commandes de manipulation de texte envoyées à
l’afficheur (annexe 7).


24 46 31 : $F1 (clignotement des caractères)

24 4d 31 : $M1(choix de la police) : Acala7

24 4c 30 34 : $L04 : écriture à la ligne 4



24 46 30 : $F0 (arrêt clignotement)
F2.9. Donner le résultat de cette commande en terme d’affichage .




I n f o r m a t i o n v o y a g e u r : l i g n e C e n p a n n

Archive contentsContenu de l'archive

Action(s) SizeTaille FileFichier
1.64 Ko KB readme.txt
418.56 Ko KB ESI_BTS_IRIS_2010/11-16.tns
637.20 Ko KB ESI_BTS_IRIS_2010/01-10.tns
-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
833 utilisateurs:
>744 invités
>82 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)