• Non ci sono risultati.

Dimensione dei messaggi per il ontrollo di un motore passo-passo

Messaggio Senza odi a Con odi a

StatusInfo 378bytes 55bytes

StatusRequest 301bytes 51bytes

Figura 7.10Andamentodeltempodirisposta. Ilpi oin prossimitàdelmes-

saggio 84èdovutoalfatto he il messaggiodi rispostaera orrottoedèstato

quindi s artatodal lient. La seriale èimpostata su una trasmissione a 9600

Con lusioni

Sono stati ri hiamati innanzitutto i on etti generali relativi ai generatori di

odi eeaimi ro ontrolloriPIC,mettendoin evidenzaqualisonole aratteris-

ti he he essipresentano. Questoha onsentito di introdurrelostatodell'arte

deisistemioperativiperPIC, perpoipassareadanalizzareilgeneratoredi o-

di eimplementato,relativoallarealizzazionedellaparte`dinami a'delsistema

operativo.

Ilsistema operativoimplementatopresentaleseguenti aratteristi he:

S heduling ooperativo on prioritàbasatasutimer ondiviso,

Numeroditaskdipendentees lusivamentedallamemoriadisponibile,

Comuni azionitramitemessaggi,

Fa ileportabilitàsututtiiPIC dellafamiglia18F;

Gli obiettivi di questa tesi possono ritenersi raggiunti. Il porting del si-

stema suun'ar hitettura piùpi olael'integrazione onl'infrastrutturaRobo-

ti s4.NET, seppur on l'uso di un proxy intermedio, sono stati realizzati on

risultati soddisfa enti. La strada he abbiamointrapresosembra promettente

an hein onsiderazionedelfatto helaMi ro hiphaprodottore entementedei

PIC di nuovagenerazione heintegranoun ontrollerEthernet onbusdedi a-

to. Èpertantopossibileeliminaredenitivamenteilnodointermedio(inquesto

aso un personal omputer tradizionale) su ui gira il pro esso proxy, on un

ulterioreabbassamentodei ostiedell'adabilitàdelsistema.

I mi ro ontrollori PIC, per leloro aratteristi he, stanno diventando degli

generazione( omelaWildFire), sonosenzadubbiodeivantaggidaprenderein

onsiderazioni. Troppo spesso in ambito industriale si ri er ano omponenti

hardware sempre più prestanti, quando basterebbe sfruttare al meglio quelli

onsideratierroneamente`obsoleti'.

Il asodistudiopresoin onsiderazione, ioèil ontrollodiunmotorepasso-

passo, è soltanto un esempio dell'ampia gamma di possibili appli azioni he

possono essererealizzate in modoe onomi o ed adabile. Tanto per rendere

an orapiù hiari ivantaggie onomi i, il ostodi questosistema èpassatoda

ir a230Euro onl'utilizzodiunas hedaWildFire( osto150Euro)a ir a80

Ambiente di sviluppo e

Compilatore

È statoutilizzato l'ambiente di sviluppo MPLAB IDE v.7.43 della Mi ro hip

(g. A.1). MPLABnonèstrettamentevin olatoadunparti olarelinguaggiodi

Figura A.1 L'ambientedisviluppoMPLABIDE

programmazioneoadundeterminatoprogrammatoremarappresentaunasorta

Compilatore C18

Il ompilatoreC18 èpienamente ompatibile on l'MPLAB IDEe on il pro-

grammatore MPLAB ICD 2. Analiziamo adesso al une delle aratteristi he

prin ipali 1

.

Le fasi della ompilazione

Ing. A.2èpossibilevedere indettaglio unesempiodellefasi di ompilazione

di un programma C on il C18. Nell'esempio, i due le file2. e file3.

vengono ompilatidalC18, hegeneraiduelefile2.oefile3.o. Questile

vengonopoipassatiallinker (MPLINK),assiemeadunterzole,s ript.lkr,

pergenerareileoutput.hex he ontieneil odi ema hinada ari arenella

memoriaprogrammadelPIC.Illinkergenerainoltrealtriduele: output. of

eoutput.map. Il primo è il relativole in formato COFF, mentre il se ondo

ontiene informazioni (allo azione, indirizzoe dimensione) di ognisezione del

programma.

Illes ript.lkr,dettoan helinkers ript serveallinkerpersaperequal'è

ilmodelloesattodiPIC su uideveessere ari atoil odi ema hina.

Il LinkerS ript

L'MPLINKnonpuò eettuare orrettamentelafasedi linkingsenza unlinker

s ript. Il linker s ript fornis e tutto iò he è ne essario sapere per allo are

orrettamente il programma nella memoria del PIC: quali sono i registri ge-

neralidisponibilieloroallo azione,quantamemoriaprogrammaèdisponibile,

et . OgniPIC haunpropriolinkers riptdidefault, hepuòesseremodi ato,

se ondoleesigenze,dallosviluppatore. Illinkers riptèsostanzialmenteunase-

quenzadi omandi hedes rivonoilPICallinker.Questi omandiappartengono

aquattro ategoriedierenti:

Comandi hefornis onoinformazionisuile hedevonoesserelinkati(que- ste informazioni possono essere fornite al ompilatore an he a linea di

omando),

Comandi hedes rivonoallinkerlastrutturahardwaredelPIC,

Comandi hedes rivono omevogliamo hel'hardwareappaiaalprogram- mautente,

1

IlC18puòoperareusandodue onvenz ionidiverse:Non-ExtendedModeeExtendedMode.

Figura A.2Esempiodelussodi ompilazionediunprogrammaC onilC18

Comandi he denis onola quantità di memoria da riservare allo sta k delle hiamate;

Iprin ipali omandisonoi seguenti:

CODEPAGE:Questo omandodes rive isegmenti in ui èstruttura lame- moriaprogramma. Adognisegmentovieneassegnatounnomeeneviene

indi atol'indirizzodipartenzaeladimensione. Puòessereindi atoan he

unattributoopzionale,PROTECTED, hespe i a hesololeistruzioni he

CODEPAGENAME=page0 START=0x000005 END=0x000100 PROTECTED

DATABBANK: Questo omando des rive i segmenti in ui è strutturatala memoriadati. Lasintassièidenti aaquelladi CODEBANK.Unesempio:

DATABANKNAME=gpr0 START=0x80 END=0xFF

ACCESSBANK: Questo omando des rive l'A ess RAM (vedi par. 2.4.7) dellamemoriadati. Lasintassièsimile allepre edenti. Unesempio:

ACCESSBANKNAME=a essram START=0x0 END=0x7F

SECTION:Questo omandoservepermapparelesezioni(vedipar. A)de- nitenelprogrammasorgenteaisegmentideniti oni omandipre edenti.

Inprati a questo omando asso iaad unsegmento CODEPAGEoBANKun

nomevisibileall'internodelsorgente. VengonoutilizatiiparametriROMe

RAMperspe i aredovesitrovailsegmentodamappare. Unesempio:

DATABANK NAME= gpr1 START=0x100 END=0x1FF

SECTION NAME=pippo RAM= gpr1

STACK:Questo omandoserveperdenire ladimensionedellosta kdelle hiamateelasuaallo azione. Unesempio:

DATABANKNAME=sta kregion START=0x400 END=0x5F3 PROTECTED

STACK SIZE=0x1F3 RAM=sta kregion

Il listato45 des rive il linker s ript del PIC 18F452, ioè quello utilizzato

peril asodi studiodel ap. 7.

Tipi di dati e limiti

Perquantoriguardagliinteri,ilC18supportatuttiitipidenitidallostandard

ANSIeviaggiungeilsupportoagliinteria24bitsia onsegno hesenzasegno

(tab. A.1). Perquanto riguarda i numeri in virgolamobile, il C18utilizza lo

standardIEEE-754(tab.A.2 ).

I valori multi-byte vengono memorizzati in memoria seguendo il formato

little-endian.

Quali atori di memoria

Listato 45 Illinker s ript del PIC 18F452modi ato per testing. La prima

oppia di omandi ( DATAB ANK, SECTION) denis e la dimensione (128 bytes)

del buer usatoperla ri ezionedi un messaggioproveniente dallaseriale. La

se onda oppia denis e la dimensione (128 bytes) per il buer in ui viene

deserializzato il messaggio di input. La terza oppia denis e la dimensione

(128 bytes)del buerutilizzatoperlaserializzazionedelmessaggio daspedire

sulla seriale. La quinta oppia denis e la dimensione (256 bytes) dell'heap

dinami o usato perlagestionedella memoria. Inne, gliultimi due omandi,

denis onola dimensione (500bytes) dellosta kdel ompilatoreC18. gpr1è

un'area dimemoriadisponibile perallo arevariabiligeneral-purpose.

DATABANK NAME=inbuffer START=0x100 END=0x17F SECTION NAME=inbuff RAM=inbuffer DATABANK NAME=readbuffer START=0x180 END=0x1FF SECTION NAME=readbuff RAM=readbuffer DATABANK NAME=outbuffer START=0x200 END=0x27F SECTION NAME=outbuff RAM=outbuffer DATABANK NAME=gpr1 START=0x280 END=0x2FF DATABANK NAME=sramallo START=0x300 END=0x3FF SECTION NAME=_SRAM_ALLOC_HEAPRAM=sramallo DATABANK NAME=sta kregion START=0x400 END=0x5F3 PROTECTED

Tabella A.1Tipi, dimensionielimitideidatiinteri

Tipo Dimensione Minimo Massimo

har 8bits -128 127

signed har 8bits -128 127

unsigned har 8bits 0 255

int 16bits -32,768 32,767

unsigned int 16bits 0 65,535

short 16bits -32,768 32,767

unsigned short 16bits 0 65,535

short long 24bits -8,388,608 8,388,607

unsigned short long 24bits 0 16,777,215

long 32bits -2,147,483,648 2,147,483,647

unsigned long 32bits 0 4,294,967,295

Documenti correlati