• No results found

Ontwerp en bouw van een besturingscomputersysteem voor een 2D-robot (II)

N/A
N/A
Protected

Academic year: 2021

Share "Ontwerp en bouw van een besturingscomputersysteem voor een 2D-robot (II)"

Copied!
81
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

een 2D-robot (II)

Citation for published version (APA):

Pijnenburg, R. (1988). Ontwerp en bouw van een besturingscomputersysteem voor een 2D-robot (II). (TH Eindhoven. Afd. Werktuigbouwkunde, Vakgroep Produktietechnologie : WPB; Vol. WPA0577). Technische Universiteit Eindhoven.

Document status and date: Gepubliceerd: 01/01/1988 Document Version:

Uitgevers PDF, ook bekend als Version of Record Please check the document version of this publication:

• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.

• The final author version and the galley proof are versions of the publication after peer review.

• The final published version features the final layout of the paper including the volume, issue and page numbers.

Link to publication

General rights

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

• You may freely distribute the URL identifying the publication in the public portal.

If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:

www.tue.nl/taverne

Take down policy

If you believe that this document breaches copyright please contact us at:

openaccess@tue.nl

providing details and we will investigate your claim.

(2)

R. Pijnenburg mei 1988

(3)

Geschreven in opdracht van: Hogeschool Eindhoven

Afdeling Elektrotechniek

Technische Universiteit Eindhoven vakgroep Werktuigbouwkundige

Produktietechnologie en -Automatisering.

Afstudeermentor : ir. J. Jansen

Afstudeerbegeleider: ir. P. C. Mulders

Robert Pijnenburg Hogeschool Eindhoven Afdeling Elektrotechniek oisterwijk, mei 1988

(4)

SAMENVATTING

Aan de Technische Universiteit wordt al jaren onderzoek verricht aan robots. De afgelopen jaren is er, op industriele schaal, een lineaire robotarm ontwikkeld. Om deze 10 robot uit te breiden naar twee dimensies, is er een rotatie module in aanbouw. Hier-door ontstaat een Rotatie-Translatie robot.

Als regeling wordt in eerste instantie positieregeling toegepast.

De regelgrootheden zijn hierbij de positie x, de hoek ~ en de

twee stuursignalen UT en UR (de motorspanningen).Tijdens de Teach mode wordt de R-T robot, met behulp van een krachtsensor, een trajectorie geleerd, dat tijdens de Replay mode herhaald wordt. Hierbij wordt de optimale regelwet berekend, die de trajectorie-afwijkingen bijregelt.

De besturing van de R-T robot gebeurt met een besturingscompu-ter. Deze computer is uit verschillende Single Board computers

(SBC) opgebouwd. Er is een master SBC die de processen en de timing regelt. Elke dimensie (translatie en rotatie) heeft een eigen SBC, die parallel aan de master zijn eigen taken uitvoert. De krachtsensor is ook voorzien van een eigen SBC, die de

com-plexe berekening van de krachten (Fx ' Fy) en het moment (My)

voor zijn rekening neemt. Tot slot bezit de besturingscomputer ook een extra RAM geheugenbord dat voor de dataopslag van de gegevens zorgt.

De regelparameters worden door de positie- en motorinterface aan de besturingscomputer toegevoerd. De positieinterface leest de positie/hoek in door het aantal pulsen, afkomstig van een meetlineaal, te tellen. De motor interface is een DAC die een analoge waarde via de motorversterker naar de motor stuurt. De

motor interface leest ook twee eindschakelaars in, die de motor

softwarematig stoppen als deze buiten zijn bereik loopt.

De translatie en rotatie SBC, die hardwarematig gezien identiek zijn, bevat een programma dat :

- de data van de interfaces omzet naar data die de besturings-computer verder kan verwerken.

- de R-T robot initialiseert. - de interrupts afhandelt.

(5)

YOQRWOQRP

Het laatste jaar aan de Hogere Technische School in Eindhoven is in twee perioden verdeeld, een theoretisch en een practisch gedeelte. Pit rapport vormt de afronding van het practisch deel van mijn studie tot electrotechnisch ingenieur.

Mijn afstudeerwerk heb ik op de Technische Universiteit in Eind-hoven verricht. Ik was gedurende een periode van vier maanden

(februari-mei) werkzaam bij de vakgroep Werktuigbouwkundige Pro-ductietechnologie en -Automatisering (WPA).

Mijn afstudeeropdracht, die ik in samenwerking met Constant

Chalitsios heb verricht, bestond uit het bouwen en het ontwerpen van een besturingscomputer voor een industriele Rotatie-Transla-tie robot. Vooraf is door ons een taakverdeling opgesteld. Con-stant heeft zich hoofdzakelijk met de bouw van de computer bezig gehouden. Ook heeft hij de datatransfer en de timing binnen de besturingscomputer onderzocht. Ik heb de nadruk gelegd op de in-terfaces tussen de robot en de computer. Hierbij is ook gekeken naar de ondersteuningssoftware, die nodig is om de data van de robot gemakkelijk te kunnen verwerken.

In het bijzonder wil ik Constant Chalitsios voor de prettige en ondersteunende samenwerking bedanken. Ook wil ik mijn begeleider, ir. P.C. Mulders, voor zijn adviezen en ondersteuning bedanken en Gerard Kreffer voor de informatie over het mechanische deel van de R-T robot. Tot slot wil ik aIle medestudenten van het be-sturingslaboratorium voor de fijne werksfeer gedurende mijn af-studeerperiode bedanken.

(6)

1 2 2.1 2.2 3 3.1 3.2 3.3 3.4 3.5 3.6 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5 5.1 5.2 INHOUDSOPGAVE SWNVATTING VOORWOORD INLEIDING DE ROTATIE-TRANSLATIE ROBOT DE OPBOUW VAN DE R-T ROBOT DE REGELING VAN DE R-T ROBOT 2.2.1 De Teach mode

2.2.2 De regelwet 2.2.3 De Replay mode

DE BESTURINGSCOMpuTER

DE ARCHITECTUUR VAN DE BESTURINGSCOMPUTER HET ONTWIKKELSYSTEEM

DE 186/03 SINGLE BOARD COMPUTER HET 028 RAM BOARD

DE 86/12 SINGLE BOARD COMPUTER DE 86/05 SINGLE BOARD COMPUTER

DE OPBOUW VAN DE 86/05 SINGLE BOARD COMpuTER

DE MICROPROCESSOR HET GEHEUGEN

DE INTERRUPT CONTROLLER DE PARALLEL PORT INTERFACE DE iSBX BUS

DE RS-232C BUS DE MULTI BUS

PE INTERFACES

DE POSITIEINTERFACE

5.1.1 De werking van de meetlineaal 5.1.2 De positiecounter

DE MOTORINTERFACE

5.2.1 De digitaal analoog converter 5.2.2 De eindschakelaars 2 3 7 8 8 9 9 10 11 12 12 13 14 14 15 15 17 17 19 19 20 20 20 21 22 22 23 24 25 25 26

(7)

6 DE SOFTWARE VOOR DE 86/05 SINGLE BOARD COMPUTER 6.1 6.2 6.3 6.4 DE MULTIBUSSOFTWARE DE INTERFACESOFTWARE

6.2.1 De software voor de positieinteface

6.2.2 De software voor de motorinterface

DE INTERRUPT SERVICE ROUTINES DE INITIALISATIESOFTWARE 6.4.1 De PIC initialisatiesoftware 6.4.2 De PPI initialisatiesoftware 6.4.2 De positieinterface initialisatiesoftware CONCLUSIES GEBAADPLEEGDE LITEBATUUR BIJLAGEN

A DE HARDWARE VAN DE BESTURINGSCOMPQTER

A.1 DE MEMORY MAP VAN DE BESTURINGSCOMPUTER

A.2 DE 8259A PROGRAMMABLE INTERRUPT CONTROLLER

A.2.1 pe Interrupt Control Words

A.2.2 pe Operation control Words

A.3 DE 8255A PARALLEL PORT INTERFACE

A.4 DE iSBX BUS

A.5 DE MULTIBUS

A.6 DE JUMPER CONFIGURATIE VAN DE 86/05 SBC

B DE INTERFACES

B.1 BEREKENING VAN DE POSITIEINTERFACE

B.1.1 Berekening van de translatiecounter

B.1.2 Berekening van de rotatiecounter

B.2 BEREKENING VAN DE MOTORINTERFACE

B.2.1 Berekening van het spanningsbereik van

B.2.2 Berekening van de resolutie van de DAC

B.3 SCHEMA VAN DE POSITIEINTERFACE

B.4 SCHEMA VAN DE TRANSLATIE-MOTORINTERFACE

B.5 SCHEMA VAN DE ROTATIE-MOTORINTERFACE

de DAC 27 27 29 29 30 30 31 31 31 32 33 34 35 36 37 37 38 39 40 43 46 47 48 48 49 50 50 51 52 54 55

(8)

C C.1 C.2 C.3 C.4 D D.1 D.2 D.3 D.4 D.5 D.6 Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur Figuur DE 86/05 SBC SOFTWARE

LISTING VAN DE MULTIBUSMODULE LISTING VAN DE INTERFACEMODULE LISTING VAN DE INTERRUPTMODULE LISTING VAN DE INITIALISATIEMODULE

DE SPECIFICATIES YAN DE COMPONENTEN DE SPECIFICATIE VAN DE MOTOR

DE SPECIFICATIE VAN DE MOTORVERSTERKER DE SPECIFICATIE VAN DE MEETLINEAAL D.3.1 Specificatie lineaire lineaal D.3.2 Specificatie rotatie lineaal D.3.3 Specificatie van de interpolator DE POSITIEINTERFACE COMPONENTEN

D.4.1 Specificatie van de discriminator

D.4.2 Specificatie van de 4 bits up/down counter D.4.3 Specificatie van de 4 bits latch

DE MOTOR INTERFACE COMPONENTEN

D.5.1 Specificatie van de DAC811KP D.5.2 Specificatie van de DAC707KH

DE SPECIFICATIE VAN DE HALL-EFFECT SCHAKELAAR

L I J S T VAN ILLUSTRATIES

1 : Schematische tekening van de R-T robot

2

·

·

Blokschema van de Teach mode

3 Blokschema van de berekening van de regelwet

4

·

·

Blokschema van de Replay mode

5

·

·

Blokschema van de besturingscomputer

6

·

·

Blokschema van de 86/05 SBC

7 : Adressamenstelling van de 8086 CPU

8

·

·

8086 registers

9 Blokschema van de 86/05 SBC met interfaces

10: Opbouw van de meetlineaal

11: Blokschema van de 20 bits counter

12: Vervangingsschema van de hall-effect schakelaar 13: Stackopbouw voor en na een procedureaanroep 14: Flowcharts van de lees- en schrijfinstructie 15: Nassi-schneiderman diagrammen van de twee

positieinterfaceprocedures

16: Nassi-schneiderman diagram van de initilisatie-procedure voor de positieinterface

56 57 61 63 65 67 68 69 70 70 71 72 73 73 74 75 76 76 77 79 8 10 10 11 13 17 18 18 22 10 24 26 28 28 30 32

(9)

1 INLEIDING

Op de Technische Universiteit in Eindhoven wordt, bij de vak-groep Werktuigbouwkundige Productietechnologie en -Automatise-ring al jaren onderzoek verricht naar snellere, nauwkeurigere en complexer bewegende robots. Er is in de loop der jaren een lineaire robotarm, op industriele schaal, ontwikkeld. Deze ro-botarro wordt uitgebreid met een rotatiemodule, zodat een twee dimensionale Rotatie-Translatie robot ontstaat.

V~~r de regeling en de besturing van de R-T robot moet er een nieuwe besturingscomputer worden ontwikkeld. De besturingscom-puter moet, vanwege financiele aspecten, opgebouwd worden uit Single Board computers (SaC's) die op de T.U. aanwezig zijn. Aangezien de opdracht met twee personen is uitgevoerd, bevat dit rapport niet aIle informatie over de besturingscomputer. In dit rapport ligt de nadruk op de SBC's voor de twee dimen-sies (translatie en rotatie) en de hierop aangesloten interfa-ces, die de verbinding tussen de besturingscomputer en de robot vormen. In dit verslag wordt niet ingegaan op het time sharings probleem van de verschillende SBC's, evenals de communicatie tussen de SBC's. Deze aspecten komen in het rapport van Con-stant Chalitsios [lit. 2] aan de orde.

In het hoofdstuk 2 wordt de opbouw en de regeling van de robot in het kort besproken. Hoofdstuk 3 handelt over de opbouw van de besturingscomputer. In het vierde hoofstuk wordt de opbouw van de rotatie en translatie SBC besproken. In hoofdstuk 5 wor-den de twee interfaces, de postie- en de motorinterface, behan-deld. Tot slot wordt in hoofdstuk 6 de 86/05 SBC testsoftware besproken.

(10)

2 DE ROTATIE-TBANSLATIE ROBOT

Om een beter beeld van de R-T robot te verkrijgen wordt eerst

de opbouw van de robot behandeld. Ook wordt de regelmethode in dit hoofdstuk kort toegelieht.

2.1 DE OPBOUW VAN DE R-T ROBOT

Bij de bouw van de R-T robot is uitgegaan van een bestaande

lineaire robot. V~~r de lineaire robot gelden de volgende

spe-eifieaties:

- een maximale verplaatsing van ± 70 em

- een maximale snelheid van 1 m/s - een maximale versnelling van 10 m/s2

- een maximaal toelaatbare lastmassa van 50 kg - een spindel-moer overbrenging

- een DC motor als aandrijving

- een lineair meetsysteem met een minimaal oplossend vermogen van 0,01 rom

~

llJ •

2 ROTA TIEMODULE 5

~

• f=

3

LINEAlRE ROBOT ARM

I

J

L

;

II

8

...J

6 7 ///////////////////////////////////////// 1: 3D kraehtsensor 2: lineair meetsysteem 3: DC motor (translatierobot)

4: eindsehakelaars lineair trajeet 5: rotatie meetsysteem

6: overbrenging

7: DC motor (rotatiemodule)

8: eindsehakelaars rotatie trajeet

(11)

Om een twee dimensionale robot te verkrijgen is de translatie robot uitgebreid met een rotatiemodule. In figuur 1 is de to-tale R-T robot schematisch weergegeven. De rotatiemodule is als voIgt gespecificeerd.

- een minimale hoekverdraaiing van ~ rad

- een maximale hoeksnelheid van ~~ rad/s

- een maximale hoekversnelling van ~~ rad/s2

- uitvoeren met dezelfde DC motor als de translatie robot

- een hoekmeetsysteem met een oplossend vermogen van 9,6.10 6 rad (dit is een nauwkeurigheid van 0,01 rom aan het uiteinde van de arm in zijn uiterste positie)

- een zo laag mogelijke moduulhoogte

2.2 DE REGELING VAN DE R-T ROBOT

De R-T robot wordt met behulp van een besturingscomputer be-stuurd. Dit betekent dat de R-T robot digitaal wordt geregeld, dus moeten de uitgangsparameters gesampeld worden. De R-T ro-bot heeft twee en twee uitgangsgrootheden. De ingangs-grootheden zijn de twee motorspanningen (UT,UR)' voorgesteld

door de spanningsvector (Y), en de ingangsgrootheden zijn de

positie (x) en de hoek (¢), voorgesteld door de

toestandsvec-tor (X). Ais regelmethode wordt in eerste instantie

positiere-geling toegepast (hierbij dient de robotarm met een constante last belast te zijn). In een later stadium wordt krachtregeling onderzocht.

De R-T robot kent twee modes, namelijk: - Teach mode

- Replay mode

Deze twee modes worden in de onderstaande subparagrafen samen met de berekening van de zogenaamde regelwet besproken.

2.2.1 De Teach mode

In figuur 2 is blokschematisch de werking van de Teach mode weergegeven. Tijdens de Teach mode wordt, door middel van de krachtsensor, een gewenst trajectorie aan de R-T robot geleerd. Met behulp van twee krachten (Fx,Fy )' een moment (My) en de armpositie (x) worden de twee motorspanningen (UT,UR) afgeleid. De twee spanningen sturen de motoren aan, waarna de positie (x)

en de hoek (¢) worden bemonsterd en opgeslagen in het geheugen.

Tijdens of na de Teach mode worden de eerste en tweede afgelei-de van afgelei-de toestandsvector berekend (afgelei-de snelheid en afgelei-de versnel-ling).

(12)

kracht sensor

Figuur 2: Blokschema van de Teach mode

2.2.2 De regelwet

. ..

x xn

q,~

(bn

De optimale regelwet is een matrix waarmee, tijdens de Replay mode, de trajectorie afwijkingen worden bijgeregeld. Omdat de berekening van de optimale regelwet nogal veel tijd in beslag neemt, kan dit niet tijdens de Teach mode gebeuren. Er is een PC nodig, die off-line de berekening van de optimale regelwet voor zijn rekening neemt. De berekening van de optimale regel-wet is in figuur 3 weergegeven. De volgende

parameters/factor-1's

..

X X X

r+

berekening .... [ UTnJ Fuitwendig spanningen --.. y = massalast URn

H

systeemmodel r

-

-

f-

-

-

-

-

-

-

-

---,

PC

I

r

4

berekening optimale regelwet [ x x 0 0

]

weegfactoren L

=

0 0 x x

I

L J geheugen

(13)

en spelen bij de berekening een rol. - de sampletijd

- de toestandsvector en zijn afgeleiden

- de uitwendige krachten (deze worden in eerste instantie nul verondersteld)

- de massalast: Dit is een constante massa die aan de robotarm is bevestigd.

- het systeemmodel: Dit is een simulatiemodel van de R-T robot. - de weegfactoren: Dit zijn de factoren die de nauwkeurigheid

van de regeling bepalen.

Verder wordt ook de nominale spanningsvector met behulp van het systeemmodel berekend. AIle berekeningen gebeuren per sample, er is dus per sampletijd een unieke optimale regelwet.

2.2.3 De Replay mode

In figuur 4 is blokschematisch de regellus van de Replay mode getekend. De Replay mode herhaalt een trajectorie dat tijdens de Teach mode is ingevoerd (de data die zich in het geheugen bevindt staat binnen het gestippelde kader). Tijdens de Replay mode wordt continu de momentele toestandsvector (Xm) vergeleken met de gewenste toestandsvector (Xn). Met behulp van de optima-Ie regelwet wordt de correctiespanningsvector (6U) berekend, die het proces bijregelt. De tijdsduur van de regellus bepaalt de minimale sampletijd (Ts) voor de Teach mode.

(14)

3 DE BESTUBIHGSCOMPUTER

In hoofdstuk 1 is de opbouw en de regeling van de R-T robot toegelicht. Aangezien de robot niet zonder computer kan func-tioneren, moet er een besturingscomputer worden gebouwd. In dit hoofdstuk wordt de opbouw van de besturingscomputer, met zijn verschillende onderdelen, besproken. Ook wordt de taak-verdeling binnen het systeem behandeld.

3.1 DE ARCHITECTUUR VAN DE BESTURINGSCOMPUTER

Bij het opzetten van de besturingscomputer voor de R-T robot moeten de onderstaande eisen, die aan het systeem worden ge-steld, in acht worden genomen:

- De belangrijkste eis is dat de besturingscomputer universeel wordt opgebouwd zodat ook andere regelmethoden, zonder veel aanpassingen, kunnen worden uitgevoerd.

- De besturingscomputer moet de Teach en Replay mode uit kunnen voeren.

- De computer moet alle regelparamaters voor de positieregeling

(UT' UR' x, ¢, FXI Fy en My) via I/O poorten in en uit kunnen

voeren.

- Er moet communicatie met een monitor mogelijk zijn om de ver-binding tussen mens en computer te bewerkstelligen.

- De regelcomputer moet met een PC in verbinding staan om de regelwet off-line te kunnen berekenen.

- Er moet een RAM geheugen aanwezig zijn om de Teach mode ge-durende een bepaalde tijd te kunnen draaien.

De besturingscomputer is volgens het zogenaamde master-slave principe opgezet. In figuur 5 is blokschematisch de opbouw van de besturingscomputer weergegeven. Elke dimensie heeft een ei-gen single board computer (SBC), welke door een intelliei-gentere master SBC wordt bestuurd. Er wordt gestreefd naar een identie-ke opbouw van het translerende en roterende deel van de bestu-ringscomputer. Dit betekent dat de interfaces hetzelfde moeten zijn, en dat hiermee ook de interface software hetzelfde is. Ook is er een aparte SBC voor de krachtsensor genomen, zodat continu de actuele krachtcomponenten beschikbaar zijn. De be-sturingscomputer is voorzien van een extra RAM geheugen. Dit is noodzakelijk omdat de SBC's niet over genoeg geheugenruimte beschikken om gedurende een redelijke tijd (enkele seconden) te kunnen teachen. De communicatie tussen de SBC's het RAM bord gebeurt via de multibus.

(15)

RS232 ONTWIKKEL-SYSTEEM GmultibuS TRANSLATIE 86/05 SB ~

.

pos1t1e (X) ~~ MASTER SBC 186/03 1' ...

,>

ROTATIE 86/05 SBC A ~ hoek (11))

,

I

Figuur 5: Blokschema van de besturingscomputer

I

II

RAM BORD 028

J

KRACHT 86/12 SBC ~ kracht/moment (Fx,Fy,My )

Het is de bedoeling dat het besturingsprogramma op de mas-ter SBC draait, en dat parallel aan het besturingsprogramma hulpprogramma's op de slave SBC's draaien. Hierdoor wordt een snel en overzichtelijk computersysteem verkregen. In de komende paragrafen worden de afzonderlijke "blokken van het computersysteem besproken.

3.2 BET ONTWIKKELSYSTEEM

I

Het ontwikkelsysteem wordt aIleen gedurende de ontwikkelfase van de robot gebruikt. Op het ontwikkelsysteem worden de pro-gramma's, in modulair pascal, voor de verschillende SBC's ge-schreven. Het systeem is achtereenvolgens met de volgende ta-ken belast:

- Het compileren van de programmals, die in modulair Pascal worden geschreven, naar een zogenaamde object file. Deze

ob-ject file is een assembler file met subroutinecalls voor de verschillende standaard pascal commando's. Hierbij worden ook de mogelijke syntaxfouten gedetecteerd.

- Het linken van de verschillende programmadelen edit zijn de modules in modulair pascal) met elkaar en met de bijbehoren-de libraries tot een assemblerfile. De libraries bevatten de assemblerroutines van de betreffende pascalcommando's. - Het "locaten" van de gelinkte file in het geheugen. Hier

worden aan de relocatable file absolute adressen toegekend. - Tot slot moet de gelocate file omgezet worden naar een

hexa-decimale file, die rechtstreeks in het RAM geheugen van een SBC geladen kan worden (dit gebeurt aIleen om een programma

(16)

te testen}. Ook be staat de mogelijkheid het programma in een EPROM te laden, zodat de SBC zonder het ontwikkelsysteem kan functioneren.

De communicatie tussen een SBC en het ontwikkelsysteem gebeurt met behulp van het RS-232C communicatie protocol. Het ontwik-kelsysteem wordt in een later stadium, als aIle programma's in EPROM's zijn geladen, door een PC vervangen, die de off-line be-rekening van de regelwet uitvoert.

3.3 DE 186/03 SINGLE BOARD COMPUTER

De 186/03 SBC is de master van de besturingscomputer. Het be-sturingsprogramma, dat op deze SBC gaat draaien, is met de onderstaande taken belast.

- Het sturen van de verschillende regelprocessen (de Teach en Replay mode).

- Het beheren van het extra RAM geheugen.

Het generen van de verschillende interrupts (deze worden via de parallele poort (PPI) op de multibus gezet).

- De Teach interrupt meldt de slave SBC's dat de robot in de Teach mode staat.

- De Replay interrupt meldt de slave SBC's dat de robot in de Replay mode staat.

- De Sample interrupt zorgt ervoor dat de dimensies synchroon met elkaar een sample nemen.

Het berekenen van de eerste en tweede afgeleide van de toe-standsvector in de Teach mode.

Het verzorgen van de timing tussen de verschillende SBC's. Het verzorgen van de communicatie met een monitor, die na de ontwikkelfase de communicatie tussen mens en robot verzorgt. Het verzorgen van de dataoverdracht tussen de besturingscom-puter en de PC. Deze dataoverdracht is noodzakelijk voor de off-line berekening van de optimale regelwet.

3.4 RET 028 RAM BOARD

Het 028 RAM board is een 128K RAM geheugen, dat via de multi-bus op het totale systeem is aangesloten. De functie van het extra RAM geheugen is:

- Het verzorgen van de communicatie tussen de SBC's onderling. Het extra RAM geheugen vormt het systeem geheugen zodat de data, die aIle SBC's nodig hebben, in het systeemgeheugen worden geplaatst. Communicatie vindt plaats doordat de ene

(17)

SBC data in het RAM geheugen zet, en de andere deze data uit-leest.

- Het vergroten van het totale RAM geheugen zodat de Teach/Re-play mode langer gedraait kan worden. De SBC RAM geheugens zijn niet groot genoeg om aIle data, die tijdens de Teach en

Replay mode wordt gecreeerd, op te kunnen slaan.

In bijlage A.l is de plaats van het extra RAM geheugen binnen de totale memorymap aangegeven.

3.5 DE 86/12 SINGLE BOARD COMPUTER

Tijdens het teachen wordt de robot bestuurd door middel van een 3D krachtsensor. Aangezien de berekening van de krachtcom-ponenten nogal vee I tijd in beslag neemt is er voor een extra SBC gekozen. Dit biedt ook het voordeel dat de actuele waarde van de krachtcomponent continu aanwezig is. De 86/12 SBC is met de volgende taken belast:

- Het berekenen van de krachtcomponenten uit de signalen die

de krachtsensor afgeeft. V~~r de R-T robot worden aIleen de

krachten Fx en Fy en het moment My, van de drie dimensionale

krachtsensor gebruikt. .

- Het wegschrijven van de twee krachten en het moment naar het dual port RAM geheugen.

De 86/12 SBC bezit een zogenaamd dual port RAM geheugen. Dit is een RAM geheugen dat door de multibus en door de adresbus van de 86/12 SBC kan worden geadresseerd. Hierdoor is het voor de ande-re SBC's mogelijk het dual port RAM geheugen via de multibus te adresseren. In bijlage A.l is een memory map van de totale be-sturingscomputer weergegeven, hierin zijn ook de adressen van het dual port RAM geheugen aangegeven.

3.6 DE 86/05 SINGLE BOARD COMPUTER

De 86/05 SBC is zowel voor het roterende als voor het transle-rende deel met de onderstaande taken belast.

- Het inlezen en bewerken van de positiedata. - Het uitsturen van de motorspanning.

- Het inlezen van de eindschakelaars en het uitvoeren van een bepaalde routine als een van de eindschakelaars in werking treedt.

- Het ondersteunen van het hoofdprogramma met behulp van een klein besturingsprogramma dat op de SBC draait.

(18)

- Het uitlezen van het dual port RAM geheugen van de 86/12 SBe

tijdens de Teach mode. De translatie SBe leest de kracht Fx

uit, en berekent de motorspanning UT. De rotatie SBe leest de

kracht Fy en het moment My uit, en berekent samen met de actu-ele waarae van de armpositie de motorspanning UR.

- V~~r de translerende SBe is nog een extra taak aanwezig. Deze

meldt de rotatie SBe, door middel van een interrupt, dat de

actuele waarde van de armpositie ex) in het extra RAM geheugen aanwezig is.

In bet volgende hoofdstuk wordt de opbouw van de 86/05 SBe

uit-voerig besproken. Hierbij komen aIle afzonderlijke delen van de

(19)

.IU

4 DE OPBOUW VAN DE 86/05 SINGLE BOARD COMPUTER

In figuur 6 is het blokschema van de 86/05 SBC getekend. In dit hoofdstuk wordt elk deel van de SBC, dat van toepassing is op de R-T robot, van de SBC gedetailleerd besproken.

ROY-S ROY SYNC INT£L

--,

_'A

PCI INTERRUPT MATRIX -iaSiA--PIC: NIIALLIL 110

r----'

_C3G2 , EICP:::ON I ON-IIOARD !lAM

r----'

I _C 341 I I EXPANSION I ROM ON·aOARD ROM MULTlaus

'1

1"

Figuur 6: Blokschema van de 86/05 SBC

4.1 DE MICROPROCESSOR

De 86/05 SBC bezit een 8086 microprocessor. Dit is een 16 bits processor met een 20 bits adresbus. Dit 20 bits adres kan maxi-maal een geheugen van 1Mbyte adresseren. Het geheugen is in vier segmenten, van elk maximaal 256kbyte, opgedeeld. Deze vier segmenten zijn:

- code segment data segment - stack segment - extra segment

Dit segment bevat het code deel (instructies) van een programma.

Dit segment bevat de programmadata.

Dit segment fungeert als programmastack. Dit is een vrij segment dat voor elke toepas-sing kan worden gebruikt.

(20)

Het geheugenadres wordt met behulp van twee registers, een seg-ment- en een offsetregister, samengesteld. De samenstelling van een adres is in figuur 7 getekend.

15 0

I : : :

~E?MtNf

:RtGfsfE+ : : :

I

15 0

I : : : :

?FfstT:

+E?I~TtR:

: :

I

+ 19 0

I : : :

:RtA~ ~E+O~Y:A?D+E~S:

: : : : :

I

Figuur 7: Adressamenstelling van de 8086 CPU

De 8086 bezit veertien registers, welke elk hun eigen toepas-sing hebben (zie figuur 8). Hieronder worden de registerparen met hun toepassing opgesomd.

- general registers: Dit zijn acht 16 bits registers die voor

de algemene processorfuncties worden ge-bruikt.

general registers segment reqisters

AH AL AX Code Segment

cs

BH BL BX Data Segment OS

CH CL CX Stack Segment

ss

DH DL I

ox

Extra Segment ES

Stack pointer SP control registers

Base pointer BP Instr. Pointer IP

Source index S1 Status Flags FL

Destination index 01

(21)

- segment registers: Dit z1Jn vier 16 bits registers die het base adres van een segment aangeven. - control registers: Dit zijn twee registers (16 bits), de

instruction pointer en het statusregis-ter (dit regisstatusregis-ter bevat aIle flags).

4.2 BET GEHEUGEN

De 86/05 SBe bezit twee geheugentypes, 8K RAM en 32K ROM

ge-heugen. In bijlage A.1 is de memory map van de 86/05 SBe

weer-gegeven. De overige adressen (er kan namelijk 1M geadresseerd worden) kunnen voor multibusaccess worden gebruikt, hetgeen in paragraaf 4.7 wordt besproken.

Het RAM geheugen wordt aIleen voor de data gebruikt die niet

buiten de SBe nodig is. Data die het totale systeem nodig heeft

(positie/hoek, motorspanning enz.), wordt over de multibus naar het extra RAM bord gestuurd. Het ROM geheugen (EPROM) bevat het

86/05 SBe besturingsprogramma.

4.3 DE INTERRUPT CONTROLLER

De programmable interrupt controller (8259A) verzorgt de inter-ruptafhandeling van de verschillende interrupts. De functies van de verschillende interrupts, waarvan IRO de hoogste en IR7 de laagste prioriteit heeft, zijn:

- IRO: Deze interrupt wordt gegenereerd als de rechtse eindscha-kelaar wordt gepasseerd.

- IR1: Deze interrupt wordt gegenereerd als de linkse eindscha-kelaar wordt gepasseerd.

- IR2: Deze interrupt geeft aan dat de besturingscomputer in de Teach mode staat.

- IR3: Deze interrupt geeft aan dat de besturingscomputer in de Replay mode staat.

- IR4: Dit is de sample interrupt, die bepaalt op welk moment er gesampeld moet worden.

- IRS: Deze interrupt wordt in de testfase van het systeem als test interrupt gebruikt, en meldt dat het test

programma draait.

- IR6: Deze interrupt wordt aIleen bij de rotatie SBe gebruikt

om aan te geven dat de actuele waarde van de armpositie in het extra RAM geheugen aanwezig is.

- IR7: Deze interrupt start bij een zero position puIs (zie pa-ragraaf 5.1.1.) een positioncounter initialisatieroutine.

(22)

De PIC wordt met behulp van zogenaamde ttcontrol words" gepro-grammeerd. Deze control words bepalen de configuratie waarin de PIC functioneert. In bijlage A.2 is de exacte functie van de verschillende controlwoorden gegeven. In paragraf 6.4.1 wordt het initialisatieprogramma voor de PIC besproken.

4.4 DE PARALLEL PORT INTERFACE

De Parallel Port Interface (PPI) is een programmeerbare

1/0-poort. De PPI wordt aIleen bij de translatie SBC gebruikt om een interrupt te genereren. Deze interrupt, die aan de rotatie SBC meldt dat de actuele waarde van de armpositie in het extra RAM geheugen aanwezig is, wordt softwarematig gegenereerd. De uitgang van de PPI, die als interrupt fungeert, wordt door middel van jumpers op de multibus gezet. De rotatie SBC ziet de interrupt dus als een multibusinterrupt, die via jumpers op de PIC wordt aangesloten (IR6). In bijlage A.6 is de jumper con-figuratie van de 86/05 SBC weergegeven. In bijlage A.3 wordt de PPI gedetailleerder besproken.

4.5 DE iSBX BUS

De iSBX bus is een 8 of 16 bits parallele I/O poort. De iSBX bus verzorgt de communicatie tussen de SBC en de buitenwereld.

Via deze I/O poorten worden de regelparameters (x, ~, UT en UR)

in- en uitgevoert. In hoofdstuk 5 worden de interfaces, die hier-voor noodzakelijk zijn, besproken. De lijnen van de iSBX bus met hun functie worden in bijlage A.4 toegelicht.

4.6 DE RS-232C BUS

De RS-232C bus wordt, tijdens de ontwikkelfase, gebruikt voor de communicatie met het ontwikkelsysteem. De RS-232C interface is een programmable communication interface (PCI), die de seri-ele RS-232C data omzet naar parallseri-ele data voor de SBC, en om-gekeerd.

(23)

4.7 DE MULTI BUS

De multibus verzorgt de communicatie tussen de verschillende SBC's en het RAM geheugen bordo Communicatie tussen de SBC's onderling gebeurt ook via het RAM geheugen bordo Hiervoor be-schikt elke SBC over een multibusinterface, die de schakel vormt tussen de SBC en de multibus.

Om busconflict te voorkomen is er een busarbiter nodig. Deze busarbiter bepaald welke SBC de hoogste prioriteit heeft en welke dus beschikking krijgt over de multibus. In bijlage A.5

(24)

5 DE INTERFACES

Omdat de positie en de motorspanning niet rechtstreeks door de 86/05 SSC kunnen worden verwerkt, is het gebruik van een face onontbeerlijk. In figuur 9 is de 86/05 SSC met zijn inter-faces getekend. In dit hoofdstuk worden de twee interinter-faces, die voor het translerende en roterende deel identiek zijn,

bespro-ken. . SBC 86/05 iSBX bus 2 POSITIE INTERFACE positie sensor iSBX bus 1 MOTOR INTERFACE versterker+ motor eind-schakelaars

Figuur 9: Slokschema van de 86/05 SBC met interfaces

5.1 DE POSITIEINTERFACE

De positieinterface vormt, zoals de naam al zegt, de schakel

tussen de positiesensor en de 86/05 SBC. V~~r de translerende

beweging is het noodzakelijk de positie x te kennen, terwijl voor de roterende beweging de hoek ¢ van belang is. Alvorens er een positiesensor kan worden gekozen moet er eerst een cificatie van de te meten grootheden worden opgegeven. De spe-cificaties ten aanzien van de positie/hoek zijn:

- positie x oxSlO ~m xmax~70 cm

(25)

Zowel voor de translerende als voor de roterende positie is, in verband met de enorm grote nauwkeurigheid, voor een zoge-naamde meetlineaal gekozen. De werking van de twee meetline-alen is exact hetzelfde, aIleen in uitvoeringsvorm verschil-len de lineaverschil-len ten opzichte van elkaar. De lineaal voor de translerende beweging heeft de vorm van een balk terwijl de lineaal voor de roterende beweging de vorm van een ring heeft. In de volgende subparagraaf wordt de werking van de meetline-aal besproken.

5.1.1 De werking van de meetlineaal

De meetlineaal is een balk (of een opengeklapte ring) die in reflecterende en niet-reflecterende streepjes is opgedeeld,

hetgeen, in figuur 10, is getekend. Verder zijn er twee zender/

ontvanger combinaties, die licht uitzenden en ontvangen. Ais de balk ten opzichte van de zender/ontvanger combinatie beweegt, geven beide ontvangers signalen af. De signalen hebben na digi-talisering, de vorm van de, in figuur 11, getekende signalen. uit deze twee signalen kunnen de positie en de bewegingsrichting worden afgeleid. Zero position zender/ontvanger combinaties

,

~

____________________

~n~

______ __

Figuur 10: Opbouw van de meetlineaal

De meetlineaal bezit ook een zogenaamd "zero position point". Dit zero position point is, door de fabrikant, op een bepaal-de plaats op bepaal-de lineaal aangebracht (meestal ergens in het mid-den). Passeert nu de zender/ontvanger combinatie dit punt, dan geeft de zero position uitgang een puIs af. Dit zero position signaal wordt als referentiepunt bij het initialiseren van de meetlineaal gebruikt (zie paragraaf 6.4.3).

(26)

5.1.2. De positioncounter

Het is nu de taak van de positieinterface om deze signalen (U1, U2) te transformeren naar een signaal, dat door de SBC kan wor-den geinterpreteerd. De eenvoudigste methode is het tellen van de pulsen van u+ of U2' Het aantal pulsen, vanaf een begintoe-stand, is name11jk een maat voor de positie/hoek. uit de signa-len U1 en U2 kan tevens de telrichting van de counter worden bepaald.

De grootte van de counter staat direct in verb and met de leng-te en de nauwkeurigheid van de meetlineaal.In bijlage B.1 is het bitformaat en de maximale frequentie van U1/U2' voor translatie en rotatie, berekend. Er geldt:

- translerende beweging: n= 17 bits

6x= 10 ~m

f max (U1,U2)= 100 kHz

- roterende beweging n= 20 bits

6¢= 0,357.10-3 •

f max (U+,U2)= 126,25 kHz

Hieruit blijkt dus dat de posit1emeting aan de eisen, die aan de robot gesteld zijn, voldoet.

Omdat de roterende en de translerende interfaces hetzelfde die-nen te zijn is er gekozen voor een 20 bits counter. Dit maakt in verwerkingssnelheid en geheugenruimte niets uit omdat er voor 17 en voor 20 bits allebei drie bytes nodig zijn. De 20 bits counter wordt samengesteld uit een 16 bits discriminator

(dit is een counter met ingebouwde richtingsdecoder) en een 4

bits up/down counter. In figuur 11 is het blokschema van de 20 bits couhter getekend. Het zero position signaal wordt gebruikt om een interrupt te genereren. Met behulp van deze interrupt, die op de opgaande flank actief is, kan de counter in een be-paalde begintoestand worden gezet. In bijlage B.3 is het sche-ma van de positieinterface opgenomen.

M E U1 E T U2 L I N E A

-I 16 bits DISCRIMINATOR

~

.

-down I

~

a t

~

4 bits COUNTER

o

8 6 19 /

o

5 S B C A Z.P. L ---... INT

(27)

5.2 DE MOTORINTERFACE

De tweede interface is de motorinterface, die een schakel tus-sen de SBC en de motorversterker vormt. De motorinterface is met een tweetal taken belast:

- Het aansturen van de motorversterker met behulp van een Digi-taal Analoog Converter (DAC).

- Het inlezen van de eindschakelaars.

5.2.1 De Digitaal Analoog Converter

De DAC zet een digitale waarde, gecodeerd volgens de 2's com-plement methode, om in een spanningswaarde die gebruikt wordt om de motorversterker aan te sturen. Aangezien de motorverster-ker nagenoeg lineair is, is de digitale waarde rechtstreeks een maat voor de motorspanning.

Alvorens er een DAC gekozen kan worden, moet het spanningsbe-reik (afhankelijk van de maximale en minimale motorspanning) en de minimale spanningsstap (afhankelijk van de regelwet) be-kend zijn. In bijlage B.2 is afgeleid dat geldt:

- translatie: -15,5 $ UDAC $ 15,5 [V]

n

=

10 bits

- rotatie -16,9 $ UDAC $ 16,9 [V]

n = 16 bits

V~~r de translatiemotor is voor een 12 bits DAC gekozen en voor de rotatiemotor een 16 bits. Dit maakt softwarematig

ge-zien niets uit omdat een 12 bits DAC ook 2 bytes geheugenruim-te nodig heeft, en dus ook als 16 bits wordt geingeheugenruim-terpregeheugenruim-teerd. Om aan het bereik van be ide DAC's tegemoet te komen zijn er versterkers nodig, die het standaard bereik van beide DAC's

(± 10V) aanpast. De versterkers moeten aan de volgende

spe-cificaties voldoen:

- een zeer kleine offsetspanning die weg te regelen is - een instelbare versterkingsfactor om een exacte

uitgangs-spanning te verkrijgen

- een zo groot mogelijke spanningsvariatie op de uitgang

kun-nen hebben bij een voedingsspanning van ± 15V (dit is de

voe-dingsspanning van de DAC's)

een lineaire overdrachtsfuctie over zijn gehele spannings-bereik

(28)

5.2.2 De eindschakelaars

Als eindschakelaars worden hall-effect schakelaars gebruikt. Deze hall-efect schakelaars werken, zoals de naam al zegt, vol-gens het hall principe. In figuur 12 is het vervangingsschema van een hall-effect schakelaar getekend. Onder invloed van een magnetisch veld schakelt de schakelaar.

De hall-effect schakelaars treden in werking zodra de robot buiten zijn werkgebied gaat. Er wordt dan, via een interrupt-lijn, een interrupt service routine aangeroepen, welke de mo-tor softwarematig stopt. Ter beveiliging zijn er oOk nog eind-schakelaars die, in uiterste nood, de motor kortsluiten. In bijlage B.4 en B.5 zijn de schema's van de motorinterfaces

(translatie en rotatie) weergegeven.

FEG •. !----...,

.IT

(29)

6 DE SOFTWARE VOOR DE 86/05 SINGLE BOARD COMPUTER

De software voor de 86/05 SBC is, op het ontwikkelsysteem, in

modulair pascal geschreven. De software, die op dit moment is geschreven, is er aIleen om de hardware te ondersteunen en te testen. Het eigenlijke besturingsprogramma wordt in een later stadium geschreven. In dit hoofdstuk komen achtereenvolgens aan de orde:

- de software voor de multibuscommunicatie - de software voor de interfaces

- de interrupt service routines

- de software voor de 86/05 SSC initialisatie

6.1 DE MULTIBUSSOFTWARE

De SSC's communiceren met het RAM geheugen via de multibus. De multibus wordt, zoals in paragraaf 4.7 is besproken, door een memory read/write aangesproken. De pascal versie van het ontwik-kelsysteen kent echter geen memory read/write instructie waarbij een absoluut geheugenadres kan worden opgegeven. Er moeten dus instructies ontwikkeld worden die data naar een absoluut geheu-genadres kunnen schrijven, en die van een absoluut geheugeheu-genadres data kunnen lezen.

Deze instucties, die in pascal als procedures kunnen worden

aan-geroepen, worden in 8086/80186 assembler geschreven. De 80186

heeft dezelfde instructieset als de 8086, maar is aIleen met

en-kele extra instructies uitgevoerd. Hieronder zijn de vier multi-buscommunicatieinstructies gegeven.

- MBWI(ADDRESS:LONGINT:DATA:INTEGER)

Deze instructie schrijft een INTEGER (2 bytes) naar een be-paalde geheugenlocatie.

- MBWLI(ADDRESS:LONGINT;DATA:LONGINT)

Deze instructie schrijft een LONGINT (4 bytes, waarvan maar 3 bytes weggeschreven worden) naar een bepaalde geheugenlocatie. - MSRI(ADDRESS:LONGINT;VAR DATA:INTEGER)

Deze instructie leest een waarde (2 bytes) uit een bepaalde geheugenlocatie en kent deze waarde aan een variable van het INTEGER type toe.

- MBRLI(ADDRESS:LONGINTiVAR DATA:LONGINT)

Deze instructie leest een waarde (3 bytes) uit een bepaalde geheugenlocatie en kent deze aan een variable van het LONGINT type toe.

(30)

voor procedure ' - - - -... « SP, BP na een schrijfprocedure r - - - , « SP Ret. adr. data address ' - - - ' « BP na een leesprocedure r---~« SP Ret adr. pointer address ' - - - -.... « BP SP:Stackpointer BP:Basepointer

Figuur 13: Stackopbouw voor en na een procedureaanroep

De dataoverdracht tussen een assembler subroutine en een pascal programma gebeurt via de stack. In figuur 13 is de stack voor en na een procedureaanroep getekend. De gegevens moeten in een as-sembler subroutine geindexeerd ten opzichte van de basepointer worden geadresseerd, omdat geindexeerd adresseren ten opzichte

van de stackpointer niet mogelijk is.

Schrijfinstructie Leesinstructie

(

BEGIN

)

BEGIN

I I

Zet de BP op stack

I

Zet de BP op stack

I

I I

Haal adres van stack

I

Haal adres van stack

I

J

Zet het adres op goede Zet het adres op goede

methode in registers methode in registers

I I

Haal data van stack Haal data uit geheugen

I I

Data naar geheugenadres waarde:= var DATA

I I

Haal de BP van stack Haal de BP van stack

I I

End Of Subroutine End Of Subroutine

(31)

In figuur 14 Z1)n de flowcharts van een lees- en schrijfinstruc-tie weergegeven. Hierbij dient opgemerkt te worden dat het lees-en schrijfadres, dat bij de procedureaanroep wordt meegegevlees-en, in een segment- en een offsetadres moet worden gesplitst. De programmalistings van de vier multibusprocedures zijn in bijla-ge C.l opbijla-genomen.

De vier instructies Z1Jn in een library (MBUS.LIB) opgenomen, dat tijdens het linken met de andere libraries wordt meegelinkt. Dit maakt het mogelijk dat de instructies als standaard pascal-instructies kunnen worden gebruikt, mits ze in de moduleheading worden gedeclareerd.

6.2 DE INTERFACESOFTWARE

De interfacesoftware is ter ondersteuning van de interfaces ge-schreven. In de volgende subparagrafen wordt de software voor de positie- en motorinterface besproken.

6.2.1 De software voor de positieinterface De positieinterface kent twee instructies.

- De procedure COUNTERWRITE (DATA: LONGINT) schrijft data, van het type LONGINT (4 bytes, waarvan maar 20 bits worden ge-bruikt), naar de positieinterface.

- De functie COUNTERREAD:LONGINT leest de data, van het type LONGINT (4 bytes waarvan maar 20 bits worden gebruikt), van de positieinterface in.

In figuur 15 is het nassi-schneiderman diagram van de procedure

COUNTERWRITE getekend. Het schrijven naar de positieinterface gebeurt in twee keer. De eerst keer worden de acht minst signi-ficante bits naar de counter geschreven, en de tweede keer de twaalf meest significante bits. Dit is noodzakelijk in verband met de interne counterklok. Orndat er in twee keer geschreven wordt, moet de data (LONGINT type) gesplitst worden. Dit ge-beurt met behulp van de DIVen MOD instructie omdat deze pascal versie de AND functie niet kent.

In figuur 15 is het nassi-schneiderman diagram van de functie

COUNTERREAD weergegeven. Het uitlezen van de positieinterface gebeurt, evenals het schrijven, in twee cycli. Eerst worden de acht minst significante bits gelezen en daarna de twaalf meest significante bits. Aangezien de input instructie zestien bits inleest, worden de bits, die niet gebruikt worden, nul gemaakt. Tot slot worden de twee woorden tot een datawoord, van 20 bits, samengesteld.

(32)

COUNTERWRITE(DATA:INTEGER) COUNTERREAD'INTEGER

.

begin begin

Declaratie Declaratie

DATA1=DATA mod 100H inwrd (AOH, DATAl)

{DATAl bevat 8 LSB} inwrd (A2H,DATA2)

DATA2=DATA div 256 DATA1=DATAl mod 100H

{DATA2 bevat 12 MSB} {neem alleen 8 LSB}

outwt:d (AOH, DATAl) DATA2=DATA2 mod 1000H

outwt:d (A2H,DATA2) {neem alleen 12 MSB}

end {counterwrite} COUNTERREAD=DATA1+

DATA2*256 end {counterread}

Figuur 15: Nassi-schneiderman diagrammen van de twee positieinterface procedures

6.2.2 De software voor de motor interface

De motorinterface voor zowel de translerende als de roterende beweging beeft een woordbreedte van zestien bits. De procedure DACWRITE schrijft een INTEGER (2 bytes) naar de motorinterface. De roterende motorinterface gebruikt aIle zestien bits terwijl de translerende motorinterface er maar twaalf gebruikt.

Een nassi-schneidermann diagram van de DACWRITE procedure wordt, in verband met zijn zeer eenvoudige opzet, niet gegeven. Wel is een listing van de interfaceprocedures in bijlage C.2 opgenomen.

6.3 DE INTERRUPT SERVICE ROUTINES

Alvorens interrupt service routines kunnen worden geschreven, moet aan de volgende eisen worden voldaan:

- Er moet voor elke interrupt een vectoradres worden gecreeerd. - De programmable interrupt controller moet worden

geinitiali-seerd (zie paragraaf 6.4).

- Tot slot moeten aIle interrupts enabled worden, om een inter-rupt service routine call mogelijk te maken.

(33)

De interrupt service routines, die nodig zijn om de interfaces te testen, zijn:

- De eindschakelaar interrupt service routines (RIGHTISR en LEFTISR), die de motor stoppen zodra deze buiten zijn bereik loopt.

- De zero position interrupt service routine (ZEROPOSISR), die de counter in een begintoestand zet zodra het zero position point wordt gepasseerd.

Een listing van deze interrupt service routines is, samen met een routine die de vectoradressen toekent, in bijlage C.3 opge-nomen.

6.4 DE INITIALISATIESOFTWARE

In de onderstaande subparagrafen worden drie initialisatie pro-cedures besproken •

. 6.4.1

De

PIC initialisatiesoftware

De programmable interrupt controller wordt softwarematig met be-hulp van control words geprogrammeerd. Met bebe-hulp van deze

woor-den wordt de PIC in een bepaalde configuratie gezet. V~~r de R-T

robot toepassing wordt de PIC als voIgt geprogrammeerd.

- Er is maar een PIC op het 86/05 bord aanwezig, dus staat deze in de single master mode.

- De interruptlijnen zijn op de opgaande flank actief.

De interrupt afhandeling vindt via de not special fully nested mode plaats. Dit betekent dat een interrupt service routine aIleen door een interrupt met een hogere prioriteit kan worden onderbroken.

- De vectoradressen krijgen een offset van 20H omdat de lagere vectoradressen gereserveerd zijn.

- Het EOI (End Of Interrupt) signaal wordt hardwarematig gege-nereerd.

6.4.2 De PPI initialisatiesoftware

De PPI van de translatie SBC genereert een interrupt, die de

rotatie SBC meldt dat de actuele armpositie zich in het RAM geheugen bevindt. De PPI wordt als normale I/O poort gepro-grammeerd.

(34)

6.4.3 De positieinterface initialisatiesoftware

Direct na het opstarten moeten de positieinterfaces (translatie en rotatie) worden geinitialiseerd. De initialisatieprocedure, die de counter in een bepaalde begintoestand zet, verloopt vol-gens de onderstaande procedure.

- Maak de eindschakelaar- en de zeropositioninterrupt enable. - Laat de motor naar zijn rechtse eindpositie lopen (hier wordt

deze dan door de interrupt procedure RIGHTISR gestopt).

- Laat de motor naar zijn linkse eindpositie lopeno Bij het pas-seren van de zero position wordt naar de zero position inter-rupt service routine gesprongen, die de counter in een begin-toestand zet.

- Maak de zeropositioninterrupt disable.

Het nassi-schneiderman diagram van de procedure POSITIONCOUNTER-INIT is in figuur 17 getekend. Verder is in bijlage C.4 een lis-ting van de initialisatiemodule opgenomen. Deze bevat de drie

procedures PICINITIALISATIE PITINITIALISATIE en

POSITIONCQUN-TERINIT.

begin

Enable m.b.v.de procedure PICWRITE de eindschakelaar- en zeropositioninterrupt. Stuur een spanning naar de DAC zodat de motor naar zijn rechtse eindpositie loopt.

I

Wacht

Herhaal tot rechtse eindpositie is gehaald Stuur een spanning naar de DAC zodat de motor naar zijn linkse eindpositie loopt.

I

Wacht

Herhaal tot linkse eindpositie is gehaald. Disable de zeroposition interrupt.

end {positioncounterinit}

Figuur 17: Nassi-schneiderman diagram van de initialisatie van de positieinterface

(35)

CQNCWSIES

De besturingscomputer, zoals deze in het rapport is besproken, is op dit moment gebouwd en getest. Een testprogramma, dat zo-weI de software als de hardware test, heeft in de practijk be-wezen dat de besturingscomputer goed functioneert.

De besturingscomputer is flexibel opgezet, zodat een eventuele uitbreiding geen problemen geeft. Er kunnen voor eventueel meer-dere dimensies, een verhoogde snelheid of complexe berekeningen extra SBC's worden toegevoegd. Ook is het mogelijk de Teach/Re-play tijd te vergroten door het interne RAM geheugen uit te breiden.

De eis, die vooraf aan de positie/hoek resolutie is gesteld, wordt met de gebruikte interface gehaald.

specificaties - oxS10 ~m

O<1>SO,55.10- 3 0

behaalde resolutie: - ox=10 ~m

- 0<1>=0,375.10- 3 0

De resolutie voor de positie x voldoet precies aan de vooraf ge-stelde eis. Mocht deze nauwkeurigheid achteraf niet voldoende zijn, dan bestaat er de mogelijkheid de resolutie van de trans-lerende meetlineaal te vergroten door de toepassing van een in-terpolator.

Op dit moment is de DAC uitgevoerd met een versterker, die niet aan de eis ten aanzien van het spanningsbereik (±15,S V voor de translatie en ±16,9V voor de rotatie DAC) voldoet. Als aan de eis voldaan moet worden, dan moet er een extra voeding voor de ver-sterker komen.

(36)

GEBAADPLEEGPE LITERATUUR

[1] Bommel L.V.M. van,

ontwerp, productie en de dynamische analyse van een lineai-re actuator,

WPA-rapport 0067, Eindhoven, oktober 1988.

t2] Chalitsios C.,

ontwerp en bouw van een besturingscomputersysteem voor een

2D-robot (I),

WPA-rapport 0.576, Eindhoven, mei 1988.

[3] Nederhoed P.,

Helder rapporteren, Den Haag, 1985.

(4) Reijnen J.G.M.,

Onderzoek naar een nieuw besturings voor de ASEA - robot mbv

een 3D krachten- en momentensensorl

WPA-rapport 0.313, Eindhoven, juli 1986.

[5] Retraint E,

Control unit for two-dimensional robot,

WPA-rapport 0542 , Eindhoven, februari 1988.

[6] An introduction to ASM86,

uitgave van Intell 1981.

[7] ASM86 language reference manual,

uitgave van Intel, 1983.

[8] Digital Integrated circuits CMOS HE4000B family,

uitgave van Philips, 1983.

[9] iAPX 86,88 family utilities user's guide,

uitgave van Intel, 1982.

[10] iSBC 186/03 Single Board Computer hardware reference manual, uitgave van Intel, 1984.

[11] iSBC 86/05 Single Board Computer hardware reference manual, uitgave van Intel, 1981.

[12] iSBC 86/12 Single Board Computer hardware reference manual, uitgave van Intel, 1978.

[13] iSBC 028A RAM Board hardware reference manual, uitgave van Intel, 1981.

[14] iSDM86 system debug monitor reference manual, uitgave van Intel, 1983.

[15] OEM System handbook, uitgave van Intel, 1985. [16] Pascal-86 user's guide,

uitgave van Intel, 1984. [17] Product data book,

uitgave van Burr-Brown, 1984. [18] Product data book supplement, uitgave van Burr-Brown, 1985. [19] The TTL data book Volume 1,

(37)

BIJLAGEN A

DE

HARDWARE VAN DE BESTURINGSCOMPQTER

A.l DE MEMORY MAP VAN DE BESTURINGSCOMPUTER

A.2 DE 8259A PROGRAMMABLE INTERRUPT CONTROLLER

A.2.1 De Interrupt Control Words

A.2.2 De Operation Control Words

A.3 DE 8255A PARALLEL PORT INTERFACE

A.4 DE iSBX BUS

A.5 DE MULTIBUS

(38)

BIJLAGE A.1 FFFFF F8000 F7FFF 08000 03FFF 00000 FFFFF F8000 F7FFF 08000 07FFF 04000 03FFF 00000

DE MEMORY MAP VAN DE BESTURINGSCOMPUTER

sse 186/03 32K local ROM geheugen 32K local RAM geheugen SBC 86/12 32K local ROM geheugen 16K dual port RAM geheugen 16K local RAM geheugen FFFFF F8000 F7FFF 02000 01FFF 00000 FFFFF A4000 A3FFF AOOOO 9FFFF 80000 7FFFF 00000 sse 86/05 32K local ROM geheugen 8K local RAM geheugen

MULTI SUS ADRESSEN

16K dual port RAM geheugen

128K RAM geheugen (028 RAM board)

(39)

BIJLAGE A.2 DE 8259A PROGRAMMABLE INTERRUPT CONTROLLER

De Programmable Interrupt Controller kent twee soort controle woorden, de Interrupt Control Words (ICW) en de Operation Con-trol Words (OCW). In deze bijlage worden allen de ICW's en de OCW's besproken die voor de R-T robot van toepassing zijn.

A.2.1 De Interrupt Control Words

De PIC wordt met behulp van vier ICW's in een bepaalde configu-ratie gezet. De betekenis van de ICW's, met het I/O adres, is hieronder gegeven.

- ICWl (I/O adres OOCO H)

- ICW2 (I/O adres OOC2 H)

Single

o

single master

1 : not single master Level Triggered Input Mode

o :

edge triggered input 1 : level triggered input

De offset die aan het base vectoradres

wordt meegegeven. Er zijn 25

=

32

(40)

- ICW4 (I/O adres 00C2 H)

Fully Nested Mode 0

1

not fully nes-ted mode

.

0 fully nested mode

Buffered

o

not buffered mode

1 : buffered mode Automatic End Interrupt 0

. EOI wordt

.

warematig nereerd 1 0 EOI wordt 0 warematig nereerd ~----~~Master/Slave

o :

slave 1 : master

De ICW's zijn als voIgt geprogrammeerd:

- ICWl = 0001 0011 B

- ICW2 = 0010 0000 B

- ICW4

=

0000 1111 B

Het initialisatie programma is in bijlage Co4 opgenomen.

A.2.2 De Operation Control Words

Het enigste OCW dat voor de 86/05 toepassing van belang is, is het interrupt mask register (OWCl).

- OCWl (I/O adres 00C2 H)

Interrupt Mask Register

o :

interrupt enable 1 : interrupt disable

De subroutine, die de PIC initialiseert, is in bijlage C.4 opgenomen. of hard- gege- soft-

(41)

gege-BIJLAGE A.3 DE 8255A PARALLEL PORT INTERFACE

De Parallel Port Interface (PPI) wordt op de translatie 86/05 SBC als interruptbron gebruikt. Deze interrupt meldt de rota-tie SBC dat de actuele armposirota-tie in het RAM geheugenbord aan-wezig is. De PPI bestaat uit drie 8 bits I/O poorten, waarvan aIleen poort C wordt gebruikt. De 24 I/O lijnen zijn in twee groepen van 12 bits gesplits .

poort A 0 1 7 . poort C poort B

r

23 group A 12 11 group B

o

De PPI wordt met behulp van een Control Word (8 bits) geinitia-liseerd. Het CW heeft de volgende betekenis:

I/O adres : OOCE H

Mode set Flag 1 : enable CW en reset I/O lijnen

o :

disable Mode Selection 00 : mode 0 01

·

·

mode 1 1* : mode 2 Mode 1 en 2 kent speciale functies aan I/O lijnen toe.

poort A 0

·

·

output 1

·

·

input 4 0 1 4 LSbits van poort C o : output 1 : input poort B

o :

output 1 : input Mode Selection

0

.

.

mode 0, aIle poorten zijn normale I/O poorten

1 mode 1, kent speciale

functies aan I/O lij-nen

MSbits van poort C output

.

input

.

De PPI is met het volgende Contol Word geprogrammeerd.

CW

=

1000 0000 B

De subroutine, die de PPI initialiseert, is in bijlage C.4 weergegeven.

(42)

BlJLAGE A.4 DE iSBX BUS

De iSBX bus is hieronder getekend.

MDO

]

MDF DATALIJNEN +5V

]

GND +15V -15V VOEDINGSLIJNEN lOR lOW MPST CONTROL-LIJNEN MRESET MWAIT eLK MAO MAl

MA2 CHIP SELECT-LIJNEN

MCSO MCS1 INTO

]

INT1 INTERRUPTLIJNEN OPTO

]

OPT1 OPTION-LIJNEN

De functie van de verschillende lijnen is:

- De datalijnen worden voor de dataoverdracht gebruikt. In de 8 bits mode worden aIleen de lijnen MDO •• MD7 gebruikt, ter-wijl in de 16 bits mode aIle lijnen bezet zijn.

- De voedingslijnen worden gebruikt am een iSBX bus module te voeden.

(43)

- De functies van de verschillende control lijnen zijn: lOW/lOR: Dit zijn de Input-Output Read/Write signalen.

MPST : De Module Present lijn moet laag zijn om aan te

geven dat er een module op de iSBX bus aanwezig is. MRESET : De Master Reset geeft een reset als de SBe wordt

gereset.

MWAIT : Module Wait zet de SBC in de wait mode.

CLK : Dit is de SBC klok (9,68 MHz).

- De chip selectlijnen bepalen welk I/O adres dient te worden gekozen om een (deel van een) module te selecteren. De rela-tie tussen de I/O adressen en de selecrela-tielijnen is hieronder weergegeven.

I/O adres I/O adres

~2 ~1 ~o bus 1 (J4) bus 2 (J3) 0 0 0 80 H AO H 0 0 1 82 H A2 H 0 1 0 84 H A4 H 0 1 1 86 H A6 H 1 0 0 88 H AS H 1 0 1 SA H MH 1 1 0 8C H AC H 1 1 1 SE H AE H

De Meso lijn wordt, in de 16 bits mode, actief zodra een van deze adressen voorkomt. Dus moet in de 16 bits mode de Meso lijn ook worden meegenomen.

De I/O adressen van de interfaces zijn:

- positieinterface S LSBits AO H

12 MSBits: A2 H

- motorinterface 12/16 bits: 80 H

- De interrupt lijnen kunnen met de PIC verbonden worden, en dienen als interrupt ingangen voor externe interrupts.

- De option lijnen zijn extra in- of uitgangen die voor extra opties kunnen worden gebruikt. In de R-T robot toepassing zijn ze als extra voedingslijnen gebruikt om de DAe te voeden.

OPTO

=

+15V

(44)

In de onderstaande tabel zijn aIle lijnen van de iSBX bus met hun pinnummers weergegeven.

PIn MneMon6c OeecrtpUon PIn Mnemonk: Oeecflptlon

43 MOB MDATA 8 44 MD9 MDATA 9

41 MDA MDATA A 42 MOB MDATA B

3i MOe MDATA C 40 MOD MDATA 0

37 MOE MDATA E 38 MDF MDATA F

35 GND SIGNAL GROUND 36 +5V +S Volts

33 MOO MDATA BIT 0 ~

-

RESERVED

31 MOl MDATA BIT 1 32

-

RESERVED

28 MD2 MDATA BIT 2 30 OPTO OPTION 0

21 MD3 MDATA BIT 3 28 OPT1 OPTION 1

25 MD .. MDATA BIT 4 26

-

RESERVED

23 MDS MDATA BIT 5 2 ..

-

RESERVED

21 MDe MDATA BIT 6 22 MesO! M CHIP SELECT 0

'I MD7 MDATA BIT 1 20 MCSII M CHIP SELECT 1

17 GND SIGNAL GROUND 18 't5V "6 Volta

15 10RDI 10 READ COMMAND 16 MWAITI M WAIT

13 lOWRTI 10 WRITE CO~MAND 14 MINTRO M INTERRUPT 0 11 MAO M ADDRESS 0 12 MINTR1 M INTERRUPT 1

II MAl M ADDRESS 1 10

-

RESERVED

7 MA2 M ADDRESS 2 8 MPSTI M PRESENT

5 MRESET M RESET 8 MClK M CLOCK

3 GND SIGNAL GROUND

..

+5V +5 Volts

(45)

BIJLAGE A.S DE MULTI BUS

De multibusconnector is hieronder weergegeven.

+5V

]

+12V -12V GND VOEDINGSLIJNEN ADRO

]

ADR19 ADRESLIJNEN DATO

]

DATF DATALIJNEN INTO

]

INT7 INTERRUPTLIJNEN BCLK INIT BPRN BPRO BUSY BREQ MRDC MWTC IORC CONTROL-LIJNEN IOWC XACK LOCK BHEN CBRQ CCLK INTA

(46)

De verschillende lijnen hebben de volgende functies.

- VOEDINGSLIJNEN : Deze lijnen zijn verbonden met een voeding, welke via de multibus aIle SBC's voedt.

- ADRESLIJNEN : Dit zijn de twintig adreslijnen die elke proces-sor heeft, hiermee wordt een geheugenlocatie op het RAM bord geselecteerd.

- DATALIJNEN : Dit zijn de 16 datalijnen.

- INTERRUPTLIJNEN : Dit zijn de multibusinterruptlijnen. Dit zijn : - Teach Interrupt (MBUSINTO)

- Replay Interrupt (MBUSINTI) - Sample Interrupt (MBUSINT2) - Test Interrupt (MBUSINT3)

- Translatie SBC Interrupt (MBUSINT5)

- CONTROL-LIJNEN : De functie van de verschillende control lijnen is: - BCLK : Bus Clock, deze wordt door de master SBC

gegene-reerd en op aIle SBC gebruikt in verband met syn-chronisatie.

INIT : Initialisatie, zet het gehele systeem in een be-BPRN

BPRO

gintoestand. Bus Priotity In

Bus Priority Out, dit zijn twee signalen die de busarbitrage regelen.

BUSY Geeft aan dat de multibus bezet is.

BREQ : Bus Request, dit signaal geeft een multibus re-MRDC MWTC IORC 10WC XACK LOCK quest aan.

Memory Read Command Memory write Command I/O Read Command : I/O Write Command

Transfer Acknowledge, meldt een SBC dat de data-overdracht goed verI open is.

Dual Port RAM Lock, schakelt het dual port RAM geheugen, van een SBC, uit.

BHEN : Byte High Enable, geeft aan dat het oneven byte CBRQ

(DAB •. DAF) in de multibusinterface aanwezig is. Commom Bus Request, geeft aan dat de busmaster over de multibus wil beschikken, als deze bezet is.

CCLK Constant Clock, dit is een constante clock die

voor andere modules gebruikt kan worden (9,22MHz). INTA : Initialize, reset het gehele systeem.

Referenties

GERELATEERDE DOCUMENTEN

Low concentrations of tyrosine kinase inhibitors must be used so IR-B is not blocked totally (because all receptors IGF1R, IR-A, IR-B, HR-A, HR-B are then blocked) but the levels

4.14 CS method simulation results: Cell current during applied PRBS signals 67 4.15 CS method simulation results: Cell stimulus during applied PRBS signals 68 4.16 CS method

De ‘Tomberg’ (CAI 162997) is een toponiem voor een grafheuvel uit de Romeinse periode. Tenslotte verwijzen CAI 51 en 4773 respectievelijk naar een achttiende-eeuwse windmolen

De aangetroffen sporen zijn zowel van natuurlijke als antropogene aard, waarbij de meeste kuilen bij 

‘The time course of phonological encod- ing in language production: the encoding of successive syllables of a word.’ Journal of Memory and Language 29, 524–545. Meyer A

At the ICHLL conferences three disciplines dealing with historical vocabulary are represented: the lexicography of older language stages (the practice of historical lexicography),

In this section, we discuss both the causative and the passive in Turkish, and show that their iteration is not subject to restrictions that hold at the M-Word stage, but rather

Building on top of this, it comes natural to me to classify the female narrators in Gillian Flynn’s Gone Girl, Ian McEwan’s Atonement and Lionel Shriver’s We Need to Talk