Traitement des informations

I- Description

La carte «Commande» permet de centraliser et de traiter les informations venant des cartes «Détection de ligne» et «Détection d'adversaire» pour les envoyer vers la carte «Puissance» afin que celle ci actionne les moteurs.

Principe

Elle est divisée en cinq grandes fonctions principales :

Schéma de principe COMMANDE

Le but de cette fonction est de retarder les huit signaux d´entrées (cf. FP2)

FP1 : Temporisation

Cette fonction permet de détecter si au moins une des huit entrées est active. Elle est réalisée grâce à une PAL 16V8 (cf. documentation technique en annexe). Celle ci impose un retard entre ses entrées et sa sortie de 25 ns. D´où l´utilité de la fonction FP1 pour être sûr d´avoir en entrée de FP3 le même code de huit bits qu´au départ.

FP2 : Détection d´au moins une entrée active

Cette fonction réalisée à l´aide de bascule D permet la mémorisation du dernier code d´entrée. L´ordre de mémorisation est donné par la sortie de la fonction FP2.

FP3 : Mémorisation

Le code d´entrée, mémorisé par FP3, est envoyé dans une mémoire (EPROM) qui ici fait office de transcodeur. C´est à dire que pour un code d´entrée donné, on aura en sorties de celle-ci deux combinaisons binaires (quatre bits) prédéfinies (cf. Tableau mémoire en annexe)

FP4 : Transcodage

Cette fonction est la plus complexe de la carte. Elle est réalisée à l´aide de deux décompteurs (quatre bits). Les combinaisons de sorties de FP4 sont envoyées sur les décompteurs. Ceux-ci génèrent alors par leurs décomptages deux signaux MLI.

FP5 : Génération des signaux de sorties

II- Calculs

Dans cette partie, je vais détailler les calculs permettant de dimensionner les composants...

Vih (573) = (Vcc) Ž e-t/t --> ln (Vih (573)/Vcc) = -t/t
t = t Ž ln (Vih (573)/Vcc) --> R = t / C Ž ln (Vih (573)/VCC)
t = Tpd max + Th max = 25.10-9 + 15.10-9 = 40.10-9s = 40 ns
Tpd max --> temps de propagation (entrées/sorties) de la PAL1 (16V8) = 25 ns
Attention au Th max (TholdTime) du 74HCT573

Th max --> Délai d´activation des sorties après un coup d´horloge = 15 ns
Calcul du réseau RC de FP1

Vcc = 5 V
On fixe C = 10 pF
La documentation technique donne Vih (573) = 2 V
R = 40.10-9/10.10-12.ln(5/2) = 4,3 kW --> Valeur normalisée = 4,7 kW
R = 40.10-9/10.10-12.ln(5/2) = 4,3 kW --> Valeur normalisée = 4,7 kW
Par mesure de sécurité on prend R = 10 kW
Vérification :

Schéma du réseau RC

Vcc - R.Iih (573) ³ Vih (573)
Pour un 74LSxx --> Iih = 20 µA --> Vih = 4,9 V
Pour un 74HCTxx --> Iih << 20 µA donc Vih > 4,9 V > Vihmin = 2 V
Conclusion :
R = 10 kW & C = 10 pF

Calcul de R16 et R17

Vih = 2 V
Iih = 10 µA
R17 £ (5-Vih)/Iih = (5-2)/10.10-3
R17 £ 300 kW
On prend R17 = 10 kW
R16 £ (5-Vih)/2Iih = (5-2)/20.10-3
R16 £ 150 kW
On prend R16 = 10 kW

Vil = (U0-Vcc) e(-t/t) + Vcc
Vil = 0,8 V U0 = 0 V Vcc = 5 V t = 1 µs R = 10 kW
t --> temps minimum de Reset de la 22V10 & de la 16V8
C = -t/(R.ln[(-0.8+5)/5]) = 573 pF
Par sécurité on prend C21 = 1 nF

Calcul de R13 et C9

Uc(t) = (U0 - Vcc) e -(t/RC) + Vcc
3 = (0 - 5) e -(t/RC)
ln (2/5) = -(t/RC)
On fixe R13 = 10 kW
Ce qui donne C9 = 22 pF

Calcul de R9, R10, R11, R12, R18

Vcc - R × IIL < VIL
R = 10 kW

III- Programmes

a) PAL1 (OU à huit entrées)

library ieee;
use ieee.std_logic_1164.all;
entity robot is
port (e1,e2,e3,e4,e5,e6,e7,e8,reset: in std_logic;
s: out std_logic);
attribute pin_numbers of robot: entity is
"e1:1 e2:2 e3:3 e4:4 e5:5 e6:6 e7:7 e8:8 reset:9 s:14 ";
end robot;
architecture combinatoire of robot is
begin
s <= e1 or e2 or e3 or e4 or e5 or e6 or e7 or e8 or not(reset);
end combinatoire;

b) PAL2

library ieee;
use ieee.std_logic_1164.all;
entity robot is
port (reset, clk, d, adv, jack, mlid, mlig, e9 :in std_logic, cmlid, cmlig, shd, shg :out std_logic);
attribute pin_numbers of robot : entity is
"clk :1 d :2 reset :3 mlig :4 mlid :5 jack :6 adv :7 e9 :8 cmlid :14 shd :15 shg :21 cmlig :23";
end robot;
architecture memoire of robot is
signal q1, q2 :std_logic;
begin
process (reset, clk)
begin
if reset = '0'
then q1 <= '0';
elseif clk'event and clk = '1'
then q1 <= d;
end if;
end process;
q2 <= not(q1) and adv and jack;
cmlid <= q2 and mlid;
cmlig <= q2 and mlig;
shd <= not (mlid and e9);
shg <= not (mlig and e9);
end memoire;

EEPROM