Avril 2000 - Octobre 2000 : Oberthur Card System (Caen)
Poste d'ingénieur développement chez Oberthur Card System - CAEN - 6 mois
Présentation

Oberthur Card System est l'un des trois leader mondiale sur le marché de la carte à puce : carte téléphonique, carte bancaire, carte à puce pour portable. Dans le domaine des carte à puce on peut distinguer deux grands types de production : les cartes à puces génériques (carte téléphonique) , et les cartes à puces individuelle ou personnalisées (type carte bancaire, carte SIM pour portable) qui contiennent des données spécifiques à un et un seul client final. Ce type de production est couplée à une base de donnée des paramétres de personnalisation de chaque carte à puce à produire (en générale on produit des lots de 30000 ou 50000 ou plus de cartes personnalisées).

J'étais en poste au sein du département "personnalisation des cartes à puces" avec pour tâches de :

  1. participer à l'étude, la spécification et la réalisation d'applications industrielles pour les machines de personnalisation éléctrique (cad carte à puce 16 ou 32Ko) et graphique (laser, imprimante) de cartes à puces GSM.
  2. prêter l'assistance technique logiciel et materiel sur les machines de productions.
Mission au sein d'Oberthur Card System
Développement d'un driver d'imprimante industrielle reliée à une machine de production - CAEN

Au bout de 2 mois dans le service (4 personnes) à me familiariser avec l'environnement et le systéme de production, une mission me fût confiée : Etudier l'utilisabilité d'une imprimante jet d'encre industrielle sur une toute nouvelle machine de production 5 fois plus rapide que les machines qui étaient alors utilisées avec la contrainte majeure suivante : il n'y a strictement aucun document ou information sur l'imprimante. Cette mission fut mené à bien en plusieurs étapes :

1 Receuillir des informations sur l'imprimante A200 en prenant contact avec les fournisseurs et producteurs de l'imprimante :

  1. protocole de communication
  2. langage assembleur de commande de l'imprimante
  3. comportements et contraintes mécaniques de l'imprimante

2 Rediger une documentation interne expliquant le protocole et le langage de commande de l'imprimante

3 Développer un driver selon les contraintes internes (cf plus loin)
-> un document officiel de spécifications des régles d'écritures C,C++ fut produit afin d'harmoniser le codage des applicatifs liés au projet et mis en application dans l'écriture du du driver.

4 Intégrer le driver au sein du systéme prologicielle de production de carte à puce.
-> modélisation UML du driver au sein du modéle UML du systéme de développement.

5 Tester et valider le driver et l'imprimante dans le systéme de production de carte à puce
-> utilisation de lot de 10,100,1000 et 5000 cartes tests pour valider l'aspect graphique de la personnalisation de carte via l'imprimante A200.

6 Rediger une documentation technique compléte spécifiant le module jet d'encre sur machine mpr3000

Spécification fonctionnelle du driver
  • la DLL du module jet d’encre s’obtient :
    • en définissant les commandes et actions spécifiques au module jet d’encre
    • en plaçant ces commandes et actions aux endroits adéquates à l’intérieur du code de la DLL générique.
  • Lors d’un cycle de personnalisation de carte, l’interface du module jet d’encre, est sollicitée lors des trois phases suivantes :
    • Démarrage de la production d’un lot par SPMWIN : l’Interface du module de la station est appelée pour l’initialisation de la station jet d’encre.
    • Traitement d’une carte au cours de la production : Pour chaque carte passant devant la station, un traitement doit être effectué. S’agissant du module jet d’encre, le traitement requis est l’impression de donnée de personnalisation. Ces données ont été préalablement récupérées (phase 8), et doivent être traitées pour que la station d’impression puisse convenablement imprimer ces données dans le format souhaité (Codenet) aux coordonnées demandées.
    • Arrêt de la production d’un lot par SPMWIN : l’interface du module jet d’encre est appelée pour détruire et libérer les ressources mises en place précédemment.

    Les fonctionnalités à développer spécifiquement pour le module jet d’encre ont été :
  • Initialiser le dialogue entre la DLL et l’imprimante
  • Configurer le dialogue entre la DLL et l’imprimante.
  • Traduire les données de personnalisation du format de la BDD au format CODENET; le format d’image de marquage fournit par la BDD est l’UltraGrafix.
  • Emmetre la ligne de commandes d’impression respectant le protocole CODENET
  • Gérer les erreurs en retour (en interne pour cette première version)
  • Libérer les ressources utilisées par le module (mémoire allouée)
Spécification du module jet d’encre « Domino A200 » sur machine gilles leroux mpr3000
Etudes et développement d'un driver pour l'imprimante Domio A200

Domaine d’application
Le module jet d’encre doit permettre la personnalisation graphique par marquage jet d’encre de cartes à puce sur machine GL MPR3000, c’est à dire qu’il permet d’imprimer sur chaque carte produite, les données de personnalisation qui y sont liées, que ce soit du texte ou du code barre.

Documents de Références
- ‘Méthodologie de développement logiciel à Oberthur Cartes et Systèmes’
- ‘SPMWIN Applications Programmer Manual’ de KINGSOFT
- ‘A-SERIES CODENET COMMUNICATIONS PROTOCOL’

Documents Applicables
- Spécifications V2.0 ‘projet de personnalisation des cartes GSM sur machine Gilles Leroux MPR3000’.

Environnement logiciel
- L’A200 est la station de marquage jet d’encre de la machine de production GL MPR3000. D’autres stations existent : marquage laser, marquage jet d'encre, retourneur, dépileur, empileur, etc …
L’ensemble de ces stations agissent de concert sur la MPR3000 pour la production de série de cartes, et sont pilotées par le Logiciel SPMWIN qui gère la production et la synchronisation de toutes ces stations avec la MPR3000.
A chaque station est associée un module (implémenté sous forme de DLL) définissant, programmant le comportement de la station.

OCS machine de production MPR3000

Environnement Matériel.
L’équipement de marquage jet d’encre se compose :

  1. d’une tête d’impression dans laquelle un jet d’encre haute pression est produit et projeter sur la surface à imprimer.
  2. d’une unité de contrôle (console A200) qui commande tous les éléments nécessaires à l’alimentation en encre de la tête d’impression et au contrôle des données imprimer (format texte, code barres, inversé, multiligne, positionnement et déplacement de la tête d’impression).
  3. de consommables encre : utilisée pour l’impression et make-up : utilisée pour néttoyer, fluidifié l’encre dans les conduits, et fixer l’encre sur le support marqué.

Fonctionnalités du produit
- Le module jet d’encre doit gérer le marquage d’une carte d’un coté comme de l’autre.
- Le marquage doit se faire n’importe où sur la carte, mais toujours horizontalement et de gauche à droite.
- Le marquage doit supporter :
- - un et un seul code barre, respectant les différentes normes de codes à barres : 2/5 (Haute densité ou moyenne densité), normes C39 ,C128, EAN 8, EAN 13
- - une ou plusieurs lignes de texte : 2 polices possibles (helvetica et arial), taille ajustable : 4, 6, 8, 10 (points)

Caractéristiques des utilisateurs
Les utilisateurs ayant accès à l’imprimante A200 sont :
- Les développeurs du département personnalisation d’OCS travaillant sur la machine MPR3000 et les modules DLL associés.
- Les configurateurs de la machine MPR3000.
- Les opérateurs de la machine MPR3000.

Contraintes Développement Logiciel
- Compilateur imposé : Microsoft Visual C++ 6.0.
- Editeur : Microsoft Developper Studio 98.
- Système : Microsoft ® Windows NT ™ Workstation version 4.0
- Développement orienté objet : la structure de programme « DLL générique » est basée sur une architecture et une programmation objet. Le code du module jet d’encre sera donc développé dans le respect de l’environnement de développement Visual C++.
- Utilisation du protocole de communication Codenet pour communiquer avec l’imprimante.
- Utilisation du protocole Ultragrafix pour la récupération des images à marquer.

Exemple graphique réelle de l'utilisation de l'A200
Voici quelques exemples d'impression réaliser par l'imprimante A200

Single Line, 40 Micron Nozzle, Printing up to 2370 Characters per Second

 

Print Height: Min 1.0mm (0.039') Max 2.3mm (0.90')

Twin Line, 40 Micron Nozzle, Printing up to 970 Characters per Second

Print Height: Min 1.9mm (0.075') Max 2.9mm (0.114')

Twin Line Mixed Raster, 40 Micron Nozzle, Printing up to 627 Characters per Second

Print Height: Min 2.0mm (0.078') Max 4.8mm (0.188')

Three Line Mixed Raster, 40 Micron Nozzle, Printing up to 355 Characters per Second

Print Height: Min 2.0mm (0.078') Max 4.8mm (0.188')

Single Line, 75 Micron Nozzle, Printing up to 1333 Characters per Second.

Print Height: Min 2.5mm (0.098') Max 8.0mm (0.314')

Twin Line, 75 Micron Nozzle, Printing up to 593 Characters per Second

Print Height: Min 4.2mm (0.165') Max 12.0mm (0.472')

Twin Line Mixed Raster, 75 Micron Nozzle, Printing up to 444 Characters per Second

Print Height: Min 4.5mm (0.177') Max 13.0mm (0.511')

Three Line, 75 Micron Nozzle, Printing up to 254 Characters per Second

Print Height: Min 5mm (0.196') Max 13.0mm (0.511')

Three Line Mixed Raster, 75 Micron Nozzle, Printing up to 187 Characters per Second

 

Print Height: Min 5mm (0.196') Max 13.0mm (0.511')

Four Line, 75 Micron Nozzle, Printing up to 84 Characters per Second

Print Height: Min 5.5mm (0.216') Max 13.0mm (0.511')

Four Line Mixed Raster, 75 Micron Nozzle, Printing up to 84 Characters per Second

Print Height: Min 6.0mm (0.236') Max 13.5mm (0.531')