Peripheral — quest-ce que cest, rôle dans BLE et comment il annonce les services

Auteur : IT Sectr Publié le : 2026-07-15 Temps de lecture : 9 min

Peripheral est un périphérique dans l’architecture Bluetooth Low Energy qui fait la publicité de ses services via des paquets advertising et attend une connexion d’un Central. Dans l’écosystème IoT, un Peripheral est généralement un appareil à faible consommation : un capteur de température, une lampe intelligente, un bracelet de fitness, une balise (Beacon). Bluetooth Core Specification 5.4 (2023) définit le protocole de publicité : le Peripheral envoie périodiquement des paquets advertising contenant le nom du périphérique, la liste des services et des données personnalisées, tandis que le Central scanne ces paquets et décide de se connecter ou non. Après l’établissement de la connexion, le Peripheral agit comme un serveur GATT, fournissant des services et des caractéristiques pour la lecture et l’écriture.

Points clés

  • Peripheral est un périphérique BLE passif qui annonce des services et attend une connexion d’un Central.
  • Les paquets advertising contiennent le nom du périphérique, les UUID de services, les données fabricant et le RSSI pour l’estimation de distance.
  • Peripheral agit comme un serveur GATT qui stocke les services et caractéristiques pour l’accès du Central.
  • La consommation énergétique de Peripheral peut varier de 5 µA en mode veille à 15 mA lors de la transmission active de données.
  • Après la connexion, le Peripheral peut désactiver la publicité pour économiser de l’énergie et la réactiver si nécessaire.

Quest-ce qu’un Peripheral en BLE ?

Peripheral est un périphérique BLE qui implémente un serveur GATT et annonce ses capacités via des canaux advertising. Contrairement à un Central, qui recherche activement des périphériques, un Peripheral attend passivement les connexions. Il s’agit d’un modèle asymétrique optimisé pour l’efficacité énergétique des appareils alimentés par batterie.

Peripheral peut être dans plusieurs modes : advertising (publicité), connected (connecté à un Central), sleeping (veille avec publicité désactivée). En mode advertising, le Peripheral envoie périodiquement de courts paquets de données avec une consommation d’énergie minimale. Après la connexion, le Peripheral passe en mode connected, où il échange des données avec le Central selon l’intervalle de connexion convenu.

Selon Bluetooth Core Specification 5.4 (2023), un périphérique peut basculer dynamiquement entre les rôles Peripheral et Central, mais à tout moment, le rôle est fixe pour une seule connexion. Un scénario typique : un capteur IoT fonctionne constamment en tant que Peripheral, tandis qu’un smartphone gère la connexion en tant que Central.

Il est important que les développeurs comprennent : le Peripheral détermine quels services et caractéristiques sont disponibles et gère leur accès. La structure du serveur GATT sur le Peripheral détermine les données que le Central peut lire et les commandes qu’il peut écrire.

Processus de publicité (Advertising)

Advertising est le mécanisme par lequel un Peripheral annonce sa présence. Le Peripheral envoie des paquets advertising sur trois canaux dédiés (37, 38, 39) avec un intervalle de 20 ms à 10,24 secondes. Chaque paquet advertising contient des informations fixes et peut inclure des données optionnelles.

Il existe deux types de paquets advertising : advertising PDU (paquet principal) et scan response PDU (réponse à une demande du Central). Le paquet principal contient des champs obligatoires : type de paquet, adresse de l’expéditeur, données. Si un Central envoie une demande de scan, le Peripheral répond avec un paquet supplémentaire contenant des informations plus complètes — par exemple, le nom complet du périphérique.

Les paramètres advertising affectent la vitesse de découverte et la consommation d’énergie. Advertising interval est le temps entre les transmissions de paquets. Plus l’intervalle est court, plus le Central découvre rapidement le périphérique, mais plus le Peripheral consomme d’énergie. Intervalle recommandé : 100–1000 ms pour la plupart des appareils.

ParamètrePlageImpactRecommandation
Advertising Interval20 ms – 10,24 sVitesse de découverte, énergie100–1000 ms pour équilibre
Advertising Channels37, 38, 39Fiabilité de découverteLes 3 canaux obligatoires
Puissance Tx-20 – +10 dBmPortée, interférences0 dBm intérieur, +4 dBm extérieur
Advertising Timeout0 – 180 secondesDurée de publicité0 (infini) pour balises

Structure du paquet advertising

Le paquet advertising BLE a une limite de 31 octets pour l’advertising PDU et 31 octets supplémentaires pour le scan response. À l’intérieur du paquet, les données sont organisées au format AD Structure (Advertising Data Structure) : chaque champ a un type (1 octet), une longueur (1 octet) et une valeur.

Les types AD les plus courants : Flags (0x01) — modes de connexion et de découverte, Local Name (0x08 ou 0x09) — nom du périphérique, Service UUID List (0x02–0x07) — liste des UUID de services, Manufacturer Specific Data (0xFF) — données fabricant. Empaqueter correctement les données dans un paquet de 31 octets est une tâche importante pour les développeurs de périphériques embarqués.

Pour les périphériques qui doivent transmettre plus de données, extended advertising (BLE 5.0+) augmente la taille du paquet advertising à 251 octets et ajoute de nouveaux types de paquets. Extended advertising prend également en charge les canaux PHY codés pour une portée accrue jusqu’à 1 km en extérieur.

Lors de la conception d’un paquet advertising, gardez à l’esprit : plus il y a de données dans le paquet advertising, plus la probabilité de collision avec d’autres périphériques est élevée. Pour une découverte rapide, il est recommandé de placer uniquement les données critiques (Service UUID) dans l’advertising PDU et les données supplémentaires dans le scan response.

Peripheral en tant que serveur GATT

Serveur GATT sur le Peripheral contient tous les services et caractéristiques qu’un Central peut découvrir et avec lesquels il peut interagir. Après la connexion, le Central découvre les services, puis les caractéristiques, et interagit avec eux via le protocole GATT.

Peripheral en tant que serveur GATT doit traiter correctement les demandes du Central : demandes de lecture, demandes d’écriture, notifications et indications. Chaque demande traverse la table GATT, où chaque attribut (service, caractéristique, descripteur) correspond à un Handle — une adresse 16 bits.

Le développeur de Peripheral définit les droits d’accès pour chaque attribut : lecture seule, écriture seule, lecture et écriture, avec ou sans cryptage. Pour les données sensibles (informations personnelles, indicateurs médicaux), il est recommandé d’activer le cryptage via MITM Protection.

Peripheral sous iOS : CBPeripheralManager

CBPeripheralManager est une classe Core Bluetooth pour implémenter le rôle Peripheral sous iOS. Il gère le serveur GATT, publie les services et caractéristiques, et traite les demandes des Centrals. Contrairement à CBCentralManager, CBPeripheralManager ne scanne pas — il se contente de faire de la publicité et de gérer les connexions.

Les principales étapes pour implémenter un Peripheral sous iOS : initialiser CBPeripheralManager, ajouter des services via add, démarrer la publicité via startAdvertising, traiter les demandes des Centrals via le délégué CBPeripheralManagerDelegate.

swift
import CoreBluetooth

class BLEPeripheralManager: NSObject, CBPeripheralManagerDelegate {

    private var peripheralManager: CBPeripheralManager!

    func startAdvertising() {
        let advertisementData: [String: Any] = [
            CBAdvertisementDataLocalNameKey: "BLE Sensor",
            CBAdvertisementDataServiceUUIDsKey: [
                CBUUID("180F")
            ]
        ]
        peripheralManager.startAdvertising(advertisementData)
    }

    func peripheralManagerDidUpdateState(
        _ peripheral: CBPeripheralManager
    ) {
        if peripheral.state == .poweredOn {
            startAdvertising()
        }
    }
}

iOS permet au Peripheral de fonctionner en arrière-plan avec la clé bluetooth-peripheral dans Background Modes. En arrière-plan, iOS peut faire de la publicité avec un ensemble limité de données et gérer les connexions. Pour une publicité prolongée (plus de 180 secondes), utilisez l’option CBAdvertisementDataWaitForResponseFromCentral pour économiser de l’énergie.

Peripheral sous Android : BluetoothLeAdvertiser

Android fournit BluetoothLeAdvertiser pour travailler dans le rôle Peripheral (à partir de l’API 21). L’API permet de démarrer la publicité avec des paramètres configurables : puissance de l’émetteur, intervalle de publicité, données du paquet. Android prend également en charge extended advertising (BLE 5.0) sur les périphériques compatibles.

java
import android.bluetooth.le.*;

private BluetoothLeAdvertiser advertiser;

public void startPeripheral() {
    BluetoothAdapter adapter =
        BluetoothAdapter.getDefaultAdapter();
    advertiser = adapter.getBluetoothLeAdvertiser();

    AdvertiseData data = new AdvertiseData.Builder()
        .setIncludeDeviceName(true)
        .addServiceUuid(
            new ParcelUuid(
                UUID.fromString("0000180F-0000-1000-8000-00805F9B34FB")
            )
        )
        .build();

    AdvertiseSettings settings = new AdvertiseSettings.Builder()
        .setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_POWER)
        .setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM)
        .build();

    advertiser.startAdvertising(
        settings, data, advertiseCallback
    );
}

Sous Android, la prise en charge de Peripheral dépend du fabricant et de la version de l’OS. Tous les périphériques ne prennent pas en charge BluetoothLeAdvertiser — vérifiez via adapter.isMultipleAdvertisementSupported(). À partir d’Android 10, l’autorisation BLUETOOTH_ADVERTISE est requise pour le rôle Peripheral, ainsi qu’une demande d’exécution pour les applications avec target SDK 31+.

Efficacité énergétique de Peripheral

L’efficacité énergétique est un avantage clé du BLE, et le Peripheral joue un rôle majeur à cet égard. Un périphérique peut fonctionner sur une pile CR2032 (220 mAh) pendant plus d’un an grâce à une consommation d’énergie optimisée. La plupart du temps, le Peripheral reste en mode veille avec la publicité désactivée, se réveillant uniquement pour envoyer un paquet advertising ou traiter une demande d’un Central.

Consommation énergétique de Peripheral dans différents modes : mode veille (sommeil profond) — 1–5 µA, inactif avec minuterie activée — 10–50 µA, advertising — 5–15 mA (pendant la transmission du paquet), connected — 5–10 mA (pendant l’événement de connexion). Avec un intervalle advertising de 1000 ms et une durée de paquet de 4 ms, le courant moyen est d’environ 50–100 µA.

Selon Texas Instruments Application Report (SWRA478, 2024), l’optimisation de l’intervalle advertising de 100 ms à 1000 ms réduit la consommation moyenne d’énergie de 90 %. Des économies supplémentaires sont réalisées grâce à la latence esclave (saut d’événements de connexion), à la réduction de la puissance Tx sur de courtes distances et à la désactivation de la publicité après la connexion (connectable advertising).

Foire aux questions

Un Peripheral peut-il initier l’envoi de données ?

Oui, via le mécanisme de notifications/indications. Bien que le Central soit toujours l’initiateur de la connexion, après la connexion, le Peripheral peut envoyer des données via des notifications GATT sans demande explicite du Central. Pour cela, le Central doit d’abord s’abonner via CCCD.

Combien de temps un Peripheral peut-il faire de la publicité ?

La durée de publicité n’est pas limitée par la spécification, mais en pratique elle est limitée par l’énergie de la batterie. Sous iOS, un Peripheral peut faire de la publicité en arrière-plan pendant 180 secondes maximum par session sans configuration supplémentaire. Sous Android, la publicité peut fonctionner indéfiniment, mais réduit considérablement l’autonomie de la batterie.

Comment réduire la consommation énergétique de Peripheral sans perte de fonctionnalité ?

Augmentez l’intervalle advertising (recommandé 500–1000 ms), utilisez la latence esclave pour sauter des événements de connexion, désactivez la publicité après la connexion et sélectionnez la puissance Tx minimale suffisante pour une communication stable à la distance requise.

Quest-ce que le non-connectable advertising et à quoi sert-il ?

Non-connectable advertising est un mode où le Peripheral fait de la publicité mais n’accepte pas les demandes de connexion. Il est utilisé pour les balises qui transmettent uniquement des données (par exemple, un identifiant de magasin) sans établir de connexion bidirectionnelle. Il économise de l’énergie par rapport au connectable advertising.

Quelles données peuvent être transmises dans un paquet advertising (31 octets) ?

Dans 31 octets, vous pouvez inclure : flags (3 octets), nom du périphérique (jusqu’à 28 octets sous forme abrégée), une liste d’UUID de services (2–16 octets par UUID), des données fabricant (jusqu’à 26 octets). La stratégie optimale consiste à placer les UUID de services dans l’advertising PDU pour le filtrage et le nom complet dans le scan response.

Résumé

  • Peripheral est un serveur GATT BLE qui annonce ses services et attend une connexion d’un Central pour l’échange de données.
  • Les paquets advertising sont transmis sur les canaux 37, 38, 39 avec un intervalle de 20 ms à 10,24 s et sont limités à 31 octets de données.
  • Peripheral stocke les services et caractéristiques dans une table GATT, fournissant au Central un accès aux données par lecture, écriture et notifications.
  • Sous iOS, Peripheral est implémenté via CBPeripheralManager, sous Android via BluetoothLeAdvertiser avec serveur GATT.
  • La consommation énergétique de Peripheral en mode veille est de 1–5 µA, ce qui permet de fonctionner jusqu’à un an avec une pile CR2032.
  • L’optimisation de l’intervalle advertising et de la latence esclave peut réduire la consommation d’énergie jusqu’à 90 % sans perte de fonctionnalité.
  • Une structure de paquet advertising et une conception de serveur GATT appropriées déterminent la compatibilité, la vitesse de découverte et l’efficacité du périphérique BLE.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi