Android comme périphérique annexe. Jérémy Rosen (jeremy.rosen@openwide.fr) Octobre 2013 1
Les annexes des systèmes embarqués Types d'annexes Serveur de données. Postes de diagnostique/réparation. Postes de maintenance mobile. Postes grand publique. Périphériques de saisie dédiés à la maintenance. Problématiques Coût de développement non-négligeable. Problème d'obsolescence. Gestion de flotte. 2
Pourquoi utiliser un périphérique Android Large gamme de terminaux disponibles ( tablettes à moins de 100 ) Les tablettes 7 pouces tiennent dans une poche. Le développement système est déjà fait La plupart des méthodes de communication sont disponibles depuis plusieurs années. Développement d'applications aisée. Tout ce que peut faire une application, vous pouvez le faire. Compatibilité avec le hardware de l'utilisateur. 3
Pourquoi utiliser un périphérique Android Toutes les applications du play-store Localisation/verrouillage/effacement à distance. Mise à jour d'application à distance. Possibilité d'envoyer des messages directement depuis/vers les terminaux. Application côté système embarqué par simple serveur web et «WebView». Applications dédiées sur le play-store avec suggestion d'installation par le client. Android a un très bon historique de compatibilité de version. Possibilité d'écrire une application «normale» utilisée sur un Android «quelconque» 4
Near Field Communication 5
NFC : Introduction (1/2) Une technologie très courte portée (20cm théorique, 4cm en pratique) ce qui minimise le besoin d'identification. Sécurité par proximité. Intersection avec les RFID utilisés par les passports etc... Étiquettes disponibles sur ebay (contient jusqu'à 1k de données R/W, 13 les 20) Communication point à point Communication à 13Mhz Débit de 100 à 400 kbits 6
Contraintes NFC : Introduction (2/2) Le lien est fragile (les manipulations de l'utilisateur peuvent couper le lien) Le débit est faible. Les communications doivent donc être brèves. Utilisations types : Étiquettes domotique/localisation/publicité Remplacement des QR code/rfid/code barre Saisie automatique de formulaires Identification Appairage WIFI/bluetooth (dans le protocole) Cartes de visite Envoi de petits volumes d'information. 7
NFC et Android Le NFC n'est actif que lorsque le téléphone est déverrouillé Sur détection d'un tag : activation de la réception Pas de connexion entre les téléphones : envoie d'un unique message dans un sens ou dans l'autre. UI «touch to beam» difficilement modifiable. API simplifiée pour l'envoie de gros fichiers (rebond automatique vers le bluetooth) Support de l'appairage OOB pour le bluetooth 8
Avantages Faible coût. Rétrofit possible par étiquettes. Pas d'intégration matériel pour les étiquettes. Développements Android très simple. Possibilité de rediriger vers le play-store. Complémente les autres méthodes. Permet de charger les téléphones. NFC : Avantages et inconvénients Inconvénients Accès physique à la machine. Simple envoie de message, pas de dialogue. Support du Mifare limité. Pas d'authentification intégré. Uniquement sur les dernières versions d'android. 9
La connexion par USB 10
L'USB : Introduction Protocole orienté périphérique (maître/esclave). Filaire. Orienté paquet mais souvent masqué en stream. Débit : 480 Mb/s (USB 2.0). Norme On-The-Go sur les Android récents. L'hôte fournit la puissance. 11
L'USB et Android Hôte/OTG : Possibilité d'écrire des applications pour gérer un périphérique particulier. Hôte/OTG : gère en natif un certain nombre de périphériques standards (mass-storage, ethernet, HID) Esclave : possibilité d'envoyer l'audio vers l'hôte Esclave : Possibilité d'envoyer des commandes HID depuis l'hôte. Esclave : Protocole Android Open Accessory pour identifier l'hôte et communiquer avec lui. (l'hôte se comporte comme un esclave) 12
USB : Avantages et inconvénients Avantages Hardware et protocole standard. Implémentation pour Arduino. Implémentation simple avec libusb. (windows et linux) Charge du mobile. Possibilité de rediriger vers le play-store. Inconvénients Filaire/Accès physique. Mise en œuvre complexe côté application Android. Seul les terminaux récents supportent l'usb OTG. 13
Bluetooth 14
Bluetooth : Introduction Protocole orienté périphériques (PAN) Liaison multi-point (7 esclaves actif) Notion de Profiles (Headset, A2DP, HMD) Portée : 10m, débit max : 24Mbits/s Notion d'appairage (identification/échange de clés fait par l'utilisateur) Protocole connecté Communications systématiquement cryptées à partir de bluetooth 2.1 La nouvelle norme LowEnergy est basé sur des concepts attibuts/valeur et non pas sur le concept de connexion. 15
Bluetooth et Android Utilisation très similaire à TCP/IP avec une seul machine distante Protocole orienté flux. UUID publiques similaires aux ports (avec découverte similaire à DNS-SD) Profiles équivalents aux protocoles connus en TCP/IP. Toute la problématique de détection et d'appairage peut être gérée par l'application... sauf la confirmation finale qui doit venir de l'utilisateur. 16
Avantages Bluetooth : Avantages et inconvénients Véritable protocole connecté. Débit correct. Portée correct. Bon support sur les autres OS. Programmation similaire à TCP/IP, concepts connus. Appairage possible par NFC. Inconvénients Consommation (always on). Appairage délicat. Détection extérieur. Nécessite d'être à proximité. 17
WiFi et WiFi direct 18
Wifi WiFi et WiFi-Direct : Introduction Orienté réseau local avec point d'accès. Utilise IP comme protocole de niveau supérieur. Portée : 100m, Débit : 54Mb/s. Cryptage de données. WiFi Direct Négociation du point d'accès entre pairs (Soft-AP). Connexions multiples simultanées. Notion de groupes persistants et auto-connexion. Découverte (DNS-SD, UPnP) sans connexion préalable. Compatible avec des périphériques non WiFi-Direct 19
WiFi et Android Android supporte le protocole DNS-SD (bonjour) Support du WiFi Direct : très récent. Android supporte la découverte DNS-SD et UPnP sur WiFi-Direct. Possibilité de manipuler les paramètres WiFi depuis une application Android. Automatisation de l'appairage possible. 20
WiFi : Avantages et Inconvénients Avantages Protocole connu. Développement TCP/IP. Hardware standard. Grande portée. Protection intégré au protocole. Inconvénients Consommation (Always On). Grande Portée. Visible publiquement (mais crypté). Le WiFi-Direct n'a que peu d intérêt pour notre use-case. 21
Questions 22