Vous êtes sur la page 1sur 30

SOUBIGOU Antoine PAILLARD Jean-Noël

GE3S

SOUBIGOU Antoine PAILLARD Jean-Noël GE3S Semestre 5 – 2003 B B a a l l a

Semestre 5 – 2003

Antoine PAILLARD Jean-Noël GE3S Semestre 5 – 2003 B B a a l l a a

BBaallaaddeeuurr MMPP33 eett ssaa ccaarrttee MMeemmoorryySSttiicckk

a a r r t t e e M M e e m m o o
a a r r t t e e M M e e m m o o

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

(33) 03 88 14 47 00 Télécopie : Administration : (33) 03 88 24 14 90

Projet microcontrôleur

Le baladeur MP3 – MemoryStick

Projet microcontrôleur Le balade ur MP3 – MemoryStick Janvier 2003 Introduction 1 I. La carte mémoire

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

Introduction

Le baladeur MP3 – MemoryStick

Janvier 2003

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

I La carte MemoryStick

I.1. Généralités

I.1.1. Rappel sur les cartes mémoires flash

Janvier 2003

"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

I.1.2. Description physique

Le baladeur MP3 – MemoryStick

Janvier 2003

Elle a l’avantage d’être petite, très légère et solide. Voici son allure :

petite, très légère et solide. Voici son allure : Figure 1 : La MemoryStick I.2. Principe

Figure 1 : La MemoryStick

I.2. Principe de fonctionnement

I.2.1. Organisation de la mémoire

de fonctionnement I.2.1. Organisation de la mémoire Figure 2 : Organisatio n de la mémoire SOUBIGOU

Figure 2 : Organisation de la mémoire

SOUBIGOU Antoine PAILLARD Jean-Noël

- 4 -

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.

GE3S

Projet microcontrôleur

Le baladeur MP3 – MemoryStick

I.2.3. Le brochage

Janvier 2003

ur MP3 – MemoryStick I.2.3. Le brochage Janvier 2003 Figure 3 : Le Brochage Trois broches

Figure 3 : Le Brochage

Trois broches nous intéressent pour notre projet de baladeur MP3 :

nous intéressent pour notre projet de baladeur MP3 : BS , c’est la broche du bus

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

s ont envoyées en série SCLK est le signal d’horloge Les autres broches sont V S

Les autres broches sont V SS et V CC 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

adaptateur. I.2.3. Les chronogrammes I.2.3.1. La lecture Figure 4 : Protocole de lecture SOUBIGOU Antoine PAILLARD

Figure 4 : Protocole de lecture

SOUBIGOU Antoine PAILLARD Jean-Noël

- 5 -

GE3S

Projet microcontrôleur

Le baladeur MP3 – MemoryStick

I.2.3.2. L’enregistrement

Janvier 2003

MP3 – MemoryStick I.2.3.2. L’enregistrement Janvier 2003 Figure 5 : Protocole d’écriture Figure 6 : Blocs

Figure 5 : Protocole d’écriture

Janvier 2003 Figure 5 : Protocole d’écriture Figure 6 : Blocs internes à la MemoryStick La

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

La liaison « données » : SDIO

Janvier 2003

- 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.

(CLKO) ce qui permet un travail à la même vitesse. Figure 7 : processus de décodage

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

Le balade ur MP3 – MemoryStick Janvier 2003 Figure 8 : Brochage du PIC 16LF877 II.2.2.

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.

tout à fait recommandées pour les projets portables. Figure 9 : Diagramme bloc du MAS 3507D

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

II.2.3. Présentation du DAC3550A

Janvier 2003

MemoryStick II.2.3. Présentation du DAC3550A Janvier 2003 Figure 10 : Diagramme bloc du DAC3550A Le convertisseur

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

Le balade ur MP3 – MemoryStick Janvier 2003 Figure 12 : Interface cl avier/microcontrôleur Pour

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.

et verte montées tête-bêche dans un unique boîtier. Figure 13 : LED bicolore SOUBIGOU Antoine PAILLARD

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.

au maximum) ou la position dans la chanson courante. Figure 14 : Commande de la LED

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.

schéma global du lecteur MP3 est disponible en annexe 4 . Figure 15 : Découplage du

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

Le balade ur MP3 – MemoryStick Janvier 2003 Figure 16 : Découplages des autres alimentations SOUBIGOU

Figure 16 : Découplages des autres alimentations

SOUBIGOU Antoine PAILLARD Jean-Noël

- 14 -

GE3S

Projet microcontrôleur

Conclusion

Le baladeur MP3 – MemoryStick

Janvier 2003

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

Sites Internet

Le baladeur MP3 – MemoryStick

Sites Internet Le balade ur MP3 – MemoryStick Janvier 2003 • Description générale de la MemoryStick

Janvier 2003

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

Le balade ur MP3 – MemoryStick Janvier 2003     3 Figure 1 : La MemoryStick
Le balade ur MP3 – MemoryStick Janvier 2003     3 Figure 1 : La MemoryStick
   

3

Figure 1 : La MemoryStick 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

12

Figure 15 : Découplage du MAS et du DAC Figure 15 : Découplage des autres alimentations

13

SOUBIGOU Antoine PAILLARD Jean-Noël

- 17 -

GE3S

Projet microcontrôleur

Le baladeur MP3 – MemoryStick

Janvier 2003

Projet microcontrôleur Le balade ur MP3 – MemoryStick Janvier 2003 SOUBIGOU Antoine PAILLARD Jean-Noël - 18

SOUBIGOU Antoine PAILLARD Jean-Noël

- 18 -

GE3S

Projet microcontrôleur

Le baladeur MP3 – MemoryStick

Janvier 2003

Annexe 1 : Description des blocs du DAC

MP3 – MemoryStick Janvier 2003 Annexe 1 : Description des blocs du DAC SOUBIGOU Antoine PAILLARD

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
Lettre
Long. (bits)
Long.
(bits)
Position (bits)
Position
(bits)

Description

 
A
A

11

(31-21)

Frame sync (Tous les bits à 1)

 
B
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
C

2

(18,17)

Description du Layer

 
 

00

- réservé

 

01

- Layer III

10

- Layer II

11

- Layer I

D
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
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
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
K

1 (3)

Copyright

0 – Le fichier est en copyright

1 – Le fichier n’est pas en copyright

L
L

1 (2)

Original

0 – Copie du média original

1 – Média original

M

2 (1,0)

SOUBIGOU Antoine PAILLARD Jean-Noël

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 're- equalize' the sound after a Dolby-like noise supression. It is rarely used.

- 22 -

GE3S

Projet microcontrôleur

Le baladeur MP3 – MemoryStick

Janvier 2003

Annexe 3 : Informations sur le PIC 16LF877

– MemoryStick Janvier 2003 Annexe 3 : Informations sur le PIC 16LF877 SOUBIGOU Antoine PAILLARD Jean-Noël

SOUBIGOU Antoine PAILLARD Jean-Noël

- 23 -

GE3S

Projet microcontrôleur

Le baladeur MP3 – MemoryStick

Structure CMOS du PIC

Janvier 2003

ur MP3 – MemoryStick Structure CMOS du PIC Janvier 2003 Particularités principales SOUBIGOU Antoine PAILLARD

Particularités principales

Structure CMOS du PIC Janvier 2003 Particularités principales SOUBIGOU Antoine PAILLARD Jean-Noël - 24 - GE3S

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

MemoryStick Janvier 2003 Le mode PWN pour la diode bicolore de volume SOUBIGOU Antoine PAILLARD Jean-Noël

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

MemoryStick Janvier 2003 Annexe 4 : Le schéma électrique du baladeur SOUBIGOU Antoine PAILLARD Jean-Noël -

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 #include <p16f877.inc>

; list directive to define processor ; 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 désactivé

; Watchdog désactivé

; Brown out detection

; Power On timer activé

désactivé (permet le fonctionnement à moins de 4 V)

;

Oscillateur

HS

;

LVP

désactivé

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Définition des variables

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;dans la bank 0

travail

EQU

0x20

; Registre de travail

delai

EQU

0x24

; utilisé pour générer une tempo logicielle

val_bouton

EQU

0x4E

; sauvegarde du PORTB

; adresses 0x70 -> 0x7F

; utilisées pour les variables de sauvegarde du contexte lors d'une interruption

(16 octets) : communes aux Bank 0,1,2,3

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

; adresse du vecteur de RESET

goto

main

; 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

; fixe le rapport cyclique à 0 pour commencer

movlw

b'00001111'

; activation du mode PWM

movwf

CCP1CON

;

; désactivation du CAN :

 

banksel 0x80

movlw

b'00000110'

; désactive complètement le CAN

movwf

ADCON1

; direction du port A : TRISA :

 
 

movlw B'00010000'

; RA4/RY est une entrée

movwf

TRISA

; tout le reste est en sortie

; direction du port C : TRISC:

 

movlw

b'00010000'

; tout en sortie sauf patte SDI

movwf

TRISC

banksel 0

 

clrf

PORTC

; par défaut tout est inactif

banksel 0x80

; 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

;b'01011001'

movwf

TMR1H

;

clrf

TMR1L

banksel 0x80

;

bsf

PIE1,TMR1IE

; inter timer1 = enable

banksel 0x00

bcf

PIR1,TMR1IF

; flag timer 1 = 0

bcf

INTCON,RBIE

; inter rb45 disable

movf

val_bouton,W

movwf

travail1

btfsc

travail1,4

RETURN

 

movlw

0x02

movwf

PCLATH

rrf

travail1,w

;

andlw

b'00000111'

; W contient le n° de touche enfoncée

addwf

PCL,F

; on saute aux routines associées à chaque touche

goto

vol_plus;

goto

vol_moins

;

return

inter_tmr1

 

;détermination de la touche enfoncée

 
 

return

END

; directive 'end of program'

 

SOUBIGOU Antoine PAILLARD Jean-Noël

- 29 -

GE3S