David Matouek
UDÌLEJTE SI Z PC V DELPHI 1. díl
Praha 2003
Komerèní vyuití stavebních návodù je povoleno jen s písemným souhlasem autora a nakladatelství. Soubory na CD-ROM mající pøímo vztah ke knize, tj. obsah adresáøe PROGRAMY, nejsou volnì iøitelné.
David Matouek
UDÌLEJTE SI Z PC V DELPHI 1. díl
Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnoována jakoukoli formou (tisk, fotokopie, mikrofilm nebo jiný postup), zadána do informaèního systému nebo pøenáena v jiné formì èi jinými prostøedky. Autor a nakladatelství nepøejímají záruku za správnost titìných materiálù. Pøedkládaná zapojení a informace jsou zveøejnìny bez ohledu na pøípadné patenty tøetích osob. Nároky na odkodnìní na základì zmìn, chyb nebo vynechání jsou zásadnì vylouèeny. Vekerá práva vyhrazena. © Ing. David Matouek, 2003 © Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 David Matouek: Udìlejte si z PC v DELPHI 1. díl BEN technická literatura, Praha 2003 1. vydání ISBN 80-7300-111-X
OBSAH
O KNIZE .................................................................. 8 DÙVOD VZNIKU TÉTO KNIHY ................................ 9 1
VÝVOJOVÉ PROSTØEDÍ BORLAND DELPHI 7.0 ... 11
1.1
Komponenty, objekt inspektor, formuláø a textový editor ........... 12
1.2
Funkce Windows API ...................................................................... 13
1.3
Základy rozíøeného pouívání Delphi .......................................... 14
1.3.1 1.3.2 1.3.3 1.3.4
Ukazatele ...................................................................................................... 14 Øetìzce ......................................................................................................... 15 Volací konvence ............................................................................................ 17 Objekt Pascal ................................................................................................ 18
1.4
Dynamické knihovny (DLL) ............................................................ 22
2
PØÍMÝ PØÍSTUP NA PORTY ................................. 25
2.1
Úvod do problému ........................................................................... 26
2.2
Ovladaè ZLPortIO ............................................................................ 26
2.3
Tøída TPort ....................................................................................... 26
2.3.1 2.3.2
Implementace ................................................................................................ 27 Uivatelský popis .......................................................................................... 28
3
PARALELNÍ PORT DLE STANDARDU SPP ............ 29
3.1
SPP Standard Parallel Port .......................................................... 30
3.2
Windows XP a (moné) problémy s paralelním portem .............. 32
3.3
Programové øízení SPP ................................................................... 33
3.4
Tøída TParallel ovládání paralelního portu funkcemi Windows API .................................................................................... 33
3.4.1 3.4.2
Implementace ................................................................................................ 33 Uivatelský popis .......................................................................................... 36
3.5
LPTLCD øízení LCD displeje pøes paralelní port ....................... 36
3.5.1 3.5.2 3.5.3 3.5.4
Struèný popis ovládání LCD displeje ............................................................ 36 Schéma zapojení .......................................................................................... 39 Ploný spoj .................................................................................................... 39 Testovací aplikace ......................................................................................... 40
3.6
LPTSMT mìøení teploty èidlem SMT160-30 ............................... 47
3.6.1 3.6.2
Struèný popis èidla SMT160-30 .................................................................... 47 Schéma zapojení .......................................................................................... 47
A
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
3
3.6.3
Testovací aplikace ......................................................................................... 48
3.7
Poznámka k pøípravku SPPTEST ................................................... 54
4
PØÍMÉ ØÍZENÍ SÉRIOVÉHO PORTU ..................... 55
4.1
Linky sériového portu s podporou pøímého øízení ...................... 56
4.2
Tøída TSPort Programové øízení linek modemu sériového portu ............................................................................... 57
4.2.1 4.2.2 4.2.3 4.2.4
Rozvaha ........................................................................................................ 57 Implementace ................................................................................................ 57 Uivatelský popis .......................................................................................... 61 Ukázková aplikace DIRCOM ........................................................................ 62
4.3
Pøípravek COM4021 ......................................................................... 66
4.3.1 4.3.2 4.3.3 4.3.4
Schéma zapojení .......................................................................................... 67 Tøída TCOM4021 .......................................................................................... 69 Vlastní aplikace COM4021 ........................................................................... 72 Oivení .......................................................................................................... 75
4.4
Pøípravek COM1320 ......................................................................... 76
4.4.1 4.4.2 4.4.3 4.4.4 4.4.5
Struèný popis obvodu TC1320 ...................................................................... 76 Schéma zapojení .......................................................................................... 78 Tøída TCOM1320 .......................................................................................... 81 Vlastní aplikace COM1320 ........................................................................... 84 Oivení .......................................................................................................... 87
5
ASYNCHRONNÍ PØENOS NA SÉRIOVÉM PORTU .. 89
5.1
Tøída TSerial ..................................................................................... 90
5.1.1 5.1.2
Implementace ................................................................................................ 90 Uivatelský popis .......................................................................................... 97
5.2
Testovací pøípravek AT8VV2 ........................................................... 98
5.2.1 5.2.2
Schéma zapojení .......................................................................................... 98 Program pro AT89C2051 ............................................................................ 100
5.3
Testovací aplikace pro pøípravek AT8VV2 .................................. 103
5.4
Oivení pøípravku AT8VV2 ............................................................ 109
6
POUITÍ OBVODU FT232BM PRO PRÁCI SE SBÌRNICÍ USB ........................... 111
6.1
Základní pojmy USB ...................................................................... 112
6.1.1 6.1.2 6.1.3 6.1.4
Konektory a kabely ..................................................................................... 112 Verze USB a pøenosové rychlosti ............................................................... 113 Deskriptor zaøízení ...................................................................................... 113 Huby rozboèovaèe ................................................................................... 114
6.2
Struèný popis obvodu FT232BM ................................................. 115
6.2.1
Základní vlastnosti FT232BM ..................................................................... 115
4
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
A
6.2.2 6.2.3 6.2.4 6.2.5 6.2.6
Blokové schéma FT232BM ......................................................................... 116 Popis vývodù FT232BM .............................................................................. 117 Pøipojení E2PROM ....................................................................................... 120 Napájení aplikace z USB sbìrnice .............................................................. 120 Øízení spotøeby vnìjích obvodù ................................................................ 121
6.3
Bit Bang reim ............................................................................... 121
6.4
Tøída TFT232 .................................................................................. 122
6.4.1 6.4.2
Implementace .............................................................................................. 122 Uivatelský popis ........................................................................................ 129
6.5
Pøípravek FT232TST ...................................................................... 130
6.6
Ovladaè a programování E2PROM ............................................... 132
6.6.1 6.6.2 6.6.3 6.6.4
Ovladaè FTD2XX ........................................................................................ 132 EFSProg programátor konfiguraèní E2PROM .......................................... 133 Struèný popis poloek menu ....................................................................... 134 Nový ovladaè .............................................................................................. 134
6.7
Pøíklad pouití (reim Bit Bang) ................................................... 134
7
LPTUNI UNIVERZÁLNÍ PØÍPRAVEK PRO PARALELNÍ PORT ....................................... 139
7.1
Schéma zapojení ........................................................................... 140
7.2
Výkres desky ploných spojù ...................................................... 142
7.3
Ovládací rozhraní TLUInterface ................................................... 145
7.3.1 7.3.2
Implementace .............................................................................................. 145 Uivatelský popis ........................................................................................ 148
7.4
Testovací aplikace ......................................................................... 149
7.4.1 7.4.2
Krátce o aplikaci .......................................................................................... 149 Oivení pøípravku LPTUNI .......................................................................... 153
7.5
Pøíklad èasovaného øízení spotøebièù ......................................... 153
7.5.1 7.5.2 7.5.3
Inicializaèní soubor TIMER.INI .................................................................... 154 Programové øeení ...................................................................................... 155 Pouívání aplikace ...................................................................................... 161
8
JEDNODUCHÝ DVOUKANÁLOVÝ DIGITÁLNÍ OSCILOSKOP .................................... 163
8.1
Schéma zapojení ........................................................................... 164
8.2
Výkres desky ploných spojù ...................................................... 166
8.3
Øídicí pøíkazy ................................................................................. 168
8.4
Firmware ......................................................................................... 171
8.5
Ovládací program .......................................................................... 181
8.5.1 8.5.2
Tøída TOSC Ovládací rozhraní ................................................................ 181 Vlastní aplikace ........................................................................................... 186
A
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
5
8.6
Oivení ............................................................................................ 197
8.7
Návrhy na dalí vylepení ............................................................ 198
9
USBMC 2.0 UNIVERZÁLNÍ MÌØICÍ DESKA ...... 199
9.1
Schéma zapojení ........................................................................... 200
9.2
Výkres desky ploných spojù ...................................................... 203
9.3
Øídicí pøíkazy ................................................................................. 206
9.3.1 9.3.2
Pùvodní pøíkazy dle verze 1.0 ..................................................................... 207 Nové pøíkazy a vývody mikrokontroléru ...................................................... 209
9.4
Firmware ......................................................................................... 210
9.5
TUSBMC ovládací rozhraní ....................................................... 221
9.6
USBMC 2.0 komplexní testovací aplikace ............................... 231
9.7
Oivení ............................................................................................ 243
9.8
Pøíklad pouití mìøení teploty èidlem SMT160-30 ................... 244
10
PØÍLOHA PROPOJOVACÍ KABELY ...................... 249
10.1
Propojovací kabel pro paralelní port (LPTKAB) ......................... 250
10.2
Propojovací kabel pro sériový port (COMKAB) ......................... 250
10.3
Propojovací kabel PSLKAB .......................................................... 250
10.4
Propojovací kabel pro USB .......................................................... 251
11
DODAVATELÉ SOUÈÁSTEK, MODULÙ A HOTOVÝCH PØÍPRAVKÙ UVEDENÝCH V TÉTO KNIZE .............................. 253
11.1
Seznamy souèástek ...................................................................... 254
11.2
GM Electronic ................................................................................ 254
11.3
Zásilková sluba Electronic Obecnice ........................................ 254
11.4
ASIX ................................................................................................ 254
ZÁVÌR ................................................................ 255 KONTAKT NA AUTORA ....................................... 255 PØEHLED PØÍPRAVKÙ........................................ 256 PLONÉ SPOJE .................................................. 256 LITERATURA ...................................................... 257
6
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
A
CO NAJDETE NA DOPROVODNÉM CD-ROM Doprovodné CD-ROM obsahuje vechny informace potøebné pro snadnou práci s knihou. Tyto informace lze rozdìlit do logických celkù, které se nacházejí v oddìlených adresáøích: n
adresáø _DELPHI7 obsahuje ,
n
adresáø BEN obsahuje off-line verzi www stránek nakladatelství BEN technická literatura (aktualizováno k poèátku øíjna 2003), jejich souèástí je poèítaèová verze titìného katalogu Edièního plánu podzim 2003 a samostatného pøehledu naí produkce BEN 2003,
n
adresáø DATASHEET obsahuje dokumentaci vybraných integrovaných obvodù, které jsou v knize pouívány, ve formátu PDF. Najdete zde té samorozbalitelný archiv programu Adobe Acrobat Reader v nìkolika verzích, který slouí k prohlíení PDF souborù,
n
adresáø EFSPROG, je programátor konfiguraèních E2PROM (viz kap. 11). Tento ovládací program je mnohem komfortnìjí ne originální od firmy FTDI Chip,
n
adresáø FOTO obsahuje, jak sám název napovídá, fotografie hotových pøípravkù. Kadý byl nafocen z nìkolika pohledù, aby byla lépe dokumentována jejich moná stavba, Do shodného adresáøe jsme umístili trial verzi prohlíeèe ACDSee staenou z Internetu (http://www.acdsystems.com): ACDSee Classic (velikost instalaèního souboru cca 1,6 MB, minimální poadavky Windows 95/98/Me/NT4/2000, PC 486DX s 32 MB RAM, reim grafického adaptéru s 256barvami, 4 MB volného místa na pevném disku, vhodný Internet Explorer 4.0 nebo pozdìjí). Tip: pokud se vám fotografie zdají pøíli tmavé, aktivujte ve vaem prohlíeèi Gamma korekci na hodnotu napø. 1.50 (optimální hodnota závisí na nastavení vaeho grafického subsystému).
n
adresáø OVLADACE obsahuje strukturu nìkolika podadresáøù: D2XX zde najdete ovladaèe pro rozhraní D2XX (viz kap. 3) v podadresáøi EFS jsou ovladaèe publikovaných konstrukcí a v podadresáøi FTDI jsou originální ovladaèe od výrobce. V podadresáøi VCP najdete ovladaèe virtuálního sériového portu (viz kap. 12).
n
adresáø PROGRAMY obsahuje zdrojové i pøeloené formy vech programù realizovaných v knize,
n
adresáø SPOJE obsahuje klié ploných spojù vech pøípravkù popsaných v knize ve formátu TIF a navíc ve zdrojovém formátu BRD programu EAGLE je verze 2.6, aby si ètenáøi pøípadnì mohli ploné spoje upravit podle vlastních pøedstav. Nìkteré spoje jsme jetì v redakci dodateènì upravovali (zvìtování úchytných ploek pro souèástky,
), take finální verze je uloena pouze ve formátu TIF (je shodná s klié otitìnými v knize),
A
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
7
O KNIZE Kniha uvádí konstrukce nìkolika zaøízení, která lze pouívat v amatérské praxi ale i mnohem obecnìji. Ovládací programy jsou vytvoøeny ve vývojovém prostøedí Borland Delphi 7.0 a fungují na operaèních systémech Windows 98/2000/XP. První kapitola uvádí pokroèilejí programovací techniky Delphi (ukazatele, øetìzcové typy, volací konvence, vlastnosti a události, RTTI, volání funkcí z dynamických knihoven), které jsou dùleité pro efektivní programování. Druhá kapitola struènì popisuje ovladaè ZLPortIO, který poskytuje plný pøístup k portùm poèítaèe. Dále je implementována tøída TPort, která pouití ovladaèe velmi zjednoduuje. Tøetí kapitola je zamìøena na popis paralelního portu dle standardu SPP. Jsou také pøipojeny dvì zajímavé aplikace paralelního portu (ovládání LCD displeje pøes paralelní port a pouití èidla SMT160-30 pro mìøení teploty). Ètvrtá kapitola se vìnuje popisu sériového portu a pøináí dvì zajímavé aplikace øízené pomocí linek modemu (8bitový vstupní port a levný 8bitový D/A pøevodník). Obì konstrukce jsou napájeny pøímo ze sériového portu, take odpadá nutnost pouití vnìjího napájecího zdroje. Pátá kapitola ukazuje pouívání sériového asynchronního pøenosu na sériovém portu. Také je pøipomenut pøípravek AT8VV, na kterém si lze teoretické informace snadno ovìøit. está kapitola pøináí struèný popis obvodu FT232BM (konvertoru USB<=>RS232) vèetnì vybraných ovládacích funkcí, který je zakonèen vytvoøením jednoduchého testovacího pøípravku pro USB. Poslední tøi kapitoly jsou vìnovány tvorbì sloitìjích zaøízení: n
LPTUNI univerzální deska pro paralelní port (triaky nebo relé pro ovládání síových spotøebièù, tranzistory pro spínání stejnosmìrných obvodù, jeden digitální vstup),
n
COMOSC dvoukanálový digitální osciloskop s rozliením 8 bitù a maximální vzorkovací rychlostí 100 kSPS (= 100 000 vzorkù za sekundu, tj. samples per second),
n
USBMC univerzální mìøicí karta pro USB (D/A pøevodníky, A/D pøevodníky, digitální vstupy a výstupy, èítaè a èasovaè).
Pro vechny konstrukce jsou vytvoøeny speciální tøídy, které zajiují jejich ovládání. Tak mohou ètenáøi velmi snadno zaèleòovat publikovaný kód do svých konstrukcí a vytváøet vlastní obsluné programy s minimálním úsilím.
8
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
A
DÙVOD VZNIKU TÉTO KNIHY Úvodem struènì vysvìtlím, proè jsem se rozhodl napsat knihu zamìøenou na ovládání hardwarových zaøízení pomocí vývojového prostøedí Delphi. Po vydání prvního a druhého dílu knihy Udìlejte si z PC mì reakce ètenáøù vedly k poznatku, e mnoho zaèínajících programátorù je odrazeno zdánlivou sloitostí programování v jazyce C++. Tato sloitost je opravdu jen zdánlivá a vlastnì je zpùsobena nesmírnou bohatostí programátorských nástrojù (zde mám hlavnì na mysli velké mnoství klíèových slov) oproti pøehlednìjímu Pascalu. Nicménì vývojové prostøedí C++ Builder, které jsem do této doby ve vech knihách pouíval, je velmi podobné Delphi (víte, e C++ Builder má èást kódu zapsanou v Pascalu?). Take informace podané v [15] a [17] jsou dobøe pouitelné i pro vývoj aplikací v Delphi. Vzhledem k tomu, e vak mnoho zaèáteèníkù nerozumí rozdílùm syntaxe nebo není schopno si programové kódy jednodue pøepsat do Pascalu, rozhodl jsem se spolu s panem Liborem Kubicou z nakladatelství BEN technická literatura vydat tuto knihu, která by rámcovì zahrnula monosti ovládání zaøízení pøipojených na paralelní nebo sériový port poèítaèe èi na stále více se prosazující sbìrnici USB. Nejde vak o obalení starých aplikací do nového kabátu. Rozhodl jsem se pøinést øadu nových zapojení, která mají praktické pouití napøíklad ve vaí elektrodílnì, pro podporu výuky elektropøedmìtù, v øízení domácích spotøebièù a snad i mnohem obecnìji.
A
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
9
10
D. MATOUEK: UDÌLEJTE SI Z PC V DELPHI 1. DÍL
A