rapport pdf

This commit is contained in:
TIBERGHIEN corentin
2026-02-24 14:23:20 +01:00
parent acc94b109e
commit 6ad8705650
2 changed files with 6 additions and 0 deletions

View File

@@ -3,6 +3,7 @@
Un driver (pilote) est un composant logiciel qui fait linterface entre le noyau du système dexploitation et un périphérique matériel ou une couche dabstraction. Il traduit les demandes génériques du système (lire/écrire, configurer, envoyer/recevoir paquets, etc.) en opérations spécifiques au matériel, et inversement expose létat et les événements matériels au système. Un driver (pilote) est un composant logiciel qui fait linterface entre le noyau du système dexploitation et un périphérique matériel ou une couche dabstraction. Il traduit les demandes génériques du système (lire/écrire, configurer, envoyer/recevoir paquets, etc.) en opérations spécifiques au matériel, et inversement expose létat et les événements matériels au système.
Principales responsabilités Principales responsabilités
- Initialisation et énumération : détecter le matériel, allouer ressources et configurer le périphérique. - Initialisation et énumération : détecter le matériel, allouer ressources et configurer le périphérique.
- Traduction dappels : implémenter les callbacks et API attendus par le soussystème du noyau (ex. net_device ops, block ops, file ops) pour que le reste du système utilise le périphérique de façon standardisée. - Traduction dappels : implémenter les callbacks et API attendus par le soussystème du noyau (ex. net_device ops, block ops, file ops) pour que le reste du système utilise le périphérique de façon standardisée.
- Gestion des I/O : orchestrer transferts (DMA, URB, interruptions), mise en file dattente, copies de buffers et synchronisation. - Gestion des I/O : orchestrer transferts (DMA, URB, interruptions), mise en file dattente, copies de buffers et synchronisation.
@@ -11,11 +12,13 @@ Principales responsabilités
- Concurrence et sécurité : protéger les ressources partagées (mutex, spinlock), respecter les contextes dexécution (process/context IRQ/softirq). - Concurrence et sécurité : protéger les ressources partagées (mutex, spinlock), respecter les contextes dexécution (process/context IRQ/softirq).
Types et niveaux Types et niveaux
- Pilotes noyau (inkernel) : sexécutent au sein du noyau, offrent faibles latences et accès direct au matériel (ex. pilotes réseaux, disques, USB). - Pilotes noyau (inkernel) : sexécutent au sein du noyau, offrent faibles latences et accès direct au matériel (ex. pilotes réseaux, disques, USB).
- Pilotes en espace utilisateur : utilisent un mécanisme de médiation (ex. UIO, libusb) et conviennent pour prototypage ou usages moins critiques. - Pilotes en espace utilisateur : utilisent un mécanisme de médiation (ex. UIO, libusb) et conviennent pour prototypage ou usages moins critiques.
- Pilotes de classe vs vendorspecific : les pilotes de classe implémentent une interface standard (ex. CDC, HID) interopérable ; les pilotes vendorspecific gèrent fonctionnalités propriétaires. - Pilotes de classe vs vendorspecific : les pilotes de classe implémentent une interface standard (ex. CDC, HID) interopérable ; les pilotes vendorspecific gèrent fonctionnalités propriétaires.
Propriétés attendues Propriétés attendues
- Stabilité et sécurité : ne pas corrompre la mémoire noyau, gérer correctement les erreurs et concurrents. - Stabilité et sécurité : ne pas corrompre la mémoire noyau, gérer correctement les erreurs et concurrents.
- Performance : minimiser copies, utiliser offloads matériels, gérer pools/URB/queues pour hauts débits. - Performance : minimiser copies, utiliser offloads matériels, gérer pools/URB/queues pour hauts débits.
- Portabilité et intégration : respecter les conventions du soussystème kernel concerné (APIs, structures, callbacks, sysfs/ethtool si applicable). - Portabilité et intégration : respecter les conventions du soussystème kernel concerné (APIs, structures, callbacks, sysfs/ethtool si applicable).
@@ -25,6 +28,7 @@ Propriétés attendues
Le CH397 est une puce NIC USB hautement intégrée et basse consommation, destinée à étendre une interface Ethernet via USB pour ordinateurs de bureau, portables, tablettes, consoles de jeu, etc. Elle intègre un processeur RISCV QingKe, un contrôleur USB2.0/2.1 avec transceiver PHY conforme USB2.1, ainsi quun soussystème Ethernet complet (MAC + PHY) conforme IEEE 802.3, supportant 10/100 Mbps. Le CH397 est une puce NIC USB hautement intégrée et basse consommation, destinée à étendre une interface Ethernet via USB pour ordinateurs de bureau, portables, tablettes, consoles de jeu, etc. Elle intègre un processeur RISCV QingKe, un contrôleur USB2.0/2.1 avec transceiver PHY conforme USB2.1, ainsi quun soussystème Ethernet complet (MAC + PHY) conforme IEEE 802.3, supportant 10/100 Mbps.
Architecture matérielle Architecture matérielle
- **SoC toutenun :** processeur embarqué QingKe RISCV, contrôleur USB, transceiver PHY USB et contrôleur Ethernet MAC+PHY intégrés sur une unique puce (packages QFN24/QFN32). - **SoC toutenun :** processeur embarqué QingKe RISCV, contrôleur USB, transceiver PHY USB et contrôleur Ethernet MAC+PHY intégrés sur une unique puce (packages QFN24/QFN32).
- **USB 2.0/2.1 Full/HighSpeed :** contrôleur et transceiver conformes à la spécification USB2.1, avec LDO intégré et composants périphériques réduits (résistance 50, condensateurs oscillateur). - **USB 2.0/2.1 Full/HighSpeed :** contrôleur et transceiver conformes à la spécification USB2.1, avec LDO intégré et composants périphériques réduits (résistance 50, condensateurs oscillateur).
- **Ethernet 10/100M :** MAC et PHY conformes IEEE 802.3 (10BASET / 100BASETX) ; support de lautonégociation 10/100 Mbps, AutoMDIX et distances jusquà 120 m sur câbles CAT5/CAT6. - **Ethernet 10/100M :** MAC et PHY conformes IEEE 802.3 (10BASET / 100BASETX) ; support de lautonégociation 10/100 Mbps, AutoMDIX et distances jusquà 120 m sur câbles CAT5/CAT6.
@@ -32,6 +36,7 @@ Architecture matérielle
- **Fonctions matérielles supplémentaires :** LDO interne, support ESD amélioré (6 kV), configuration LED matérielle, wakeup réseau et modes basse consommation. - **Fonctions matérielles supplémentaires :** LDO interne, support ESD amélioré (6 kV), configuration LED matérielle, wakeup réseau et modes basse consommation.
Interfaces réseau disponibles Interfaces réseau disponibles
- **CDCECM, CDCNCM et RNDIS :** support natif de CDCECM et CDCNCM (USB Ethernet classes) et RNDIS — possibilité dutilisation sans pilote propriétaire sur de nombreux hôtes, ou avec pilote vendorspecific si souhaité. - **CDCECM, CDCNCM et RNDIS :** support natif de CDCECM et CDCNCM (USB Ethernet classes) et RNDIS — possibilité dutilisation sans pilote propriétaire sur de nombreux hôtes, ou avec pilote vendorspecific si souhaité.
- **Endpoints USB standard :** modes vendorspecific (bulk endpoints) et classes réseau standard (interfaces Communications/Data avec altsetting pour endpoints bulk IN/OUT). - **Endpoints USB standard :** modes vendorspecific (bulk endpoints) et classes réseau standard (interfaces Communications/Data avec altsetting pour endpoints bulk IN/OUT).
- **Fonctionnalités réseau hardwareassist :** - **Fonctionnalités réseau hardwareassist :**
@@ -41,6 +46,7 @@ Interfaces réseau disponibles
- wakeonLAN (magic packet / wake packets). - wakeonLAN (magic packet / wake packets).
Contraintes et exigences spécifiques Contraintes et exigences spécifiques
- **Choix de configuration USB :** la puce expose plusieurs configurations (vendor, CDCECM, NCM, RNDIS) — le pilote doit détecter la configuration active et sélectionner linterface/altsetting offrant les endpoints bulk nécessaires (ex. altsetting 1 pour CDC Data). - **Choix de configuration USB :** la puce expose plusieurs configurations (vendor, CDCECM, NCM, RNDIS) — le pilote doit détecter la configuration active et sélectionner linterface/altsetting offrant les endpoints bulk nécessaires (ex. altsetting 1 pour CDC Data).
- **Taille et gestion des buffers :** présence de buffers internes signifie que le périphérique peut livrer des trames agrégées ou de taille > MTU standard ; prévoir côté pilote des buffers hôtes suffisamment grands (ex. >= 16002048 octets) et gérer lalignement skb. - **Taille et gestion des buffers :** présence de buffers internes signifie que le périphérique peut livrer des trames agrégées ou de taille > MTU standard ; prévoir côté pilote des buffers hôtes suffisamment grands (ex. >= 16002048 octets) et gérer lalignement skb.
- **Performances et flux :** le CH397 prend en charge features hardwareassist (checksum offload, flow control, VLAN), le pilote peut en tirer parti pour réduire la charge CPU et améliorer le débit ; envisager gestion des URB/queues pour atteindre des débits proches du 100 Mbps. - **Performances et flux :** le CH397 prend en charge features hardwareassist (checksum offload, flow control, VLAN), le pilote peut en tirer parti pour réduire la charge CPU et améliorer le débit ; envisager gestion des URB/queues pour atteindre des débits proches du 100 Mbps.

BIN
Rapport.pdf Normal file

Binary file not shown.