Professional Documents
Culture Documents
ANNEXE 1
I - SPECIFICATIONS
Entrées analogiques
La carte possède 8 entrées analogiques multiplexées, d'impédance d'entrée 144 K. La gamme
de tension des entrées est [-10V,+10V] . La protection des entrées permet d'appliquer jusque 35V
sans destruction.
Le signal amplifié est appliqué à un échantillonneur-bloqueur pour le maintenir constant
pendant la conversion analogique-numérique puis au convertisseur. Ce dernier est un modèle 14 bits;
la résolution des acquisitions est de 2,5mV . L'erreur totale annoncée le constructeur est de 15mV à
25°C.
La vitesse de conversion est bridée par le Bus USB. En effet, la cadence des requêtes USB
(demande+réponse) ne dépasse pas 8KHz, une requête pouvant demander jusqu'à 8 voies. La vitesse
maximale de conversion est limitée par le convertisseur lui-même à 48KHz.
Sorties Analogiques
La carte possède deux convertisseurs D/A 12 bits indépendants. Un amplificateur du type
ampli opérationnel ramène l'impédance de sortie à 50 (valeur considérée comme nulle pour la
plupart des applications). La gamme de sortie est [0,+5v] pour les deux convertisseurs; la fréquence
de rafraîchissement est de 150Hz maximum.
Entrées-sorties logiques
Le boîtier ADUSB possède 12 entrées-sorties logiques compatibles TTL (logique 5V),
répartie en deux groupes: le port 0 avec 8 bits et un port 1 avec 4 bits. Lorsqu'un bit de port est utilisé
en sortie, la fonction est du type collecteur ouvert (sortance très faible au niveau 1). Au démarrage, les
ports sont programmés en sortie (collecteur ouvert inactif , état logique 1).
Ces entrées-sorties sont accessibles sous forme d'un seul mot de 12 bits par concaténation de
Port0 et Port1, en logique directe (un "1" logique correspond à 5V sur la borne). Pour une utilisation
en milieu industriel, il est nécessaire de prévoir des interfaces complémentaires pour isoler les E/S du
calculateur et pour adapter les niveaux (relais de sortie par exemple) .
Initialisation de la carte
Syntaxe:
adusb( 'init' ) ;
Description:
La sous-fonction adusb( 'init' ) charge en mémoire la bibliothèque de fonctions
(opération assez lente), recherche le premier module disponible et initialise le module
(mise à zéro des sorties analogiques, mise à un des sorties logiques).
Acquisition des entrées digitales
Syntaxe:
a = adusb( 'digital_in' ) ;
Description:
La sous-fonction adusb('digital_in') lit la valeur des bits des deux ports et retourne les 12
bits dans une variable Matlab. L’entrée digitale, exprimée sous forme d’un entier peut
prendre des valeurs comprises entre 0 et 2047.
Ecriture d'une ou plusieurs sorties digitales
Syntaxe:
adusb('digital_out' , x )
Description:
La sous-fonction adusb('digital_out' , x ) écrit les bits des Port0 et Port1, exprimée sous
forme d’un entier x compris entre 0 et 2047. L'écriture d'un "1" en sortie ayant pour
objet de désactiver le collecteur ouvert, cette sortie pourra être utilisée comme entrée.
Exemple :
pcmes('digital_out' , 15 ) ; active les 4 bits de poids faible
Exemples :
x = adusb ('analog_in' , 0 ); acquisition sur la voie 0
X = adusb('analog_in', 4,3) ; acquisition simultanée des entrées 4, 5 et 6
y = adusb('analog_in' , 7 , 'falling') acquisition sur voie 7 avec déclenchement par
l'entrée Trigger sur front descendant
Programme exemple
Acquisition de 100 valeurs sur les voies 0 et 1 avec cadencement de 0.1s sans erreur cumulée de
timing (les incertitudes de timing sont liées au fonctionnement de Matlab sous Windows en mode
utilisateur) :
Initialisations
i=1
t_ini =heure_cpu
i ème acquisition
des entrées
autres
traitements
heure_cpu =
t_ini + i*pas ?
i=i+1
i = i_max ?
fin acquisition
et traitements
clear all;
delta_t = 0.1;
adusb('init'); %initialisation de la carte
t_ini = cputime ; %instant initial
t_wait = 0;
for i = 1 : 100 ; %analog input of channel 0 &1
X( i, : ) = adusb('analog_in' , 0,2);
t_acqu(i) = cputime - t_ini; %precise time value is stored for plotting
Veuillez consulter l'aide en ligne de la fonction adusb pour les mises à jour et correction d'erreurs
(faire "help adusb" sur Matlab)
Initialisation de la carte
Le module d'initialisation ne possède ni entrée ni sortie ni paramètres(pas de câblage à
prévoir, pas de double-clic sur le module) . Son fonctionnement est automatique: lors du
lancement de la simulation (simulation start) , la fonction est exécutée une fois . Un compte-
rendu textuel est donné dans la fenêtre de commande de Matlab (reconnaissance du module
ou absence).
Lecture d'une ou plusieurs entrées analogiques
Le module permet d'acquérir les valeurs des voies analogiques 0 à 7 du module ADUSB. La
valeur est retournée sous forme d'un vecteur (à démultiplexer pour un usage individuel des
signaux). Le paramétrage se fait par dialogue (double-clic sur la boite).
Simulation temps-réel
Par défaut, Simulink exécute les fonctions d'un schéma cycliquement avec incrémentation
du temps apparent à chaque boucle. L'incrément de temps ou step est défini par Simulink
pour donner le résultat de simulation le plus efficace possible. Pour commander un
processus, il est impératif de définir un pas d'exécution fixe (au moins égal au temps
nécessaire à l'exécution des entrées/sorties physiques et du calcul). Pour cela, paramétrer
l'écran Simulation/parameters en pas fixe avec un pas suffisant :
Pour une exécution temps-réel, il faut de plus vérifier que le temps de cycle correspond
physiquement à l'horloge du PC. Cette fonctionnalité est apportée par le module Timer
Function. Son fonctionnement est automatique : il provoque une attente jusqu'à ce que
l'incrément de temps soit écoulé. Il ne demande aucun paramétrage ni câblage: la valeur du
step est directement transmise à ce module. Attention: ne pas modifier les règles de priorité
d'exécution de Simulink définie dans ce module (accessibles par double-clic); un choix à
priorité trop élevée peut amener à perdre toute reprise en main du PC (seule possibilité:
arrêt par coupure du secteur et pertes de toutes les données courantes!)