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.
Principales responsabilités
- 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.
- 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).
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 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.
Propriétés attendues
- 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.
- 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.
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).
- **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.
@@ -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.
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é.
- **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 :**
@@ -41,6 +46,7 @@ Interfaces réseau disponibles
- wakeonLAN (magic packet / wake packets).
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).
- **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.

BIN
Rapport.pdf Normal file

Binary file not shown.