Gilles BLANC — [email protected]
Total Page:16
File Type:pdf, Size:1020Kb
INTERNET OF THINGS Gilles BLANC — [email protected] 1 PRÉSENTATION GÉNÉRALE 2 MAIS QU’EST-CE DONC ?? • Tout appareil contenant du logiciel embarqué et capable de communication • Un concept marketing • « Machine to Machine » aka M2M ne marchait pas très bien • ne dépassait pas le cadre des professionnels du secteur depuis 15 ans ! • n’était pas grand public (marché du « Consumer electronic » aka CE) • c’est la crise, il faut trouver de nouvelles idées (mais comme ça n’existe pas, on renomme comme pour le cloud et le big data) • Un peu moins présomptueux, la version française : « objets connectés » • objet : n’importe quoi (iot vs “internet of everything”), du bracelet à la station spatiale internationale (ou presque) en passant par le T-shirt et le soutien-gorge • tant que c’est connecté à autre chose via un protocole (radio de préférence) quelconque, plutôt en émission • périmètre assez flou (mais pas les drones, étrangement : notion de capteur pas applicable, pas assez passif ?) • Tout et (beaucoup de) n’importe quoi 3 https://www.youtube.com/watch?v=Q3ur8wzzhBU https://software.intel.com/fr-fr/iot/home 4 True Love Tester, du Japonais Ravijour, s’ouvre en cas de détection d’amour (via un iPhone) Victoria’s secret, pour sportives, $75 (retiré de la vente ?) Microsoft, détection de boulimie, autonomie de 3 à 4 heures 5 TOPOLOGIE DE L’IOT • Wearable • Home automation • habits connectés, smart watch, bracelets, lunettes... • domotique (since 1980) • instrumentation de l’individu (de préférence sportif) • instrumentation de la maison, du placard aux volets en passant par le frigo et la prise électrique • Healthcare/Quantified self • Smart cities • idem, mais plus axé santé (poids, chocs articulaires...) • instrumentation de la ville et des bâtiments • Silver economy • Énergie / SmartGrids : éclairage, effacement • instrumentation du vieux (climatisation), compteurs, optimisation des usages • problème moderne • Voiture connectée, parking • Industrie du futur • Bornes de recharge électrique • instrumenter les usines • le moins grand public en apparence • optimiser les processus de production • un marché potentiellement énorme et plus certain • Retail : achats (processus, optimisations, caisse...) que tous les autres 6 7 Recharge de voiture électrique, 1905 8 Inventor Hugo Gernsback demonstrating his television goggles, 1963 9 NOSTRADAMUSSISME *Other: clothing, apparel, etc. Source: IDATE, in Wearables and its verticals 2018, Dec 2014 « Les opérateurs télécoms affûtent leurs armes dans la bataille qui s’annonce autour des objets connectés. Selon les prévisions, on attend entre 28 et 80 milliards de ce type d’objets (du thermostat à la montre...) d’ici à 2020, avec un chiffre d’affaires estimé à plus de 7.000 milliards de dollars. » http://www.lesechos.fr/tech-medias/ hightech/021343207067-les-operateurs- face-au-defi-des-objets- connectes-1157729.php? zO3FMZI7J4kpVyTf.99 10 SMARTWATCH MARKET (?) estimated smartwatch shipments in Q2 2015 11 GRANDS ACTEURS • Smartwatch : Apple, Samsung • Sport : Fitbit, Nike • Health : Withings • Android Wear : Sony, LG, Motorola, Asus • Smart home : Bticino (Legrand), Somfi, Castorama, Ijenko, Fibaro, Bosch, MyFox, DiO, Nest • Smart cities : Alstom, Legrand, Schneider, Hager, Bouygues 12 http://www.icinsights.com/news/bulletins/Wearable-Systems-Give- Major-Boost-To-Total-IoT-Sales-In-2015/ 13 ARCHITECTURER UN PROJET IOT 14 RÉFLÉCHIR À LA PROBLÉMATIQUE • Qu’est-ce que je veux faire ? • Qu’est-ce que je veux vendre ? Quel est le business model ? (hw, service, hw + service) • Combien vais-je en vendre ? • À quel prix vais-je le vendre ? • Dans quel environnement va se trouver mon objet ? • Quelle durée de vie, quelle évolutivité ? • En déduire le matériel, le logiciel et l’architecture générale adéquats, le tout étant très intrinsèquement lié, en fonction des coûts et de ce qui est techniquement possible ! 15 CHOIX DU HARD • deux grandes familles : MCU ou CPU ? • CPU • MCU • microprocesseur (avec MMU) • microcontrôleur (sans MMU) • consommation d’énergie nécessitant une batterie rechargeable • très basse consommation d’énergie, peut tourner sur pile bouton durant des années ou energy • souvent accompagné de DSP et autres bloc IPs (cf haversting SoC) • un seul espace d’adressage = peu d’adressage • ARM Cortex A5, A7, A9 ; Intel Quark (x86, 32 bits) mémoire (quelques ko, voire 2Mo pour les systèmes graphiques), peu de processus (avec • Hybride CPU + MCU risque de plantage global du système) • meilleur des deux mondes • ARM M0, M3, M4 (gamme STM32 par exemple), Artik1 de Samsung, Microchip’s XLP 16-bit • calcul + temps-réel (PIC24F16KA102), TI MSP430, Freescale MC1322x et gamme Kinetis, Atmel SAM3X8E (M3) ou • exemple : iMx6-SoloX ATmega32u4 (AVR 8 bits)... 16 MÉMOIRE VIRTUELLE & MMU • notion de mémoire réelle et de mémoire virtuelle, à travers un composant matériel du CPU, la Memory Management Unit • un microcontrôleur (PIC, Coldfire, ARM M0...) n’a pas de MMU : • adressage direct en mémoire réelle • pas de protection (un programme peut en faire planter un autre, voire tout le système) • un CPU de type x86, ARM Cortex, etc. a une MMU : • adressage en mémoire virtuelle, chaque processus est séparé • problématique de « translation » des adresses (tables/caches matériels et logiciels) • espaces protégés : un programme qui plante n’a pas d’impact pour les autres (bac à sable) 17 0xFFFF_FFFF Schéma simplifié du noyau Linux Not used Fonctions Niveau 0x6000_0000 Réseau Stockage Mémoire Exécution Couches système SFR Area Processus : 0x4800_0000 Interfaces en Appels Système de Sockets Mémoire virtuelle exécution espace utilisateur système fichiers virtuel 0x4000_0FFF et ressources BootSRAM (4KB) et sous-systèmes 0x4000_0000 virtuels mmap Mémoire du SDRAM NFS (BANK7, nGCS7) processus 0x3800_0000 SDRAM Sous- Systèmes SKB Systèmes (BANK6, nGCS6) systèmes de fichiers des protocoles de fichiers logiques Tâches 0x3000_0000 internes proc et sysfs TCP, UDP, IP ext2, ext3 tâches SROM (BANK5, nGCS5) 0x2800_0000 Inter- Cache SROM opérabilité (BANK4, nGCS4) 0x2000_0000 SROM Modèle de Gestion de Abstraction Gestion Périphérique (BANK3, nGCS3) périphériques, la mémoire : Ordonnanceur matérielle du réseau bloc 0x1800_0000 modules kmalloc SROM (BANK2, nGCS2) Périphérique swap 0x1000_0000 bloc SROM virtuel (BANK1, nGCS1) Implémentation 0x0800_0000 Pilotes Pilotes Pilotes Accès mémoire : dépendante Interruptions de bus de réseau de disque pagination, fautes SROM du matériel (BANK0, nGCS0) 0x0000_0000 07-06.eps Contrôleurs Cartes Contrôleurs CPU, Puces de bus : réseau : de disque : MMU, RAM registres électroniques PCI, USB Ethernet IDE, SCSI M système Linux données B [boot loader, noyau] 09-03.eps R 07-07.eps OUI Access to NON Kernel space boot loader noyau système Linux OUI Access in NON 07-08.eps Kernel mode vmalloc_fault boot loader noyau système partition Noncontiguous Linux données OUI NON NON In interrupt, softing, OUI memory area critical region, or address kernel thread 07-09.eps OUI Address in a NON memory region Kernel page table entry fixup Address could OUI belong to NON good_area User Mode stack bad_area OUI NON Write access OUI Access NON in User Mode NON Page is present OUI Page is present OUI Region is NON writable no_context OUI Region is readable NON NON Address in OUI or executable a wrong system call parameter 09-01.tif EXEMPLE : PROCESSUS LINUX, do_sigbus Linux kernel map functions human layers system processing memory storage networking interface Demand Paging Kill process «Fixup code» interfaces processes memory files and sockets Hi char devices Demand Send user space core access directories access access and/or and kernel (typically send MÉMOIRECopy On Write paging SIGSEGV VIRTUELLE«Oops» SIGSEGV) interfaces Device threads virtual Virtual File protocol 09-04.eps Model memory System families virtual security Espace noyau 1GB Le code utilisateur ne peut ni lire ni écrire dans ces adresses, sous peine de déclencher une erreur de segmentation (SegFault) synchronization memory page cache networking 0xc0000000 == TASK_SIZE mapping storage bridges debugging Offset aléatoire de pile swap Pile (stack) system run Scheduler logical logical protocols lHI subsystems RLIMIT_STACK (par ex., 8Mo) memory file systems logical Offset de mapping aléatoire generic HW access interrupts core Page allocator block devices network interface abstract devices Segment de remappage mémoire and devices HID class drivers Mappings de fichiers (dont les bibliothèques dynamiques) control et mappings anonymes (par ex. /lib/libc.so) devices access CPU specific physical memory disk controllers network device HI peripherals hardware and bus drivers operations drivers drivers device drivers interfaces program break 3GB brk disk network user electronics I/O CPU memory controllers controllers peripherals Tas (Meap) start_brk 09-02.eps Offset aléatoire brk Segment BSS Variables statiques et globales non-initialisées, rempli avec des zéros (par ex. : static char *password; ) Segment data end_data Variables statiques et globales initialisées par le développeur (par ex. : static char *username = "utilisateur"; ) start_data end_code Segment Text (ELF) Contient l'image binaire du processus (par ex. : /bin/login ) 0x00040000 0 09-05.eps 18 famille STM 32 19 ARM Cortex A7 http://www.arm.com/products/processors/cortex-a/cortex-a7.php20 http://www.digikey.com/en/articles/techzone/ 2011/jun/ultra-low-power-mcus-enable-energy- harvesting-designs 21 ARTIK1 Smallest module in its class • Small size (12mm x 12mm) • Low power consumption • Built