diff --git a/docs/README.md b/docs/README.md index 4c0e41c..b2b352f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,19 +1,19 @@ -# [Bachelor in embedded system](/bachelor/) +
+

Yggdrasil

+
+Yggdrasil is a collections of notes around IT, OT and other geeks stuff +
+
+
-## [PTR](/bachelor/PTR/) - - -## [SDi](/bachelor/SDi/) -- [transmission_process.md](/bachelor/SDi/transmission_process.md) - - -## [Eln](/bachelor/Eln/) -- [AD/DA](/bachelor/Eln/ADDA.md) - - -## [SEm](/bachelor/SEm/) -- [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md) -- [ASM - Assembleur ARM](/bachelor/SEm/ASM.md) +# [Bachelor in embedded system](/infotro/) +Here notes I take during my bachelor in embedded systems +Mainly some topics: +- [PTR - Programmation Temps Réel](/infotro/PTR/) +- [SDi - Système Distribué](/infotro/SDi/) +- [Eln - Électronique](/infotro/Eln/) +- [SEm - Systèmes Embarqué](/infotro/SEm/) # [STM32](/STM32/) +Here some note specific about STM32 diff --git a/docs/_navbar.md b/docs/_navbar.md index 795fc34..dccb870 100644 --- a/docs/_navbar.md +++ b/docs/_navbar.md @@ -1,9 +1,6 @@ -* [PTR](/bachelor/PTR) -* [SDi](/bachelor/SDi) - * [Transmission Process](/bachelor/SDi/transmission_process.md) -* [Eln](/bachelor/Eln/) - * [AD/DA](/bachelor/Eln/ADDA.md) -* [SEm](/bachelor/SEm/) - * [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md) - * [ASM - Assembleur ARM](/bachelor/SEm/ASM.md) +* [Bachelor Infotro](/infotro/) + * [PTR - Programmation Temps Réel](/infotro/PTR/) + * [SDi - Systèmes Distribués](/infotro/SDi) + * [Eln - Électronique](/infotro/Eln/) + * [SEm - Systèmes Embarqués](/infotro/SEm/) * [STM32](/STM32/) \ No newline at end of file diff --git a/docs/bachelor/Eln/README.md b/docs/bachelor/Eln/README.md deleted file mode 100644 index 9e1b5cf..0000000 --- a/docs/bachelor/Eln/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Interfaces et convertisseur - -- [AD/DA](/bachelor/Eln/ADDA.md) \ No newline at end of file diff --git a/docs/bachelor/README.md b/docs/bachelor/README.md deleted file mode 100644 index 415dacc..0000000 --- a/docs/bachelor/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Bachelor in embedded system - -## [PTR](/bachelor/PTR/) - - -## [SDi](/bachelor/SDi/) -- [transmission_process.md](/bachelor/SDi/transmission_process.md) - - -## [Eln](/bachelor/Eln/) -- [Interfaces et convertisseurs](/bachelor/Eln/README.md#Interfaces-et-convertisseur) -- [AD/DA](/bachelor/Eln/ADDA.md) - - -## [SEm](/bachelor/SEm/) -- [PLA - Programmation en langage assembleur](/bachelor/SEm/PLA.md) -- [ASM - Assembleur ARM](/bachelor/SEm/ASM.md) - diff --git a/docs/bachelor/SEm/README.md b/docs/bachelor/SEm/README.md deleted file mode 100644 index 0bce9a5..0000000 --- a/docs/bachelor/SEm/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Taille des paquets de bits - -[PLA](/bachelor/arm/PLA.md) -[ASM(/bachelor/arm/ASM.md) \ No newline at end of file diff --git a/docs/divers/README.md b/docs/divers/README.md index 8e59605..23899a7 100644 --- a/docs/divers/README.md +++ b/docs/divers/README.md @@ -3,7 +3,7 @@ $$ E=mc^2 $$ -[transmission_process.md](../bachelor/SDi/transmission_process.md) +[transmission_process.md](../infotro/SDi/transmission_process.md) ## embedding it directly ```mermaid @@ -26,7 +26,7 @@ Alice <-- Bob: another authentication Response ## load from external files -![kroki-excalidraw](../excalidraw.json) +![kroki-excalidraw](excalidraw.json) ## Wavedrom ```wavedrom diff --git a/docs/excalidraw.json b/docs/divers/excalidraw.json similarity index 100% rename from docs/excalidraw.json rename to docs/divers/excalidraw.json diff --git a/docs/index.html b/docs/index.html index 8d8808b..301c102 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,23 +22,11 @@ repo: 'https://git.kb28.ch/Klagarge/Yggdrasil.git', maxLevel: 3, coverpage: false, - autoHeader: true, - loadNavbar: true, + loadNavbar: true, // Nav bar on top - was true subMaxLevel: 3, - auto2top: true, - mergeNavbar: true, - search: { - maxAge: 86400000, // Expiration time, the default one day - paths: [ - '/', - '/bachelor', - '/STM32', - ], - placeholder: 'Type to search', - noData: 'No Results!', - depth: 5, - hideOtherSidebarContent: false, // whether or not to hide other sidebar content - }, + auto2top: true, // was true + mergeNavbar: true, // was true + //search: 'auto', pagination: { previousText: { '/en/': 'PREV', @@ -79,6 +67,42 @@ } } }, + darklightTheme: { + siteFont : "Ubuntu", + defaultTheme : 'light', + codeFontFamily : 'Roboto Mono, Monaco, courier, monospace', + bodyFontSize : '17px', + dark: { + accent: '#42b983', + toogleBackground : '#ffffff', + background: '#091a28', + textColor: '#b4b4b4', + codeTextColor : '#ffffff', + codeBackgroundColor : '#0e2233', + borderColor : '#0d2538', + blockQuoteColor : '#858585', + highlightColor : '#d22778', + sidebarSublink : '#b4b4b4', + codeTypeColor : '#ffffff', + coverBackground : 'linear-gradient(to left bottom, hsl(118, 100%, 85%) 0%,hsl(181, 100%, 85%) 100%)', + toogleImage : 'url(https://cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/icons/sun.svg)' + }, + light: { + accent: '#42b983', + toogleBackground : '#091a28', + background: '#ffffff', + textColor: '#34495e', + codeTextColor : '#525252', + codeBackgroundColor : '#f8f8f8', + borderColor : 'rgba(0, 0, 0, 0.07)', + blockQuoteColor : '#858585', + highlightColor : '#d22778', + sidebarSublink : '#b4b4b4', + codeTypeColor : '#091a28', + coverBackground : 'linear-gradient(to left bottom, hsl(118, 100%, 85%) 0%,hsl(181, 100%, 85%) 100%)', + toogleImage : 'url(https://cdn.jsdelivr.net/npm/docsify-darklight-theme@latest/icons/moon.svg)' + } + }, }; diff --git a/docs/bachelor/Eln/ADDA.md b/docs/infotro/Eln/ADDA.md similarity index 82% rename from docs/bachelor/Eln/ADDA.md rename to docs/infotro/Eln/ADDA.md index 8314d2d..e8cc460 100644 --- a/docs/bachelor/Eln/ADDA.md +++ b/docs/infotro/Eln/ADDA.md @@ -1,13 +1,14 @@ -# AD/DA +
+

AD/DA

+
-## AD +# AD Il existe 4 méthodes principales pour une conversion Analogique vers Digital: - Parallèle - Par pesée - Par comptage - Sigma-delta -# Conversion D/A | | + (Avantage) | - (Inconvénient) | |-------------------------|------------------------|-----------------------------| | **Parallèle
Unaire** | Simplicité
Monotone | Taille du circuit ~$2^{n}$ | @@ -16,11 +17,11 @@ Il existe 4 méthodes principales pour une conversion Analogique vers Digital: -### Parallèle +## Parallèle ![AD Parallèle](parallele.png ':size=200') -### Par comptage +## Par comptage Un seul switch mais avec une fréquence de commutation très rapide $$ V_{a} = \frac{t_{on}}{T}\cdot V_{ref} @@ -28,7 +29,7 @@ $$ ![AD par comptage](comptage.png ':size=300') ![Graph AD par comptage](comptage-graph.png ':size=200') -### Par pesée +## Par pesée Un switch par bit. ![AD par pesée](pesee.png ':size=300') @@ -46,3 +47,15 @@ Pour un $V_{red} = 1[V]$ on a: | 1 | 1 | 0 | 0,750 | | 1 | 1 | 1 | 0,875 | +# DA +## Échantillonneur avec maintien + + +# Caractéristique de convertisseurs + +## Digits et affichage + +$$ +nBits = Ceiling\left[log_2\cdot \frac{plage}{pas}\right] +$$ + diff --git a/docs/infotro/Eln/README.md b/docs/infotro/Eln/README.md new file mode 100644 index 0000000..96a8ee2 --- /dev/null +++ b/docs/infotro/Eln/README.md @@ -0,0 +1,7 @@ +
+

Électronique

+
+ +# Convertisseurs +- [AD/DA](/infotro/Eln/ADDA) +- [Sigma / Delta](/infotro/Eln/Sigma-Delta) \ No newline at end of file diff --git a/docs/infotro/Eln/Sigma-Delta.md b/docs/infotro/Eln/Sigma-Delta.md new file mode 100644 index 0000000..4a7599b --- /dev/null +++ b/docs/infotro/Eln/Sigma-Delta.md @@ -0,0 +1,234 @@ +
+

Sigma / Delta

+
+ +```drawio + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +# Principe +Un convertisseur analogique-numérique (AD) ou numérique-analogique (DA) delta-sigma se compose toujours d'un modulateur +delta-sigma produisant un "flux binaire" ou "signal binaire séquentiel" et d'un filtre passe-bas. + +Le modulateur peut être mis en œuvre comme un circuit numérique pour un signal numérique ou comme un circuit analogique +pour un signal analogique. De même, le filtre passe-bas peut être analogique pour générer un signal de sortie +analogique ou numérique, réalisé soit par un circuit numérique soit par un algorithme dans un processeur de signal. +Cette structure permet d'explorer le flux binaire et le filtre passe-bas avant d'approfondir l'étude du +modulateur delta-sigma. + +## Le flux binaire +Le flux binaire peut être interprété comme un signal digital ou analogique. +Il s'agit d'un signal séquentiel à un bit avec une fréquence d'horloge significativement plus élevée que le débit des +données numériques de l'ADC ou du DAC. Sa caractéristique essentielle est que sa moyenne correspond à la moyenne du +signal d'entrée. Un niveau logique "haut" représente la valeur maximale de sortie, tandis qu'un niveau logique "bas" +représente la valeur minimale de sortie. + +- **Sortie analogique:** Le flux binaire est converti par un DA à un bit en un signal analogique. +Les valeurs d'entrée "bas" et "haut" se traduisent respectivement par deux tensions analogiques précises, par exemple, +1V et +1V. + +- **Sortie digitale:** Dans le cas d'une sortie digitale, un niveau "haut" (ou "bas") dans le flux binaire représente +la valeur maximale (ou minimale) de la plage de valeurs digitales. Par exemple, dans un système à 8 bits, un niveau +"haut" pourrait correspondre à FF en hexadécimal, tandis qu'un niveau "bas" pourrait correspondre à 00 en hexadécimal. + +Un flux binaire similaire existe dans un signal modulé en largeur d‘impulsions (PWM), mais il présente quelques +désavantages par rapport au flux binaire d'un convertisseur delta-sigma, également appelé signal modulé en rapport +d’impulsions (PPM). La transmission en série d'une valeur numérique, telle que la sortie en série d'un ADC conventionnel +par pesée, est quant à elle appelée modulation par codage d'impulsions (PCM). + +# + +Un convertisseur sigma-delta est un type de convertisseur +analogique-numérique (CAN) qui utilise une boucle de contre-réaction pour +échantillonner et quantifier un signal analogique en un signal numérique. +Le principe de fonctionnement d'un convertisseur sigma-delta peut être +expliqué en plusieurs étapes : + +1. Échantillonnage : Tout d'abord, le signal analogique est échantillonné +à une fréquence d'échantillonnage beaucoup plus élevée que la bande + passante du signal. Cette haute fréquence d'échantillonnage permet de + réduire considérablement les effets des distorsions et du bruit dans le + domaine fréquentiel. +2. Quantification : Le signal échantillonné est ensuite quantifié en un + signal numérique à l'aide d'un comparateur qui compare le signal avec une + référence de tension fixe. La sortie du comparateur est une suite de bits + représentant la valeur du signal analogique à chaque instant. +3. Contre-réaction : Le signal quantifié est ensuite utilisé pour régler + un oscillateur numérique qui produit un signal d'erreur. Ce signal + d'erreur est ajouté au signal d'entrée dans la boucle de contre-réaction, + ce qui permet de compenser les erreurs de quantification et de réduire le + bruit dans le signal quantifié. +4. Suréchantillonnage : Le signal numérique produit par le convertisseur + sigma-delta est suréchantillonné à une fréquence beaucoup plus élevée que + la fréquence d'échantillonnage initiale, ce qui permet de réduire encore + davantage les effets du bruit dans le signal. +5. Décimation : Enfin, le signal suréchantillonné est décimé à la + fréquence d'échantillonnage désirée en utilisant un filtre passe-bas + numérique qui élimine les composantes de hautes fréquences indésirables. + +Le résultat final est un signal numérique représentant fidèlement le +signal analogique d'origine, avec une faible distorsion et un faible +bruit. La boucle de contre-réaction permet au convertisseur sigma-delta +d'atteindre des performances supérieures à celles des autres types de +convertisseurs analogique-numérique en termes de résolution et de +précision. + +$$ +SNR = 6,02n + 1,76[dB] +$$ + +![img.png](snr_by_osr.png) diff --git a/docs/bachelor/Eln/comptage-graph.png b/docs/infotro/Eln/comptage-graph.png similarity index 100% rename from docs/bachelor/Eln/comptage-graph.png rename to docs/infotro/Eln/comptage-graph.png diff --git a/docs/bachelor/Eln/comptage.png b/docs/infotro/Eln/comptage.png similarity index 100% rename from docs/bachelor/Eln/comptage.png rename to docs/infotro/Eln/comptage.png diff --git a/docs/bachelor/Eln/parallele.png b/docs/infotro/Eln/parallele.png similarity index 100% rename from docs/bachelor/Eln/parallele.png rename to docs/infotro/Eln/parallele.png diff --git a/docs/bachelor/Eln/pesee.png b/docs/infotro/Eln/pesee.png similarity index 100% rename from docs/bachelor/Eln/pesee.png rename to docs/infotro/Eln/pesee.png diff --git a/docs/infotro/Eln/sigma-delta.drawio b/docs/infotro/Eln/sigma-delta.drawio new file mode 100644 index 0000000..975bb6b --- /dev/null +++ b/docs/infotro/Eln/sigma-delta.drawio @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/infotro/Eln/snr_by_osr.png b/docs/infotro/Eln/snr_by_osr.png new file mode 100644 index 0000000..d8d3253 Binary files /dev/null and b/docs/infotro/Eln/snr_by_osr.png differ diff --git a/docs/infotro/PTR/XF.md b/docs/infotro/PTR/XF.md new file mode 100644 index 0000000..1a530e7 --- /dev/null +++ b/docs/infotro/PTR/XF.md @@ -0,0 +1,73 @@ +
+

XF

+
+ +# Services + +## Reactive + +``` plantuml +@startuml + +participant MainLand as main +participant Queue as queue +participant Behavior as behavior +participant XF as xf + +main -> behavior: push(event) +behavior -> queue: add(event) + +xf -> xf: dispatchEvent() +activate xf +xf -> queue : getEvent() +queue --> xf +xf -> behavior: processEvent() +deactivate xf + +@enduml +``` + +## Timeout +``` plantuml +@startuml + +participant TimerQueue as tq #cyan +participant Timeout as t #LawnGreen +participant TimeoutManager as tm #cyan +participant EventQueue as eq #cyan +participant MainLand as main #cyan +participant Reactive as r #yellow + +r ->> tm: scheduleTimeout(tmid, evid, duration) +activate r #magenta +deactivate r + +create t +tm -->> t: <> +tm ->> tq: add(tm) <> +tm ->> tq: tick() +tq ->> t: decrement() +tm ->> tq: tick() +tq ->> t: decrement() + +tm ->> eq: pushEvent(tm) <> +tm ->> tq: remove(id) <> + +main ->> eq: popEvent() <> +activate main #yellow +eq -->> main: ev +main ->> t: getTarget() +t -->> main: reactive +main ->> r: processEvent(ev) +activate r #magenta +r -->> main +deactivate r +main -->> t !!: <> + +@enduml +``` + +## Protection +- Mutex, sémaphore +- éviter les conflits mémoire + diff --git a/docs/infotro/README.md b/docs/infotro/README.md new file mode 100644 index 0000000..121b598 --- /dev/null +++ b/docs/infotro/README.md @@ -0,0 +1,19 @@ +# Bachelor in embedded system + +## [PTR - Programmation Temps Réel](/infotro/PTR/) +- [XF](/infotro/PTR/XF.md) + + +## [SDi - Système Distribué](/infotro/SDi/) +- [Transmission process](/infotro/SDi/transmission_process.md) + + +## [Eln - Électronique](/infotro/Eln/) +- [AD/DA](/infotro/Eln/ADDA) +- [Sigma / Delta](/infotro/Eln/Sigma-Delta) + + +## [SEm - Système Embarqué](/infotro/SEm/) +- [PLA - Programmation en langage assembleur](/infotro/SEm/PLA.md) +- [ASM - Assembleur ARM](/infotro/SEm/ASM.md) + diff --git a/docs/bachelor/SDi/img.png b/docs/infotro/SDi/img.png similarity index 100% rename from docs/bachelor/SDi/img.png rename to docs/infotro/SDi/img.png diff --git a/docs/bachelor/SDi/img_1.png b/docs/infotro/SDi/img_1.png similarity index 100% rename from docs/bachelor/SDi/img_1.png rename to docs/infotro/SDi/img_1.png diff --git a/docs/bachelor/SDi/paper_exercise.md b/docs/infotro/SDi/paper_exercise.md similarity index 100% rename from docs/bachelor/SDi/paper_exercise.md rename to docs/infotro/SDi/paper_exercise.md diff --git a/docs/bachelor/SDi/transmission_process.md b/docs/infotro/SDi/transmission_process.md similarity index 100% rename from docs/bachelor/SDi/transmission_process.md rename to docs/infotro/SDi/transmission_process.md diff --git a/docs/bachelor/SEm/ASM.md b/docs/infotro/SEm/ASM.md similarity index 100% rename from docs/bachelor/SEm/ASM.md rename to docs/infotro/SEm/ASM.md diff --git a/docs/bachelor/SEm/PLA.md b/docs/infotro/SEm/PLA.md similarity index 100% rename from docs/bachelor/SEm/PLA.md rename to docs/infotro/SEm/PLA.md diff --git a/docs/infotro/SEm/README.md b/docs/infotro/SEm/README.md new file mode 100644 index 0000000..72c5ea1 --- /dev/null +++ b/docs/infotro/SEm/README.md @@ -0,0 +1,4 @@ +# Taille des paquets de bits + +[PLA](/infotro/arm/PLA.md) +[ASM](/infotro/arm/ASM.md) \ No newline at end of file diff --git a/docs/bachelor/SEm/img/Pasted image 20231116153738.png b/docs/infotro/SEm/img/Pasted image 20231116153738.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116153738.png rename to docs/infotro/SEm/img/Pasted image 20231116153738.png diff --git a/docs/bachelor/SEm/img/Pasted image 20231116154303.png b/docs/infotro/SEm/img/Pasted image 20231116154303.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116154303.png rename to docs/infotro/SEm/img/Pasted image 20231116154303.png diff --git a/docs/bachelor/SEm/img/Pasted image 20231116154853.png b/docs/infotro/SEm/img/Pasted image 20231116154853.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116154853.png rename to docs/infotro/SEm/img/Pasted image 20231116154853.png diff --git a/docs/bachelor/SEm/img/Pasted image 20231116155200.png b/docs/infotro/SEm/img/Pasted image 20231116155200.png similarity index 100% rename from docs/bachelor/SEm/img/Pasted image 20231116155200.png rename to docs/infotro/SEm/img/Pasted image 20231116155200.png diff --git a/docs/infotro/_navbar.md b/docs/infotro/_navbar.md new file mode 100644 index 0000000..79efa63 --- /dev/null +++ b/docs/infotro/_navbar.md @@ -0,0 +1,10 @@ +* [PTR - Programmation Temps Réel](/infotro/PTR/) + * [XF](/infotro/PTR/XF) +* [SDi - Systèmes Distribués](/infotro/SDi) + * [Transmission process](/infotro/SDi/transmission_process.md) +* [Eln - Électronique](/infotro/Eln/) + * [AD/DA](/infotro/Eln/ADDA) + * [Sigma / Delta](/infotro/Eln/Sigma-Delta) +* [SEm - Systèmes Embarqués](/infotro/SEm/) + * [PLA - Programmation en langage assembleur](/infotro/SEm/PLA.md) + * [ASM - Assembleur ARM](/infotro/SEm/ASM.md) \ No newline at end of file