Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMaugier Cordier Modifié depuis plus de 9 années
1
Mise au point de systèmes mixtes et évaluation de puissance : Un exemple d’application Anne-Marie TRULLEMANS- ANCKAERT FTFC’03 UCL-DICE, Place du Levant 3, B-1348 Louvain-la-Neuve, Belgium, ATrullemans@dice.ucl.ac.be, http://www.ucl.ac.be~anmarie
2
points de l’exposé introduction présentation de l’application modélisation et simulation des éléments fondamentaux – système de couplage, génération et émission, récupération et décodage simulations globales – transfert de données, variations du couplage, modélisation de puissance conclusions
3
introduction outils de simulation de systèmes complexes : – simulation digitale : VHDL et Verilog hiérarchie et modularité, du comportemental aux portes logiques – simulation analogique : Spice, Eldo... dispositifs physiques, précision... – simulation mixte : VHDL-AMS ? un système comme exemple : – la prothèse visuelle
4
la prothèse visuelle MIVIP-OPTIVIP processeur interne Aim of the project : optimization of an implantable visual prosthesis based on the stimulation of the optic nerve and its demonstration within a pre-clinical study Aim of the project : optimization of an implantable visual prosthesis based on the stimulation of the optic nerve and its demonstration within a pre-clinical study OPTIVIP IST-2000-25145 Prof. Charles Trullemans http://www.dice.ucl.ac.be/optivip/ transformateur à couplage variable processeur externe
5
les composants de la transmission
6
schéma-bloc du système peau données à envoyer codage Manchester driver classe DE transformateur à couplage variable récupération d’alimentation et démodulateur données reçues VCO extérieur intérieur
7
lien inductif transmission de puissance (alim) et de données transformateur à couplage variable (faible) : 0.2 à 0.12 extérieur intérieur entity transfoCT is generic (L1 : real := 1.0e-6; R1 : real := 0.0; L2 : real := 1.0e-6; R2 : real := 0.0; K : real := 0.15); port (terminal P1, P0, S1, S0 : electrical); end transfoCT; architecture bhv of transfoCT is quantity M : real := K * sqrt(L1*L2); quantity V1 across I1 through P1 to P0; quantity V2 across I2 through S1 to S0; begin -- bhv M == K * sqrt(L1*L2); V1 == L1 * I1'dot + M * I2'dot + R1 * I1; V2 == M * I1'dot + L2 * I2'dot + R2 * I2; end bhv; VHDL-AMS
8
données : codage Manchester et modulation FSK génération par un VCO modification de l’accord primaire pour chaque fréquence pas de modification au secondaire 2 fréquences autour de 12 MHz 2 cycles pour chaque fréquence transformateur doublement accordé 10.8 MHz et 13.2 MHz
9
les données Header val_meas : sélection de la mesure de tension de sortie des sources ou de tension d'alimentation Parité Gap (10 bits) Synchro8 : mode de stimulation (directe ou synchrone) ack_act : activation d'accusé de réception en retour maes_act : activation mesure de tension de sortie des sources et de tension d'alimentation rec_amp_setup : amplitude pulse de récupération timeout_act : activation du système de timeout timeout : valeur du timeout Commandes pour 4 sources de courant RSélection des mesures à renvoyer par backchannel SMaster/Slave multichip : fonctionnement multichip reserved : réservé au mode test Sélection sources de courant paires ou impaires différents types de trames : synchro setup données... codage en vecteurs de 64 bits transmission continue
10
processeur externe et codage Manchester entity ClockData is port(signal F0, FDel, Vin_a,Vin_b,Vpar_a,Vpar_b : out bit); end ClockData; entity ClockData is port(signal F0, FDel, Vin_a,Vin_b,Vpar_a,Vpar_b : out bit); end ClockData; MyControl : lecture données et VCO FO FDel Vin_a Vin_b Vpar_a Vpar_b lecture des données : pas de possibilités actuellement de lecture en fichier... constant Data_to_send : bit_vector := B"010001111011111110111... 11000000"; -- stocké en vecteur de bits if FDClock'event and FDClock = '1' then Data_read <= Data_to_send(IData); if IData < Data_to_send'high then IData := IData + 1; else... VHDL comportemental
11
fréquences et formes d’onde du VCO Gen_FD: process (FDClock) if Active='1' then FDClock <= transport not FDClock after TFD; end if; end process Gen_FD;... VCO: Process (FDClock) begin... if Data_to_send(IData)='0' then DM <= transport '1', '0' after a4; F0Clock <= transport ‘1’, ‘0’ after... else DM <= transport '0', '1' after b4; F0Clock <= transport '1', '0' after...; end if;... end process VCO; constant F1 : real := 10.8e6; -- fmin constant TF1 : time := real2time(0.5/F1); -- largeur pulse L constant F2 : real := 13.2e6; -- fmax constant TF2 : time := real2time(0.5/F2); -- largeur pulse S constant TFD : time := real2time(1.0/F1 + 1.0/F2); -- pulse lecture data fréquences f1 et f2 formes d’onde selon données horloge de lecture des données VHDL comportemental
12
génération des signaux de contrôle synchronisés DelClock <= transport F0clock after DeadTime; Vin_a <= F0clock and DelClock; Vin_b <= F0clock or DelClock; F0clock Delclock Vin_a Vin_b Vpar_b Vpar_a DM F0clock Latch: process (F0clock, DM) begin if F0clock='0' then Vpar_b <= not DM; else Vpar_a <= DM; end if; end process Latch; commande du driver DE commande du commutateur de capacités VHDL
13
les signaux générés commutation capa lecture des données commande du driver
14
circuit d’émission : driver classe DE Vee vin_b vin_a vl vout Cpar CT2 Lt NMOS PMOS driver DE entity TR_driver is port(terminal Nee, NOUT: electrical; signal Vin_a,Vin_b : in bit); end TR_driver; architecture test of TR_driver is... begin if Vin_b = '0' use -- PMOS VPMOS == RSon * IPMOS; else IPMOS == 0.0; end use; break on Vin_b;... if VPMOS'Above(-0.7) use IPpar == 0.0; else IPpar == (VPMOS + 0.7) / RDon; end use;... end test; commutation de la bobine du primaire par signaux vin_a et vin_b du VCO VHDL-AMS
15
simulation du driver : tensions sur l’inductance vout VL
16
pics de courant et puissance dans le driver
17
commutateur de capacité Nout transfoCT NT2 S2 N1 masse externe + - CT_driver : commutation capa Ncc NCT1 Vpar_a Vpar_b CT2 Cs commuter la capacité CT1 quand la tension à ses bornes est nulle CT1
18
proche de la réalité implémentée entity CT_driver is port(terminal NCT, Ncc: electrical; signal Vpar_a,Vpar_b : in bit); end CT_driver;... if Vpar_b = '0' use -- PMOS "on" ID2 == -IDS * (exp(-VCT/VT) - 1.0); if Vpar_a = '1' use -- NMOS "on"... end use; else -- PMOS "off"... end use; break on Vpar_b, Vpar_a; quantity Vout across ICpar through Nout to electrical_ground; -- Cpar quantity...... ICT2 == CT2 * Vl'dot; ICT1 == CT1 * VCT1'dot; ICpar == Cpar * Vout'dot; ICs == Cs * Vcs'dot; VHDL-AMS
19
commutation de la capacité d’accord la capacité s’enclenche quand dm = 1
20
système interne récupération d’alimentation sur capacité de balast, et écrêtage du signal
21
écrêtage et récupération d’alimentation transfoCT NT2 S2 Cs Vint Vrf ID1 == IDS * (exp(Vd1/VT) - 1.0); ID2 == -IDS * (exp(-Vrf/VT) - 1.0); Idec1 == Cdec * VS0'dot + VS0 * Gdec; Idec2 == Cdec * Vdec2'dot + Vdec2 * Gdec; if domain=quiescent_domain use Vcc_int == Vint_start; else Icc_int == Cint * Vcc_int'dot; end use; Vdecode == Vcc_int/2.0; if Vcc_int'Above (Vzener) use Izener == (Vcc_int-Vzener)/Rzener; else Izener == 0.0; end use; Vl VHDL-AMS
22
signal transmis simulation mesure vin Vrf Vl Vrf Vl
23
charge de la capacité de balast
24
démodulation du code Manchester réalisation par intégration de courant durant les 2 premiers cycles les 2 cycles suivants
25
mesure expérimentale données à 3Mbits provenant du processeur données démodulées dans l’implant délai de décodage
26
if phase=4 then Tdel2 := now - (Tini + Tdel1); Tini := now;... simulation par comparaison de délais decodeData: process (dec_dataM) variable Tini, Tdel1, Tdel2 : time := 0ns; variable phase : integer := Init_phase; begin if dec_dataM'event and dec_dataM='1' then if phase=0 then Tini := now; else if Tini > 0ns then if phase=2 then Tdel1 := now - Tini; end if;... Tdel1 Tdel2 if Tdel2>Tdel1 then dec_data <= '1'; else dec_data <= '0'; end if;... VHDL comportemental
27
simulation du décodage délai de décodage
28
le système complet MyControl : lecture données et VCO FO FDel Vin_a Vin_b Vpar_a Vpar_b TR_driver : driver DE Nout Nee Vin_a Vin_b transfoCT NT2 S2 N1 masse externe + - + - CT_driver : commutation capa Ncc NCT1 Vpar_a Vpar_b CT1 CT2 Cs decodeM : process écrétage et récupération d’alimentation Vrf Vdc masse interne decodeData : process (dec_dataM) dec_dataM
29
simulation globale du transfert de données
30
variations du couplage K = 0.05 couplage sous minimal K = 0.25 couplage excessif K = 0.15 couplage normal erreur de transmission
31
modélisation de puissance Délai deadtime (ns) Consommation moyenne (W) 2 0.72 10 0.67 15 0.599 20 0.517 f0clock delclock Vin_a Vin_b deadtime NMOS « on » PMOS « on » Vee vin_b vin_a vl vout Cpar CT2 Lt NMOS PMOS influence du délai dans la commande du driver DE optimal ?
32
test de transmission deadtime = 20 ns
33
détail des signaux
34
puissance digitale procedure add_dig_pwr (N: real; -- coefficient de charge signal dig_pwr, mean_dig_pwr: inout real) is constant CL: real := 0.1e-12; -- capa unitaire de charge de porte logique constant Vdd: real := 5.0; -- alim digitale et swing de tension variable v_dig_pwr : real := 0.0; begin v_dig_pwr := dig_pwr + N * CL * Vdd * Vdd; dig_pwr <= v_dig_pwr; mean_dig_pwr <= v_dig_pwr / now; end procedure add_dig_pwr; if F0clock'event and F0clock='1' then add_dig_pwr (4.0, dig_pwr, mean_dig_pwr); end if; if F0clock'event and F0clock='1' then add_dig_pwr (4.0, dig_pwr, mean_dig_pwr); end if; gate i CLCL 0 1 Power = i ½ V dd 2 f C i Act i VHDL comportemental
35
sommation sur quelques signaux de commande à suivre...
36
conclusions approche rudimentaire et partielle mais... intérêt d’outils mixtes de haut niveau en cours de mise au point – modélisation comportementale – stimuli complexes – environnement interactif modélisation de puissance – analogique : facilités du langage – digital : événementiel... à suivre !
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.