ˇ ´ vysoke ´ uc ˇen´ı technicke ´ v Praze Cesk e ´ Fakulta elektrotechnicka ˇ´ıdic´ı techniky Katedra r
´ PRACE ´ DIPLOMOVA
Syst´ em pro podporu ˇ r´ızen´ı piezoelektrick´ ych motor˚ u
Milan Anderle 2008
Podˇ ekov´ an´ı Dˇekuji Ondˇreji Holubovi za veden´ı diplomov´e pr´ace a za cenn´e rady a pˇripom´ınky. D´ale dˇekuji Petru Augustovi za pomoc pˇri sazbˇe tohoto textu.
iv
Abstrakt C´ılem diplomov´e pr´ace bylo navrhnout a realizovat procesorov´ y syst´em pro buzen´ı a vyhodnocen´ı 2-D kapacitn´ıho senzoru polohy. Z´akladn´ımi obvody procesorov´eho syst´emu jsou mikroprocesor, hradlov´e pole a A/D a D/A pˇrevodn´ıky. Hlavn´ı n´apln´ı pr´ace byly n´avrh a implementace komunikace mezi mikroprocesorem a A/D a D/A pˇrevodn´ıky pomoc´ı hradlov´ ych pol´ı. Komunikace byla nejprve uskuteˇcn ˇov´ana a testov´ana pomoc´ı CPLD obvodu, n´aslednˇe vˇsak bylo CPLD nahrazeno FPGA, kter´e umoˇzn ˇuje nejen pr´aci se dvˇema kapacitn´ımi senzory souˇcasnˇe, ale tak´e filtraci ˇ zmˇeˇren´ ych dat. Cinnost FPGA byla otestov´ana na dodan´em kapacitn´ım senzoru.
Abstract Objective of this diploma thesis was to design and realise a processor system for excitation and measuring of 2-D capacitive position sensor. The key blocks of the measuring circuit are microprocessor, gate array, and A/D and D/A convertors. The main task of my work was to design and implement a communication between microprocessor and A/D and D/A convertors with gate array. At first the communication has been built and tested with CPLD. As a next step, than CPLD has been replaced by FPGA, which enables not only to work with two capacitive position sensors simultaneously, but also to filtering the data acquired from the sensor. Function of the setup with FPGA has been tested on supplied capacitive position sensor.
v
vi
Obsah ´ 1 Uvod
1
2 Analogov´ e rozhran´ı ke kapacitn´ımu senzoru 2.1 Kapacitn´ı senzory . . . . . . . . . . . . . . . 2.2 Analogov´a ˇca´st mˇeˇric´ıho obvodu . . . . . . . 2.2.1 A/D pˇrevodn´ık . . . . . . . . . . . . 2.2.2 D/A pˇrevodn´ık . . . . . . . . . . . .
3 3 5 5 7
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
3 Popis mˇ eˇ ric´ıho obvodu s mikroprocesorem 4 Popis mˇ eˇ ric´ıho obvodu s mikroprocesorem a CPLD ˇ sen´ı komunikace pomoc´ı hradlov´eho pole . . . . . . . . . . . . 4.1 Reˇ 4.1.1 Generov´an´ı dat pro D/A pˇrevodn´ıky . . . . . . . . . . . 4.1.2 Pˇredzpracov´an´ı dat z A/D pˇrevodn´ıku . . . . . . . . . . 4.2 Otestov´an´ı hradlov´eho pole . . . . . . . . . . . . . . . . . . . . 4.3 Podrobn´ y popis ˇcinnosti hradlov´eho pole . . . . . . . . . . . . . 4.3.1 Popis komunikace a ovl´ad´an´ı A/D a D/A pˇrevodn´ık˚ u . . 4.3.2 Komunikace s mikroprocesorem, obousmˇern´ y pˇrenos dat 4.3.3 Blok pro komunikaci s A/D pˇrevodn´ıkem . . . . . . . . . ˇ sen´ı s CPLD XC95288XL . . . . . . . . . . . . . . . . . . . . 4.4 Reˇ
9 . . . . . . . . .
11 11 12 13 13 15 16 21 21 22
5 Popis mˇ eˇ ric´ıho obvodu s mikroprocesorem a FPGA ˇ 5.1 Reˇsen´ı s FPGA XC2S50 . . . . . . . . . . . . . . . . . . . . . . . .
27 27
6 Otestov´ an´ı mˇ eˇ ric´ıho obvodu
31
7 Z´ avˇ er
34
Literatura
36
A V´ yvojov´ e diagramy
38 vii
. . . . . . . . .
B Sch´ ema zapojen´ı
41
viii
Seznam obr´ azk˚ u 1.1
Prototyp stolku s krokov´ ymi piezoelektrick´ ymi motory . . . . . . .
1
2.1 2.2 2.3 2.4
Uspoˇr´ad´an´ı kapacitn´ıho senzoru s promˇennou plochou Uspoˇr´ad´an´ı kapacitn´ıho senzoru. . . . . . . . . . . . . Sch´ema zapojen´ı A/D pˇrevodn´ıku . . . . . . . . . . . Sch´ema zapojen´ı D/A pˇrevodn´ıku . . . . . . . . . . .
. . . .
4 5 6 8
3.1
Blokov´e sch´ema cel´eho zapojen´ı. . . . . . . . . . . . . . . . . . . . .
10
4.1 4.2 4.3 4.4 4.5 4.6
14 15 16 17 17
4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16
Odchylky stˇredn´ıch hodnot. . . . . . . . . . . . . . . . . . . . . . . Uk´azka dat z A/D pˇrevodn´ıku. . . . . . . . . . . . . . . . . . . . . 16 − bit DA pˇrevodn´ık DAC8871 . . . . . . . . . . . . . . . . . . . 16 − bit dvoukan´alov´ y DA pˇrevodn´ık AD5545 . . . . . . . . . . . . 18 − bit AD pˇrevodn´ıkem AD7982 . . . . . . . . . . . . . . . . . . . Uk´azka z´apisu stavov´eho automatu ve VHDL pro moˇznost uveden´ı stavov´eho automatu do v´ ychoz´ıho stavu. . . . . . . . . . . . . . . . Uk´azka z´apisu stavov´eho automatu ve VHDL pro ovl´ad´an´ı v´ ystup˚ u a pˇrechody mezi stavy . . . . . . . . . . . . . . . . . . . . . . . . . Komunikace s A/D a D/A pˇrevodn´ıky. . . . . . . . . . . . . . . . . Zmˇeny datov´ ych a hodinov´ ych sign´alu. . . . . . . . . . . . . . . . . Uk´azka posuvn´eho registru pro vyˇc´ıt´an´ı dat ve VHDL . . . . . . . . Uk´azka posuvn´eho registru pro pos´ıl´an´ı dat ve VHDL . . . . . . . . Vyvinut´a deska s CPLD a mikroprocesorem. . . . . . . . . . . . . . Skuteˇcn´e pr˚ ubˇehy SPI komunikace s A/D pˇrevodn´ıkem . . . . . . . Skuteˇcn´e pr˚ ubˇehy SPI komunikace s D/A pˇrevodn´ıkem . . . . . . . Obd´eln´ıkov´ y sign´al, mˇeˇren´ı ve smˇeru osy X . . . . . . . . . . . . . . Obd´eln´ıkov´ y sign´al, mˇeˇren´ı ve smˇeru osy Y . . . . . . . . . . . . . .
5.1 5.2 5.3 5.4
Vyvinut´a deska s FPGA a mikroprocesorem. . . . . Zapojen´ı pouze FPGA do JTAG ˇretˇezce. . . . . . . Zapojen´ı EEPROM a FPGA do JTAG ˇretˇezce. . . . Filtrov´an´ı mˇeˇren´ ych dat klouzav´ ym filtrem 4. ˇra´du.
28 29 29 30
4.7
ix
. . . .
pˇrekryt´ı . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
18 19 20 21 22 23 23 24 24 25 26
6.1 6.2 6.3
Polohovaci stolek pro mikroposuvy. . . . . . . . . . . . . . . . . . . Uk´azka ˇcetnosti dat z A/D pˇrvodn´ıku. . . . . . . . . . . . . . . . . Linearita mˇeˇren´ı posuvu. . . . . . . . . . . . . . . . . . . . . . . . .
32 32 33
A.1 V´ yvojov´ y diagram popisuj´ıc´ı komunikaci mezi hradlov´ ym polem a mikroprocesorem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 V´ yvojov´ y diagram pro ovl´ad´an´ı ˇr´ıdic´ıch a SPI sign´al˚ u. . . . . . . .
39 40
B.1 Sch´ema zapojen´ı destiˇcky s A/D pˇrevodn´ıkem. . . . . . . . . . . . . B.2 Sch´ema zapojen´ı destiˇcky s D/A pˇrevodn´ıkem. . . . . . . . . . . . . B.3 Sch´ema zapojen´ı destiˇcky s FPGA a mikroprocesorem. . . . . . . .
42 43 44
x
Seznam tabulek 2.1 2.2
Velikost vstupn´ıho napˇet´ı a digit´aln´ı v´ ystup . . . . . . . . . . . . . V´ ybˇer registr˚ u pro z´apis dat. . . . . . . . . . . . . . . . . . . . . . .
Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy Y v prvn´ı ˇca´sti periody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy Y v druh´e ˇca´sti periody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy X v prvn´ı ˇca´sti periody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy X v druh´e ˇca´sti periody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 7
4.1
xi
12 12 12 13
xii
Kapitola 1 ´ Uvod V r´amci ˇreˇsen´ı v´ yzkumn´eho projektu Golem [14] se na pracoviˇsti, kde byla tato pr´ace zad´ana, pouˇz´ıv´a krokov´ ych piezoelektrick´ ych motoru k ovl´ad´an´ı xy stolku mikroskopu. Prototyp takov´eho stolku zachycuje obr. 1.1. Motory, zaloˇzen´e na tzv. stick-slip efektu, jsou schopny velmi jemn´ ych krok˚ u v ˇr´adu stovek nm pˇri rychlosti pohybu aˇz 10 mm/s. Existuje cel´a ˇrada prac´ı, kter´e se zab´ yvaj´ı r˚ uznˇe komplikovan´ ymi zp˚ usoby, jak tyto polohov´e syst´emy ˇr´ıdit ve zpˇetn´e vazbˇe, napˇr. [1], nebo [3]. Bylo ovˇsem uk´az´ano, ˇze pro vˇetˇsinu aplikac´ı postaˇc´ı klasick´ y PID regul´ator s kompenzac´ı such´eho tˇren´ı [5]. Kl´ıˇcov´ ym probl´emem je naopak z´ısk´an´ı informace pro uzavˇren´ı zpˇetn´e vazby, ˇ ıdic´ı frekvence piezomotoru, kter´a ud´av´a dobu mezi dvˇema tj. mˇeˇren´ı polohy. R´
Obr´azek 1.1. Prototyp stolku s krokov´ ymi piezoelektrick´ ymi motory
1
2
´ KAPITOLA 1. UVOD
kroky, b´ yv´a v ˇra´du jednotek kHz. Aby nedoˇslo ke znehodnocen´ı pˇrednost´ı piezomotoru, je potˇreba mˇeˇrit polohu s rychlost´ı alespoˇ n stovek vzork˚ u za sekundu a ˇsumem ˇra´dovˇe 1 mikrometr nebo lepˇs´ı. Rozsah pohybu xy stolku je 15 mm v kaˇzd´e ose. Kv˚ uli zabudov´an´ı do st´avaj´ıc´ıho komerˇcn´ıho mikroskopu nem´a xy stolek veden´ı. Za tˇechto podm´ınek lze k mˇeˇren´ı pouˇz´ıt interferometr, kameru s extr´emnˇe rychl´ ym vyhodnocen´ım nebo kapacitn´ı senzor. Na naˇsem pracoviˇsti se z finanˇcn´ıch d˚ uvod˚ u pouˇz´ıv´a kapacitn´ı senzor polohy. Na pokyn vedouc´ıho pr´ace jsem se vˇenoval v´ yhradnˇe n´avrhu a testov´an´ı procesorov´eho syst´emu pro buzen´ı a vyhodnocen´ı kapacitn´ıho senzoru polohy. S kolegou, Jiˇr´ım Richtrem, jsme navrhli, realizovali a testovali celkem tˇri varianty tohoto syst´emu. Kaˇzd´e variantˇe je vˇenov´ana samostatn´a kapitola diplomov´e pr´ace. Pˇredch´az´ı jim kapitola, kter´a struˇcnˇe popisuje kapacitn´ı senzor a jeho analogov´e rozhran´ı a princip amplitudov´e modulace senzoru s vyuˇzit´ım hradlov´eho pole. V kapitol´ach se zamˇeˇruji hlavnˇe na tu ˇc´ast pr´ace, kterou jsem dˇelal.
Kapitola 2 Analogov´ e rozhran´ı ke kapacitn´ımu senzoru V t´eto kapitole je pojedn´ano o z´akladn´ıch principech a moˇznostech pouˇzit´ı kapacitn´ıch senzor˚ u. N´asleduje popis analogov´e ˇca´sti mˇeˇr´ıc´ıho obvodu, kter´a je pouˇz´ıv´ana pro mˇeˇren´ı sign´alu na mˇeˇric´ı elektrodˇe a k buzen´ı kapacitn´ıho senzoru.
2.1
Kapacitn´ı senzory
Kapacitn´ı senzor, se kter´ ym se pracuje, je kontaktn´ı, diferenci´aln´ı kapacitn´ı senzor s promˇennou plochou pˇrekryt´ı elektrod. Jeho blokov´e uspoˇra´d´an´ı je na obr. 2.1. Na obr. 2.2 je jeho skuteˇcn´a podoba. V lev´e ˇc´asti je nepohybliv´a deska se ˇctyˇrmi budic´ımi elektrodami, v prav´e ˇc´asti je pohybliv´a, mˇeˇric´ı elektroda. Pˇrevodn´ı charakteristika kapacitn´ıho senzoru vych´az´ı ze vztahu pro kapacitu rovinn´eho deskov´eho kondenz´atoru s homogenn´ım polem ε0 εr S , d kde ε0 = 8,85 pF/m je dielektrick´a konstanta pro vakuum, εr je relativn´ı permitivita jej´ıˇz hodnota z´avis´ı na druhu dielektrika, S je plocha desek kondenz´atoru, d je vzd´alenost mezi deskami. Kapacita sn´ımac´ı elektrody v˚ uˇci jednotliv´ ym budic´ım elektrod´am je d´ana jako C=
(x0 ± x)(y0 ± y) , d kde x0 a y0 je z´akladn´ı poloha a x a y je vych´ ylen´ı ze z´akladn´ı polohy. Elektrody jsou pˇripojeny na obd´eln´ıkov´ y nebo harmonick´ y sign´al stejn´e amplitudy, ale opaˇcn´e polarity. Pokud je mˇeˇric´ı elektroda pˇresnˇe uprostˇred nad budic´ımi Ci (x,y) = ε
3
´ ROZHRAN´I KE KAPACITN´IMU SENZORU KAPITOLA 2. ANALOGOVE
4
elektrodami, obˇe kapacity jsou stejnˇe velk´e a na mˇeˇric´ı elektrodˇe bude nulov´ y sign´al. Pokud se stˇredov´a deska vych´ yl´ı, pos´ıl´ı se kapacitn´ı vazba a na mˇeˇric´ı elektrodˇe bude nenulov´ y sign´al. Pˇrivedeme-li na elektrody harmonick´ y sign´al generovan´ y pomoc´ı dnes jiˇz zastaral´ ych funkˇcn´ıch gener´ator˚ u (napˇr. gener´ator XR-2206 od spoleˇcnosti Exar) nebo pomoc´ı obvodu pro pˇr´ımou digit´aln´ı synt´ezu frekvence (DDS)1 (napˇr. programovateln´ y sign´alov´ y gener´ator AD9833 od spoleˇcnosti Analog Devices) lze usuzovat o zmˇenˇe polohy ze zmˇeny sign´alu na mˇeˇric´ı elektrodˇe, viz [2]. Druhou moˇznost´ı je pˇriveden´ı obd´eln´ıkov´eho sign´alu na budic´ı elektrody a zaveden´ı zpˇetn´e vazby. Vznikl´ y sign´al na mˇeˇric´ı elektrodˇe je moˇzn´e pouˇz´ıt k dosaˇzen´ı nov´e rovnov´ahy na mˇeˇric´ı elektrodˇe zmˇenou amplitud obd´eln´ıkov´eho sign´alu na jednotliv´ ych budic´ıch elektrod´ach. Tato pr´ace se zab´ yv´a pr´avˇe t´ımto zp˚ usobem. Zpracov´an´ı sign´alu z mˇeˇric´ı elektrody je z´avisl´e na budic´ım sign´alu. Pokud pˇriveden´ y sign´al je harmonick´ y, je vhodn´e nejprve sign´al z mˇeˇric´ı elektrody dvoucestnˇe usmˇernit. Pot´e z´ıskat jeho stˇredn´ı hodnotu pomoc´ı dolnopropustn´eho filtru, kterou lze mˇeˇrit. Pokud sign´al pˇriveden´ y na budic´ı elektrody je obd´eln´ıkov´ y, lze mˇeˇrit jeho velikost pˇr´ımo na senzoru.
1
Pˇr´ım´a digit´aln´ı synt´eza frekvence je zp˚ usob vytvoˇren´ı frekvenˇcnˇe a f´ azovˇe modulovan´eho v´ ystupn´ıho sign´alu ze stabiln´ıho referenˇcn´ıho sign´ alu o konstantn´ı frekvenci.
Obr´azek 2.1. Uspoˇr´ad´an´ı kapacitn´ıho senzoru s promˇennou plochou pˇrekryt´ı
´ C ˇ AST ´ ˇ RIC ˇ ´IHO OBVODU 2.2. ANALOGOVA ME
5
Obr´azek 2.2. Uspoˇr´ ad´ an´ı kapacitn´ıho senzoru.
2.2
Analogov´ aˇ c´ ast mˇ eˇ ric´ıho obvodu
Pro potˇreby amplitudov´e modulace je nutno generovat obd´eln´ıkov´ y sign´al pro ˇctyˇrkvadrantov´ y kapacitn´ı senzor velmi pˇresn´ y v amplitudˇe s konstantn´ı frekvenc´ı. Nejvhodnˇejˇs´ı by byl sign´al s nulovou stˇredn´ı hodnotou. D´ale je tˇreba velmi pˇresnˇe mˇeˇrit velikost sign´alu na mˇeˇric´ı elektrodˇe v kladn´e i z´aporn´e amplitudˇe. Generov´an´ı pˇresn´eho obd´eln´ıkov´eho sign´alu pro amplitudovou modulaci je realizov´ano pomoc´ı D/A pˇrevodn´ıku. Dvakr´at za periodu se do D/A pˇrevodn´ıku pos´ıl´a hodnota kladn´e a z´aporn´e amplitudy obd´eln´ıkov´eho sign´alu. Mˇeˇren´ı sign´alu na mˇeˇric´ı elektrodˇe je realizov´ano pomoc´ı A/D pˇrevodn´ıku, kter´ y mˇeˇr´ı velikost amplitudy v kaˇzd´e p˚ ulperiodˇe.
2.2.1
A/D pˇ revodn´ık
Pouˇzit´ y 18 bitov´ y A/D pˇrevodn´ık AD7982 je zapojen spolu s rozd´ılov´ ym zesilovaˇcem ADA4941 podle sch´ema na obr. 2.3. Zapojen´ı bylo sestaveno na z´akladˇe doporuˇcen´ı uveden´ ych v [8]. Sign´al z mˇeˇric´ı elektrody je pˇriveden na vstup jednoduch´eho hornopropustn´eho filtru RC, kter´ ym je ze sign´alu odstranˇena stejnosmˇern´a sloˇzka2 . Rezistor na v´ ystupu 2
Z tohoto d˚ uvodu mus´ı b´ yt generovan´ y obd´eln´ıkov´ y sign´ al soumˇern´ y podle nemˇenn´e stejnosmˇern´e hodnoty. Jinak by vlivem nab´ıjen´ı nebo vyb´ıjen´ı vstupn´ıho kondenz´ atoru doch´ azelo k dalˇs´ım
6
´ ROZHRAN´I KE KAPACITN´IMU SENZORU KAPITOLA 2. ANALOGOVE
Obr´azek 2.3. Sch´ema zapojen´ı A/D pˇrevodn´ıku
filtru nen´ı pˇripojen proti zemi, ale na napˇet´ı ze zdroje referenˇcn´ıho napˇet´ı +2,5 V. Stejn´a velikost napˇet´ı je pˇrivedena i na vstup REF pˇredzesilovaˇce. T´ım je doc´ıleno posunut´ı stejnosmˇern´e sloˇzky sign´alu na v´ ystupu hornopropustn´eho fitru na +2,5 V. Na v´ ystupu pˇredzesilovaˇce OUTP je osledovan´ y vstupn´ı, posunut´ y sign´al z mˇeˇric´ı elektrody. Na v´ ystupu OUTN je ten sam´ y sign´al, ale invertovan´ y. T´ım je doc´ıleno toho, ˇze na rozd´ılov´ ych vstupech A/D pˇrevodn´ıku je napˇet´ı, kter´e odpov´ıd´a velikosti amplitudy obd´eln´ıkov´eho sign´alu z mˇeˇric´ı elektrody. Data z A/D pˇrevodn´ıku jsou pos´ıl´ana v bin´arn´ım doplˇ nkov´em k´odu. Pˇri takov´em k´odov´an´ı je z´aporn´e ˇc´ıslo zaznamen´ano jako bin´arn´ı negace p˚ uvodn´ıho ˇc´ısla zvˇetˇsen´a o 1, prvn´ı bit m´a v´ yznam znam´enka. V tomto k´odu existuje jen jedin´a reprezentace ˇc´ısla nula, ani nen´ı zapotˇreb´ı speci´aln´ı algoritmus pro odeˇc´ıt´an´ı. Odeˇc´ıt´an´ı je realizov´ano jako pˇriˇcten´ı z´aporn´eho ˇc´ısla. Pˇri k´odov´an´ı do n bit˚ u je moˇzn´e zak´odovat ˇc´ısla od −2n−1 do 2n−1 − 1. Pokud se seˇcte takto vyj´adˇren´e z´aporn´e ˇc´ıslo s jin´ ym z´aporn´ ym nebo vˇetˇs´ım kladn´ ym ˇc´ıslem, dojde k pˇreteˇcen´ı rozsahu. K´od je ale zvolen tak, ˇze po odˇr´ıznut´ı pˇreteˇcen´eho bitu dostaneme spr´avn´ y v´ ysledek. Uk´azky velikost´ı vstupn´ıch napˇet´ı a jim odpov´ıdaj´ıc´ı digit´aln´ı v´ ystupy z A/D pˇrevodn´ıku jsou v [8] a jsou tak´e uvedeny v tab. 2.1. nepˇresnostem v mˇeˇren´ı.
´ C ˇ AST ´ ˇ RIC ˇ ´IHO OBVODU 2.2. ANALOGOVA ME Rozsah vstupn´ı napˇet´ı Analogov´ y vstup
7 Digit´aln´ı v´ ystup
Fullscale - 1 LSB
+4.999962 V
0x1FFFF
Midscale + 1 LSB
+38.15 µV
0x00001
Midscale
0,V
0x00000
Midscale - 1 LSB
−38.15 µV
0x3FFFF
-Fullscale + 1 LSB
−4.999962 V
0x20001
-Fullscale
+5 V
0x20000
Tabulka 2.1. Velikost vstupn´ıho napˇet´ı a digit´ aln´ı v´ ystup
2.2.2
D/A pˇ revodn´ık
Pouˇzit´ y 16 bitov´ y D/A pˇrevodn´ık AD5545 je zapojen spolu s operaˇcn´ım zesilovaˇcem AD8022 podle zapojen´ı na obr. 2.4. Zapojen´ı bylo sestaveno na z´akladˇe doporuˇcen´ı uveden´ ych v [7]. D/A pˇrevodn´ık m´a proudov´ y v´ ystup a operaˇcn´ı zesilovaˇc je zapojen jako pˇrevodn´ık proudu na napˇet´ı. Velikost v´ ystupn´ıho napˇet´ı je d´ana rovnic´ı Vout = −Vref
D , 65535
kde Vref je velikost pˇripojen´eho referenˇcn´ıho napˇet´ı a D je 16 −bit hodnota naˇcten´a do D/A pˇrevodn´ıku. K 16 bit˚ um dat do D/A pˇrevodn´ıku je tˇreba pˇridat na zaˇc´atek (pozice 0 a 1) dva adresov´e bity, kter´e vyb´ıraj´ı registr, kam se bude zapisovat. Data je moˇzno zapisovat do kaˇzd´eho registru zvl´aˇst’, nebo do obou souˇcasnˇe, viz tab.2.2. Kaˇzd´ y registr pˇr´ısluˇs´ı jednomu v´ ystupn´ımu kan´alu. bit na pozici 0
bit na pozici 1
registr
0
0
−
0
1
A
1
0
B
1
1
AiB
Tabulka 2.2. V´ ybˇer registr˚ u pro z´ apis dat.
8
´ ROZHRAN´I KE KAPACITN´IMU SENZORU KAPITOLA 2. ANALOGOVE
Obr´azek 2.4. Sch´ema zapojen´ı D/A pˇrevodn´ıku
Kapitola 3 Popis mˇ eˇ ric´ıho obvodu s mikroprocesorem V t´eto kapitole je pojedn´ano o v´ yhod´ach a nev´ yhod´ach pˇr´ım´e komunikace mikroprocesoru s A/D a D/A pˇrevodn´ıky. N´aslednˇe je pops´ano v´ ysledn´e ˇreˇsen´ı. Pouˇzit´e A/D i D/A pˇrevodn´ıky, viz kap. 2.2, komunikuj´ı po s´eriov´em rozhran´ı SPI1 . Vybran´ y procesor, LPC2119 od spoleˇcnosti Philips, obsahuje dva SPI registry, kter´ ych bylo na zaˇca´tku v´ yvoje cel´e aplikace ke komunikaci vyuˇzito. Pˇr´ım´a komunikace mikroprocesoru s A/D a D/A pˇrevodn´ıky mˇela dva nedostatky. 1. SPI registry v pouˇzit´em mikroprocesoru jsou pouze osmi bitov´e, takˇze poslat nebo pˇreˇc´ıst 18 bit˚ u dat znamen´a tˇri z´apisy do registr˚ u, coˇz je ˇcasovˇe n´aroˇcn´e. Nav´ıc ke generov´an´ı obd´eln´ıkov´eho pr˚ ubˇehu pro amplitudovou modulaci jsou zapotˇreb´ı minim´alnˇe dva kan´aly. Tomu odpov´ıdaj´ı dva po sobˇe n´asleduj´ıc´ı z´apisy dat do D/A pˇrevodn´ıku. 2. Hlavn´ı ˇcinnost´ı mikroprocesoru je filtrace zmˇeˇren´ ych dat a v´ ypoˇcet nov´ ych hodnot pro obd´eln´ıkovou modulaci. S t´ım souvis´ı velmi obt´ıˇzn´e dodrˇzen´ı konstantn´ı frekvence 100 kHz generovan´eho obd´eln´ıkov´eho sign´alu. Nepodaˇrilo se totiˇz dos´ahnout hodnot ust´alen´ı D/A pˇrevodn´ık˚ u jak je uvedeno v [7] a promˇenn´a frekvence obd´eln´ıkov´eho sign´alu by zp˚ usobovala dalˇs´ı chybu mˇeˇren´ı vlivem r˚ uzn´eho ust´alen´ı budic´ıho sign´alu. S ohledem na v´ yˇse popsan´e probl´emy bylo zvoleno ˇreˇsen´ı podle obr. 3.1. Komunikaci s A/D a D/A pˇrevodn´ıky zajiˇst’uje hradlov´e pole, zmˇeˇren´a data z A/D pˇrevodn´ıku nebo nov´a data do D/A pˇrevodn´ıku jsou pˇred´av´ana paralelnˇe z nadˇrazen´eho mikroprocesoru. Hlavn´ı v´ yhodou tohoto ˇreˇsen´ı je menˇs´ı zat´ıˇzen´ı mikropro1
SPI sbˇernice neboli Serial Peripheral Interface bus je plnˇe duplexn´ı, tˇr´ı nebo ˇctyˇrvodiˇcov´a, synchronn´ı s´eriov´a sbˇernice vytvoˇren´ a spoleˇcnost´ı Motorola.
9
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM KAPITOLA 3. POPIS ME
10
cesoru komunikac´ı s A/D a D/A pˇrevodn´ıky, kter´a je pˇresunuta do hradlov´eho pole. Mikroprocesor pak realizuje stavov´ y automat, kter´ y • • • • •
ˇr´ıd´ı smˇer mˇeˇren´ı, filtruje zmˇeˇren´a data, poˇc´ıt´a nov´e hodnoty amplitud obd´eln´ıkov´eho sign´alu, ˇr´ıd´ı pˇrenos dat z nebo do hradlov´eho pole, komunikuje s nadˇrazen´ ym syst´emem.
Nev´ yhodou tohoto ˇreˇsen´ı je vloˇzen´ı ˇcasov´eho zpoˇzdˇen´ı do pˇrenosu vygenerovan´ ych dat na v´ ystup D/A pˇrevodn´ıku. Podrobn´ y popis tohoto ˇreˇsen´ı lze nal´ezt v [6].
Obr´azek 3.1. Blokov´e sch´ema cel´eho zapojen´ı.
Kapitola 4 Popis mˇ eˇ ric´ıho obvodu s mikroprocesorem a CPLD V t´eto kapitole je uveden rozbor pouˇzitelnosti a v´ yhod pouˇzit´ı hradlov´ ych pol´ı jako prostˇredn´ıka pro komunikaci mikroprocesoru s A/D a D/A pˇrevodn´ıky. Je zde pops´an princip komunikace s pˇrevodn´ıky a jej´ı implementace v hradlov´em poli na uk´azk´ach VHDL k´odu. V posledn´ı ˇca´sti kapitoly je pops´ano konkr´etn´ı ˇreˇsen´ı a v´ ysledky, kter´ ych bylo dosaˇzeno s obvodem CPLD. Obvody CPLD (Complex PLD) obsahuj´ı nˇekolik blok˚ u sloˇzen´ ych z makrobunˇek se strukturou PAL nebo PLA, kter´e jsou na ˇcipu vz´ajemnˇe propojeny programovatelnou strukturou. Z´aroveˇ n ale tvoˇr´ı relativnˇe samostatn´e celky pˇripom´ınaj´ıc´ı obvody GAL. B´ yvaj´ı vybaveny dalˇs´ımi pˇr´ıdavn´ ymi prvky, kter´e umoˇzn ˇuj´ı dalˇs´ı funkce. Vyr´abˇej´ı se vˇetˇsinou v proveden´ı EECMOS nebo SRAM s integrovanou konfiguraˇcn´ı pamˇet´ı EEPROM.
4.1
ˇ sen´ı komunikace pomoc´ı hradlov´ Reˇ eho pole
Hlavn´ı v´ yhodou pouˇzit´ı hradlov´eho pole je menˇs´ı zat´ıˇzen´ı mikroprocesoru komunikac´ı s A/D a D/A pˇrevodn´ıky. V pouˇzit´em mikroprocesoru je d´elka SPI komunikace pevnˇe dan´a, konkr´etnˇe 8 bit˚ u. Posl´an´ı nebo naˇcten´ı 18 bit˚ u znamen´a tˇri z´apisy do registr˚ u, coˇz je ˇcasovˇe n´aroˇcn´e. Hradlov´e pole naˇc´ıt´a paralelnˇe data z mikroprocesoru a pos´ıl´a je po SPI do D/A pˇrevodn´ık˚ u nebo po SPI vyˇc´ıt´a data z A/D pˇrevodn´ıku a paralelnˇe je pos´ıl´a do mikroprocesoru. Dalˇs´ı v´ yhodou je minimalizace komunikace mezi procesorem a pˇrevodn´ıky v tom smyslu, ˇze hradlov´ ym polem lze pˇredzpracov´avat zmˇeˇren´a data z A/D pˇrevodn´ıku, stejnˇe tak generovat data pro jednotliv´e kan´aly D/A pˇrevodn´ık˚ u. 11
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 12KAPITOLA 4. POPIS ME Nev´ yhoda pouˇzit´ı hradlov´eho pole je vloˇzen´ı ˇcasov´eho zpoˇzdˇen´ı o jednu periodu. Data vygenerovan´a v mikroprocesoru se na v´ ystupu D/A pˇrevodn´ık˚ u neobjev´ı hned v n´asleduj´ıc´ı periodˇe, jak by tomu bylo v pˇr´ıpadˇe pˇr´ım´eho propojen´ı pˇrevodn´ık˚ u s mikroprocesorem, ale aˇz v n´asledujc´ı periodˇe. S t´ımto zpoˇzdˇen´ım je nutno poˇc´ıtat pˇri generov´an´ı nov´ ych dat pro D/A pˇrevodn´ıky.
4.1.1
Generov´ an´ı dat pro D/A pˇ revodn´ıky
K hradlov´emu poli jsou pˇripojeny dva dvoukan´alov´e DA pˇrevodn´ıky1 . V´ ystup kaˇzd´eho kan´alu je pˇriveden na jeden budic´ı element kapacitn´ıho senzoru. Data pro kaˇzd´ y kan´al jsou v hradlov´em poli generov´ana z paralelnˇe naˇcten´ ych dat z mikroprocesoru, data, v z´avislosti na mˇeˇren´em smˇeru podle tabulek 4.1–4.4. Kaˇzd´emu poli v tabulce schematicky odpov´ıd´a jeden budic´ı element kapacitn´ıho senzoru, na kter´ y jsou pos´ıl´ana vygenerovan´a nebo p˚ uvodn´ı data. data
data
data xnor 0111111111111111
data xnor 0111111111111111
Tabulka 4.1. Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy Y v prvn´ı ˇc´ asti periody
data xor 1111111111111111
data xor 1111111111111111
data xor 0111111111111111
data xor 0111111111111111
Tabulka 4.2. Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy Y v druh´e ˇc´ asti periody
data
data xnor 0111111111111111
data
data xnor 0111111111111111
Tabulka 4.3. Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy X v prvn´ı ˇc´ asti periody 1
P˚ uvodnˇe byl v n´avrhu jen jeden dvoukan´ alov´ y D/A pˇrevodn´ık a dva multiplexry, ale sign´ al na elementech budic´ıho senzoru byl vlivem multiplexer˚ u velmi zkreslen´ y, a proto byly multiplexery nahrazeny druh´ ym D/A pˇrevodn´ıkem.
´ ´I HRADLOVEHO ´ 4.2. OTESTOVAN POLE data xor 1111111111111111
data xor 0111111111111111
data xor 1111111111111111
data xor 0111111111111111
13
Tabulka 4.4. Data pos´ılan´a do D/A pˇrevodn´ık˚ u, pro mˇeˇren´ı ve smˇeru osy X v druh´e ˇc´ asti periody
4.1.2
Pˇ redzpracov´ an´ı dat z A/D pˇ revodn´ıku
Testov´an´ım bylo ovˇeˇreno, ˇze generovan´ y obd´eln´ıkov´ y sign´al je z dlouhodob´eho hle2 diska stabiln´ı v amplitudˇe, viz obr. 4.1 , takˇze je moˇzno v hradlov´em poli odˇc´ıtat velikosti amplitud zmˇeˇren´e A/D pˇrevodn´ıkem v kladn´e a z´aporn´e amplitudˇe a do procesoru pos´ılat pouze jejich rozd´ıl3 . Z obr. 4.2 je patrn´e, ˇze data z A/D pˇrevodn´ıku jsou hodnˇe zaˇsumˇen´a. V hradlov´em poli je moˇzno pr˚ umˇerovat pˇrijat´a data z A/D pˇrevod´ıku a t´ım zmenˇsovat rozptyl dat, v nejjednoduˇsˇs´ım pˇr´ıpadˇe lze pouˇz´ıt • pr˚ umˇer ze 2 nebo 4 vzork˚ u nebo • klouzav´ y pr˚ umˇer ze 2 nebo 4 vzork˚ u.
4.2
Otestov´ an´ı hradlov´ eho pole
Pˇred n´avrhem a v´ yrobou nov´e desky ploˇsn´eho spoje jsme otestovali komunikaci A/D a D/A pˇrevodn´ık˚ u na v´ yvojov´e desce s obvodem CPLD XC9572XL od firmy Xilinx. Prvn´ı D/A pˇrevodn´ık, kter´ ym jsme zkouˇseli generovat obd´eln´ıkov´ y sign´al pro amplitudovou modulaci je 16−bit D/A pˇrevodn´ık DAC8871, ke kter´emu je pˇripojen zdroj referenˇcn´ıho napˇet´ı ± 10 V AD688. 2
Bˇehem testov´an´ı ˇcinnosti byl generov´ an obd´eln´ıkov´ y sign´ al, jehoˇz amplituda se po urˇcit´e dobˇe schodovitˇe mˇenila. Po dosaˇzen´ı maxim´ aln´ı amplitudy, kterou lze vygenerovat, se amplituda zmenˇsila na minim´aln´ı hodnotu a generov´ ani schod˚ u se opakovalo. Bˇehem doby jednoho schodu byla pˇribliˇznˇe pˇet set kr´at zmˇeˇrena amplituda A/D pˇrevodn´ıkem. Kaˇzd´ y vrchol v obr´ azku odpov´ıd´a stˇredn´ı hodnotˇe jednoho schodu 3´ Uloha odˇc´ıt´an´ı je v bin´arn´ı reprezentaci realizov´ ana jako pˇriˇc´ıt´ an´ı z´ aporn´eho ˇc´ısla. Pˇrev´est kladn´e ˇc´ıslo na z´aporn´e a naopak lze jednoduˇse realizovat invertov´ an´ım vˇsech bit˚ u a pˇriˇcten´ım bin´arn´ı jedniˇcky. Pro pokryt´ı vˇsech moˇzn´ ych situac´ı pˇri odˇc´ıt´ an´ı je tˇreba pˇrev´est 18 bitov´e ˇc´ıslo v doplˇ nkov´em k´odu na 19 bitov´e ˇc´ıslo v doplˇ nkov´em k´ odu, coˇz lze jednoduˇse realizovat zkop´ırov´an´ım 18. bitu na 19. bit, t´ım se zabr´ an´ı pˇreteˇcen´ı a ztr´ atˇe informace.
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 14KAPITOLA 4. POPIS ME Prubeh strednich hodnot
2
1.5
odchylky v amplitude [lsb]
1
0.5
0
−0.5
−1
−1.5
−2 5
10
15
20 25 30 vzorky strednich hodnot
35
40
45
50
Obr´azek 4.1. Odchylky stˇredn´ıch hodnot.
Doba ust´alen´ı tohoto D/A pˇrevodn´ıku byla i po pokusech s osledov´an´ım v´ ystupu D/A pˇrevodn´ıku operaˇcn´ım zesilovaˇcem nˇekolikan´asobnˇe delˇs´ı neˇz hodnota uveden´a v [10]. Tento pˇrevodn´ık je proto nepouˇziteln´ y na generov´an´ı pˇresn´eho obd´eln´ıkov´eho sign´alu na frekvenci 100, 200 kHz. Pˇr´ıpravek pro testov´an´ı pˇresnosti generovan´eho sign´alu, doby ust´alen´ı, komunikace a zapojen´ı cel´eho pˇrevodn´ıku je na obr. 4.3. Druh´ y D/A pˇrevodn´ık, kter´ ym jsme zkouˇseli generovat obd´eln´ıkov´ y sign´al pro amplitudovou modulaci je 16−bit dvoukan´alov´ y D/A pˇrevodn´ık AD5545, ke kter´emu je pˇripojen zdroj referenˇcn´ıho napˇet´ı 10 V REF01. Na proudov´ y v´ ystup D/A pˇrevodn´ıku je pˇripojen pˇrevodn´ık proud-napˇet´ı s doporuˇcen´ ym operaˇcn´ım zesilovaˇcem AD8022, doporuˇcen´e zapojen´ı je na obr. 2.4, nebo v [7]. Nepodaˇrilo se dos´ahnout doby ust´alen´ı tohoto D/A pˇrevodn´ıku, kter´a je uvedena v [7], i pˇresto je tento pˇrevodn´ık vhodn´ y pro generov´an´ı obd´eln´ıkov´eho sign´alu na frekvenci 100, 200 kHz. Generovan´ y obd´eln´ıkov´ y sign´al m´a stˇredn´ı hodnotu −5 V. Pˇr´ıpravek pro testov´an´ı pˇresnosti generovan´eho sign´alu, doby ust´alen´ı, komunikace a zapojen´ı cel´eho pˇrevodn´ıku je na obr. 4.4. Mˇeˇren´ı kladn´e i z´aporn´e amplitudy sign´alu na mˇeˇric´ı elektrodˇe je realizov´ano 18 − bit A/D pˇrevodn´ıkem AD7982. Mˇeˇren´ y sign´al je pˇripojen na vstup rozd´ılov´eho zesilovaˇce ADA4941 a v´ ystup rozd´ılov´eho zesilovaˇce je pˇripojen na vstup A/D pˇrevodn´ıku, ke kter´emu je pˇripojen zdroj referenˇcn´ıho napˇet´ı 5 V REF102. Do-
´ POPIS CINNOSTI ˇ ´ 4.3. PODROBNY HRADLOVEHO POLE 4
15
Ukazka dat z A/D prevodniku
x 10
5.08
5.078
amplituda [lsb]
5.076
5.074
5.072
5.07
5.068
5.066
5.064 10
20
30
40
50 vzorky dat
60
70
80
90
100
Obr´azek 4.2. Uk´ azka dat z A/D pˇrevodn´ıku.
poruˇcen´e zapojen´ı je na obr.2.4, nebo v [8]. Pˇr´ıpravek pro testov´an´ı pˇresnosti mˇeˇren´ı, ˇsumu mˇeˇren´ı, komunikace a zapojen´ı cel´eho pˇrevodn´ıku je na obr. 4.5.
4.3
Podrobn´ y popis ˇ cinnosti hradlov´ eho pole
Cel´ y program v hradlov´em poli je rozdˇelen do tˇr´ı blok˚ u • blok s hlavn´ım programem, – ovl´ad´an´ı ˇr´ıdic´ıch sign´al˚ u A/D a D/A pˇrevodn´ık˚ u, – komunikace s mikroprocesorem, obousmˇern´ y pˇrenos dat, • blok pro komunikaci s A/D pˇrevodn´ıkem, • blok pro komunikaci s D/A pˇrevodn´ıky. V hlavn´ım bloku se vykon´avaj´ı dva paraleln´ı programy4 . Jeden zajiˇst’uje komunikaci s mikroprocesorem a druh´ y ovl´ad´a hodinov´e a ˇr´ıdic´ı sign´aly pro pˇrevodn´ıky. Datov´e 4
Kaˇzd´ y program je realizov´an stavov´ ym automatem, kter´ y se skl´ ad´ a ze 3 paraleln´ıch proces˚ u.
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 16KAPITOLA 4. POPIS ME
Obr´azek 4.3. 16 − bit DA pˇrevodn´ık DAC8871
sign´aly pro pˇrevodn´ıky jsou ovl´ad´any ze samostatn´ ych blok˚ u. Jednotliv´e bloky jsou podrobnˇeji pops´any v n´asleduj´ıc´ıch kapitol´ach.
4.3.1
Popis komunikace a ovl´ ad´ an´ı A/D a D/A pˇ revodn´ık˚ u
Ovl´ad´an´ı ˇr´ıdic´ıch a SPI sign´al˚ u pro A/D a D/A pˇrevodn´ıky pro generov´an´ı a mˇeˇren´ı obd´eln´ıkov´eho sign´alu, viz obr. 4.8, je rozdˇeleno do ˇcasov´ ych ˚ usek˚ u, jednotliv´ ych ˇ stav˚ u. R´ıdic´ı a datov´e sign´aly se ovl´adaj´ı pomoc´ı pˇrechod˚ u mezi jednotliv´ ymi stavy, kter´e na sebe navazuj´ı tak, aby byly dodrˇzeny ˇcasov´e diagramy uveden´e v katalogov´ ych listech pˇrevodn´ık˚ u [8] a [7]. Stavov´ y diagram popisuj´ıc´ı v´ yznam jednotliv´ ych stav˚ u, ovl´ad´an´ı ˇr´ıdic´ıch a SPI sign´al˚ u pro A/D a D/A pˇrevodn´ıky je uveden v pˇr´ıloze A na obr. A.2. Z´apis synchronn´ıho koneˇcn´eho stavov´eho automatu typu Moore, pro ovl´ad´an´ı ˇr´ıdic´ıch a SPI sign´al˚ u ve VHDL k´odu je podle doporuˇcen´ı v´ yrobce pouˇzit´ ych hradlov´ ych pol´ı, firmy Xilinx, viz obr. 4.6 a 4.7. Z obr´azk˚ u je patrno, ˇze stavov´ y automat je realizov´an pomoc´ı tˇr´ı paraleln´ıch proces˚ u. Proces na obr. 4.6, oznaˇcen´ y SYNC PROC slouˇz´ı k uveden´ı stavov´eho automatu do v´ ychoz´ıho stavu extern´ım sign´alem. Proces na obr. 4.7 oznaˇcen´ y OUTPUT DECODE ovl´ad´a v´ ystupn´ı sign´aly5 na z´a5
V uk´azce je v´ ystupn´ı sign´al pouze jeden, ve skuteˇcnosti jich m˚ uˇze b´ yt libovoln´e mnoˇzstv´ı a nemus´ı se jednat pouze o v´ ystupn´ı sign´ aly, lze tak´e napˇr. mˇenit hodnoty promˇenn´ ych, resetovat/nastavovat ˇc´ıtaˇc.
´ POPIS CINNOSTI ˇ ´ 4.3. PODROBNY HRADLOVEHO POLE
Obr´azek 4.4. 16 − bit dvoukan´ alov´ y DA pˇrevodn´ık AD5545
Obr´azek 4.5. 18 − bit AD pˇrevodn´ıkem AD7982
17
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 18KAPITOLA 4. POPIS ME kladˇe stavu, ve kter´em se automat nach´az´ı. Proces oznaˇcen´ y NEXT STATE DECODE realizuje pˇrechody mezi stavy, ke kter´ ym m˚ uˇze doch´azet na z´akladˇe vstupn´ıch sign´al˚ u nebo hodnoty v ˇc´ıtaˇci, jak je tomu v uk´azce. Pro A/D pˇrevod je potˇreba, aby sign´al byl ust´alen´ y a co nejm´enˇe zaruˇsen´ y, proto v dobˇe A/D pˇrevodu neprob´ıh´a ˇz´adn´a komunikace po SPI. Z obr. 4.8 je patrno, ˇze A/D pˇrevodn´ık zaˇcne pˇrev´adˇet analogovou hodnotu v´ ystupu senzoru na digit´aln´ı s pˇresnˇe definovan´ ym pˇredstihem pˇred zmˇenou amplitudy budic´ıch signal˚ u, tzn. na n´abˇeˇznou hranu sign´alu AD CNV. Po ukonˇcen´ı pˇrevodu6 A/D pˇrevodn´ıku, hradlov´e pole d´a sign´al AD CNV do log. 0 a zaˇcne generovat hodinov´ y sign´al AD CLOCK. A/D pˇrevodn´ık pˇri kaˇzd´e nulov´e u ´rovni hodinov´eho sign´alu pos´ıl´a na v´ ystup zmˇeˇren´a data, sign´al AD DATA, MSB bit je pos´ıl´an jako prvn´ı. Souˇcasnˇe se sp´adovou hranou sign´alu AD CNV jde do log. 0 i sign´al DA LDAC. Na jeho sp´adovou hranu se pˇrekop´ıruje obsah datov´ ych registr˚ u v D/A pˇrevodn´ıku na v´ ystup a je moˇzno do D/A pˇrevodn´ıku nahr´avat nov´a data, kter´a se na v´ ystupu objev´ı v dalˇs´ı p˚ ulperiodˇe. Data z hradlov´eho pole, sign´al DA DATA, se nahr´avaj´ı do D/A pˇrevodn´ıku na n´abˇeˇznou hranu hodinov´eho sign´alu DA CLOCK. Pouˇzit´ y D/A pˇrevodn´ık je dvoukan´alov´ y, proto se do D/A pˇrevodn´ıku nahr´avaj´ı data dvakr´at po sobˇe, MSB bit je nahr´av´an jako prvn´ı. Aby bylo dosaˇzeno zmˇen datov´ ych sign´al˚ u pˇri nulov´ ych u ´rovn´ıch hodinov´ ych sign´al˚ u, m´a hodinov´ y sign´al pro SPI poloviˇcn´ı frekvenci neˇz hodinov´ y sign´al z oscil´atoru, viz obr. 4.9. Hodinov´ y sign´al pro pˇrevodn´ıky se mˇen´ı na n´abˇeˇznou hranu hodinov´eho sign´alu oscil´atoru, datov´e sign´aly se mˇen´ı, nebo naˇc´ıtaj´ı na sp´adov´e 6
Pˇrevod trv´a 650 ns aˇz 800 ns.
SYNC PROC: process (clock) begin if (clock’event and clock = ’1’) then if (reset = ’1’) then state <= s0; else state <= next state; end if; end if; end process; Obr´ azek 4.6. Uk´azka z´apisu stavov´eho automatu ve VHDL pro moˇznost uveden´ı stavov´eho automatu do v´ ychoz´ıho stavu.
´ POPIS CINNOSTI ˇ ´ 4.3. PODROBNY HRADLOVEHO POLE
19
OUTPUT DECODE: process (state) begin if state = st0 then vystup <= "00"; elsif state = st1 then vystup <= "01"; elsif state = st2 then vystup <= "10"; else vystup <= "00"; end if; end process; NEXT STATE DECODE: process (state, counter) begin next state <= state; case (state) is when st0 => if counter > "00000001" then next state <= st1; end if; when st1 => if counter > "00110010" then next state <= st2; end if; when st2 => if counter > "00110011" then next state <= st1; end if; when others => next state <= st0; end case; end process; Obr´ azek 4.7. Uk´azka z´apisu stavov´eho automatu ve VHDL pro ovl´ ad´ an´ı v´ ystup˚ u a pˇrechody mezi stavy
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 20KAPITOLA 4. POPIS ME
Obr´azek 4.8. Komunikace s A/D a D/A pˇrevodn´ıky.
hrany hodinov´eho sign´alu z oscil´atoru.
´ POPIS CINNOSTI ˇ ´ 4.3. PODROBNY HRADLOVEHO POLE
21
Obr´azek 4.9. Zmˇeny datov´ ych a hodinov´ ych sign´ alu.
4.3.2
Komunikace s mikroprocesorem, obousmˇ ern´ y pˇ renos dat
Stavov´ y diagram, kter´ y popisuje komunikaci mezi hradlov´ ym polem a mikroprocesorem je uveden v pˇr´ıloze A na obr. A.1. V kladn´e amplitudˇe generovan´eho obd´eln´ıkov´eho sign´alu, po naˇcten´ı dat z A/D pˇrevodn´ıku, jsou data pˇresunuta na v´ ystupn´ı piny a indikaˇcn´ı pin je nastaven do log 1. Jakmile mikroprocesor data naˇcte, nastav´ı response pin do log 1. Druh´ ym krokem je pˇrenos novˇe vypoˇcten´ ych dat z mikroprocesoru do hradlov´eho pole. To po nadetekov´an´ı log 1 na response pinu pˇrenastav´ı v´ ystupn´ı piny na vstupn´ı. Souˇcasnˇe nastav´ı do log 1 pin, kter´ ym ˇz´ad´a mikroprocesor o nov´a data. Jakmile jsou data na v´ ystupn´ıch pinech mikroprocesoru, nastav´ı mikroprocesor pin data platn´a a hradlov´e pole data naˇcte. Novˇe naˇcten´a data se v dalˇs´ı periodˇe pos´ılaj´ı do D/A pˇrevodn´ık˚ u. V z´aporn´e amplitudˇe generovan´eho obd´eln´ıkov´eho sign´alu, se naˇcten´a data z A/D pˇrevodn´ıku pouze pˇred´avaj´ı do mikroprocesoru, pˇrenos nov´ ych dat do hradlov´eho pole se neuskuteˇcn ˇuje.
4.3.3
Blok pro komunikaci s A/D pˇ revodn´ıkem
Blok pro komunikaci s A/D pˇrevodn´ıkem obsahuje posuvn´ y registr. Na kaˇzdou sp´adovou hranu hodinov´eho sign´alu z oscil´atoru, pˇri jedniˇckov´e u ´rovni hodinov´eho SPI sign´alu naˇc´ıt´a data z A/D pˇrevodn´ıku. Hodinov´e a ˇr´ıdic´ı sign´aly jsou ovl´ad´any z hlavn´ıho programu. Z´apis posuvn´eho registru pro vyˇc´ıt´an´ı dat ve VHDL k´odu je
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 22KAPITOLA 4. POPIS ME podle doporuˇcen´ı v´ yrobce pouˇzit´ ych hradlov´ ych pol´ı, firmy Xilinx, viz obr. 4.10. Bˇehem naˇc´ıt´an´ı s´eriov´ ych dat se testuje napˇet’ov´a u ´roveˇ n na vstupn´ım pinu sd in. Podle napˇet’ov´e u ´rovnˇe se na sp´adovou hranu hodinov´eho sign´alu z oscil´atoru, tj. pˇri nulov´e hodnotˇe hodinov´eho sign´alu, zap´ıˇse do posuvn´eho registru data load na prvn´ı pozici jedniˇcka nebo nula. Blok pro komunikaci s D/A pˇ revodn´ıky Blok pro komunikaci s D/A pˇrevodn´ıky obsahuje dva posuvn´e registry. Na kaˇzdou sp´adovou hranu hodinov´eho sign´alu z oscil´atoru, pˇri nulov´e u ´rovni hodinov´eho SPI sign´alu mˇen´ı logick´e u ´rovnˇe na datov´ ych pinech D/A pˇrevodn´ık˚ u. Hodinov´e a ˇr´ıdic´ı sign´aly jsou ovl´ad´any z hlavn´ıho programu. Z´apis posuvn´eho registru pro vys´ıl´an´ı dat ve VHDL k´odu je podle doporuˇcen´ı v´ yrobce pouˇzit´ ych hradlov´ ych pol´ı, firmy Xilinx, viz obr.4.11. Z´apis dat z posuvn´eho registru data out na s´eriov´ y ym z´apisem posledn´ıho bitu v registru na v´ ystup. v´ ystup sd out je realizov´an st´al´ K bitov´emu posuvu doch´az´ı na sp´adovou hranu hodinov´eho sign´alu z oscil´atoru, pˇri nulov´e hodnotˇe hodinov´eho sign´alu.
4.4
ˇ sen´ı s CPLD XC95288XL Reˇ
Jedn´a se o CPLD XC95288XL od firmy Xilinx. Parametry pouˇzit´eho CPLD je moˇzno nal´ezt napˇr. v [13]. Zrealizovan´a deska s CPLD a mikroprocesorem je na obr. 4.12
if (clock’event and clock = ’0’) then if (clock spi = ’0’ and start = ’1’ ) then if sd in = ’1’ then data load <= data load(16 downto 0) & ’1’; else data load <= data load(16 downto 0) & ’0’; end if; end if; end if; Obr´azek 4.10. Uk´azka posuvn´eho registru pro vyˇc´ıt´ an´ı dat ve VHDL
ˇ SEN ˇ ´I S CPLD XC95288XL 4.4. RE
if (clock’event and clock = ’0’) then if (clock spi = ’0’ and start = ’1’ ) then data out <= data out(16 downto 0) & data out(17); end if; if (start = ’1’) then sd out <= data out(17); else sd out <= ’0’; end if; end if; Obr´azek 4.11. Uk´azka posuvn´eho registru pro pos´ıl´ an´ı dat ve VHDL
Obr´azek 4.12. Vyvinut´ a deska s CPLD a mikroprocesorem.
23
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 24KAPITOLA 4. POPIS ME
Obr´azek 4.13. Skuteˇcn´e pr˚ ubˇehy SPI komunikace s A/D pˇrevodn´ıkem
Obr´azek 4.14. Skuteˇcn´e pr˚ ubˇehy SPI komunikace s D/A pˇrevodn´ıkem
SPI Komunikace a sled ˇr´ıdic´ıch sign´al˚ u pro A/D a D/A pˇrevodn´ıky generovan´e obvodem CPLD odpov´ıdaj´ı pr˚ ubˇeh˚ um na obr. 4.8, 4.13 a 4.14. Vygenerovan´ y obd´eln´ıkov´ y sign´al pro amplitudovou modulaci je na obr. 4.15 a 4.16. Probl´em tohoto ˇreˇsen´ı nastal na stranˇe procesoru. Pˇri frekvenci generovan´eho obd´eln´ıkov´eho sign´alu 100 KHz musel procesor bˇehem 10 µs dvakr´at naˇc´ıst data a jednou vypoˇcten´a data pˇredat do CPLD. Jednoduch´e filtrov´an´ı zmˇeˇren´ ych dat
ˇ SEN ˇ ´I S CPLD XC95288XL 4.4. RE
25
Obr´azek 4.15. Obd´eln´ıkov´ y sign´ al, mˇeˇren´ı ve smˇeru osy X
ˇ sen´ım trvalo pˇr´ıliˇs dlouho a k pˇrenosu vypoˇcten´ yh dat do CPLD nedoch´azelo. Reˇ by bylo pr˚ umˇerovat dva vzorky zmˇeˇren´ ych dat uˇz v CPLD, t´ım by se rychlost komunikace sn´ıˇzila na polovinu a mikroprocesor by st´ıhal pˇred´avat novˇe vypoˇcten´a data do CPLD. Cel´ y program v CPLD je dost obs´ahl´ y a nepodaˇrilo se pr˚ umˇerov´an´ı ’ do CPLD pˇridat, bud byl pˇresaˇzen poˇcet klopn´ ych obvod˚ u nebo poˇcet p-term˚ u. Na v´ ybˇer byly dvˇe moˇznosti ˇreˇsen´ı • sn´ıˇzit frekvenci generovan´eho obd´eln´ekov´eho sign´alu na 50 kHz, • nahradit CPLD jin´ ym hradlov´ ym polem. Koneˇcn´e ˇreˇsen´ı cel´eho zaˇr´ızen´ı poˇc´ıt´a se dvˇema kapacitn´ımi senzory. Pokud bychom sn´ıˇzeli frekvenci generovan´eho obd´eln´ıkov´eho sign´alu na 50 kHz, bylo by tˇreba pouˇz´ıt dvˇe CPLD a tak´e dva mikroprocesory, kaˇzd´ y pro jeden senzor. D´ale by bylo tˇreba vyˇreˇsit meziprocesn´ı komunikaci po CANu. Nahradili jsme pouˇzit´e CPLD FPGA obvodem XC2S50 od firmy Xilinx. Do tohoto obvodu je moˇzno ke st´avaj´ıc´ı ˇcinnosti pˇridat pr˚ umˇerov´an´ı ze dvou nebo ze ˇctyˇr vzork˚ u zmˇeˇren´ ych dat a z´aroveˇ n pouˇz´ıt jedno FPGA pro ˇr´ızen´ı dvou kapacitn´ıch senzor˚ u. Cenovˇe jsou ˇreˇsen´ı pomoc´ı dvou CPLD (XC95288XL) nebo jednoho FPGA (XC2S50) s konfiguraˇcn´ı pamˇet´ı (XCV01) srovnateln´e.
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A CPLD 26KAPITOLA 4. POPIS ME
Obr´azek 4.16. Obd´eln´ıkov´ y sign´ al, mˇeˇren´ı ve smˇeru osy Y
Kapitola 5 Popis mˇ eˇ ric´ıho obvodu s mikroprocesorem a FPGA V t´eto kapitole je pops´ano ˇreˇsen´ı s FPGA, kter´ ym bylo nahrazeno CPLD. Jsou zde pops´any rozd´ıly v pouˇzit´ı jednotliv´ ych obvod˚ u. Na z´avˇer kapitoly jsou uvedeny v´ ysledky, kter´ ych bylo dosaˇzeno s FPGA. Z´akladn´ı blokov´a struktura obvod˚ u FPGA je tvoˇrena polem konfigurovateln´ ych logick´ ych blok˚ u (Configurable Logic Block), kter´e m˚ uˇzeme pˇrirovnat k mal´ ym blok˚ um obvod˚ u CPLD. Bloky CLB se zpravidla jeˇstˇe dˇel´ı na menˇs´ı ˇca´sti (ˇrezy, logick´e buˇ nky). Logick´e buˇ nky, analogie makrobunˇek u obvod˚ u PLD, obsahuj´ı typicky strukturu pro vytvoˇren´ı kombinaˇcn´ıch funkc´ı a klopn´e obvody. Kombinaˇcn´ı struktura je obvykle zaloˇzena na principu struktury PROM s mal´ ym poˇctem vstup˚ u (obvykle ˇctyˇri vstupy). Tento prvek se naz´ yv´a LUT (look-up table) a dovoluje vytvoˇrit jen pomˇernˇe jednoduch´e funkce. Pro vytvoˇren´ı sloˇzitˇejˇs´ıch logick´ ych funkc´ı je nutno propojit v´ıce logick´ ych bunˇek. K propojen´ı blok˚ u CLB slouˇz´ı programovateln´a propojovac´ı struktura PI (programmable interconnect). Vˇsechny v´ yhody a nev´ yhody ˇreˇsen´ı z pˇredchoz´ı kapitoly z˚ ustavaj´ı, ani struktura a rozdˇelen´ı VHDL k´odu se z´asednˇe nemˇen´ı.
5.1
ˇ sen´ı s FPGA XC2S50 Reˇ
Jako n´ahradu CPLD jsme vybrali z cenov´ ych d˚ uvod˚ u obvod FPGA XC2S50. Jedn´a 1 se o FPGA od firmy Xilinx, ˇrady Spartan-II . Z´akladn´ı parametry FPGA je moˇzno nal´ezt napˇr. v [11]. Zrealizovan´a deska s FPGA a mikroprocesorem je na obr. 5.1 1
Tato ˇrada byla vyvinuta na z´akladˇe ˇrady Virtex, m´ a obdobnou architekturu a je levnˇejˇs´ı.
27
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A FPGA 28KAPITOLA 5. POPIS ME
Obr´azek 5.1. Vyvinut´a deska s FPGA a mikroprocesorem.
Stejnˇe jako u ostatn´ıch obvod˚ u FPGA firmy Xilinx je i zde konfiguraˇcn´ı informace uchov´av´ana v konfiguraˇcn´ı pamˇeti RAM. Je natahov´ana z pˇripojen´e konfiguraˇcn´ı pamˇeti PROM nebo z PC pˇri pˇripojen´ı nap´ajec´ıho napˇet´ı. K FPGA je pˇripojena EEPROM pamˇet’ XCV01, doporuˇcen´a pamˇet’ od firmy Xilinx, ve kter´e je uloˇzen program. Z tohoto d˚ uvodu jsou na desce um´ıstˇen´e zkratovac´ı propojky, kter´ ymi lze vybrat jeden ze ˇctyˇr konfiguraˇcn´ıch m´od˚ u obvodu FPGA • master-serial m´od, • slave-parallel m´od, • slave-serial m´od, • boundary-scan m´od. Zapojen´ı desky unoˇzn ˇuje pouˇz´ıt pouze master-serial nebo boundary-scan m´od. V master-serial konfiguraˇcn´ım m´odu, FPGA generuje hodinov´ y sign´al a pˇripojen´a pamˇet’ na kaˇzdou vzestupnou hranu hodinov´eho sign´alu pos´ıl´a s´eriov´a data do DIN pinu. Zapojen´ı FPGA a konfiguraˇcn´ı pamˇeti lze nal´ezt napˇr. v [12]. V boundary-scan konfiguraˇcn´ım m´odu je pˇripojen programovac´ı kabel. Zapojen´ı desky umoˇzn ˇuje dvˇe r˚ uzn´e zapojen´ı konfiguraˇcn´ı pamˇeti a FPGA do JTAG
ˇ SEN ˇ ´I S FPGA XC2S50 5.1. RE
29
ˇretˇezce2 . Prvn´ı z nich se t´ yk´a pouze obvodu FPGA, viz obr. 5.2, druh´e je zapojen´ı pamˇeti EEPROM a obvodu FPGA souˇcasnˇe, viz obr. 5.3. Programov´an´ı konfiguraˇcn´ı pamˇeti a FPGA se dˇeje oddˇelenˇe. K programov´an´ı obvodu FPGA se pouˇz´ıv´a bit soubor, ekvivalent jed souboru, kter´ ym se programovalo CPLD. K programov´an´ı konfiguraˇcn´ı pamˇeti se pouˇz´ıv´a msc soubor, kter´ y se generuje na z´akladˇe pouˇzit´eho typu konfiguraˇcn´ı pamˇeti z bit souboru.
Obr´azek 5.2. Zapojen´ı pouze FPGA do JTAG ˇretˇezce.
Obr´azek 5.3. Zapojen´ı EEPROM a FPGA do JTAG ˇretˇezce.
Po m´ırn´ ych u ´prav´ach k´odu pro CPLD byl k´od pouˇziteln´ y i pro FPGA. Pr˚ ubˇehy ˇr´ıdic´ıch a SPI sign´al˚ u pro A/D a D/A pˇrevodn´ıky na obr. 4.13, 4.14 se shoduj´ı s pr˚ ubˇehy, kter´e generuje FPGA. Tot´eˇz plat´ı i pro vygenerovan´e obd´eln´ıkov´e pr˚ ubˇehy 2
JTAG ˇretˇezec je s´eriov´e zapojen´ı obvod˚ u s JTAG rozhran´ım. V´ ystup TDO pˇredch´ azej´ıc´ıho obvodu je zapojen na vstup TDI n´ asleduj´ıc´ıho obvodu. Na programovac´ı kabel je pak zapojen prvn´ı obvod sv´ ym vstupem TDI a posledn´ı obvod sv´ ym v´ ystupem TDO. Vˇcechny obvody maj´ı spojeny sign´aly TCK a tak´e sign´aly TMS, kter´e jsou pˇrivedeny na programovac´ı kabel.
ˇ RIC ˇ ´IHO OBVODU S MIKROPROCESOREM A FPGA 30KAPITOLA 5. POPIS ME na obr. 4.15 a 4.16. Nav´ıc se do FPGA podaˇrilo bez vˇetˇs´ıch probl´em˚ u pˇridat pr˚ umˇerov´an´ı zmˇeˇren´ ych dat filtrem typu klouzav´ y pr˚ umˇer 2. a 4. ˇr´adu. Na obr. 5.4 je uk´azka filtrovan´ ych a nefiltrovan´ ych hodnot z A/D pˇrevodn´ıku. Data po filtrov´an´ı odpov´ıdaj´ı oˇcek´av´an´ı a jejich spr´avnost lze jednoduˇse ovˇeˇrit napˇr. v Matlabu. 5
Klouzavy prumer 4. radu
x 10
nefiltrovana data filtrovana data
2.3776
2.3775
amplituda [lsb]
2.3774
2.3773
2.3772
2.3771
2.377
2.3769
2.3768 20
40
60
80
100 vzorky
120
140
160
180
200
Obr´azek 5.4. Filtrov´an´ı mˇeˇren´ ych dat klouzav´ ym filtrem 4. ˇr´ adu.
Kapitola 6 Otestov´ an´ı mˇ eˇ ric´ıho obvodu Funkˇcnost mˇeˇric´ıho obvodu s FPFA byla otestov´ana na dodan´em kapacitn´ım senzoru. Senzor byl pˇripevnˇen k mikropolohovac´ımu stolku, kter´ y umoˇzn ˇuje posun ve tˇrech os´ach s pˇresnost´ı 0,001 mm, viz obr. 6.1. Mˇeˇren´ı polohy bylo zamˇeˇreno na linearitu a dosaˇzitelnou pˇresnost. Kapacitn´ım senzorem byl mˇeˇren posun v jedn´e ose o 0,2 mm s krokem 0,01 mm. V´ ysledn´ y pr˚ ubˇeh mˇeˇren´ı polohy je na obr. 6.3. Pr˚ ubˇeh je t´emˇeˇr ide´aln´ı, mal´e odchylky od linearity jsou s nejvˇetˇs´ı pravdˇepodobnost´ı zp˚ usoben´e nepˇresn´ ym nastaven´ım polohy na polohovac´ım zaˇr´ızen´ı. Mˇeˇren´ı bylo prov´adˇeno s krokem 0,01 mm. Se st´avaj´ıc´ım zaˇr´ızen´ım by bylo moˇzno mˇeˇrit s pˇresnost´ı aˇz 0,005 mm, viz obr. 6.2. Pro dosaˇzen´ı jeˇstˇe vyˇsˇs´ı pˇresnosti, v ide´aln´ım pˇr´ıpadˇe aˇz 0,001 mm, by bylo tˇreba prov´est nˇekolik u ´prav st´avaj´ıc´ıho zaˇr´ızen´ı, napˇr. • um´ıstit analogov´e obvody pˇr´ımo na kapacitn´ı senzor (nepˇripojovat je ke kapacitn´ımu senzoru pomoc´ı dlouh´ ych vodiˇc˚ u), • pouˇz´ıt dva nebo tˇri operaˇcn´ı zesilovaˇce pro osledov´an´ı sign´alu z mˇeˇric´ı elektrody a jejich v´ ystup sˇc´ıtat, t´ım lze jednoduˇse zlepˇsit pomˇer odstupu sign´al ˇsum, viz napˇr. [4], • nap´ajet analogov´e obvody kvalitnˇejˇs´ımi stabiliz´atory napˇet´ı.
31
32
´ ´I ME ˇ RIC ˇ ´IHO OBVODU KAPITOLA 6. OTESTOVAN
Obr´azek 6.1. Polohovaci stolek pro mikroposuvy.
Obr´azek 6.2. Uk´azka ˇcetnosti dat z A/D pˇrvodn´ıku.
33
4
2.85
Linearita mereni polohy
x 10
data 1 linear
amplituda [lsb]
2.8 2.75 2.7 2.65 2.6
0
0.02
0.04
0.06
0.08
0.1 0.12 poloha [mm] residuals
0.14
0.16
0.18
0.2
20 10 0 −10 −20 0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
Obr´azek 6.3. Linearita mˇeˇren´ı posuvu.
0.16
0.18
0.2
Kapitola 7 Z´ avˇ er Diplomov´a pr´ace se zab´ yv´a n´avrhem a testov´an´ı procesorov´eho syst´emu pro buzen´ı a vyhodnocen´ı kapacitn´ıho senzoru polohy. Nejvˇetˇs´ı ˇc´ast byla vˇenov´ana aplikac´ım s hradlov´ ymi poli. Nejvˇetˇs´ı pˇr´ınos pouˇzit´ı hradlov´ ych pol´ı je v menˇs´ım zat´ıˇzen´ı mikroprocesoru komunikac´ı s A/D a D/A pˇrevodn´ıky, moˇznost generov´an´ı a pˇredzpracov´an´ı dat. V prvn´ı variantˇe vyv´ıjen´eho procesorov´eho syst´emu pro buzen´ı a vyhodnocen´ı kapacitn´ıho senzoru komunikovaly A/D a D/A pˇrevodn´ıky pˇr´ımo s mikroprocesorem. V druh´e variantˇe vyv´ıjen´eho procesorov´eho syst´emu pro buzen´ı a vyhodnocen´ı kapacitn´ıho senzoru polohy bylo pro komunikaci mezi mikroprocesorem a A/D a D/A pˇrevodn´ıky pouˇzito CPLD XC95288XL. CPLD z paralelnˇe naˇcten´ ych dat z mikroprocesoru generovalo data pro dva dvoukan´alov´e D/A pˇrevodn´ıky, jejichˇz v´ ystupy jsou pˇripojeny na budic´ı elementy kapacitn´ıho senzoru. Souˇcasnˇe tak´e vyˇc´ıtalo data z A/D pˇrevodn´ıku, kter´e paralelnˇe pˇred´avalo do mikroprocesoru. Zmˇeˇren´a data z A/D pˇrevodn´ıku jsou velmi zaˇsumˇen´a, proto bylo tˇreba rozˇs´ıˇrit ˇcinnost CPLD o filtrov´an´ı zmˇeˇren´ ych dat, coˇz se nepodaˇrilo pro omezen´ y poˇcet makrobuˇ nek v CPLD. Ve tˇret´ı a zat´ım posledn´ı variantˇe procesorov´eho syst´emu pro buzen´ı a vyhodnoˇ cen´ı kapacitn´ıho senzoru polohy je m´ısto CPLD pouˇzito FPGA. Cinnost FPGA je shodn´a s ˇcinnost´ı CPLD, tzn. FPGA komunikuje po SPI s A/D a D/A pˇrevodn´ıky, generuje data pro D/A pˇrevodn´ıky a realizuje paraleln´ı pˇrenos dat z/do mikroprocesoru. Nav´ıc FPGA umoˇzn ˇuje filtraci zmˇeˇren´ ych dat. Tuto verzi desky lze nav´ıc rozˇs´ıˇrit o druh´ y kapacitn´ı senzor. Funkˇcnost mˇeˇric´ıho obvodu s FPGA byla otestov´ana na dodan´em kapacitn´ım senzoru. Mˇeˇren´ı bylo zamˇeˇreno na linearitu a dosaˇzitelnou pˇresnost. Pomoc´ı kapacitn´ıho senzoru byl mˇeˇren posun v jedn´e ose o 0,2 mm s krokem 0,01 mm. V´ ysledn´ y pr˚ ubˇeh z´avislosti zmˇeny polohy na zmˇenˇe kapacity je t´emˇeˇr ide´aln´ı, mal´e odchylky 34
35 od linearity jsou s nejvˇetˇs´ı pravdˇepodobnost´ı zp˚ usoben´e nepˇresn´ ym nastaven´ı polohy na polohovac´ım zaˇr´ızen´ı. Mˇeˇren´ı bylo prov´adˇeno s krokem 0,01 mm. Se st´avaj´ıc´ım zaˇr´ızen´ım, tzn. pˇripojov´an´ı analogov´ ych obvod˚ u ke kapacitn´ımu senzoru pomoc´ı dlouh´ ych vodiˇc˚ u, pouˇzit´ı jednoho operaˇcn´ıho zesilovaˇce pro osledov´an´ı sign´alu z mˇeˇric´ı elektrody, nap´ajen´ı analogov´ ych obvod˚ u nekvalitn´ımi stabiliz´atory napˇet´ı, by bylo moˇzno mˇeˇrit s pˇresnost´ı aˇz 0,005 mm. Pro dosaˇzen´ı vyˇsˇs´ı pˇresnosti, aˇz 0,001 mm, je tˇreba nejprve vyˇreˇsit v´ yˇse popsan´e probl´emy. Po jejich odstranˇen´ı bude moˇzn´e mˇeˇrit polohu s poˇzadovanou pˇresnost´ı.
Literatura [1] Altpeter, F. Friction modelling, identification and compensation. PhD The´ sis, Ecole Polytechnique F´ed´erale de Lausanne, 1999. [2] Anderle, M. Mˇeˇric´ı obvod pro rozd´ılov´y kapacitn´ı sn´ımaˇc. Bakal´aˇrsk´a pr´ace, ˇ Katedra ˇr´ıdic´ı techniky FEL CVUT, 2006. [3] Breguet, J.-M.; Clavel, R. Stick and Slip Actuators: design, control, performances and applications. International Symposium on Micromechatronics and Human Science, 1998. [4] Havlena, V. Odhadov´an´ı a filtrace (doplˇ nkov´e skriptum). 1. vyd., 74 str. ˇ Praha: Vydavatelstv´ı CVUT, 2002. ISBN 80-01-02587-X. [5] Holub, O.; Cimprich, T.; Ferreira, A.; Hurak, Z.; Breguet, J.-M. Dynamical Modelling and Position Control of Ultrasonic Piezoelectric Positioning Stage. IEEE Ultrasonics Symposium, 2006. ˇ ıslicov´y syst´em pro ˇr´ızen´ı piezoelektrick´ych motor˚ [6] Richtr, J. C´ u. Diplomov´a ˇ pr´ace, Katedra ˇr´ıdic´ı techniky FEL CVUT, 2008. [7] AD5545 precision, Dual, 16-Bit DAC. Analog Devices. hhttp://www. analog.com/UploadedFiles/Data_Sheets/AD5545_5555.pdfi [cite 2008-0520]. [8] AD7982 18-Bit, 1 MSPS PulSAR ADC. Analog Devices. hhttp://www. analog.com/UploadedFiles/Data_Sheets/AD7982.pdfi [cite 2008-05-20]. [9] Z´akladov´a deska MB-S2-150-PQ208 v1.4. PK Design. Uˇzivatelsk´ y manu´al. hhttp://www.pk-design.net/Datasheets/Zakladova_deska_S2_150_ PQ208_v14.pdfi [cite 2008-05-20]. [10] DAC8871 High Voltage Bipolar, Single, 16-Bit DAC. Texas Instruments. hhttp://focus.ti.com/lit/ds/symlink/dac8871.pdfi [cite 2008-05-20]. 36
LITERATURA
37
[11] Spartan-II 2.5V FPGA Family. Xilinx. hhttp://www.xilinx.com/support/ documentation/data_sheets/ds001.pdfi [cite 2008-05-20]. [12] XC18V00 Series In-System-Programmable Configuration PROMs. Xilinx. hhttp://www.xilinx.com/support/documentation/data_sheets/ds026. pdfi [cite 2008-05-20]. [13] XC9500XL High-Performance CPLD Family Data Sheet. [online] Xilinx. hhttp://www.xilinx.com/support/documentation/data_sheets/ds001. pdfi [cite 2008-05-20]. [14] Bio-inspired assembly (the EU Golem project) [online]. hhttp://www. golem-project.eu/i [cite 2008-05-28].
Dodatek A V´ yvojov´ e diagramy
38
39
ˇcekej na komunikaci
counter="1100"
ne
ano
amplituda=1
ne
ano data na v´ ystup indikaˇcn´ı pin = ’1’
response pin=1
data na v´ ystup indikaˇcn´ı pin = ’1’
ne
ano
response pin=1
ne
ano
pˇrenastav v´ ystupn´ı piny na vstupn´ı ˇza´dost o nov´a data =’1’
data platn´ a>1
ne
ano
naˇc´ıst data
Obr´ azek A.1. V´ yvojov´ y diagram popisuj´ıc´ı komunikaci mezi hradlov´ ym polem a mikroprocesorem.
´ ´ DIAGRAMY DODATEK A. VYVOJOV E
40
counter <= "00000000" AD CN V <= ’0’ DA LDAC <= ’1’ DA CS <= ’1’
counter = "00000001"
AD CN V <= ’1’ DA LDAC <= ’1’ DA CS <= ’1’
counter = "01011100"
ne
ano
ano
AD CN V <= ’1’ DA LDAC <= ’1’ DA CS <= ’0’
AD CN V <= ’1’ DA LDAC <= ’1’ DA CS <= ’1’
counter = "00110010"
counter = "01011100"
ne
AD DA DA SPI
AD CN V <= ’1’ DA LDAC <= ’0’ DA CS <= ’1’
ne
ano
counter = "10000001"
ne
AD CN V <= ’1’ DA LDAC <= ’1’ DA CS <= ’1’
ne
ano AD DA DA SPI SPI
CN V <= ’1’ LDAC <= ’1’ CS <= ’0’ komunikace DA
ano
AD CN V <= ’0’ DA LDAC <= ’1’ DA CS <= ’0’
counter = "00110100"
ne
ano
ano
counter = "00110011"
ne
counter = "11100000"
ne
ano
CN V <= ’0’ LDAC <= ’1’ CS <= ’0’ komunikace AD komunikace DA
counter = "01011000"
ne
ano
Obr´azek A.2. V´ yvojov´ y diagram pro ovl´ ad´ an´ı ˇr´ıdic´ıch a SPI sign´ al˚ u.
Dodatek B Sch´ ema zapojen´ı
41
42
´ DODATEK B. SCHEMA ZAPOJEN´I
Obr´azek B.1. Sch´ema zapojen´ı destiˇcky s A/D pˇrevodn´ıkem.
43
Obr´azek B.2. Sch´ema zapojen´ı destiˇcky s D/A pˇrevodn´ıkem.
44
´ DODATEK B. SCHEMA ZAPOJEN´I
Obr´azek B.3. Sch´ema zapojen´ı destiˇcky s FPGA a mikroprocesorem.