0% ont trouvé ce document utile (0 vote)
33 vues16 pages

Épreuve d'Informatique : Systèmes RFID

Ce document traite des systèmes d'identification par radiofréquence (RFID). Il décrit le fonctionnement général d'un système RFID composé d'un TAG et d'un lecteur, et explique les différentes bandes de fréquences utilisées en RFID.

Transféré par

haha
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
33 vues16 pages

Épreuve d'Informatique : Systèmes RFID

Ce document traite des systèmes d'identification par radiofréquence (RFID). Il décrit le fonctionnement général d'un système RFID composé d'un TAG et d'un lecteur, et explique les différentes bandes de fréquences utilisées en RFID.

Transféré par

haha
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

043

c
B¿NOUE PT

Epreuve d'Informatique et Modélisation

Durée 4 h

Si, au cours de l'épreuve, un candidat repère ce qui lui semble être une erreur d'énoncé,
d'une part il le signale au chef de salle, d'autre part il le signale sur sa copie et poursuit sa
composition en indiquant les raisons des initiatives qu'il est amené à prendre.

L'usage de calculatrices est interdit.

AVERTISSEMENT

La présentation, la lisibilité, I'orthographe,la qualité de la rédaction, la clarté et la


précision des raisonnements entreront pour une part importante dans
I'appréciation des copies. En particulier, les résultats non justif,rés ne seront pas pris
en compte. Les candidats sont invités à encadrer les résultats de leurs calculs.

L'épreuve comporte deux parties qui peuvent être traitées indépendamment I'une de
I'autre. Une première partie modélisation (durée conseillée 1H30) et une seconde
informatique (durée conseillée 2 H30)

Remarques préliminaires importantes : il est rappelé aux candidat(e)s que


Les explications des phénomènes étudiés interviennent dans la notation au même titre
que les développements analytiques et les applications numériques ; les résultats
exprimés sans unité ne seront pas comptabilisés.

Tout au long de l'énoncé, les paragraphes en italiques ont pour objet d'aider à la
compréhension du problème.

Tout résultat fourni dans l'énoncé peut être admis et utilisé par la suite, même s'il n'a
pas été démontré par le (1a) candidat(e).

Les applications numériques, effectuées sans calculatrice, pourront supporter des


arrondis ou simplifications judicieux.

Il est interdit aux candidats de signer leur composition ou d'y mettre un signe quelconque pouvant indiquer sa proyenance.

Tournez la page S.V.P.


ll est constitué de deux
Ce problème traite de systèmes d'identification par radio fréquence (RFID).
pañies totalement indépendantes: l'étude d'un système de type navigo pour h
7è" partie.
Aucune connaissance particulière sur les antennes n esf demandée.

En 1948, Harry Stockman décrivit dans un article un moyen de communiquer grâce à la réflexion
des ondes, annonçant ainsi /es futurs sysfèmes autonomes communiquant par ondes
électromagnétiques. Leur but est, par exemple, d'identifier des ob.¡'efs à distance, d'où le nom
d'identification radio-fréquence (RFID: Radio Frequency ldentification). Quelques années p/us
tard, les premiers sysfêmes d'identification utilisanú /es ondes réfléchies étaient développés.
Les progrès réalrsés dans le domaine de l'électronique ont permis son développement ef son
intégration dans de nombreux domaines. Aujourd'hui, la RFID (du fait de son prix et de la taille des
étiquettes) prend une place de plus en plus importante dans la vie courante, et d'un simple
fonctionnement en mode tout-ou-rien, au stockage et au traitement d'informationg /es applications
couvrent des domaines allant de la télédétection (identification d'animaux, antivols, Iocalisation...)
aux transactions de la vie courante: par exemple dans /es sysfèmes de contrôle d'accès aux
transpotis en commun, type passe Navigo de la RATP pour Ie métro parisien. Les puces RF/D
tentent aujourd'hui de supplanter les codes à barres en jouant de leurs avantages, à savoir qu'il
esf possrble d'écrire, d'effacer et de réécrire les données sfockées dans une puce un grand
nombre de fois, que leur portée peut être supérieure aux lecteurs optiques utilisés pour les codes à
barres, et que la communication peut se faire à travers ceftains obsfac/es contrairement aux
sysfèmes à lecture optique.

Un système RFID passffesf composé de deux entités quicommuniquent entre elles (Fig.1) :
. Un IAG passif (dénommé TAG par la suite) ou étiquette intelligente (aussl appelé
transpondeur), associé à l'élément à identifier. ll est capable de répondre à une demande
venant d'un lecteur. Le TAG n'a pas d'alimentation de type batterie ou pile mais esf
a utoalimenté par l'onde électromagnétiq ue reçue.
. Une station de öase ou lecteur RFID qui a pour mrssion d'identifier Ie TAG. Le lecteur
envoie une onde électromagnétique en direction de l'élément à identifier, cette onde
alimente Ie TAG qui peut alors communiquer avec Ie lecteur grâce à sa puce électronique
interne. En retour, le lecteur reçoit I'information renvoyée par le TAG.
Antenne

Lecteur
Signal radiofréquence

Système RFID BF

Bobine réceptrice

Traitement Echange de données


Puce électronique
et d'énergie

TÂG
ft
Figure I

2
La figure 1 présente le fonctionnement général d'un système RFID. Le lecteur relié à une antenne
émettrice agit en maître par rapport au TAG; si /e IAG esf dans la zone de lecture du lecteur, ce
dernier l'active en lui envoyant une onde électromagnétique et entame la communication. Le TAG
est quant à lui, constitué d'une antenne et d'une puce électronique qui module I'onde réémise vers
le lecteur. En démodulant le signal reçu, le lecteur relié à une application interne récupère
l'information pour Ia traiter, il est chargé de l'intefface et de la gestion de l'identification des IAGs
qui se présentent à lui.
ll existe plusieurs familles de sysfèmes RFID dont le principal critère de différentiation esú /a
fréquence de fonctionnement. Les sysfème RFID utilisent des bandes de fréquence à 125 kHz
(bande BF), 13,56 MHz (bande HF), 860-960 MHz (bande UHF) et 2,45 GHz. On précise que la
puissance rayonnée par l'antenne d'émission est une fonction croissante de la fréquence est varie
1
en
^4'
Bande Fréquence Portée Pouvoir de Pénétration dans
un conducteur
BF 125 kHz + ++++
HF 13.56 MHz ++ +++
UHF 860-960 MHz +++ ++
UHF 2,45 GHz ++ +

+ .' faible , ++ : ASSez bon , +++ : Bon, ++++ : Excellent

En fonction des différentes fréquences, les principes physiques mls en æuvre ne sont pas /es
mêmes et le problème aborde ce¡tains aspecfs de la communication.

PREMIERE PART¡E

Système RFID à 13.56 MHz en couplage magnétique

l.A Les fréquences utilisées en RFID

t.41. Pour quelle expérience majeure le physicien Hertz (1857-1894) est-il resté célèbre ?

t.M. Que signifient bande HF et bande UHF ? Pourquoi dit-on que la fréquence 2,45GHz
appartient aux microondes?

t.43. Pourquoi les ondes UHF portent plus loin que les ondes HF et les ondes BF ?

t.44. Pourquoi le pouvoir de pénétration des ondes dans un conducteur augmente quand la
fréquence baisse ?

l.45. Pourquoi tous les systèmes RFID HF utilisent-ils la même fréquence de 13,56 MHz?

l.B Modélisation d'un système RFID à 13.56 MHz : la carte à puce sans contact.

On considère une bobine b1 circulaire d'axe (Oz) située dans le plan (Oxy), de rayon a,
comprenanf N1 spres identiques ef supposées confondues (toutes de même diamètre) réalisées
en fil conducteur de diamètre négligeable et parcourue par le courant it sinusoïdal de fréquence
f :i,,:1.,.Æsin(rrrt). Les dimensions caractéristiques (a, OM,...) sont de l'ordre de 10cm. On
rappette que : p"o :4n-10-7 H.m-1 .

3
Tournez la page S.V.P.
z
M

uz

Bobine b1 u
ux Y

Nl spires, rayon a

P de v
l1
X

Fiqure 2

[Link]. Rappeler les conditions d'application de I'approximation des régimes quasi stationnaires
(AROS). Cette approximation s'applique-t-elle ici ?

Soit M un point de l'axe (Oz) tel que OM - Z.u. et z> O

1.f32.. Quelle est la direction du champ magnétique q(V,t) en M? On note 8.,"o(a,z) la valeur
efficace de la norme de B, (M,t). Pour lr = 20 mA, on a représenté sur la figure 3 les courbes de
niveau de 8,,"o (a,z) pour 0 < a < O.2m et pour 0 <z<0.2m. A partir de ces courbes de niveau et
sans calcul supplémentaire représenter Br"tr en fonction de a pour z=zo. Préciser les valeurs
remarquables.

zenm 0.2
2 3pT
0,1 8

0.1ô

o_14

4wT
012

01 ^- Zo
5p
0.08

006

0.04

0.02
T
0 0.05 0.'1 015 0.2 aenm

Fiqure 3

Application numérique : pour Nr= 100 spires, h= 20 mA, zo = 10 cm déterminer la valeur maximale
de Br"r .

4
1.83. Donner une expression du flux propre (Þ1 de la bobine b1 faisant intervenir une intégrale
simple. On ne cherchera pas à calculer (Þ1.

1.84. Rappeler la définition de I'inductance propre Lr de br

On considère maintenant une bobine b2 circulaire d'axe (Oz) située dans un plan parallèle au plan
(Oxy) à z= d, de rayon b et de surface Sz : n 'b2 , comprenant N2spires identiques et confondues
(toutes de même diamètre) réalisées en fil conducteur de diamètre négligeable. Les deux bobines
bt et bz sont couplées magnétiquement et forment un transformateur à air. On note Lz I'inductance
propre de b2 et M I'inductance mutuelle entre b1 et b2 (M: kÆ
> 0, où k est le coefficient de
couplage entre les deux bobines). La bobine b2 est connectée à un circuit électrique comportant
une résistance Rt en série: cþsf le modèle du transpondeur (TAG). La bobine br esf alimentee
par une tension u1 et constitue l'antenne associée au lecteur RFID, fu et R2 modélisent les
résrsfances des bobines ór ef bz et Rt modélise la résistance d'entrée de la puce électronique du
TAG. En modulant R¡, le TAG communique avec le lecteur. (Le TAG est donc modélisé par
L2, R2 et R, qui est variable).

Pour les applications numériques prendre : d = 10 cm, N1 = 100 spires, Nz= 4 spires, Sz = 30 cm2,
Lt=40 þH, Lz=6.3 LrH, Rz=10 Ç), Rt=30ko-; k=0,63%o(soit M=0,1 þH); fo=13,56MH2,
It = 20 mA.

Bobine b2
N2 spires
Ir
M iz

Uz
iz
-\
Ur Lr Lz

Uz RL

Rr Rz
Bobine b1
Nr

Ul
Transpondeur
Ir

Fiqure 4

5
Tournez la page S.V.P.
1.85. Donner une approximation de M en considérant que b << a et que b << d. En exploitant le
résultat de la question 1.82, et pour des nombres de spires Nr et Nz et une distance d entre les
deux bobines fixés, il existe une valeur optimale du rayon a de la bobine br maximisant la mutuelle
M. Application numérique : déterminer la valeur optimale de a.

1.86. Exprimer les tensions u1 êt u2 en fonction de R1, Rz, Lr, L2, M, i1, i2,
di.'et di^'
dt dt
Aux grandeurs temporel/es, u1, u2, | êt i2 on âssocle /es grandeurs complexes U, , U, , l, et l, . La
seule entrée du montage est la tension u1 (ou U., ) ; ur, I et iz sont donc des inconnues (ou U2 , 11

et lr)
1.87. Ecrire trois équations liant les tensions complexes U, et U, et les courants 1., et l,

f.88. Mettre U, et U, sous la forme'. Ut:Zr.|t et Ur:Zn'1.,. Montrer en particulier que


-iMR, rrr .. (lt¡r)'
Z",:=__*etqueZr:â+jb+.Préciserlesexpressionsdescoefficients
't R.- + R, + jlro R,- + R, + jLrro
réels a et b.
Application numérique : donner I'ordre de grandeur de la tension efficace de uz.

On insère un condensateur Cz êfl parattète à R, tet que LrCr¡.¡,o2:f ef roo =2túo. On note
Qz:1/(Rrcrroo) ef Q.:Rr/(Lrro) ; les valeurs numériques correspondantes sont C2=22pF,
Qz= 53,3 êf Qr= 55,9.

1.89. En négligeant R2 devant Rr, déterminer la nouvelle expression de I'impédance Z'r,. Mettre
sous la forme :

7t
121
-Rr,
-
1+ jQ- cù (Do

(Do ú)
Exprimer la résistance Rr., ainsi que le facteur de qualité Q, équivalent du transpondeur en
fonction de Q,_ et de Qr. Conclure sur I'intérêt du condensateur C2. Application numérique :
déterminer les ordres de grandeur des valeurs efficaces de i2 et de uz.

Si le champ électromagnétique a une amplitude trop faible, l'énergie reçue par le transpondeur
n'esf pas suffisante pour un fonctionnement normal. Ainsi, l'alimentation de la puce ne se fait
correctement que si /a fension vérifie Ur"n ) 4,6V .

l.810. En appliquant la loi de Faraday et avec les approximations adéquates, indiquer quel est
I'ordre de grandeur de la valeur numérique du champ efficace B,n¡n nécessaire au niveau de la
bobine b2 .

1.811. Faire un bilan de puissance sur le schéma de la figure 4 en modifiant RL par une

impédance 4 =-!.
- 1+jerg cùo

6
La bobine b1 esf en fait reliée à un condensateur, Ct telqug L,C,,crro2:1. L'ensembte est atimenté
par une source de tension de fem êe êt de résistance interne R6 fig. 5). Pour les applications
numériques prendre Rc = 50e).

M
RG c1
1

r-\ t

Us U1 Lz U2

â R¡. C2

Rr Rz

Fiqure 5

En plus de Ia valeur 30 kO, R¡ pêuf prendre les deux autres valeurs particulières suiyanfes .' 0 O
et I'infini.

1.f312. Montrerque pour o=oo la tension Uo peut s'écrirê Uo:(R,+¿(roo)).!, où I'impédance


Z(^r) s'écrit:
(n¿ro)'
Z('o )
: RL +R^ + il^ro^
1+jrrloR.C, ¿ ' z u
Application numérique : déterminer I'ordre de grandeur de Z (module et argument) lorsque Rr : 0
puis lorsque R. : *.
Montrer comment réaliser en pratique ces deux conditions avec des
nterrupteurs commandables.
i

Le transpondeur communique avec la base émettrice en modulant la résistance R¡ entre les deux
valeurs Rr_ :0 et R. : co .

1.813. Montrer alors que I'amplitude de la tensiorì us contient I'information délivrée par la puce
Conclusion.

7
Tournez la page S.V.P,
Deuxième pørtie : Informatique. Modélisation d'un système de titres de transport
sans contact
La première paftie a permis de montrer comment la puce RFID peut être alimentée à distance par le lectew, et comment
un signal peut êhe transmis de I'une à I'autre. L'objectif des parties suivantes est de mettre en place quelques
algorithmes visant à :

Ces quatre parties sont indépendantes.

Les algorithmes demandés seront réalisés, au choix, dans le langage Python ou le langage Scilab. Le candidat doit
précsier en tête de partie le langage choisi et s'y [Link] supposera que tout module nécessaire à I'utilisation des
fonctions usuelles þi, sin...) a été importé.

Simulation numérique de la démodulation d'amplitude par le


lecteur
La première partie a montré que la puce et le lecteur peuvent tous deux recevoir des messages contenus dans des
tensions alternatives d'amplitudes variables. Nous allons maintenant modéliser une telle tension puis simuler
numériquement le comportement d'un dispositif permettant d'en extraire une information binaire.

La tension e(t) reçue par le lecteur peut être modélisée par une sinusoïde de fréquence f : I3.56MHz dont I'amplitude
E6 est modulée par le signal binaire ó(/) transmis par la puce :

Eoe)sin(2nfr) *'--
avec f:tf:ì
= = 1'3vlorsqueb(t) = s
e(t¡ = 3''" = 1,5 V lorsque b(t) = 1
(¡'o(t) = E
"*
La puce transmet un nouveau bit toutes les 16 périodes de la porteuse. A titre d'illustration, la tr'igure 1 représente la
tension e(t) correspondant à la séquence de bits (0, 1, 0). La tension est en volts et le temps en secondes.
1.5

1.0

0.5

00

-l 0
t'
0,0000005 0 0000010 0 0000015 0 0000020 0.0000025 0,000003 0

Fiqure 1 : tension d'entrée du démodulateur (sinusoÏde modulée etramplitude par


LasimulationporteSurunintervalledetempsr'ffirésenténumériquementparunelistedeN
instants régulièrement espacés que I'on écrira, compte tenu des conventions de numérotation propres à chaque langage,
:
T [re:0, ty ..., t¡¡-1:T^*] sous Python ou T:
lt¡Û, ...t¡çT*] sous Scilab.

Q1. Écrire une fonction init_T ( lmax, dt) prenant pour arguments la durée Tmax de la simulation et le pas
de temps dt et retournant la liste T. Silmax n'est pas multþle de dg on arrondira la durée de la simulation
au multþle entier de dt immédiatement supérieur.

La tension d'entrée e(t) sera de même représentée par une liste E telle que E Ii]:e(r).
Q2. Écrire une fonction init_E (T . f ) prenant pour arguments la liste T des instants de la simulation et la
fréquence f de la pofteuse et retournant la liste des valeurs e(t) de la tension eaux instants T Iil, d'après
la définition de e(f et pour le message binai¡e (0,1,0) (on considèrera que la simulation ne se poursuit pas
au-delà).

I
Pow récupérer I'information binaire contenue dans une telle tension, il faut en extraire I'amplitude. On utilise pour cela
le dispositif de la Figure 2, appelé détecteur drenveloppe.

- þco D

+
C R s(t)
e(t)

Fiqure 2 : détecteur d'enveloppe


La modélisation du comportement de ce montage permet d'exprimer la tension de sortie s(l) en fonction de la tension
d'entrée eQ) dela façon suivante (r est la constante de temps du circuit RC) :

dsl
1. Si la diode est bloquée, alors (¿) + -s(t) = s il faut vérifier s(t) > e(t)
-
orT et que

dsL
¿(t) +-s(t) > o
2. Si la diode estpassante, alors s(t) = e(t) et il faut vérifier que

Autrement dit, la diode peut prendre deux états (bloquée ou passante), chacun soumis à une condition (inégalité) et
muni d'une équation d'évolution (égalité) ; lorsque la condition cesse d'être vérifiée, la diode change d'état. Nous allons
utiliser ces équations pour simuler numériquement l'évolution de la tension s(/). Pour cela, on propose d'utiliser une
variable þar exemple booléenne) indiquant l'état de la diode et, à chaque pas de temps /¡ :

vérifiée, de mettre à jour la variable.


Le résultat est stocké dans une liste S avec S til : s(l).

Q3. Donner une approxirnation de


$ {t,) "n fonction de s(r), s(t¡r1) et Lt: t¡+t4¡en utilisant [a formule dEuler
explicite. En déduire, dans [e cas où [a diode est b[oquée à linstant f¿ [a relation de récurrence donnant
s(f+r) en fonction de s(f), t et Ât

Dans le cas où la diode estpassante àl'instant /¡, on û€ peut pas utiliser cette formule pour tester l'état de la diode à r¡1.
On utilise donc I'approximation d'Euler awière ou Euler implicite, qui consiste à utiliser la même formule mais pour
approcher
$ (t,*r) au lieu ae
$ (t;).
Q4. Pourquoi ne peut-on pas utiliser [a formule dEuler explicite pour effectuer [e test ici ? Donner, en utilisant [a
démarche proposég une condition portent sur s(fa1), s(t), r et permettânt de déterminer si [a diode se
bloque ou non à linstant f+r. ^f

Q5. Écrire alors une fonction solve(T,E,tau) prenant pour arguments la liste T des instants de la
simulatior¡ la liste E des tensions d'enEée et la constante de temps tau et retournant la liste s des tensions
de sofie. Les conditions initiales seront prises nulles eÇ si nécessaire, l'état initial de la diode sera supposé
passant

Les Figures 3' 4 et 5 donnent les résultats (entrées et sorties numériques) obtenus pour trois pas de temps différents
choisis parmi I ns, l0 ns et 100 ns. Sur ces hois graphes, la tension d'entrée avant discrëtisation est cellç de la Figure 1
et la constante de temps du circuit est ø: I us. Seul le pas de temps change d'une simulation à I'autre.

I
Tournez la page S.V.P.
15
e(t)
s(r)
10

05

00

-05

-1 0

0 0000005 0.0000010 0.000001 5 0.0000020 0.0000025 0 0000030

Figure 3 : résultats de la simulation pour le pas de temps Áft


1.5

1.0

0.5

0.0

-05

-1 0

0. 0.0000005 0.0000010 0 0000015 0 0000020 0.0000025 0.0000030

Figure 4 : résultats de la simulation pour le pas de temps


At" /avec à I'orioine)

1.5
15

1.0

0.5
05

0.0
00

5
-0.5

-1,0

1 -1,5
o.2 0.4 0 6 0.8 1.0 I2 0.0 02 04 06 0B 1.0 1.2
le-j Ie-7

e(t)
s(t)

o oooûoo5 o 0000010 o ooo0025 o ooooû30

Fiqure 5 : rés de la simulation oour le oas de tem At" (avec zoom à


I'oriqine)
Q6. Indiquer la valeur du pas de temps (1, 10 ou 100 ns) correspondant à chacune de ces trois simulations, en
þstifiantvos réponses.

10
Q7. Expliquer en quelques phrases les causes des différences obtenues enhe les rois résultats s(r). Repérer en
particulier les instants auxquels [a diode change détat Que constatez-vous ?

Pour distinguerl'état "haut" de l'état "bas" de la tension s(l) et ainsi extraire les 0 et les I du message binaire transmis
par modulation, il est nécessaire de déterminer un seuil séparant les deux niveaux.

Q8. Indiquer, pour chacun des trois résultats, s'if est possiõle didentifrer un tel seuil, et donc si [a récupération
du message binaire semble réalisable silon se base uniquement sur ce résulbÉ Conclure sur [e critère que
doit respecter [e pas de temps dune simulation temporelle pour que les résultats de celle-ci aient une
chance dêtre pertinents.

Vérification de I'intégrité des données et correction des erreurs


Le signal transmis par une liaison RFID 13,56 MHz peut êhe perturbé par toutes sortes de facteurs pouvant provoquer
des erreurs dans les données : autres siglaux électromagnétiques, masses métalliques, imperfections du matériel
électronique... En pratique, il est donc indispensable de pouvoir détecter ces effeurs et, dans la meswe du possible, les
corriger sans que cela ne nécessite une nouvelle transmission ; I'objet de cette partie est de metke en place quelques
algorithmes dans ce but.

une technique simple et très répandu" oo* r'ur3r*to i:,i!f"#i"':::o"sera lue correcrement par son récepteru est
de lui adjoindre un bit de parité, é,galpar définition à :

Après réception de la donnée, le récepteur recalcule le bit de parité et le compare à celui que l'émetteur lui a adressé. Si
la dorurée n'a pas étê altérée lors de la transmission, alors les deux bits de parité sont forcément identiques.

Q9. Donner les bits de parité associés aux représentations binaires des entiers 5,76 et37.

Q10, Écrireunefonctionparite(bits) prenantpourargumentunelistebitsconstituéed'entiersvalant0ou


1 et retournant I'entier 0 ou 1 correspondant à son bit de parité.

Les techniques de vérification les plus simples consistent à découper la donnée en blocs et à joindre un bit de parité à
chaque bloc. Par exemple, certains protocoles transmettent sept bits de données pour un bit de parité.

Q11. Donner un exemple d'erreur n'étant pas détectable par cette technique. Si une erreur a été détectée, est-il
possible de la corriger sans retransmettre la donnée ?

2.2. Code de Hamming


Le code de Hamming est rur exemple d'utilisation des bits de parité pour détecter et corriger des erreurs. Nous nous
intéressons ici au code dit(7,4), ainsi appelé car il consiste àjoindre hois bits de parité à quatre bits de données, ce qui
donne un message d'une longueur totale de sept bits. Ces trois bits de parité sont définis ainsi : si la donnée s',écit (d1,
d.2, d3, d.a) avec d¡: 0 ou l, alors :

Le message encodé, que I'on transmet, s'écrit alors coÍtme svit i (p1, p2, dt, py dz, dz, d+).

Q1.z. Écrire une fonction encode hanmring (donnee) prenant pour argument une liste donnee de quaFe
bits (représentés par des entiãrs valant 0 ou 1) et retournant une liste de bits contenant [e message encodé.
On pourra appeler [a fonction parite (bits ) précédemment définie.
Le contrôle après réception d'un message ainsi encodé est relativement simple. On pourrait naturellement recalculer les
trois bits de parité de la donnée et les comparer aux valeurs transmises, mais la technique proposée par Hamming est de
calculer les trois bits de contrôle suivants, notés (c1, cz, ct), à partir du message complet (données et bits
supplémentaires), noté (m1,..., m7) :

On montre que si le message a bien été encodé selon les règles précédentes et n'a pas été altéré, alors les trois bits de
conhôle doivent êhe à 0. Si ce n'est pas le cas, alors il y a eu une ereur ; I'intérêt de la technique de Hamming est que

11
Tournez Ia page S.V.P.
dans le cas particulier où l'erreur est unique, le mot de contrôle donne la représentøtion binaire de la position de cette
erreur en numérotant à partir de L Par exemple, si (c1, cz, ct) : (0,1,1), alors I'erreur porte sur le hoisième bit du
message. Il suffit ainsi d'inverser ce bit (le methe à I s'il est à 0, et inversement) pour corriger I'erretu.

La donnée décodée est alors constituée des quatre bits (d1, d2, d3, d.a) qui se trouvent respectivement en positions 3, 5, 6
et 7 (toujours en numérotant à partir de 1) conformément à la description de I'encodage donnée ci-dessus.

Q13. Écrire une fonction decode_hanuning(message) prenant pour argument une liste de sept bits et
retournant une liste de quatre bits contenant [a donnée décodée. En cas derreur, on affichera à lécran un
avertissement indiquant [a position du bit affecté et on effectuera [a correction. On supposera dans cette
question que s'ily a une erreur, alors elle est unique.

Q14. Déterminer [e codage de Hamming de [a donnée 1011, puis [a donnée décodée par lalgorithme dans
Ihypothèse où les deux premiers bits du message codé ont été incorrectement transmis. Que[ a été leffet de
[a "correction" sur [a donnée dans ce cas ?

Q15. Sans codeç proposer un moyen simple de différencier une double erreur dune erreur unique au moyen
dun bit de parité supplémentahe et expliquer comment cela permet déviter [e problème mis en évidence à
la question précédente. On s'apputera sur les techniques introduites dans cette partie. On ne demande pas
d'essayer de corriger la double elTeur.

Utilisation des données de la puce pour autoriser ou non le


passage
Lorsqu'un utilisateur présente son tihe de transport face au lecteur d'un point de contrôle, la puce et le lecteur
s'identificnt mutuellement, puis le lecteur récupère les données de la puce permettant de déterminer si le passage est
autorisé ou non. A I'issue de cette récupération, I'ordinateur auquel est relié le lecteur dispose d'un fichier texte
0 0 01 . txt semblable à I'exemple ci-dessous :

49981 654 (identifiant du titre de transport)


t, 3, 2015-08-31 þremière et dernière zone de validitë, date de/in de validité)
2074-L0-29, [Link], 4568 (dates, heures et identifiants des lieux des trois derniers passages)
20\4-10-28 , 20 :,21 :48 , 365
2014-10-28 , 18:,41 :54, 981

En d'autres termes, ce fichier possède toujours exactement la structure suivante :

ensemble de zones contigües ; la seconde ligne contient les bornes de I'intervalle dans lequel le
titre est valide (ici, il s'agit des zones 1 à 3 incluses) ainsi que la date de fin de validité du titre au
format aaaa-mm-jj (ici, il s'agit du 31 août 201.Ð,

I'aide du titre : date, heure (au format hh:mm:ss sur 24 heures) et identifìant entier du point de
passage (gare, arrêt...).

On donne le bloc d'instructions utilisé pour lire les deux premières lignes de ce fichier. On précise qu'il n'est pas
nécessaire de connaître toutes les syntaxes relatives à la manipulation des chaînes pour traiter les questions suivantes.

sous Python

fichier : open ( '0001. txt' )


lignes : fichier. readlines ()
fichier. close ( )
# Ligne 1: recuperation de f identifiant du titre
id titre : int(liqnes[0])
# figne 2 : recuperation des donnees du titre de transport
donnees titre : fignes[1],rstrip('\n') .spllt(r, r)
zones : I int(donnees titre [0] ) ' int(donnees titre [1] ) l
ch date fín : donnees titre[2] lir r_l

12
date fin - [ int(ch date fín[0]), int(ch date fintll), int(ch date fint2l) l

Sous Scilab

fichier : mopen(' [Link]' )


lignes : mgetl (fichier)
mclose (fichier)

// tigne 7: recuperation de f identifiant du titre


id_titre : strtod(lignes (1) )
// tigne 2 : recuperation des donnees du titre de transport
donnees_titre : strsplit(lignes (2),,,, I
zones = [ strtod(donnees_titre (1) ), strtod(donnees_titre (2) ) l
ch_date_fin : strsplit (donnees_titre (3) , '-' )
date_fln : ¡ strtod(ch date fin(1)), strtod(ch date fin(2)), strtod(ch date fin(3)) l

Q16. Donner les types et les valeurs des variables id titre, zones et date fin à lissue de ces instructions
pour [e fichier 0001 . txt donné ci-dessus.

On souhaite placer le contenu des trois dernières lignes dans un tableau d'entiers noûìmé passaçJes, dont chaque ligne
corresponde à un passage (dans I'ordre dans lequel ils apparaissent dans le fichier) et dont les colonnes soient définies
coÍtme suit (le premier chiffre donné est I'indice sous Python, le derxième est I'indice sous Scilab) :

Indice 0/t U2 2/3 314 4/5 s/6 6/7


Contenu Année Mois Jour Heures Minutes Secondes Point de passase

Q17. Écrire [e bloc dinsrucüons à exécuter à [a suite des opérations précédentes pour construire [e tableau
passages à partir des lignes 3, 4 et 5 contenues dans [a liste J-ignes.

Les données relatives au lecteu¡ sont décrites par les variables suivantes (on utilise une initiale majuscule pour bien
différencier les données du lecteur de celles du titre ; le type est indiqué entre parenthèses) :

ou détériorés par leurs propriétaires, et devant donc être refusés,

jour, heures, minutes, secondes].

Le passage doit être autorisé si les conditions suivantes sont toutes vérifiées :

installé Ie lecteur, elìe doit avoir été effectuée il y a plus de 450 secondes (ceci afin de décourager
I'utilisation frauduleuse d'un même titre par plusieurs voyageurs).

Enfin, lorsqu'un passage est refusé, un message apparuît sur un afficheur LCD pour donner la raison du refus. Cet
afficheur possède une seule ligne et il faut donc définir des priorités au cas où plusieurs des conditions ci-dessus ne
seraient pas remplies. L'ordre de priorité et les messages correspondants sont donnés ci-dessous :
1,. "Titre refusé" si I'identifian( est dans la liste noire,
2. "Non val ide dans cette zone" si le lecteur est hors des zones de validité du titre,
3. "Titre expiré" si Ia date de fin de validité du titre est dépassée,
4. "Titre déjà validé" si le titre a déjà été validé dans Ie même lieu il y a moins de 450
secondes.

Q18. Écri¡e une fonction estÀvant (datel ,dalue2l prenant pour arguments deux dates au format [année,
rnois, jourl (donc sous forme de lÍstes de trois entiers chacune) et retournant True si datel est
antérieure ou égale à date2, et False sinon.

13
Q19. Ecrire une fonction nbSecondesEntre (heurel,heure2) prenant pour arguments deux horaires au
format [heures, minutes, secondes] (donc sous forme de listes de trois entiers chacun) et
retournant le nombre de secondes séparant les deux instants. Le résultat dewa être positif si heurel est
postérieureàheure2.

Q20. Écrire alors une fonction testPassage, dont les arguments sont à préciser, retournant la valeur True si
le passage est autorisé et la valeur False sinon et, dans ce dernier cas, amchant à l'écran le message
correspondant aux règles de priorité ci-dessus. On pourra utiliser toutes les variables définies dans cette
partie et appeler les fonctions définies dans les deux questions précédentes.

Exploitation des données enregistrées par le système


A chaque fois qu'un point de contrôle est franchi, le système collecte des données relatives au passage : lieu, date,
heure... Ces données sont ensuite enregistrées dans la base de données du transportew, qui comporte trois tables :

o date qui contient la date du passage au format aaaa-mm'ii,


o heure qui contient I'heure du passage au format hh:mm:ss,
o id3oint qui est I'identifiant (entier) du point de passage,
o id titre qui est I'identifiant (entier) du titre de transport utilisé ;

o id qui est I'identifiant du point de passage (clé primaire),


o zone qui est le numéro de la zone où se trouve le point de passage,
o ligne qui est le numéro de la ligne sur laquelle se trouve le point de passage ;

o id qui est I'identifiant du titre de transport (clé primaire),


o zone_min qui est Ia plus petite zone couverte par le titre,
o zone_tnax qui est la plus grande zone couverte par le titre.
Ces informations sont utilisées par le transportewpour effectuer des études statistiques sur la fréquentation de ses
lignes, en vue d'améliorer le service.
Par exemple, certaines lignes desservant majoritairement des zones d'activités ou des établissements d'enseigrrement
connaissent une forte baisse de leur fréquentation en été, ce qui permet d'alléger le service ; pour choisir la période
concemée, il faut connaître précisément l'évolution de la fréquentation au cours de l'été, ainsi que sa répartition au cours
de lajournée.

Q27. Donner [a requête SQL permettant de récupérer les dates et les heures de tous les passages ayant eu lieu sur
la ligne numérotée 1 enre [e ler þillet etle 31 août 2014 (inclus).

Un autre exemple de problématique est celui de I'efficacité des dézonages : à certaines périodes de I'année, les
voyageurs sont autorisés à emprunter I'ensemble du réseau de transport quelles que soient les zones de validité de leur
abonnement. Pour évaluer I'efficacité d'une telle mesure, il faut connaître le nombre de trajets en ayant bénéf,rcié.

Q22. Donner [a requête SQL permettant de compter [e nombre de passages dézonés, c'est-à-dire ayant eu lieu
hors de lintervalle de validité du titre utilisé, effectués [e 31 décembre20L4.

14
1-lV 6,H o I-t Y - 15 1043 - D'après documents fournis

Vous aimerez peut-être aussi