Ingénieur systèmes embarqués senior – Radio numérique et développement bas niveau

Il y a 3 jours

Créteil, Île-de-France FR43 Valeo Comfort and Driving Assistance Temps plein 70 000 € - 100 000 € Contrat

Valeo is a tech global company, designing breakthrough solutions to reinvent the mobility. We are an automotive supplier partner to automakers and new mobility actors worldwide. Our vision? Invent a greener and more secured mobility, thanks to solutions focusing on intuitive driving and reducing CO2 emissions. We are leader on our businesses, and recognized as one of the largest global innovative companies.

Au sein de l'équipe R&D "Audio / Radio", vous êtes responsable de la conception, du développement et de l'intégration de systèmes embarqués dédiés à des applications de radio numérique et de traitement de données à haut débit. Votre rôle se situe à l'interface entre le logiciel bas niveau et le matériel. Vous intervenez depuis la compréhension de l'architecture électronique jusqu'à la mise au point du code exécuté sur microprocesseur, DSP, FPGA ou SoC. Vous analysez les problèmes à l'échelle de la chaîne complète : acquisition des signaux, conversion numérique, transferts mémoire, traitement temps réel, synchronisation, communication avec l'hôte et validation sur matériel réel.

Vos Missions principales

Architecture et conception

  • Participer à la définition des architectures de systèmes embarqués de radio numérique.
  • Traduire les besoins fonctionnels en architectures matérielles et logicielles réalisables.
  • Analyser les contraintes de débit, latence, mémoire, consommation, synchronisation, et temps réel.
  • Définir les interfaces entre processeur, FPGA, DSP, mémoires, convertisseurs et périphériques radio.
  • Contribuer aux choix des composants, interfaces et technologies de communication.
  • Identifier les risques techniques et proposer des solutions d’architecture.

Développement bas niveau

  • Développer du code embarqué principalement en C et C++, avec une maîtrise fine des ressources matérielles.
  • Développer ou adapter des pilotes bas niveau et des couches d’abstraction matérielle.
  • Programmer les interfaces SPI, I2C, UART, GPIO, Ethernet, USB, PCIe ou équivalentes.
  • Piloter des convertisseurs ADC/DAC, synthétiseurs, transceivers RF et circuits spécialisés.
  • Développer les mécanismes DMA, buffers circulaires, files FIFO et transferts à haut débit.
  • Optimiser les chemins critiques en latence, débit, consommation mémoire et charge processeur.
  • Intervenir sur les bootloaders, BSP, RTOS ou environnements Linux embarqués.

Radio numérique et traitement du signal

  • Concevoir, intégrer et valider des chaînes de réception et d’émission radio numérique.
  • Mettre en œuvre des traitements numériques sur données I/Q.
  • Travailler sur le filtrage, la décimation, l’interpolation, le changement de fréquence numérique et la synchronisation.
  • Participer au développement de modulateurs, démodulateurs, synchroniseurs et estimateurs.
  • Analyser l’échantillonage, l’aliasing, la dynamique, le bruit et le rapport signal-sur-bruit.
  • Valider les performances sur signaux simulés, enregistrés et issus du matériel réel.

Interaction hardware et FPGA

  • Lire et exploiter schémas électroniques, documents d’architecture et descriptions de registres.
  • Travailler directement avec les concepteurs électroniques et FPGA.
  • Définir et vérifier les registres de contrôle et les interfaces de données.
  • Analyser les domaines d’horloge, la métastabilité, la largeur de bus et les contraintes de débit.
  • Vérifier les signaux et interfaces à l’aide d’un oscilloscope, d’un analyseur logique ou d’instruments RF.
  • Participer aux revues de conception hardware/software.

Validation et mise au point

  • Définir les stratégies de test au niveau composant, carte, sous-système et système.
  • Développer des outils de test en Python, C/C++ ou scripts Linux.
  • Mesurer les débits, latences, pertes d’échantillons, gigue, charge CPU et occupation mémoire.
  • Diagnostiquer les problèmes à partir de traces, captures, dumps mémoire et mesures physiques.
  • Documenter les anomalies, leurs causes racines et les corrections apportées.

Compétences techniques indispensables

Développement logiciel

  • Très bonne maîtrise du C embarqué et bonne maîtrise du C++ lorsque nécessaire.
  • Maîtrise des pointeurs, interruptions, accès mémoire, registres matériels et contraintes de compilation.
  • Maîtrise de GDB, JTAG, SWD ou outils équivalents.
  • Expérience de la programmation concurrente, des interruptions et des systèmes temps réel.
  • Maîtrise de Git, des chaînes de compilation croisées et des environnements Linux.

Radio numérique

  • Très bonnes connaissances en traitement numérique du signal.
  • Maîtrise des représentations I/Q et des chaînes de traitement numériques.
  • Connaissance des modulations numériques et de