Construction d`un baladeur MP3 (MemoryStick)

Transcription

Construction d`un baladeur MP3 (MemoryStick)
SOUBIGOU Antoine
PAILLARD Jean-Noël
GE3S
Semestre 5 – 2003
Baladeur MP3 et sa carte
MemoryStick
Janvier 2003
Professeur : M. Boyer
ECOLE NATIONALE SUPERIEURE DES ARTS ET INDUSTRIES DE STRASBOURG
24, Boulevard de la Victoire - 67084 STRASBOURG Cedex - tél. (33) 03 88 14 47 00
Télécopie : Administration : (33) 03 88 24 14 90 - Enseignement/Recherche : (33) 03 88 24 52 76
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Introduction................................................................................................................... 1
I. La carte mémoire MemoryStick ............................................................................. 2
I.1. Généralités ..................................................................................................................................... 2
I.1.1. Rappel sur les mémoires flash ...................................................................................................2
I.1.2. Description physique .................................................................................................................3
I.2. Principe de fonctionnement.......................................................................................................... 3
I.2.1. Organisation de la mémoire ......................................................................................................3
I.2.2. Le brochage ...............................................................................................................................4
I.2.3. Les chronogrammes...................................................................................................................4
II. Le baladeur MP3 ...................................................................................................... 6
II.1. Préliminaires............................................................................................................................... 6
II.1.1.La compression MP3 .................................................................................................................6
II.1.2.Approche du sujet ......................................................................................................................7
II.2. Réalisation de la carte ................................................................................................................ 8
II.2.1.Choix du microcontrôleur .........................................................................................................8
II.2.2.Présentation du MAS3507D ......................................................................................................9
II.2.3.Présentation du DAC3550A ....................................................................................................10
II.2.4.Interface utilisateur .................................................................................................................10
II.2.5.Controle du volume ................................................................................................................12
II.2.6.Les découplages.......................................................................................................................12
Conclusion ................................................................................................................... 14
Sources ......................................................................................................................... 15
Table des figures ......................................................................................................... 16
Annexes ........................................................................................................................ 17
SOUBIGOU Antoine
PAILLARD Jean-Noël
-1-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Introduction
Depuis la fin des années 80, l’avancée sur les mémoires prend de l’ampleur grâce aux
nouvelles technologies. Apparaissent alors les mémoires flashs, petites et rapides. De plus
elles sont purement électroniques, réinscriptibles à l'infini et non-volatiles. C’est pourquoi
beaucoup de constructeurs de matériel portable, tels les baladeurs, appareils photos, voire les
téléphones ont largement privilégié ce support de stockage de l’information.
L’année précédente, un projet de baladeur MP3 a vu le jour et a connu une belle
réussite. Pour ce cours de microcontrôleur, un sujet proposait une étude semblable. Le projet
fut de construire un baladeur MP3 mais ayant comme carte mémoire la MemoryStick,
dernière née de Sony.
Le principe est donc de mettre en place un module indépendant qui par l’intermédiaire
d’un microcontrôleur PIC, achemine les données de la carte vers un décodeur MP3 qui alors
transfert la nouvelle trame audio vers un convertisseur numérique analogique qui finalement
émet la musique correspondante.
Dans ce rapport, nous allons tout d’abord introduire la MemoryStick de façon générale
ainsi que les protocoles de lecture et d’écriture, ensuite nous verrons les éléments constitutifs
de notre modèle de baladeur puis sa réalisation sur plaquette.
SOUBIGOU Antoine
PAILLARD Jean-Noël
-2-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
I La carte MemoryStick
I.1. Généralités
I.1.1. Rappel sur les cartes mémoires flash
"Flash" est un terme générique qui désigne une technologie de mémoire ultra rapide.
Les mémoires flash se trouvent un peu partout dans les appareils informatiques (le BIOS des
cartes mères est enregistré sur une mémoire de type flash), dans les appareils photo
numériques (sous la forme de petites cartes appelées "Smart Media", "Compact Flash",
"MemoryStick" etc. selon les constructeurs), etc. Une mémoire flash peut être effacée ou
modifiée par l'utilisateur, comme une mémoire SDRAM. Mais contrairement aux mémoires
SDRAM, elles n'ont pas besoin d'électricité pour conserver leurs informations. Elles peuvent
donc être facilement transportées.
Le terme de flash provient ainsi des capacités très rapides d'écriture et d'effacement des
données (de 1 à 1.5 Mo/s).
Il existe deux types de mémoires flash qui diffèrent par leurs applications. La mémoire
flash de type NAND a ses cellules de stockage disposées en série. Elle possède des capacités
d'écriture et d'effacement rapides et permet une gestion aisée des fichiers de données en
stockant ces dernières sous forme de "block" c'est-à-dire une unité de stockage variable,
différente du bit ou de l'octet, et qui est spécifique au produit. C'est cette technologie qui est
principalement utilisée dans les cartes mémoires et elle est bien adaptée pour le stockage
d'informations dans les appareils numériques.
L'autre type, appelée mémoire flash NOR, a ses cellules de stockage disposées en
parallèle. Elle est plus lente dans les fonctions d'écriture et d'effacement, mais plus rapide
dans les temps d'accès et permet une écriture au niveau du bit et de l'octet. Elle est vouée à
remplacer la mémoire morte classique du BIOS.
À la différence d'autres cartes de mémoire instantanées, la MemoryStick a été conçu
pour enregistrer, transférer et partager de divers types de contenu numérique, tels que des
images, la musique, la voix, et des données et des applications immobiles et mobiles
d'ordinateur. Avec l'éventail d'aujourd'hui disponible de produits compatibles, la
MemoryStick rend facile la création de notre propre réseau personnel pour relier les produits,
le contenu et les personnes.
Son seul problème aujourd’hui est de n’être utilisable qu’avec les produits de marque
Sony. Parallèlement, d’autres cartes flash, telles la Smart Media ou la Compact Flash,
continuent de progresser et ont l’avantage de pouvoir s’utiliser avec plusieurs gamme de
produits de marques différentes.
SOUBIGOU Antoine
PAILLARD Jean-Noël
-3-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
I.1.2. Description physique
Elle a l’avantage d’être petite, très légère et solide. Voici son allure :
Figure 1 : La MemoryStick
I.2. Principe de fonctionnement
I.2.1. Organisation de la mémoire
Comparée à la Smart Media, la
MemoryStick a un architecture interne
de
mémoire
beaucoup
plus
développée. On remarque ici que,
suivant le type de données, ces
dernières occupent un emplacement
précis dans la mémoire. Ainsi, les
fichiers audio sont ensemble, il en est
de même pour les images, les données
ou bien la vidéo.
Figure 2 : Organisation de la mémoire
SOUBIGOU Antoine
PAILLARD Jean-Noël
-4-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
I.2.3. Le brochage
Figure 3 : Le Brochage
Trois broches nous intéressent pour notre projet de baladeur MP3 :
BS , c’est la broche du bus d’état pour signaler si c’est une lecture ou un
enregistrement
DIO, les données utiles sont envoyées en série
SCLK est le signal d’horloge
Les autres broches sont VSS et VCC pour l’alimentation, les broches 5 et 7 sont
réservées aux matériels Sony, et la broche 6 informe si la carte est enclenchée dans son
adaptateur.
I.2.3. Les chronogrammes
I.2.3.1. La lecture
Figure 4 : Protocole de lecture
SOUBIGOU Antoine
PAILLARD Jean-Noël
-5-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
I.2.3.2. L’enregistrement
Figure 5 : Protocole d’écriture
Figure 6 : Blocs internes à la MemoryStick
La liaison « horloge » : SCK
-
La fréquence des impulsions sur le bus SCK détermine la vitesse de l’échange
d’information entre la carte mémoire et le PIC.
En l’absence de transmission, SCK est à 0.
La liaison « état du bus » : BS
-
Lorsqu’aucune donnée n’est transmise, BS est à BS0.
Lorsque l’on transmet, BS passe d’abord à BS1. L’état de BS1 indique le sens des
données .
Lorsque des données sont transmises, BS est à BS2.
Lorsqu’il y a raccrochage, BS est à BS3
En fin de transmission, BS retrouve son état de repos BS0
SOUBIGOU Antoine
PAILLARD Jean-Noël
-6-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
La liaison « données » : SDIO
-
Le signal TPC contient l’information sur la commande à exécuter. (Lire, écrire, effacer)
Dans notre cas, il s’agit d’une commande de lecture. Cette commande est stockée dans le
registre commande du contrôleur de la carte.
Celui-ci attend alors l’adresse où il doit aller lire la mémoire Flash.
Cette adresse est envoyé par le PIC et est stockée dans le registre d’écriture du contrôleur
interne.
Ce dernier exécute alors la commande de lecture :
o Il signale sur le bus SDIO qu’il est en train d’effectuer la commande
(BUSY).
o Il va chercher la page de 512ko à l’adresse contenue dans le registre
d’écriture et la stocke dans le Page Buffer.
o Une fois que la totalité est stockée, il indique qu’il est prêt à envoyer les
informations (READY) et attend un signal d’interruption.
o Ce signal reçu, il envoie le flot de données suivi d’un contrôle d’erreur par
redondance (CRC).
-
L’opération de lecture est alors terminée.
II Le baladeur MP3
II.1. Préliminaires
II.1.1. La compression MP3
Le MP3 (Mpeg-1 Audio Layer 3) est un format de fichier son compressé par perte de
données. L'intérêt principal de ce format est d'atteindre un taux de compression important de
fichiers sons (WAV, AIFF, etc.) sans que cela n'altère la qualité sonore : la différence entre le
son original d'un CD et le son de ce même CD qu'on a compressé en MP3 est inaudible et
comme la compression est de 1:12 (et même plus, mais dans ce cas la qualité s'en ressent), les
fichiers obtenus sont de taille tout à fait raisonnable : aux alentours de 1 Mo pour une minute
de son qualité CD (16 bits, 44.1 KHz, Stéréo) là où un fichier WAV prendrait près de 50 Mo.
Mais pour en profiter, il faut une configuration suffisamment puissante pour pouvoir effectuer
la compression/décompression.
A l'aide du MP3, il est désormais possible de stocker facilement 150 morceaux soit
près de 12 albums sur un seul CD-R. Cependant, il n'est actuellement possible de lire des MP3
pratiquement que sur des ordinateurs car la lecture nécessite une décompression en temps réel
qui n'est pas gérée par les matériels de lecture de CD Audio.
Mais vu les quantités d'opportunités qu'apporte ce nouveau format, le MP3 commence
réellement à prendre de l'ampleur auprès du public et des fabricants de matériel informatique
et HI-FI. Diamond Multimédia, célèbre entre autres pour ses cartes graphiques, a conçu le
premier baladeur MP3 nommé Rio à peine plus gros qu'une carte de crédit. Il permet de
stocker 60 minutes de MP3 de qualité CD sur une mémoire de masse.
SOUBIGOU Antoine
PAILLARD Jean-Noël
-7-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Un fichier MP3 se compose d’unités élémentaires plus petites, les trames MP3. Une
trame fait quelques centaines d’octets. Elle contient un en-tête et les données audio
compressées proprement dites.
•
Structure de la trame MP3
Dans le cas d'un layer I ou II, les trames sont des parties totalement indépendantes, ainsi
vous pouvez couper n'importe quelle partie le fichier MPEG et le jouer correctement. Le
lecteur jouera alors la musique commençant à la première trame valide trouvée.
Cependant, dans le cas d'un layer III, les trames ne sont pas toujours indépendantes. En
raison de l'utilisation possible du "réservoir de byte", qui est une sorte de buffer, les trames
sont souvent dépendantes les unes des autres. Dans le plus mauvais cas, 9 trames peuvent être
nécessaires avant de pouvoir décoder une trame.
Quand on veut lire les infos à propos d’un fichier MPEG, il est souvent suffisant de
trouver la première trame, lire son header et en déduire que les autres trames sont les mêmes.
Mais ce n’est pas toujours le cas, par exemple pour les fichiers à débit variable. Dans ces
fichiers, le débit peut changer à chaque trame.
Ceci est utilisé par exemple lorsque l’on veut garder une qualité de son constante durant
l’intégralité du MP3, en utilisant davantage de bits aux endroits où la musique nécessite d’être
plus encodée.
L’entête de la trame a une longueur de 32 bits. Les 12 premiers sont toujours à l’état 1
et sont appelés : « frame sync ». Des trames peuvent avoir une partie optionnelle CRC. Elle a
une longueur de 16 bits et est placée après l’entête. Après le CRC suivent les données audio.
En recalculant le CRC et en le comparant à celui obtenu précédemment, il est possible de
savoir si il y a eu erreur lors de la transmission du bitstream.
L’annexe 2 décrit entièrement le contenu de l’entête.
II.1.2. Approche du sujet
Notre première approche du projet fut de savoir comment restituer les données MP3 en
signal sonore. La complexité des algorithmes misent en œuvre ne permettent pas leur
implémentation sur un microcontrôleur 16 bits par exemple. Il est alors nécessaire d’utiliser
des puces spécialisées dans ce traitement. Nous avons alors fait quelques recherches sur
Internet afin de voir ce qu’il se faisait dans ce domaine.
Une puce récente permet de faire tout le travail de décodage et de conversion, il s’agit
du VS1001G. Le projet MP3 de l’année dernière utilisait déjà cette puce. Nous avons décidé
d’utiliser le MAS3507D pour le décodage et le DAC3550A pour la conversion N/A.
SOUBIGOU Antoine
PAILLARD Jean-Noël
-8-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Voici donc le schéma de notre étude de lecteur MP3. La source MP3 venant d’une carte
mémoire MemoryStick. Le microcontrôleur est la partie centrale du baladeur. Il est le point de
transfert des données venant de la carte mémoire vers le décodeur MAS. Ensuite, le MAS
envoie les informations décodées vers le convertisseur numérique analogique qui transforme
le tout pour permettre l’écoute sur un casque audio. A noter aussi que le MAS a sa propre
horloge (CLKI) et que le DAC est esclave de ce dernier car il lui demande sa fréquence
d’horloge (CLKO) ce qui permet un travail à la même vitesse.
Figure 7 : processus de décodage du MP3
II.2. Réalisation de la carte
C’est donc le microcontrôleur qui gère l’ensemble. C’est lui qui va demander les
données à la MemoryStick. Ensuite, suivant l’état du décodeur, il envoie les informations
demandées au MAS, qui une fois qu’il les à décodées, les transmet au DAC afin d’en sortir le
signal audio. Nous allons maintenant voir les caractéristiques des différents composants.
II.2.1. Choix du microcontrôleur
Comme tout projet en microélectronique, le microcontrôleur est le « «cerveau » du
système. Il est donc nécessaire de le choisir avant tout autre commencement.
Le choix est très vaste au niveau des PIC. Il en existe de toute sorte suivant le nombre
d’entrée, de sorties, de la quantité de mémoire souhaité et de bien autre chose. Nos seules
contraintes étaient l’alimentation possible en 3,3V, un nombre d’entrée/sorties suffisant, une
programmation simple et rapide.
Le microcontrôleur PIC 16LF877 répond tout à fait à nos demandes. Il dispose de 40
broches, d’une mémoire programme de 8Kmots, d’une RAM de 368 octets, il est disponible
en boîtier CMS qui ne prend que très peu de place, il dispose de nombreux modules
périphériques internes (voir documentation en annexe 3).
SOUBIGOU Antoine
PAILLARD Jean-Noël
-9-
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Figure 8 : Brochage du PIC 16LF877
II.2.2. Présentation du MAS3507D
La MAS 3507 D est une puce de décodage audio MPEG layer 2/3 utilisée
essentiellement pour les applications utilisant des supports de mémoire. De plus, sa faible
consommation et sa mémoire intégrée sont tout à fait recommandées pour les projets
portables.
Figure 9 : Diagramme bloc du MAS 3507D
On observe donc les quatre blocs qui nous intéressent.
Le premier est le bloc « serial in ». C’est à cet endroit que la trame MP3 venant du
microcontrôleur arrive par paquet de 32 bits. Les données sont décodées puis intervient le
second bloc. Le « serial out I²S » a alors pour but d’envoyer vers un convertisseur les données
décodées. Le troisième bloc concerne le bus I²C. C’est ici que l’information de demande de
décodage parvient.
Il a donc sa propre horloge à 14,5 MHZ, indépendante du PIC.
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 10 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
II.2.3. Présentation du DAC3550A
Figure 10 : Diagramme bloc du DAC3550A
Le convertisseur DAC est relié au MAS par l’interface I²S. C’est à cet endroit que les
données décodées arrivent. Elles sont ensuite interpolées, c’est-à-dire filtrées, puis après être
converties en analogique et amplifiées, le flux sortant est écoutable à partir d’un casque. Un
réglage du volume est possible. Néanmoins, on utilise généralement le réglage du MAS.
L’annexe 1 décrit plus précisément les blocs de ce DAC
II.2.4. Interface utilisateur
Après avoir réfléchi à différentes solutions (dont l’intégration d’un afficheur LCD),
notre choix s’est arrêté, surtout pour des raisons de consommation électrique, sur un clavier à
8 touches servant à indiquer au PIC ce que l’utilisateur veut faire. Les huit fonctions associées
à chacune des touches sont :
Play/Pause
Augmenter le volume
Stop
Diminuer le volume
Chanson précédente
Mode aléatoire
Chanson suivante
Avance rapide
Figure 11 : Description des touches
Il est bien sur possible de relier les huit boutons directement au PIC. Une solution plus
« économique » et plus technique est la suivante :
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 11 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Figure 12 : Interface clavier/microcontrôleur
Pour économiser les entrées/sorties du PIC, on insère un encodeur de priorité
(74HC148) qui ramène de 8 à 4 les pattes nécessaires sur le PIC, avec la possibilité de gérer
plus simplement les appuis grâce aux interruptions.
Notons qu’on active ou désactive le clavier avec un interrupteur à glissière (fonction
« HOLD » utile lorsque le baladeur est dans la poche…).
Le circuit arrivant à la broche EI de l’encodeur de priorité assure la fonction « hold ».
Si cet interrupteur est enclenché, alors quelque soit la touche enfoncée, le programme en
cours dans le PIC suit son cours. Cela permet par exemple d’éviter que la lecture soit
interrompue si une touche est enfoncée par mégarde.
Pour informer l’utilisateur du fonctionnement courant du baladeur, nous avons intégré
deux diodes électroluminescentes.
L’utilisation de la fonction PWM (modulation de largeur d’impulsion) du PIC permet
de moduler l’éclairement d’une LED bleue branchée directement sur une sortie.
La seconde diode est une LED bicolore. Il s’agit en fait de deux diodes rouge et verte
montées tête-bêche dans un unique boîtier.
Figure 13 : LED bicolore
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 12 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
II.2.5. Contrôle du volume
En utilisant le montage suivant associé à
une sortie PWM du PIC, on alimente la LED
rouge α % du temps, et la LED verte (100-α) %
du temps, α étant réglable logiciellement. Si la
fréquence du PWM est suffisante (> 50 Hz
environ), on peut ainsi passer du rouge au vert
par 1024 nuances d’orange (résolution du
PWM).
Bien sûr, l’œil ne distingue pas toutes ces
nuances, mais cette LED offre des possibilités
pour à indiquer par exemple la valeur courante
du volume (vert=volume à 0, rouge=volume au
maximum) ou la position dans la chanson
courante.
Figure 14 : Commande de la LED bicolore
Le circuit comportant une partie analogique et une partie numérique, nous les avons
séparées au maximum afin d’éviter les possibles perturbations de l’une sur l’autre. Un
régulateur 3.3 V est prévu pour permettre l’alimentation par piles (3*1,5=4,5 V) ou par des
accumulateurs rechargeables (3*1.2=3.6 V).
II.2.6. Les découplages
On observe le découplage du PIC, et du 74148. L’alimentation de 3.3V sera obtenue
avec un régulateur 78L05. A noté aussi que toutes les alimentations du MAS et du DAC ont
leurs propres découplages afin d’obtenir un traitement du signal propre.
Le schéma global du lecteur MP3 est disponible en annexe 4.
Figure 15 : Découplage du MAS et du DAC
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 13 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Figure 16 : Découplages des autres alimentations
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 14 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Conclusion
Ce projet de microcontrôleur sur l’élaboration d’un baladeur MP3 à partir d’une carte
mémoire MemoryStick fut passionnant. Cela nous a d’abord fait découvrir la technologie des
cartes flash. Comment elles sont structurées, quels sont leurs avantages, les possibilités
qu’elles offrent.
De plus, Nous avons aussi appris comment un lecteur MP3 fonctionnait. On voit ces
baladeurs apparaître de plus en plus sur le marché et leur popularité grandir. Ce projet nous a
permis de comprendre leur fonctionnement.
Nous avons pourtant un grand regret qui est de n’avoir pas pu utiliser la carte
mémoire. En effet, Sony, le constructeur de la carte, protège vivement les sources des
différents protocoles, par raison de sécurité sûrement car son apparition est encore récente.
Peut-être qu’un autre groupe pourra continuer le projet une fois les sources ouvertes au
public. En effet, nous avons testé la carte et chacune de ses parties et elle fonctionne très bien.
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 15 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Sites Internet
•
•
•
•
Description générale de la MemoryStick : www.sony.net/Products/MS/
Site de Microchip : www.microchip.com
Site de projets MP3 : www.mp3projects.com
Site lecteur MP3 commercialisé : www.chez.com/imap3/
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 16 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Figure 1 : La MemoryStick ..........................................................................................................3
Figure 2 : Organisation de la mémoire........................................................................................3
Figure 3 : Le brochage ..................................................................................................................4
Figure 4 : Protocole de lecture .....................................................................................................4
Figure 5 : Protocole d’écriture.....................................................................................................5
Figure 6 : Blocs internes à la MemoryStick................................................................................5
Figure 7 : Processus de décodage du MP3 ..................................................................................8
Figure 8 : Brochage du PIC 16F877 ............................................................................................9
Figure 9 : Diagramme bloc du MAS3507D.................................................................................9
Figure 10 : Diagramme bloc du DAC3550A.............................................................................10
Figure 11 : Desription des touches.............................................................................................10
Figure 12 : Interface clavier/microcontrôleur ..........................................................................11
Figure 13 : LED bicolore ............................................................................................................11
Figure 14 : Commande de la LED bicolore ..............................................................................12
Figure 15 : Découplage du MAS et du DAC.............................................................................12
Figure 15 : Découplage des autres alimentations .....................................................................13
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 17 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 18 -
Janvier 2003
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Annexe 1 : Description des blocs du DAC
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 19 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Annexe 2 : Structure de la trama d’un MP3
Voici une représentation du contenu de l’entête. Les caractères A à M sont utilisés pour
indiquer les différents champs. Puis nous verrons le détail de chaque champ.
AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM
Lettre Long. Position Description
(bits) (bits)
A
11
(31-21)
Frame sync (Tous les bits à 1)
B
2
(20,19)
MPEG Audio version ID
00 - MPEG Version 2.5
01 - réservé
10 - MPEG Version 2 (ISO/IEC 13818-3)
11 - MPEG Version 1 (ISO/IEC 11172-3)
C
2
(18,17)
Description du Layer
00 - réservé
01 - Layer III
10 - Layer II
11 - Layer I
D
1
(16)
Bit de protection
0 – Protégé par le CRC (16bit CRC suivent l’entête)
1 – non protégé
E
4
(15,12)
Index des différents débits
bits V1,L1 V1,L2 V1,L3 V2,L1 V2, L2 & L3
0000 libre libre libre libre libre
0001 32
32
32
32
8
0010 64
48
40
48
16
0011 96
56
48
56
24
0100 128 64
56
64
32
0101 160 80
64
80
40
0110 192 96
80
96
48
0111 224 112 96
112 56
1000 256 128 112 128 64
1001 288 160 128 144 80
1010 320 192 160 160 96
1011 352 224 192 176 112
1100 384 256 224 192 128
1101 416 320 256 224 144
1110 448 384 320 256 160
1111 Mauv. Mauv. Mauv. Mauv. Mauv.
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 20 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
NOTES: Valeurs en kbps
V1 - MPEG Version 1
V2 - MPEG Version 2 et Version 2.5
L1 - Layer I
L2 - Layer II
L3 - Layer III
"libre" veut dire format libre. The free bitrate must remain
constant, an must be lower than the maximum allowed
bitrate. Decoders are not required to support decoding of
free bitrate streams.
"Mauv." Veut dire que la valeur n’est pas alouée.
F
2
(11,10)
Index des fréquence d’écoute
bits MPEG1 MPEG2 MPEG2.5
00 44100 Hz 22050 Hz 11025 Hz
01 48000 Hz 24000 Hz 12000 Hz
10 32000 Hz 16000 Hz 8000 Hz
11 reserv. reserv. reserv.
G
1
(9)
Bit de remplissage
0 – La trame n’est pas remplie
1 – Slot supplémentaire dans la trame
Le remplissage est utilise pour adjuster parfaitement le
débit. Voici un exemple : 128kbps 44.1kHz layer II uses a
lot of 418 bytes and some of 417 bytes long frames to get
the exact 128k bitrate. For Layer I slot is 32 bits long, for
Layer II and Layer III slot is 8 bits long.
H
1
(8)
Bit privé. Il est seulement informatif.
I
2
(7,6)
Mode d’écoute
00 - Stéréo
01 - Joint stéréo (Stéréo)
10 – Voie double (2 voie mono)
11 – Une seule voie (Mono)
Note: Dual channel files are made of two independant
mono channel. Each one uses exactly half the bitrate of the
file. Most decoders output them as stereo, but it might not
always be the case.
One example of use would be some speech in two
different languages carried in the same bitstream, and then
an appropriate decoder would decode only the choosen
language.
J
2
(5,4)
Mode d’extension (Utilisé que pour le joint stéréo)
Mode extension is used to join informations that are of no
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 21 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
use for stereo effect, thus reducing needed bits. These bits
are dynamically determined by an encoder in Joint stereo
mode, and Joint Stereo can be changed from one frame to
another, or even switched on or off.
Complete frequency range of MPEG file is divided in
subbands There are 32 subbands. For Layer I & II these
two bits determine frequency range (bands) where
intensity stereo is applied. For Layer III these two bits
determine which type of joint stereo is used (intensity
stereo or m/s stereo). Frequency range is determined
within decompression algorithm.
Layer I and II
Layer III
value Layer I & II Intensity stereo MS stereo
00 bands 4 to 31
off
off
01 bands 8 to 31
on
off
10 bands 12 to 31
off
on
11 bands 16 to 31
on
on
K
1
(3)
Copyright
0 – Le fichier est en copyright
1 – Le fichier n’est pas en copyright
L
1
(2)
Original
0 – Copie du média original
1 – Média original
M
2
(1,0)
Emphasis
00 - none
01 - 50/15 ms
10 - reserved
11 - CCIT J.17
The emphasis indication is here to tell the decoder that the
file must be de-emphasized, ie the decoder must 'reequalize' the sound after a Dolby-like noise supression. It
is rarely used.
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 22 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Annexe 3 : Informations sur le PIC 16LF877
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 23 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Structure CMOS du PIC
Particularités principales
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 24 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Le mode PWN pour la diode bicolore de volume
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 25 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Annexe 4 : Le schéma électrique du baladeur
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 26 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
Exemple de programme simple du PIC
Gestion du clavier et de la diode bicolore de volume
list
p=16f877
; list directive to define processor
#include <p16f877.inc>
; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC
& _WRT_ENABLE_ON & _LVP_OFF & _DEBUG_OFF & _CPD_OFF
; Code_protection
; Watchdog
; Brown out detection
; Power On timer activé
; Oscillateur
; LVP
désactivé
désactivé
désactivé (permet le fonctionnement à moins de 4 V)
HS
désactivé
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Définition des variables
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;dans la bank 0
travail
delai
EQU
EQU
0x20
0x24
; Registre de travail
; utilisé pour générer une tempo logicielle
val_bouton
EQU
0x4E
; sauvegarde du PORTB
; adresses 0x70 -> 0x7F (16 octets) : communes aux Bank 0,1,2,3
; utilisées pour les variables de sauvegarde du contexte lors d'une interruption
w_temp
EQU 0x70
; Pour sauvegarder W (interruption)
status_temp
EQU 0x71
; Pour sauvegarder STATUS (interruption)
pclath_temp
EQU 0x72
; Pour sauvegarder PCLATH (interruption)
;**********************************************************************
; RESET
;**********************************************************************
ORG 0x000
goto main
; adresse du vecteur de RESET
; On saute au programme principal
;**********************************************************************
; INTERRUPTION
;**********************************************************************
test2
; Teste l'interruption RB4:RB5
BTFSS INTCON,RBIF ; test du flag "mismatch" sur RB4 ou RB5
goto
test3
; si ce n'est pas lui -> test suivant
call
inter_RB45
; si c'est lui -> saut à la routine associée
BCF
INTCON,RBIF ; interruption traitée, on efface le flag
goto
fin_inter ; -> fin de l'interruption
; Restauration du contexte d'avant l'interruption
fin_inter
movf pclath_temp,w ; récupère le PCLATH d'avant interruption
movwf PCLATH
; restauration
swapf status_temp,w ; récupère le STATUS d'avant interruption
movwf STATUS
; restauration
swapf w_temp,f
swapf w_temp,w
; restauration de W sans affecter STATUS
retfie
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 27 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
;**********************************************************************
; Programme principal
;**********************************************************************
main
call
init_PIC ; on initialise les ports du PIC et ses périphériques
; ici on arrive dans la boucle pricipale du programme qui ne fait rien d'autre
; qu’attendre les diverses interruptions.
attente_interruption
goto
attente_interruption
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
init_PIC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; paramétrage du Timer2 (utilisé pour le PWM)
movlw b'00000111'
; Timer2 on, Prescaler=16
movwf T2CON
;
banksel 0x80
movlw 0xFF
; On compte jusqu'a 255
movwf PR2
; => Fpwm=732 Hz environ (on ne peut pas faire moins)
; démarrage du PWM
banksel 0x00
clrf
CCPR1L
movlw b'00001111'
movwf CCP1CON
; désactivation du CAN :
banksel 0x80
movlw b'00000110'
movwf ADCON1
; direction du port A : TRISA :
movlw B'00010000'
movwf TRISA
; direction du port C : TRISC:
movlw b'00010000'
movwf TRISC
banksel 0
clrf
PORTC
banksel 0x80
; fixe le rapport cyclique à 0 pour commencer
; activation du mode PWM
;
; désactive complètement le CAN
; RA4/RY est une entrée
; tout le reste est en sortie
; tout en sortie sauf patte SDI
; par défaut tout est inactif
; bank 1
; les autres ports sont en entrée par défaut
; paramétrage du TIMER0 et Interruptions externes :
banksel 0x80
; Bank 1
movlw b'11000111'
; pas de pull-ups sur le port B
; interruption externes générées sur front montant
; source du TIMER0 = l'horloge interne
; prescaler affecté au TIMER0 = 1:256
movwf OPTION_REG
banksel 0x00
; Bank 0
; activation des interruptions des périphériques
bsf
INTCON,PEIE ;
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 28 -
GE3S
Projet microcontrôleur
Le baladeur MP3 – MemoryStick
Janvier 2003
; activation des interruptions sur RB4:RB5 ;
bcf
INTCON,RBIF ; on efface le flag pour qu'il n'y ait pas de saut
bsf
INTCON,RBIE ; activation de l'interruption sur RB4 et 5
; activation globale des interruptions
bsf
INTCON,GIE ;
return
; fin de la procédure d'initialisation.
inter_RB45
call
wait_5_us
call
wait_5_us
movf PORTB,W
movwf val_bouton
movlw 0x0
movwf TMR1H
clrf
TMR1L
banksel 0x80
bsf
PIE1,TMR1IE
banksel 0x00
bcf
PIR1,TMR1IF
bcf
INTCON,RBIE
movf val_bouton,W
movwf travail1
btfsc
travail1,4
RETURN
movlw 0x02
movwf PCLATH
rrf
travail1,w
andlw b'00000111'
addwf PCL,F
goto
vol_plus ;
goto
vol_moins
;b'01011001'
;
;
; inter timer1 = enable
; flag timer 1 = 0
; inter rb45 disable
;
; W contient le n° de touche enfoncée
; on saute aux routines associées à chaque touche
;
return
inter_tmr1
;détermination de la touche enfoncée
return
END
; directive 'end of program'
SOUBIGOU Antoine
PAILLARD Jean-Noël
- 29 -
GE3S