Documento PDF - Università degli Studi di Padova

UNIVERSITÀ DEGLI STUDI DI PADOVA
DIPARTIMENTO DI TECNICA E GESTIONE DEI SISTEMI INDUSTRIALI
CORSO DI LAUREA TRIENNALE IN INGEGNERIA
MECCANICA E MECCATRONICA
CURRICULUM MECCATRONICO
USO DI MICROCONTROLLORE PER LO
SVILUPPO DI UN SISTEMA DI
COMUNICAZIONE E GESTIONE ALLARMI IN
UN ROBOT PER LA RIABILITAZIONE
relatore: Prof. ROBERTO OBOE
laureando: ENRICO REGINATO
anno accademico: 2013/2014
ROBOT PER RIABILITAZIONE
..la Riabilitazione
La ricerca clinica ha dimostrato
che i soggetti con lesione del sistema
nervoso centrale hanno grande
potenziale di recupero se
seguono una
ripetitiva
riabilitazione
frequente
intensa
..e i Robot
+ configurabile
+ riduzione dei costi
..ok, quindi..
..COSA SONO?
La mano del fisioterapista
..COME SONO FATTI?
• Struttura meccanica
• Interfaccia aptica (feedback)
• Unità di controllo (autonomo)
Sistema di COMUNICAZIONE e gestione ALLARMI
OBBIETTIVI
ROBOT
Autonomo ma
controllo e
supervisione
del medico
Sicurezza
assoluta per il
paziente
Scelta MCU
..dove agire
..sull’Unita’ di
controllo..
COMUNICAZIONE
•Comandi
•Dati
•Comunicazione Assente
ALLARMI
•Allarme Esterno
•Loop Software
•Registro Allarmi
•Comunicazione Assente
..cervello del
Robot
SCELTA MCU
Tower system:
• MCU (no PC)
• per sviluppo
• Modulare
(50+ moduli)
Caratteristiche
PSX30
MPC5643L
K60_120
analogiche
pwm
pwm
DAC/pwm
comunicazione
Seriale+ Eth
seriale
Seriale + Eth
sicurezza
SI (sor)
SI (sor)
SI
IDE e supporto
NO (legacy)
NO
SI
K60_120 + CodeWarrior + PE
K60_120 + CodeWarrior + PE
• Serie Kinetics (industrial)
• CPU (@120MHz+FPU)
• Memoria (1M/128KB)
• Moduli (MCU!=PC)
•
•
•
•
•
•
Clock (cpu+other..)
UART (Seriale)
WDOG e Timer
NVM
GPIO (I/O) e PORT
RTC
K60_120 + CodeWarrior + PE
Esempio configurazione moduli in una MCU
..i clock
K60_120 + CodeWarrior + PE
Cos’è PE?..
Processor Expert
librerie componenti
Impostazioni e
..esempio:
Codice
(funzionalità)
COMUNICAZIONE MCU-PC_REMOTO
..cosa scambio?
COMANDI
(fixed length)
Sistema a Pacchetto
COMANDI
DATI
+
DATI
(variable length)
HEAD + BODY
COMUNICAZIONE MCU-PC_REMOTO
..sicurezza,
..il PC (supervisore) c’è ancora?
mySerialParse_waitForPcResponce()
..e i messaggi corrotti?
11010011101100 000
1011
01100011101100 000
01011
00111011101100 000
001011
000111011101100 000
0001011
00000001101100 000
00000001011
00000000110100 000
000000001011
00000000011000 000
0000000001011
00000000001110 000
00000000001011
00000000000101 000
00000000000101 1
00000000000000 100
+
flag (global_serialCom_msgReceived)
CRC
(Cyclic Redundancy Check)
<--input right padded by 3 zero bits
<--divisor
<--result (the firsts four bits are the XOR with the..
..divisor, the rest of the bits are unchanged)
<--divisor..
<--the divisor moves to align with the next 1 in
..divider (..can move more than one byte at time)
<--reminder(3bits) division algorithm
..stops here as quotient is equal to zero
11010011101100 000
1011
01100011101100 000
01011
00111011101100 000
001011
000111011101100 000
0001011
00000001101100 000
00000001011
00000000110100 000
000000001011
00000000011000 000
0000000001011
00000000001110 000
00000000001011
00000000000101 000
00000000000101 1
00000000000000 100
<--input right padded by 3 zero bits
<--divisor
<--result (the firsts four bits are the XOR with the..
..divisor, the rest of the bits are unchanged)
<--divisor..
<--the divisor moves to align with the next 1 in
..divider (..can move more than one byte at time)
<--reminder(3bits) division algorithm
..stops here as quotient is equal to zero
COMUNICAZIONE MCU-PC_REMOTO
..con la seriale (ma universale)
Inhr1_RecvChar() & Inhr1_SendChar()
..ma nella pratica?
..si fa cosi..
..Algoritmo per l'interpretazione dei
pacchetti..
..ALGORITMO PER
INTERPRETAZIONE
DEI PACCHETTI..
ALLARMI
timeout comunication
(lettura troppo lenta)
timerMaxLettura
myTimerLettura_Counter (flag )
&
lost comunication
(comunicazione persa)
timerLostCom
global_serialCom_flag (flag )
..esempio attivazione timer (PIT)
..USO DEL WDOG:
• Continous WDOG servicing
• down counter (timer)
• Timeout : salva allarme & reset MCU
ALLARMI
..il REGISTRO ALLARMI
•
•
•
•
•
Allarmi
Hard fault
Bus usage fault
Allarme Ext.
WDOG timeout
Lost comunication
Salva..
0
tipo allarme
+
data/ora
..in memoria
1
2
...
38
39
..ALLARME ESTERNO:
GPIO + IRQ
Aspetta riarmo
bordo macchina
(SW_1)
asincrono
Aspetta riarmo
software
(messaggio da PC)
last allarm
RISULTATI OTTENUTI
COMUNICAZIONE
TIPO DATO
comando
..controllo remoto
uscita
RISULTATI OTTENUTI
COMUNICAZIONE
TIPO DATO
comando
..PC ‘sono pronto’
RISULTATI OTTENUTI
COMUNICAZIONE
TIPO DATO
dato
(variable length)
..CRC corrotto
RISULTATI OTTENUTI
COMUNICAZIONE
TIPO DATO
comando
..tutti i comandi
supportati
CONCLUSIONI
..COMUNICAZIONE:
• Affidabile
• Comandi base
efficaci
CRC
comunica allarmi
uscita controllo remoto
imposta data e ora
..ALLARMI:
• efficaci (test comunicazione persa, lenta, IRQ Ext.)
• ricostruzione temporale situazione di allarme (registro allarmi)
..orientato a sviluppi futuri:
• Comunicazione universale
• Scalabile
leggo/scrivo carattere per carattere
sistema a pacchetti
..MCU e IDE:
• supporto community
• CodeWarrior+PE binomio perfetto per sviluppo