AGENDA AGENDA
Introduzione all architettura PACIntroduzione all architettura PACProgrammazione Multithread con OS Real-TimeStrumenti di diagnostica e debugging Execution trace toolkit e Strumenti di diagnostica e debugging Execution trace toolkit e Real-Time System ManagerParallelismo hardware grazie alla tecnologia FPGAParallelismo hardware grazie alla tecnologia FPGAMetodi di comunicazione tra chip FPGA e CPU Real-TimeConclusioni e domandeConclusioni e domande
SAVE 2007 - Veronafiere 23-25 ottobre 2007
PAC (Programmable Automation Controller)NI CompactRIONI CompactRIO
Controller Real-Time Chassis riconfigurabileController Real-Time
I/O I/O
I/O
I/OI/O
I/O
Real-Tim
e
Contro
ller
I/O
I/OI/O
I/O
Connectivity ADCSignal
Moduli di I/O
Connectivity ADCSignal
Conditioning
SAVE 2007 - Veronafiere 23-25 ottobre 2007
NI CompactRIO Sistema Riconfigurabile EmbeddedEmbedded
Circuito FPGA riconfigurabileAffidabilità hardware custom,
clock programmabile,
Robustezza estremaDa -40 a 70 °C range di temperatura50 g di certificazione industriale sullo
shock 179.6 mm clock programmabile,triggering, sincronizzazione
shock
OS Real-Time VxWorks
179.6 mm
OS Real-Time VxWorks400 MHz PowerPC
CPU embedded per il controllo, l analisi, 88.1 mml analisi,
e il logging dei dati88.1 mm
Dimensioni ridotte, Bassi consumi179.6 * 88.1 mm
Da 9 a 35 VDC power1, 6 W tipica
I/O industriale ISOLATOCondizionamento del segnale da ±80 mV a ±250 V
Tutto integrato nel modulo Da 9 a 35 VDC power1, 6 W tipicaTutto integrato nel modulo
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Architettura CompactRIOLabVIEW Real-Time affidabilità softwareArchitettura CompactRIOLabVIEW Real-Time affidabilità software
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Programmazione Multithread con OS Programmazione Multithread con OS Real-TimeReal-Time
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Cosa significa Real-time?Cosa significa Real-time?
La risposta Real-time è la capacità, in modo La risposta Real-time è la capacità, in modo affidabile e senza errori, di rispondere ad un
evento o eseguire unoperazione all interno di evento o eseguire unoperazione all interno di un tempo ben definito
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Alcuni termini Real-TimeAlcuni termini Real-Time
Determinismo Una caratteristica del sistema che descrive come in modo affidabile è in grado di rispondere ad un evento o eseguire unoperazione all interno di un tempo ben definitoeseguire unoperazione all interno di un tempo ben definitoLoop Cycle Time Il tempo necessario per eseguire un cicloJitter E l oscillazione rispetto al tempo ciclo desideratoJitter E l oscillazione rispetto al tempo ciclo desideratoEmbedded Definisce un PC all interno di un grosso sistema. Tipicamente un sistema embedded è privo di interfaccia utente, Tipicamente un sistema embedded è privo di interfaccia utente, tastiera e mouse.
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Jitter Range del JitterJitterTempo di ciclo desiderato
Jittermassimo
1
massimoIte
razi
oni
2
3Itera
zion
i
3
44
5Tempo ciclo (secondi)Tempo ciclo (secondi)
Jitter = Variation in Loop Cycle TimeT = Loop Cycle Time. 1/T = Loop RateT = Loop Cycle Time. 1/T = Loop Rate
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Alcuni esempi di applicazioni Alcuni esempi di applicazioni Real-Time
Performance deterministiche
Massima affidabilità
Sistema autonomo
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Strumenti di sviluppo Real-TimeStrumenti di sviluppo Real-Time
Compilatore
Debugger
LinkerLabVIEW Real-Time
Softw
are
Strumenti di analisi
Debugger
Softw
are
Strumenti di analisi
RTOS
Execution Trace Tool
Microprocessore
RTOSLabVIEW Real-Time
Target
Hard
war
e
I/O DeviceHard
war
e
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Architettura Real-TimeArchitettura Real-Time
Programma sul target RTPC Windows (HMI)
Comunicazione Inter-ThreadCommunication
Normal Priority Loop
Time-Critical Loop
Interfaccia utente Loop Looputente
Salvataggio datiSalvataggio dati
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Host ProgramHost Program
Gira sul PC HOST (tipicamente Windows), dove necessario come Windows), dove necessario come interfaccia utenteGestisce task non deterministici
PC Windows (HMI)
Gestisce task non deterministiciPrincipalmente comunicazione con il programma target (RT)Interfaccia programma target (RT)Data loggingAnalisi dei dati
Interfaccia utente
Analisi dei datiCondivisione dei dati con altri sistemi, bus di campo o comunicazione bus di campo o comunicazione standard
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Programma sul target RTProgramma sul target RT
I processi Higher priority hanno precedenza sui processi lower priority
I processi deterministici (Higher priority) sono time-critical tutti gli altri sono definiti in lower priority
Il Multithreading consente di definire le priorità dei vari processi
Programma sul target RT
Inter-ThreadCommunication
Normal Priority
Time-Critical Priority
LoopCritical
Loop
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Metafora del Real-Time Multithreading
PrioritàTime-Critical(solo per un VI)
Priorità normale(solo per un VI)
Priorità normale
Tasks Ambulance
Meccanico(Processore)
Centralinista(Sistema operativo) (Processore)(Sistema operativo)
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Metodo Round-RobinMetodo Round-Robin
CentralinistaCentralinista(Sistema operativo)
Meccanico
Normale
Meccanico(CPU)Normale
NormaleNormale
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Metodo Preemptive
TimeCentralinistaAmbulance
TimeCritical Centralinista
(Sistema operativo)Ambulance
Normale
Meccanico(CPU)Normale (CPU)Normale
Normale
SAVE 2007 - Veronafiere 23-25 ottobre 2007
LabVIEW Real-Time Scheduling
Time Centralinista
LabVIEW Real-Time Scheduling
AmbulanceTimeCritical
Centralinista(Sistema operativo)
Ambulance
Normale
Meccanico(CPU)Normale (CPU)Normale
Normale
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Modalità StarvationNo sleep causes starvationNo sleep causes starvation
B. Above Normal
A. Time Critical
Executing
C. Normal
B. Above NormalWaiting
TimeTimeSleep added may still starve some threads
B. Above Normal
A. Time CriticalSleepingExecutingWaiting
C. Normal
B. Above Normal
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Trasferimento dati tra i threadsTrasferimento dati tra i threads
Programma sul target RT
Inter-ThreadCommunication
Normal Priority
Time-Critical CommunicationPriority
LoopCritical
Loop
Metodi di comunicazione Inter-Thread
Good: Global VariablesGood: Global Variables
Better: Functional Global Variables
Best: Real-Time FIFO
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Real-Time FIFO VIs Best Real-Time FIFO VIs Best
Programma sul target RT
Inter-ThreadCommunication
Normal Priority
Time-Critical CommunicationPriority
LoopCritical
Loop
E possibile definire le dimensioni del bufferLe dimensioni del buffer sono importanti per non perdere datiLe dimensioni del buffer sono importanti per non perdere datiAvviso sull eventuale perdita dei datiUtilizza un trasferimento dati deterministicoUtilizza un trasferimento dati deterministico
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Strumenti di diagnostica e debugging Strumenti di diagnostica e debugging Execution trace toolkit e Real-Time
System ManagerSystem Manager
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Real-Time System Manager (RTSM)
Visualizza la memoria di sistema Visualizza la memoria di sistema e l utilizzo della CPU
Salva su file eventi fuori rangeSalva su file eventi fuori rangeLutilizzo della CPU da differenti livelli di prioritàlivelli di priorità
Visualizza lo status dei VIsRunning, Idle, StoppedRunning, Idle, Stopped
Start/stop dei VI embedded VIs senza una connessione sul front paneluna connessione sul front panel
SAVE 2007 - Veronafiere 23-25 ottobre 2007
LabVIEW Execution Trace ToolkitLabVIEW Execution Trace ToolkitLinterfaccia
dell Execution Trace VI che gira sulTarget dell Execution Trace Toolkit gira sul PC
VI che gira sulTarget
Quando l esecuzione è completata tutti I VI
e gli eventi dei Mentre il VI è in
e gli eventi dei threads vengono
inviati al trace tool sul PC
Mentre il VI è in esecuzione tutti gli
eventi sono registrati su un buffersu un buffer
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Parallelismo hardware grazie alla Parallelismo hardware grazie alla tecnologia FPGA
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Architettura CompactRIOLabVIEW FPGA affidabilità HardwareArchitettura CompactRIOLabVIEW FPGA affidabilità Hardware
SAVE 2007 - Veronafiere 23-25 ottobre 2007
FPGA Field Programmable Gate ArraysFPGA Field Programmable Gate Arrays
FPGA schema e componentiFPGA schema e componentiRHK1
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Definire la logica FPGA con LabVIEWDefinire la logica FPGA con LabVIEW
Modulo LabVIEW FPGA Non è necessario Non è necessario conoscere il linguaggio VHDLEsecuzione parallela Esecuzione parallela VERADeterministicoDeterministico
RHK3
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Esempio FPGA semplificato
FEImplementare una logica su un FPGA: F = {(A+B)CD}
E FEECodice LabVIEW FPGA
AAB
CDD
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Cosa è possibile fare con LabVIEW FPGA?FPGA?
I/O Custom , timing e triggeringControllo affidabile ad elevata velocitàControllo affidabile ad elevata velocitàScarica la CPU dal processing Scarica la CPU dal processing Personalizzare IPProtocolli digitali specializzatiProtocolli digitali specializzati
SAVE 2007 - Veronafiere 23-25 ottobre 2007
DAQ IntelligenteDAQ Intelligente
CountersClocks
Simultaneous Analog I/O
CountersCustom CountersPWM
Clocks
Custom Timing and SynchronizationBuilt-in MathFunctionsSimultaneous Analog I/OMultiple Scan RatesCustom Analog Triggering
Custom CountersCustom Timing and SynchronizationFunctions
SAVE 2007 - Veronafiere 23-25 ottobre 2007
La decisione è presa dal softwareLa decisione è presa dal softwareSistema tradizionale
Possibile Crash
Sistema operativo
Application Softw
areIngresso
Hardware
Sistema operativo
Driver API
Application Software
Calcolo
~25 sUUT
Hardware
Sistema operativo
Driver API
Application Software
Calcolo
~25 sTempo di risposta
UUTSistem
a operativo
Application Software
Uscita
SAVE 2007 - Veronafiere 23-25 ottobre 2007
La decisione è presa dall hardwareLa decisione è presa dall hardwareSistema basato su FPGA
Altissima affidabilità
Sistema operativo
Application Software
Ingresso
Hardware
Sistema operativo
Driver API
Application Software
Calcolo
25 ns*UUT
Hardware
Sistema operativo
Driver API
Application Software
Calcolo
25 ns*Tempo di risposta
UUTSistem
a operativo
Application Software
Uscita
* Risposta veloce con 80 e 120 MHz di clock* Risposta veloce con 80 e 120 MHz di clock
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Controllo analogico oltre i 50 kHzControllo analogico oltre i 50 kHz
Controllo in Software (RT) Controllo in FPGASingle PID circa 70 kHz (dual core)
Single PID oltre 300 kHz
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Controllo analogico oltre i 40 kHzControllo analogico oltre i 40 kHz
Controllo in Software Controllo in FPGADue PID Loop circa 30 kHz (RT) Due PID Loop oltre 300 kHz
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Controllo analogico oltre i 40 kHzControllo analogico oltre i 40 kHz
Controllo in Software Controllo in FPGAQuattro PID Loop circa 25 kHz Quattro PID Loop oltre 300 kHz
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Scarica la CPU dal processingScarica la CPU dal processing
Simulazione di sensoriSimulazione LVDT
Simulazione di sensoriAlbero a camme e ruota fonicaLVDTsLVDTs
Codifica e decodifica di sensoriTachimetricaTachimetricaPWMEncoder in quadratura
Encoder in quadratura
Encoder in quadratura
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Personalizzare IPPersonalizzare IP
Connectività verso il VHDL e strumenti terze parti Connectività verso il VHDL e strumenti terze parti per l Intellectual Property Connettività rapida verso gli I/OPanello interattivo per il cambiamento di parametriModularità del codice
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Alcune performance della logica FPGAAlcune performance della logica FPGA
PID analogici Multi-loop embedded oltre i 300 kHzPID analogici Multi-loop embedded oltre i 300 kHzLoop di controllo digitali fino a 1 MS/s. Esecuzione di un singolo ciclo fino a 40 MHz (25 ns). Grazie alla capacità di processing parallelo, laggiunta Grazie alla capacità di processing parallelo, laggiunta di computazioni non necessariamente riducono la velocità dell applicazionevelocità dell applicazione
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Metodi di comunicazione tra chip FPGA e Metodi di comunicazione tra chip FPGA e CPU Real-TimeCPU Real-Time
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Comunicazione tra l FPGA e la parte Real-Timeparte Real-Time
Real-Time Host VIReal-Time Host VI
FPGA VI
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Sincronizzazione e BufferingSincronizzazione e Buffering
I metodiHandshakingHandshakingInterruptsDirect Memory Access
RHK7
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Slide 43
RHK7 modified textDr. Robert H. King; 03/04/2007
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Metodo HandshakingMetodo Handshaking
Handshaking Verifica che il device sia pronto a trasmettere o ricevere
Sincronizzazione Hand-shakedSincronizzazione Hand-shakedL applicazione host utilizza controlli ed indicatori booleani per coordinare le operazioni con il target (flag per il dato disponibile coordinare le operazioni con il target (flag per il dato disponibile e il dato letto)Richiede polling
SAVE 2007 - Veronafiere 23-25 ottobre 2007
HandshakingHandshaking
1. L FPGA acquisisce I 1. L FPGA acquisisce I dati e scrive TRUE al controllo Data Available.Available.
2. Quando Data Available è TRUE l host legge i dati.l host legge i dati.
3. Dopo che i dati sono stati letti, l host scrive vero al Data scrive vero al Data Read.
4. Il loop FPGA è completo quando completo quando Data Read è vero. Note: Utilizzare vettori di piccole
dimensioni
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Metodo InterruptsMetodo Interrupts
Comunica attraverso una linea fisica hardwareIl trigger FPGA manda un segnale all host.Elimina il polling.Elimina il polling.Consente all host di eseguire altre operazioni mentre attende il segnale di interruptUtilizzare gli Interrupts quando l FPGA scambia con l host pochi dati e l host fa altre operazioni di processing
SAVE 2007 - Veronafiere 23-25 ottobre 2007
InterruptsInterruptsImplementazione InterruptImplementazione Interrupt
RHK9SAVE 2007 - Veronafiere 23-25 ottobre 2007
Slide 47
RHK9 Replaced graphic to match manualDr. Robert H. King; 27/02/2007
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Metodo Direct Memory AccessMetodo Direct Memory AccessTrasferisce i dati dall FPGA direttamente alla memoria della Trasferisce i dati dall FPGA direttamente alla memoria della CPU RT attraverso il bus masteringGestisce grosse mole di datiMigliori performance rispetto alla local FIFOMigliori performance rispetto alla local FIFOL host processa i dati mentre l FPGA trasferisce i dati alla memoria hostmemoria hostConsiste in due parti la parte FIFO e la parte hostL FPGA scrive i dati un elemento alla volta verso la memoria FPGAFPGAIl motore DMA trasferisce i dati attraverso il PCI bus verso la memoria hostmemoria host
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Direct Memory AccessDirect Memory Access
Come implementare un Come implementare un DMA FIFO:
L utente definisce il numero di elementinumero di elementiIl motore DMA prova a trasferire i dati trasferire i dati all interno del TimeoutLa DMA FIFO.Read utilizza la CPU per utilizza la CPU per verificare la presenza dei dati richiesti
RHK10
RHK11
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Slide 49
RHK10 wording modified in sub titlewording modified in textadded graphicchanged order of slidesDr. Robert H. King; 27/02/2007
RHK11 modified textDr. Robert H. King; 03/04/2007
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Processo di programmazione di FPGA in LabVIEWin LabVIEW
Convertire un VI FPGA in un codice eseguibileConvertire un VI FPGA in un codice eseguibileIl modulo FPGA compila il VIIl codice grafico viene convertito in VHDL Il codice grafico viene convertito in VHDL Il compilatore Xilinx ISE crea un circuito dal VHDLIl compilatore ottimizza l implementazioneIl compilatore ottimizza l implementazione
Il risultato finale è un bitstream file Bitstream si carica in run time
Windows OS
LabVIEW (cRIO)
Bitstream si carica in run timeBitstream e si ricarica al power-up
On-board flash memoryFPGA VI (1) Intermediate Files
(2) Bit File
CompileServerBit File Embedded
Comunica via BUS PCI con il controller
RHK14
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Slide 50
RHK14 rearranged graphic and textDr. Robert H. King; 29/03/2007
SAVE 2007 - Veronafiere 23-25 ottobre 2007
Top Related