Projet

Général

Profil

P13B04 Conception d'un serveur Wifi sur plateforme Rx63N » Historique » Version 16

Anonyme, 08/04/2021 14:18

1 1 Anonyme
h1=. P13B04 Conception d'un serveur Wifi sur plateforme Rx63N
2
3 2 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16367/p13b04_Renesas_20130506104552_20130506110315.jpg!
4
5
*Projet GE2-GE3 2013* :
6
*Entreprise / Client* : Renesas électronic / Tolentino Martins
7
*Auteurs* : Jonathan Chassaing, Florent Montes
8
*Responsable Projet* : Michel James
9
*Tuteur industriel* : Gérard Chazelle
10
11
---
12
13
h1. Sommaire
14
15
16
[[1. Résumé]] 
17
[[2. Abstract]] 
18
[[3. Introduction]] 
19
[[4. Présentation du Sujet]] 
20
        
21
p(((. [[1. Synoptique général]] 
22
[[2. Présentation des éléments du système]] 
23
24
p(((((. [[1. Carte Gr-Sakura]] 
25
[[2. Microcontrôleur RX63N]] 
26
[[3. Module Wifi]] 
27
        
28
p(((. [[3. Problématiques]] 
29
30
[[5. Cahier des Charges]] 
31
32
[[6.Développement]] 
33
34
p(((. [[1. Adaptation du module wifi sur la carte Gr-Sakura]] 
35
[[2. Communication entre le Module WiFi et le RX63N]] 
36
[[3. Pile TCP/IP]] 
37
[[4. Fonctionnement de l’application]] 
38
[[5. Récupération du Serveur-web Ethernet]] 
39
[[6. Serveur-web Minimaliste]] 
40
[[7. Création et insertion des pages web dans le Serveur]] 
41
[[8. Organisation du Serveur]] 
42
[[9. Performances]]  
43
44
[[7. Gestion de Projet]] 
45
46
[[8. Bilan]] 
47
48
p(((. [[1. Etat d'avancement]] 
49
[[2. Analyse Critique]] 
50
[[3. Perspectives d'amélioration]] 
51
52
[[9. Notes d'application]] 
53
54
[[10. Bibliographie]]
55
56
---
57
58
h1<. *1) Résumé* 
59 3 Anonyme
60
h2. Le projet « serveur Wifi sur plateforme RX63N » concerne la réalisation d’un serveur web sur un microcontrôleur RENESAS. Cette entreprise souhaite la réalisation d’un tel projet afin de démontrer les performances de leur puce sur une application de type « serveur web wifi ».
61
Pour la réalisation de ce projet nous disposons d’une carte Gr-Sakura possédant un microcontrôleur RX63N qui sera la base de notre projet. Dans un premier temps, nous avons choisi puis adapté un module Wifi sur la carte GR-Sakura, de manière matérielle (carte d’adaptation) et logicielle (drivers). Dans un deuxième temps, nous avons créé un serveur web minimaliste que l’on a implanté dans notre programme final pour le faire communiquer avec le module wifi. Enfin, nous avons créé des pages personnalisées pour avoir un serveur web wifi fonctionnel.
62
63
h2<. Mots clés :
64
Serveur Web embarqué
65
Wifi
66
Gr-Sakura
67
RX63N
68
KPIT GNURX
69
70
h2<. *%{color:red}Sommaire%* 
71
72
---
73
74
h1<. *2) Abstract*
75
76
h2. Le projet « serveur Wifi sur plateforme RX63N » concerne la réalisation d’un serveur web sur un microcontrôleur RENESAS. Cette entreprise souhaite la réalisation d’un tel projet afin de démontrer les performances de leur puce sur une application de type « serveur web wifi ».
77
Pour la réalisation de ce projet nous disposons d’une carte Gr-Sakura possédant un microcontrôleur RX63N qui sera la base de notre projet. Dans un premier temps, nous avons choisi puis adapté un module Wifi sur la carte GR-Sakura, de manière matérielle (carte d’adaptation) et logicielle (drivers). Dans un deuxième temps, nous avons créé un serveur web minimaliste que l’on a implanté dans notre programme final pour le faire communiquer avec le module wifi. Enfin, nous avons créé des pages personnalisées pour avoir un serveur web wifi fonctionnel.
78
79
h2. Mots clés :
80
Serveur Web embarqué
81
Wifi
82
Gr-Sakura
83
RX63N
84
KPIT GNURX 
85
86
h2<. *%{color:red}Sommaire%* 
87
88
---
89
90
h1<. *3) Introduction*
91
92
h2. Dans le cadre du projet industriel de Génie Électrique qui s’étend sur 250 heures, Renesas Electronics acteur majeur dans le domaine des microcontrôleurs (27 % des parts de marché) propose un sujet portant sur l'un des derniers microcontrôleurs de la gamme RX.
93
Cette entreprise désire mettre en avant les performances de son microcontrôleur RX63N à travers une application de type serveur web WiFi embarquée en utilisant des outils de développement gratuits.
94
95
h2<. *%{color:red}Sommaire%* 
96
97
---
98
99
h1<. *4) Présentation du Sujet*
100
101
h2<. *4.1) Synoptique général*
102
103 4 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16368/p13b04_synoptique_1_20140102150429_20140102151307.png!
104
105
h2. Le cœur de l’application est le microcontrôleur RX63N présent sur la carte GR-SAKURA, celui-ci devra être connecté à un module WiFi afin de rendre possible la communication sans fil. Grâce à ce module, le RX63N sera capable de communiquer avec un système possédant une interface web et une connexion WiFi. La carte d’adaptation permettra la connexion physique entre le module et la carte Gr-Sakura. 
106
107
h2<. *%{color:red}Sommaire%* 
108
109
h2<. *4.2) Présentation des éléments du système*
110
111
h2<. *4.2.1) Carte Gr-Sakura*
112
113
h2. La carte utilisée pour la réalisation du projet sera la "GR-SAKURA":http://sakuraboard.net/index_en.html (voir photo ci-dessous). Elle est fabriquée par Wakamatsu Tsusho en partenariat avec "Renesas":https://www.renesas.com/eu/en. Elle est disponible chez quelques grands distributeurs de composant électronique. Une programmation directement par USB et l’utilisation d’un compilateur web Renesas en fait une carte abordable au grand publique "(voir start guide)":http://sakuraboard.net/index_en.html.
114
115 5 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16369/p13b04_carte_sakura_20130503142014_20130503142104.png!
116
117
"détail des caractéristiques de la carte":http://sakuraboard.net/gr-sakura_en.html
118
119
h2<. *%{color:red}Sommaire%*
120
121
h2<. *4.2.2) Microcontrôleur RX63N*
122
123
Le microcontrôleur utilisé sur ce projet est le RX63N, distribué par "Renesas":https://www.renesas.com/eu/en. Il fait partie de la famille des RX, dont les grandes lignes sont résumées sur le schéma ci-dessous.
124
RX Family
125
126 6 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16370/p13b04_RX_family_20130512173749_20130512173802.gif!
127
128
Ce microcontrôleur possède des caractéristiques suivantes :
129
130
p(((. - Calculs sur 32bits
131
- Fréquence max 100MHz
132
- 1 MBytes main flash memory
133
- 128kBytes SRAM
134
- 128 ports E/S
135
- Bus RSPI
136
- Ethernet Mac
137
138 7 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16371/p13b04_schemaRX_20130512175519_20130512175541.gif!
139
140
Le grand intérêt de ce microcontrôleur dans notre projet est son "ethernet controler" qui permet de gérer via l'ethernet les problématiques liées aux protocoles spécifiques à l'internet (ex : pîle TCP/IP...).
141
Il possède également un BUS SPI, qui va servir pour communiquer avec le module wifi.
142
143
h2<. *%{color:red}Sommaire%*
144
145
h2<. *4.2.3) Module Wifi Redpine RS9110*
146
147
Le module wifi choisi pour ce projet est le Redpine RS9110-N-11-22.
148
149 8 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16372/p13b04_Redpine_RS9110_20130512175519_20130512175553.jpg!
150
151
152
Ce module possède les caractéristiques suivantes :
153
154
p(((. - Norme wifi 802.11b/g compatible 802.11n
155
- Fonction série vers sans fil inclus
156
- Modes de sécurité WPA/WPA2-PSK, WEP et TKIP
157
- Interface hôte : UART et SPI
158
- Pile TCP-IP incluse, possibilité de la bypasser en mode SPI
159
- Antenne intégrée et horloge basse fréquence
160
- Consommation ultra réduite en mode veille.
161
162 9 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16373/p13b04_Redpine_block_20130512180208_20130512180223.jpg!
163
164
Afin de simplifier la mise en œuvre du module WiFi, nous avons choisi le modèle compatible avec la "carte de développement RDK":https://www.renesas.com/us/en de Renesas. Dans un premier temps, ceci va nous permettre d’utiliser les applications note fournies avec le module Redpine.
165
166 10 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16374/p13b04_wifi_rdk_20140103111606_20140103115030.png!
167
168
h2<. *%{color:red}Sommaire%*
169
170
h2<. *4.3) Problématiques*
171
172
Le projet s’organise essentiellement autour de trois grandes problématiques :
173
174
p(((. - Connexion du module WiFi à RX63N
175
176
177
p(((. - Communication entre le programme Webserveur présent sur la carte GR-SAKURA et la plateforme de contrôle WiFi
178
179
180
p(((. - Communication entre la carte capteurs actionneurs et le programme Webserveur
181
182 11 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16375/p13b04_synoptique_2_20140102150429_20140102151711.png!
183
184
h2<. *%{color:red}Sommaire%*
185
186
---
187
188
h1<. *5) Cahier des Charges*
189
190
p(((. - Microprocesseur RX63N sur plateforme GR-SAKURA
191
- Webserveur Ethernet existant
192
- Portage du webserveur en WiFi
193
- Utilisation de ressources gratuites (outils de développement et de conception)
194
- Création d’une documentation technique en anglais
195
196 12 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16376/p13b04_cahier_des_charges_20130503100208_20130503100520.png!
197
198
h2<. *%{color:red}Sommaire%*
199
200
---
201
202
h1<. *6) Développement*
203
204
h2<. *6.1) Adaptation du module wifi sur la carte Gr-Sakura*
205
206
Pour cette première partie, nous avons eu recours à la sous-traitance aux élèves de deuxième année génie électrique. Nous avons choisi de sous-traiter, la réalisation d’une carte d’adaptation afin de pouvoir connecter le module WiFi directement sur la carte Gr-sakura. Cette carte se présente sous la forme ci-dessous. 
207
208 13 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16377/p13b04_CAO_20140103100837_20140103101448.png!
209
210
La forme de cette carte nous permet de venir la plugger directement sur les borniers de la carte Gr-Sakura, ce qui nous permet une connexion rapide et fiable du module WiFi (voir animation ci-dessous).
211
212 14 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16378/p13b04_adaptation_20140103103005_20140103110400.gif!
213
214
Pour finir grâce à cette carte d’adaptation le module WiFi est connecté de la même manière que sur la carte de développement RDK. Ce qui nous permet une portabilité de code entre la carte de développement RDK et la carte Gr-Sakura.
215
216
h2<. *%{color:red}Sommaire%*
217
218
h2<. *6.2) Communication entre le Module %{color:red}WiFi% et le RX63N*
219
220
Dans un premier temps, nous avons décidé d’utiliser la liaison SPI pour réaliser le dialogue entre le module WiFi et le RX63N. Nous avons préféré l’utilisation cette connexion, car elle présentée des vitesses de transfert supérieur à la liaison UART disponible, ce qui permettaient de nous rapprocher le plus du cahier de charges initial. 
221
222 15 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16379/p13b04_SPI_20140115171006_20140115171656.png!
223
224
225
Pour la mise au point de la première version de notre système nous avons réutilisé une partie des librairies SPI fournies dans l’application note de Redpine. Les principales fonctions utilisées sont les suivantes :
226
227
p(((. - Initialisation du module WiFi
228
- Ouverture socket
229
- Fermeture socket
230
- Lecture des données
231
- Envoi des données
232
233
h2<. *%{color:red}Sommaire%*
234
235
h2<. *6.3) Pile TCP/IP*
236
237
Pour qu’un paquet de données (une page web par exemple) soit communiqué d’un ordinateur à un autre par internet, il faut respecter un protocole particulier : le protocole Ethernet. Chaque donnée envoyée sur le réseau l’est donc sous la forme d’une trame Ethernet, que l’on peut voir sur la figure ci-dessous.
238
239 16 Anonyme
p=. !https://forge.clermont-universite.fr/attachments/download/16380/p13b04_pile_20140124091617_20140124091755.png!
240
241
Dans cette trame, il y a un paquet qui nous intéresse particulièrement, car il contient la donnée, le paquet IP. Ce paquet est composé d’une entête, de l’adresse IP de la machine source et de la destination, et enfin de la donnée en elle-même. C’est uniquement la donnée (appelée donnée IP sur le schéma) qui doit être transmise au serveur web afin qu’il puisse la traiter, et c’est uniquement cette donnée qu’il envoie également. Donc, pour que cette donnée soit transmissible par le protocole Ethernet, il faut l’empaqueter dans un paquet IP.
242
Ce paquet, c’est au rôle de la pile TCP/IP de le créer. Il y a différents moyens de le créer. Il peut être directement écrit dans le code du serveur web pour qu’il envoie un paquet IP tout entier, ou peut être créé grâce à une fonction externe, afin que notre serveur s’occupe uniquement de la donnée.
243
Il se trouve que créer cet empaquetage est extrêmement compliqué, et qu’un projet complet pourrait être dédié à ce sujet. Heureusement pour nous, le module wifi que nous avons utilisé contient directement une pile TCP/IP intégrée dans son microcontrôleur. Pour que notre programme marche, il nous a suffi d’envoyer à ce module seulement la donnée IP que le serveur est capable de générer, et le module se charge de créer un paquet IP. Ce module nous renvoie également la donnée qui nous intéresse seule, débarrassée de tout l’empaquetage d’un paquet IP.
244
245
h2<. *%{color:red}Sommaire%*
246
247
h2<. *6.4) Fonctionnement de l’application*
248
249
Le programme de notre système pouvait être réalisé de deux manières différentes. Néanmoins, le cahier des charges nous a laissé le choix entre l’utilisation d’un noyau temps réel FreeRTOS ou une programmation séquentielle.
250
251
Dans un premier temps, notre choix s’était porté sur l’utilisation du noyau temps réel. Selon nous, il offrait des facilités de conception pour notre application. Cependant, l’utilisation de ce noyau temps réel demandait une étude préliminaire. Malheureusement, nous n’avons pas plus réalisé cette solution par manque de temps. C’est pour cela que nous avons développé une première version de l’application de manière séquentielle en utilisant les interruptions.
252
253 4 Anonyme
p=. !!