| Présentation | Hardware | Programmation | Links | Divers | Contact |

Sommaire - Étude technique du Minitel

Étude interne du Minitel

Le but de cette page est de présenter les résultats de l'étude technique du Minitel que j'ai réalisé il y a quelques années.
Mais pourquoi faire le reverse engineering du Minitel, objet complètement démodé, aux capacités apparemment très limitées ?
En fait cela vient d'un pari technique : Remplacer le logiciel interne du Minitel pour en démontrer les réelles capacités graphiques.
Beaucoup d'objets informatiques des années 80/90 ont leurs démos, mais sur Minitel cela n'a jamais été fait auparavant.
La grande diffusion de ce terminal en France mérite que l'on s'intéresse un peu à lui ;-)

Le sujet d'étude est un Minitel 2, appareil à l'origine destiné à la déchetterie.

Minitel 2 minitel2_modelnumber

En retirant le capot arrière du Minitel voici ce qu'il y a en interne :

minitel2_interne

Il y a principalement 2 cartes : La carte latérale est la carte du moniteur CRT du Minitel. Cette dernière contient également la partie alimentation de l'ensemble.


Risques électriques
Attention : La ventouse blanche à droite sur le tube cathodique est la connexion haute tension. J'ai mesurée la tension délivrée à via cette connexion avec une sonde haute tension prévue pour. Le voltage est ici de 12000 Volts !
La carte d'alimentation présente également des tensions de plusieurs centaines de volts... Donc Attention - c'est à manipuler avec précautions !

^^^ Retour Sommaire ^^^

Consommation électrique

Commençons par une mesure de sa consommation au wattmètre, en comparant d'autres Minitels :


Mesures faites avec une tension secteur de 238,5 Volts

Modèle Veille (En watts) Fonctionnement (En watts) Facteur de puissance
Minitel 2 RTIC NFZ 400 7 Watts 20 Watts 0,59
Minitel 1 RTIC NFZ 330 - 18 Watts 0,59
Minitel 1 "R 722 680 C" TELIC ALCATEL - 19 Watts 0,61
Minitel Magis Philips 5 Watts 11 Watts 0,57

^^^ Retour Sommaire ^^^

Architecture du Minitel 2

Architecture_Minitel_2

^^^ Retour Sommaire ^^^

L'unité centrale

La carte en position horizontale est la carte processeur du Minitel qui est en fait le "cerveau" du Minitel.

minitel2_motherboard

Ci-dessus la carte mère du Minitel 2. On peut y repérer les composants principaux :

^^^ Retour Sommaire ^^^

Le processeur

minitel2_cpu

L'unité centrale du Minitel 2 : Un microcontrôleur 80C32. Il s'agit en fait de la version ROMless du microcontrôleur 80C51. Ce microcontrôleur est cadencé par la partie vidéo à 14,31818 MHz. En termes de puissance de calcul sachant qu'il faut au minimum 12 cycles d'horloges pour une instruction, cela tourne autour de 1 MIPS.

Ce microcontrôleur contient 256 octets de RAM en interne.

docticoDatasheet du 80C32

Le petit circuit en dessous est une EEPROM I2C de 256 octets (24C02) contenant l'annuaire de l'utilisateur ainsi que le mot de passe de protection du Minitel.

minitel2_eprom

L'EPROM contenant le logiciel du Minitel. Ce chip est sur support pour une éventuelle mise à jour. Il s'agit d'une 87C257, une EPROM de 256 Kbits (32 Ko). La différence majeure avec une classique 27C256 est qu'elle est capable de se connecter directement au bus multiplexé du 80C32 sans latch externe (le latch LS373 est intégré).

docticoDatasheet de la 87C257

Note : Vous avez remarqué que le socket est plus grand que l'EPROM. Il s'agit en fait d'un port d'extension ! En effet le hardware du Minitel 2 a été utilisé comme base pour d'autres terminaux à l'international pour des usages différents.
On peut citer entre autres le "Philips NMS 6302 00B Viewdata Banking Terminal" qui possède à la place de cette EPROM une petite carte d'extension avec une EPROM classique de 32 Ko (27C256), une RAM de 8 Ko et un latch utilisé comme démultiplexeur.

Voici quelques photos des cartes de ce variant du Minitel 2 RTIC :
Philips_NMS_6302_main_board.jpg
Philips_NMS_6302_memory_board_top.jpg
Philips_NMS_6302_memory_board_bottom.jpg

^^^ Retour Sommaire ^^^

La partie Vidéo

minitel2_video

La partie vidéo du Minitel est la partie la plus intéressante. Le TS9347 est un composant vidéo capable d'afficher du texte Alpha-Numérique.
Le composant en question gère directement 8 Ko de DRAM (théoriquement extensible jusqu'à 32 Ko).
Il est possible de définir ses propres tables de caractères, d'où le nom "Semi-Graphic Display Processor".

Le microcontrôleur n'a pas d'accès direct à cette mémoire, mais il peut envoyer des commandes de lectures/écriture via le processeur graphique.

L'horloge issue de l'oscillateur du processeur graphique cadencée à 14,31818 MHz est également utilisée par le microcontrôleur 80C32.

doctico Datasheet du TS9347CP
doctico Datasheet de la uPD4168C

^^^ Retour Sommaire ^^^

Le Modem

minitel2_modem

La partie modem, composée d'un TS7514CP, un modem V.23 (modulation/démodulation en FSK à 1200/75 baud ou 75/1200 baud) .
Ce dernier est également connecté à un haut parleur interne au Minitel et est capable de générer les fréquences DTMF 697 Hz, 770 Hz, 852 Hz, 941 Hz, 1209 Hz, 1336 Hz, 1477 Hz, 1633 Hz ainsi que les fréquences de modulation 390 Hz, 450 Hz, 1300 Hz et 2100 Hz.

Il ne reste plus qu'à composer quelque chose avec ça ;).

doctico Datasheet du TS7514CP
doctico Note d'appplication du TS7514CP

^^^ Retour Sommaire ^^^

Le clavier

Le clavier est une classique matrice de contacts. Voici l'interconnexion interne :

minitel2_clavier

Et voici la matrice du clavier :

matrice_clavier_minitel

^^^ Retour Sommaire ^^^

Le tube cathodique

Le CRT utilisé dans cette unité est un tube de 9 pouces Samsung 240AG4. Voici quelques caractéristiques électriques que j'ai pu mesurer :

brochage du CRT

Bobine de déflexion horizontale : Résistance : 0,87 Ohms, Valeur : 476 uH, courant min-max : -1,5 Ampère - +1,5 Ampère (Image du courant ci-dessous : 1 Volt = 1 Ampère)

minitel2_crt_deflexion_horizontale_small

Bobine de déflexion verticale : Résistance : 39,5 Ohms, Valeur : 72000 uH, courant min-max : -0,125 Ampère - +0,125 Ampère (Image du courant ci-dessous : 1 Volt = 1 Ampère)

minitel2_crt_deflexion_verticale_small

Filament (Broche 3 + 4) : Résistance (à froid) 20,5 Ohms, Tension efficace : 10,5 Volts

grille k, Vidéo/Contrôle (Broche 2) : Noir : 46 Volts, Blanc 17,6 Volts, Premier gris 36,4 Volts.

grille g1 (Broche 1 + 5), Luminance : -74 Volts (Tension stable/continue)

grille g2 (Broche 6), "Screen voltage" : 246 Volts (Tension stable/continue)

grille g4 (Broche 7), Focus : 144 Volts

grilles g5, g3 (connexion "Ventouse") : Tension THT du tube : 12000 Volts.

Note : Les tensions mesurées ci-dessus peuvent varier selon les réglages et le type de carte CRT.

Ce tube est compatible électriquement et mécaniquement avec le Philips M24-514W, que l'on retrouve également dans certains Minitels.

^^^ Retour Sommaire ^^^

Plan mémoire et affectation des broches

Ci-dessous un brouillon du schéma du Minitel 2. À noter qu'il y a uniquement les interconnexions "numériques". Les parties vidéo et modem sont, à ce jour, manquantes.

UC_Decodage_Clavier_small

Et voici les définitions du plan mémoire et des interconnexions du 80C32 :

0x2000 : Registre de contrôle modem / CRT / Relais :

#define HW_CTRL_MCBC 0x01
#define HW_CTRL_MODDTMF 0x02
#define HW_CTRL_CTRON 0x08
#define HW_CTRL_OPTO 0x10
#define HW_CTRL_LINERELAY 0x20

0x4000 : Chip video TS9347.

Connexion modem :

#define RXD_MODEM P3_3 // Modem -> CPU
#define RTS_MODEM P1_4 // CPU -> Modem
#define TXD_MODEM P1_3 // CPU -> Modem
#define PRD_MODEM P1_2 // CPU -> Modem
#define DCD_MODEM P1_1 // Modem -> CPU
#define ZCO_MODEM P3_2 // Modem -> CPU

Connexion clavier :

#define SERIN_KEYB P1_0 // Shifter clavier -> CPU
#define LOAD_KEYB P1_5 // CPU -> Shifter clavier

Connexion EPROM :

#define EPROM_SCL P1_6 // 24C02 EPROM SCL
#define EPROM_SDA P1_7 // 24C02 EPROM SDA

Connexion prise péri-informatique :

#define SER_RXD P3_0 // RX
#define SER_RXD P3_1 // TX
#define SER_RDY P3_5 // Ready

^^^ Retour Sommaire ^^^

Reprogrammation du Minitel 2

Bon et après ? Que peut-on faire avec cela ?

Une fois que les composants sont identifiés et que l'architecture générale du Minitel est bien comprise, il est maintenant possible de le programmer.
Le microprocesseur étant basé sur un cœur de 80C51, j'ai simplement utilisé SDCC :

http://sdcc.sourceforge.net/

À l'aide de ce compilateur, j'ai pu réaliser différents tests de différentes routines d'affichage (2D et 3D) afin de déterminer les capacités de la machine. En voici quelques exemples en images :


Pas mal pour un Minitel ;)

Au passage voici le dump de l'EPROM d'origine contenant le firmware de cette machine : Minitel_ROMs.zip
(L'archive contient les versions BV4 et BV9 du Minitel 2/NFZ400 ainsi que la version BU3 du Minitel 1/NFZ330)

Bientôt plus de détails !

30 Avril 2017 :

J'ai ajouté le support de l'émulation hardware du Minitel 2 dans MAME :

MAME avec le support de l'émulation hardware du Minitel

L'archive contient MAME ainsi que la ROM d'origine et celle de la démo avec différents effets graphiques 2D et 3D.

mame_minitel

Donc maintenant les ROMs alternatives peuvent être écrites et testées sans forcement avoir le matériel.

À noter que les sources de la démo sont disponibles sur GitHub :

https://github.com/jfdelnero/minitel/tree/master/minitel2/the_minitel_demo

L'ensemble se compile avec SDCC.

Présentation faite à la Classic Computing 2015 à Thionville le 3/10/2015 : Presentation_Etude_Minitel_2_FR_DE.pdf

15/04/2011

^^^ Retour Sommaire ^^^

Les autres Minitels étudiés

Ci-dessous quelques autres dossiers :

Le Philips Telematico NMS3000
Matra Télétel 3V
RTIC Minitel9 NFZ330
TELIC Alcatel R 722 680 C
Minitel Magis (Philips)
Minitel Magis Club (Alcatel)

^^^ Retour Sommaire ^^^

Lien téléphonique du Minitel - Modulation et démodulation de l'information

Voici une étude faite sur un aspect très différent du précédent. Ici, nous allons plutôt nous intéresser à la voie de communication principale du Minitel, à savoir comment il communique avec un serveur via la ligne téléphonique.
Le développement des outils et analyses présentés ici ont été motivés par les besoins techniques nécessaires des projets de préservations et d'expositions des associations La Ludothèque Française et MO5.COM courant des années 2020..

^^^ Retour Sommaire ^^^

Modulation/Démodulation FSK

Le Minitel utilise un modem V.23 capable de communiquer via la ligne téléphonique à 1200 baud en réception et 75 baud en transmission.

Le standard V.23 définis une simple liaison série modulée en fréquence (FSK). Pour la réception à 1200 Baud, l'état haut de la liaison série est modulée par sinus à 1300 Hz et l'état bas à 2100 Hz.

Le format série utilisé est compatible RS-232. Un mot est composé d'un bit de Start, 7 bits de données, d'un bit de parité paire un bit de stop.

Ci-dessous vous pouvez voir comment l'information est encodée puis modulée.
On peut y voir la relation entre l'état de la ligne série et la fréquence émise sur la ligne téléphonique.

v23_minitel_modulation.png

Ci-dessous, vous pouvez voir à quoi ressemble cette modulation à l'oscilloscope et à l'analyseur de spectre :

modulation_minitel_rx.png

Pour la transmission vers le serveur, c'est exactement le même principe, avec des fréquences de modulation différentes : état haut à 390 Hz et état bas à 450 Hz.
Les liaisons montante et descendante utilisent ainsi des plages de fréquences différentes. Cela permet ainsi une communication bidirectionnelle en "full duplex".
On peut voir à l'analyser de spectre les liaisons montante et descendante, chacune utilisant une plage différente du spectre disponible sur la ligne téléphonique (300 Hz - 3,4 kHz).

modulation_minitel_rxtx.png

Vous pouvez écouter ce que ça donne au niveau sonore avec les 2 pages Minitel ci-dessous sous forme d'un fichier audio :

Page de texte Minitel de test :

Télécharger minitel_txt_test_page.wav
Page videotex Minitel de test :

Télécharger minitel_graph_test_page.wav

^^^ Retour Sommaire ^^^

La ligne téléphonique

Au repos, la ligne téléphonique présente une tension continue autour de 48 V (44 V - 55 V) et possède normalement une impédance de ligne autour de 600 ohms.
Lorsqu'un appareil prend la ligne (téléphone, modem, Minitel...), il tire un courant de quelques dizaines de milliampères pour s'alimenter. Les spécifications imposent un courant entre 30 mA et 50 mA en France.
La tension chute alors autour des 15 V / 20 V et cela permet au commutateur téléphonique de détecter la prise de ligne.
Une fois la ligne décrochée, la conversation des interlocuteurs est modulée en amplitude en superposition de la tension continue d'alimentation. L'amplitude maximum de cette modulation se situe entre 1,5 V et 5 V.

Tonalité d'invitation à numéroter (Dial tone) : 440 Hz

Télécharger tonalite_440hz.wav

Pour la numérotation il y a 2 générations :

- La numérotation par impulsions, datant de l'époque des téléphones à cadran.

Il s'agit d'un train d'impulsions composé d'interruptions et de reprises de courant : Circuit fermé pendant 33.3 ms et 66.6 ms en circuit ouvert pour chaque impulsion, avec une pause de 100 ms entre chaque numéro/digit.

- La numérotation DTMF

Il s'agit d'une émission simultanée de 2 fréquences, chacune indiquant la ligne et la colonne du bouton/digit envoyé. La durée minimale d'émission de chaque digit est de 40 ms.
Exemple : Pour composer le chiffre 6, l'appelant doit émettre les fréquences 1477 Hz et 770 Hz simultanément.

dtmf_exemple.png

1

2

3

A

4

5

6

B

7

8

9

C

*

0

#

D


Autre point concernant la sonnerie du téléphone, même si le Minitel n'est pas concerné : Le commutateur doit envoyer une tension alternative à 50Hz d'une amplitude +/- 96 V centrée sur la tension 48 V de repos.
Une telle amplitude était nécessaire, car les anciens postes téléphoniques avec une sonnerie électromécanique demandent plus d'énergie que les postes à sonnerie électronique.

^^^ Retour Sommaire ^^^

Modulation/Démodulation logicielle

Le Minitel possède un circuit intégré spécifique pour réaliser les fonctions de modulation/démodulation des signaux présentés plus haut.
Pour le Minitel 2, il s'agit d'un TS7514

Il est aujourd'hui possible d'émuler un serveur Minitel en passant le modem sans utiliser de ligne téléphonique notamment grâce à des solutions de modulation/démodulation logicielles.
L'une d'elles est un logiciel que j'ai développé à l'origine pour convertir des pages vdt en bitmap est maintenant capable, entre autres, d'envoyer des fichiers vdt vers le Minitel en audio, et même de fonctionner comme un serveur complet, en mode émission et réception.

Le logiciel en question, VDT2BMP, est disponible sur github

vdt2bmp-minitel-server-mode-small.png

Le diagramme ci-dessus montre en partie ce qui est implémenté dans VDT2BMP. On peut y voir les étages des UARTs à droite, les étages de modulation et de démodulation FSK au centre et la partie entrée/sortie avec un filtre FIR passe-bas pour l'entrée du démodulateur pour ne garder que la bande de fréquence correspondant à celle transmise par le Minitel et éliminer les hautes fréquences.

La modulation est simple : il s'agit d'un simple oscillateur changeant d'une fréquence à l'autre selon l'état 1 ou 0 de la sortie série. À noter que lors des changements de fréquence, il ne doit pas y avoir de saut de phase pour garder une continuité sur le signal généré et ne pas générer des fréquences parasites.

Comme vous pouvez le voir, la complexité se trouve coté démodulation. Il s'agit ici d'un démodulateur "non-cohérent". "Non-cohérent", car il n'est pas sensible à la phase du signal entrant.
Pour résumer le démodulateur mesure en temps réel les niveaux d'énergie pour les fréquences correspondantes au "1" et au "0" et sélectionne l'état ayant un niveau supérieur à l'autre.

minitel-audio-serveur-sur-smartphone.jpg
Serveur Minitel Audio VDT2BMP fonctionnant sur smartphone !

Pour le branchement voici les différentes possibilités :

Branchement simple - mode unidirectionnel

Si vous avez un Minitel ne nécessitant pas de présence de tension sur la ligne téléphonique voici le branchement à faire pour avoir une communication unidirectionnelle, c'est-à-dire juste envoyer des pages vers le Minitel, le branchement est alors d'une extrême simplicité ! Il suffit alors de brancher directement une source audio directement sur la prise téléphonique du Minitel.

minitel-simple-audio-out.png

Note : La polarité du branchement coté prise téléphone du Minitel n'a aucune importance.

Vous pouvez utiliser n'importe quelle source audio avec une sortie casque : Un ordinateur, un téléphone, un lecteur MP3 et même un lecteur de cassette ;)...

^^^ Retour Sommaire ^^^

Branchement simple - mode bidirectionnel

Si vous avez un Minitel ne nécessitant pas de présence de tension sur la ligne téléphonique voici le branchement à faire pour avoir une communication bidirectionnelle :

minitel-simple-audio-out-in.png

Vous pouvez tester la compatibilité de votre Minitel simplement en jouant l'un des wav ci-dessous.
Connectez le Minitel au PC avec l'un des branchements présenté plus haut (le premier étant suffisant pour ce test), mettez en fonctionnement le Minitel, lancez la lecture de l'un des fichiers son ci-dessous et appuyez sur "Connexion/Fin".

Page de texte Minitel de test :

Télécharger minitel_txt_test_page.wav
Page videotex Minitel de test :

Télécharger minitel_graph_test_page.wav

Vous devriez alors voir apparaître ces écrans sur votre Minitel :

minitel-audio-pages.jpg

^^^ Retour Sommaire ^^^

Branchement via une alimentation de ligne téléphonique - mode bidirectionnel

Si le minitel ne se connecte pas, il est probable qu'il nécessite une tension d'alimentation sur la ligne téléphonique. Le circuit ci-dessous permet de créer une alimentation de ligne téléphonique.

alimentation-interface-telephonique.png



Ci-dessous un prototype de cette alimentation, avec un circuit élévateur générant 42 Volts à partir d'une source 12 Volts.

alimentation-interface-telephonique-prototype.jpg

Cette interface offre une compatibilité complète avec l'ensemble des Minitels. Elle peut même être utilisée avec d'autres appareils : Téléphones, Modems, etc.

^^^ Retour Sommaire ^^^

Liste des Minitels compatibles avec le modem logiciel

Le serveur "audio" VDT2BMP présenté plus haut a été testé sur différents modèles de Minitel et de terminaux. Il a également été utilisé dans le cadre de différentes expositions par l'association MO5.COM comme serveur.
Ci-dessous la liste des Minitels testés et leurs photos.

Modèle Compatibilité avec la connexion simple/directe Compatibilité avec la connexion alimentée Remarque(s)
Minitel 1 Telic Alcatel à clavier ABCD. Oui ! Oui ! -
Minitel 1 (NFZ 300 La Radiotechnique) Oui ! Oui ! -
Minitel 1 (NFZ 330 La Radiotechnique) Oui ! Oui ! -
Minitel 1 "R 722 680 C" TELIC ALCATEL Oui ! Oui ! -
Minitel 1B TELIC ALCATEL Oui ! Oui ! -
Minitel 2 TELIC ALCATEL Oui ! Oui ! -
Minitel 1 Matra Oui ! Oui ! -
Minitel Matra TEMAT Oui ! Oui ! -
Matra Télétel 3V Oui ! Oui ! -
Valise Minitel FIET Oui ! (*) Non (*) (*) En acoustique
Minitel 2 Philips Certaines unités (Voir Remarque) Oui ! Problème avec certaines révisions ? A investiguer.
Minitel 12 Telic Alcatel Non Oui ! -
Minitel 5 Matra Non Oui ! -
Alcatel Web Touch Non Oui ! -
Philips NMS 3000 a.k.a. "Telematico" Non Oui (voir Remarque) Terminal Italien Teletext Videotel ! Préfère 2 bits de stop au lieu d'un seul !
LOEWE MULTICOM E Non Oui mais voir Remarque Terminal Espagnol -> Beaucoup de garbage : Différence de standard ? A investiguer.
Minitel 10 Telic Alcatel Non testé Non testé Alimentation ligne probablement nécessaire
Minitel Magis ALCATEL Non testé Non testé -
Minitel Magis Philips Oui ! Oui ! -
Minitel Magis Club ALCATEL Oui ! Oui ! -
Sillages 1000 et 2000 ALCATEL Non Oui ! -
Sillages 1000 VR, 2000 VR et 3000 ALCATEL Non testé Non testé -
Terminal Annuaire Electronique (T.E.A) ALCATEL Non testé Non testé -
Thomson CSF Téléphone Télétel Non testé Non testé -
Minitel 1 Couleur "La Radiotechnique TRT" modèle 11 CFZ 201 Non testé Non testé -

expo-minitel-mo5-001
expo-minitel-mo5-002
Matra-Teletel-3V-001
valise-minitel-fiet
Matra-temat
minitel1-rtic
minitel1-telic
minitel1-r-telic
minitel1-telic-abcd
minitel2-rtic-nfz400
minitel-mo5-pgw2023
minitels-cluster
Alcatel-Web-Touch
Minitel-12-Telic-Alcatel
Minitel-Sillage-2000-Alcatel
minitel-philips-magis-1
minitel-magis-club-alcatel
Philips-NMS-3000-Telematico-001
Philips-NMS-3000-Telematico-002
loewe-multicom-e

^^^ Retour Sommaire ^^^


(C) HxC2001 / Jean-François DEL NERO