1
Sviluppo di codice Master per protocollo di
comunicazione ETherCAT su microcontrollore netX
Relatore
Prof. Roberto Roncella
Controrelatore
Prof. Sergio Saponara
Tutor
Ing. Francesco Viterbo
Candidato
2
INDICE
INTRODUZIONE ... 6
SOMMARIO ... 8
1. FIELDBUS E SUE APPLICAZIONI ... 11
1.1 INTRODUZIONE ... 11
1.2 STORIA E SVILUPPO DEL FIELDBUS ... 13
1.2.1 Origine ... 13
1.2.2 Sviluppo del Fieldbus ... 16
1.2.3 Requisiti del Fieldbus ... 16
1.3 IL MODELLO OSI ED IL FIELDBUS ... 21
1.3.1 Il modello OSI ... 21
1.3.2 Il modello OSI nel Filedbus ... 24
1.3.3 Architettura del modello nel Filedbus ... 24
1.3.4 Meccanismi OSI di base e Fieldbus ... 28
1.4 STANDARD CORRENTI ... 30 1.4.2 Lo standard IEC 61158 ... 30 1.4.3 Standard ISO ... 31 1.4.4 Standard CENELEC... 31 1.4.5 EN 50170 [21] ... 32 1.4.5 EN 50295 ... 32
1.4.6 Lo Standard IEC 61 784: Industrial Ethernet ... 32
1.5 CAMPI DI APPLICAZIONE ... 36
Applicazioni di produzione discreta ... 36
Processi di controllo industriali ... 37
Building Automation ... 38
Controllo di network di servizio ... 38
Sistemi di trasporto ... 39
Sistemi embedded ... 39
1.6 CONCLUSIONI ... 40
RIFERIMENTI ... 41
3
2. ETHERCAT, PROFILO FIELDBUS ... 44
2.1 ETHERCAT E FIELDBUS ... 44
2.2 ETHERCAT ED ETHERNET ... 44
2.3 OBIETTIVI DELLO SVILUPPO DI ETHERCAT ... 45
2.4 PRINCIPIO DI FUNZIONAMENTO ... 46 2.4.1 Physical Layer ... 47 2.4.2 Topologia ... 48 2.5 PROTOCOLLO DI COMUNICAZIONE ... 49 2.5.1 EtherCAT Header... 50 2.5.2 Datagramma EtherCAT ... 50 2.5.3 Working Counter ... 51
2.5.4 Elaborazione dei telegrammi ... 51
2.5.5 Trasferimento dei telegrammi ... 52
2.5.6 Indirizzamento... 54
2.6 Fieldbus Memory Management Unit (FMMU) ... 56
2.7 SYNC MANAGER ... 57
2.8 DISTRIBUTED CLOCK ... 59
2.9 APPLICATION LAYER ... 61
2.10 SERVIZI MAILBOX ... 63
2.11 ARCHITETTURA DEL MASTER ... 64
Application Programming Interface (API) ... 66
Configuration services ... 66
State Machine ... 66
Process Data ... 66
Cyclic Data Services ... 66
Acyclic Data Services ... 66
Worker Threads ... 67
Asynchronous Services ... 67
Diagnostic Services ... 67
Distributed Clocks (DC) ... 67
Mailbox Services ... 67
Ethernet Frame Dispatcher ... 67
Virtual Switch ... 67
Redundancy Handler ... 68
4
2.12 ARCHITETTURA DEGLI SLAVE ... 68
EtherCAT Slave Information File ... 68
Hardware dello Slave ... 69
EtherCAT Slave Controller (ESC) ... 69
EtherCAT Interfaces (Ethernet/EBUS) ... 70
EtherCAT Processing Unit ... 71
Application Layer/ Host controller ... 74
2.13 ALTRE CARATTERISTICHE ... 75
2.14 CONCLUSIONI ... 80
BIBLIOGRAFIA ... 81
3. IL MICROCONTROLLORE netX ... 83
3.1 INTRODUZIONE ... 83
3.2 ARCHITETTURA DEL netX ... 83
3.3 La CPU ARM ... 84
3.3.1 Introduzione ... 84
3.3.2 Architettura della CPU ... 85
3.3.3 La pipeline ... 85
3.3.4 Architettura della memoria dell‘ARM9 ... 86
3.3.5 MEMORY MANAGEMENT UNIT ... 87
3.4 DESCRIZIONE DEL SISTEMA netX ... 87
3.4.1 Struttura del bus ... 87
3.4.2 memory Map ... 89
3.4.3 Host Interface ... 91
3.4.4 netX Communication controller ... 92
3.4.5 Communication channels ... 93
3.5 HARDWARE ABSTRACTION LAYER ... 95
3.6 rcX – IL SISTEMA OPERATIVO REAL-TIME DEL netX ... 96
3.7 TOOLS ED EVALUATION BOARD ... 97
BIBLIOGRAFIA ... 98
4. L'AMBIENTE DI SVILUPPO E LA CONFIGURAZIONE DELLE RISORSE ... 99
4.1 HiTOP ENVIROMENT ... 99
4.2 CONFIGURAZIONE DELLE RISORSE HARDWARE: IL FILE Config_netX.c . 101 4.3 L‘APPLICATION-ENTRY CODE (o Start-Up Code) ... 105
4.4 CONFIGURAZIONE DELL‘HARDWARE ABSTRACTION LAYER (HAL) ... 106
5
4.6 CONFIGURAZIONE DELLE RISORSE SOFTWARE ... 107
4.7 ARCHITETTURA DEL SOFTWARE ... 109
4.7.1 Il Task Reference Model ... 110
4.7.2 Comunicazione tra i task WebServer e Master ... 112
5. IL TASK WEB SERVER ... 114
5.1 IL LATO CLIENT ... 114
5.1.1 La pagina della Process Image ... 115
5.1.2 La pagina dei registri ... 118
5.2 ORGANIZZAZIONE DEL TASK ... 120
5.2.1 Il modulo Web Server_Process ... 120
5.2.2 La libreria LwIP per lo stack TCP/IP ... 121
5.2.3 Il modulo httpd.c: implementazione del protocollo HTTP ... 123
5.2.4 I comandi Server Side Include (SSI) ... 123
5.2.5 La Common Gateway Interface (CGI) ... 124
5.2.6 Il modulo fsdata.c: integrazione delle pagine web nel codice ... 124
6. IL TASK MASTER ... 126
6.1 LA LIBRERIA SIMPLE OPEN EtherCAT MASTER (SOEM) ... 126
6.2 INTERFACCIAMENTO CON L‘HARDWARE: IL NETWORK INTERFACE CONTROLLER DRVER ... 127
6.3 OTTIMIZZAZIONE DELLA LIBRERIA SOEM ... 128
6.4 I MODULI EcCreatedevice ,InitCmds, Cyclic: XML CONFIGURATION TOOL . 129 6.4.1 Limiti della libreria SOEM ... 129
6.4.2 Requisiti del tool di configurazione ... 130
6.4.3 Struttura del tool di configurazione ... 131
6.5 IL MODULO “Ecat_function”: IMPLEMENTAZIONE DELL‘APPLICATION LAYER ... 139
6.6 ORGANIZZAZIONE DEL TASK ... 142
6.5.1 IL MODULO Master_Process ... 142
6.7 LA TEMPORIZZAZIONE DEI PACCHETTI CICLICI ... 143
7. TEST ... 144
7.2 TEST INDIPENDENTI ... 146