← Tous les projets P-02

Librairie SUPL pour les données d'assistance GNSS

Une librairie client SUPL en C qui récupère les données d'assistance A-GNSS (GPS et Galileo) via le réseau cellulaire, dimensionnée pour un Cortex-M4 sous FreeRTOS.

  1. 1Appareil : la librairie client SUPL tourne sur un Cortex-M4 sous FreeRTOS, à côté du récepteur GNSS.
  2. 2Réseau NB-IoT : transporte la session SUPL entre l’appareil et le serveur.
  3. 3Serveur de localisation SUPL : fournit les données d'assistance (temps et position de référence, ionosphère, almanach, éphémérides) dans des messages RRLP.
  4. 4Satellites GNSS : grâce aux données d'assistance, le récepteur les trouve et calcule sa position beaucoup plus vite, en consommant moins.
Fig. 1Vue 3D simplifiée, non représentative dans le détail. Faites glisser pour tourner, molette pour zoomer.
Catégorie
IoT et GNSS
Structure
Ubiscale
Période
2021 – 2022
Technologies
C, Cortex-M4, FreeRTOS, SUPL 2.0 / RRLP, ASN.1 UPER (asn1c), A-GNSS (GPS, Galileo), NB-IoT

Contexte

Sans données préalables, un récepteur GNSS autonome doit décoder les données orbitales diffusées par les satellites à seulement 50 bit/s avant sa première position : une trentaine de secondes au mieux en ciel dégagé, plusieurs minutes avec un signal faible, et jusqu'à 12,5 minutes s'il lui manque l'almanach complet. Avec SUPL, l'appareil télécharge ces données (temps et position de référence, modèle ionosphérique, almanach, éphémérides) depuis un serveur de localisation via le réseau cellulaire, ici NB-IoT, et obtient sa position beaucoup plus vite en consommant moins. La librairie était destinée à être intégrée dans le logiciel d'une puce IoT avec GNSS : elle devait tourner sur un microcontrôleur à la mémoire très limitée, aux côtés d'un RTOS.

Mon rôle

Développeur principal de la librairie, dans le cadre de mon alternance : architecture logicielle, API C à base de callbacks, machine à états SUPL (SUPL START, RESPONSE, POS INIT, POS, END), encodeur et décodeur de messages s'appuyant sur le code UPER généré par asn1c, et conversion de la charge utile RRLP en données A-GNSS. Portage sous FreeRTOS et tests sur carte Cortex-M4. Rédaction du document d'architecture et du guide de référence, et support d'intégration sur site chez un client tier-1 du semi-conducteur.

© 2026 Simon Lemoigne