Hématologie MOSAR

Développé dans le cadre d’un projet interne de la société HORIBA, j’ai été chalengé en 2014 sur ce sujet afin de “reconditionner” le produit d’entré de gamme MICROS ES60.

Pourquoi MOSAR ?

Par analogie avec l’automotive et le standard AUTOSAR, j’ai voulu apporter à ce projet une notion de modularité, et surtout pouvoir utiliser les briques développées, dans d’autres projet.

Donc M.O.S.A.R pour Medical Open System ARchitecture

Les technos employées

Développement C/C++ embarqué

c++_logo

Pour ce ce projet, trois langages ont été utilisés :

  • C, pour toute la partie embarquée côté automate programmable, géré par un SOC de chez Xilink le ZYNQ série 7000. Ce SOC (System On Chip) embarque  deux coeurs ARM9, dans notre cas un coeur dédié au PLC (Programme logic controler) et un second coeur avec une distribution Linux
  • C++ pour la partie QT, tournant dans le second coeur avec une IHM sur LCD 10″ (800×600)
  • Lua (script) embarqué dans le premier coeur avec un wrapper en C pour exécuter des scripts et interagir avec les IOs.

Ci-dessus l’architecture globale du système.

Un FPGA (Field Programmable Array Logic) intégré au SOC permet de “soulager” le CPU de tâches complexes, notamment la conversion analogique numériqué cadensée à plus de 20MHz sur 8 cannaux (soit 160MHz en LVDS).

Développement C++ / QT

qt_logo

Pour ce projet une distribution spécialement conçue pour le ZYNQ a été utilisée. PETALINUX (sans X11), issue de YOCTO a été intégrée dans le second coeur.

L’applicatif tourne avec QT 4.8, c’est une sorte de QT light spécialement concu pour le système embarqué. Le ZYNQ ne possédant pas de GPU, celle-ci a été implémentée dans le FPGA.

La machine dispose d’un écran tactile (résistif), tous les évènements sont vu comme des évènements clavier. Le dialogue entre les deux coeurs est géré par le FPGA avec une interface Interconnect spécialement développée pour ce projet. Les données de configuration et les scripts Lua transitent via ce canal.

 

Electronique

altium_logo

La carte que j’a été emmené à développer comportait :

  • un SOM avec un ZYNQ7010 (RAM DDR4)
  • un convertisseur AN, 8 cannaux 20MHz par canal
  • drivers de moteur pas à pas 
  • driver de relais
  • capteur de pression
  • capteur de température
  • fourche optiques
  • port série
  • port USB
  • port ethernet

Coté SOM, nous sommes passé à un PCB à 16 couches afin de pouvoir faire passer toutes les pistes entre le ZYNQ et la DDR4. La carte mère quant à elle ne comporte que 6 couches.

L’ADC à 20MHz nous a permis de faire un traitement sur la correction de la ligne de base, ainsi de de filtrer le bruit dans le but de faire apparaître les plaquettes. L’algorithme de comptage a été implémenté dans le FPGA (déphasage du signal, ajout d’offset et détection des intersections).

Intéressé par ce projet ?
Contactez moi

contact@technosar.com