David Matouek
UDÌLEJTE SI Z PC generátor, èítaè, pøevodník, programátor
Mìøení, øízení a regulace pomocí sériového portu PC a sbìrnice I2C
1. díl
Praha 2001
PODÌKOVÁNÍ Chtìl bych podìkovat panu Liboru Kubicovi z nakladatelství BEN technická literatura za cenné pøipomínky pøi práci na této knize a také za vydání její knihy.
David Matouek
UDÌLEJTE SI Z PC generátor, èítaè, pøevodník, programátor
Mìøení, øízení a regulace pomocí sériového portu PC a sbìrnice I2C
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, 2001 Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 David Matouek: Udìlejte si z PC generátor, èítaè, pøevodník, programátor ... Mìøení, øízení a regulace pomocí sériového portu PC a sbìrnice I2C 1. díl BEN technická literatura, Praha 2001 1. vydání ISBN 80-7300-036-9
2
D. MATOUEK: UDÌLEJTE SI Z PC ....
A
OBSAH 1
PORTY PC .................................................................. 7
1.1 1.2 1.2.1 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4 1.4.1
Ovládání portù × operaèní systémy ....................................................... 8 Paralelní port .......................................................................................... 8 Pøíklad pouití paralelního portu ............................................................. 9 Sériový port .......................................................................................... 14 Pøevodníky úrovní TTL RS-232C ...................................................... 14 Charakteristiky sériového pøenosu ....................................................... 16 Programátorský model sériového portu PC ......................................... 17 Vysílaè .................................................................................................. 20 Pøijímaè ................................................................................................. 24 Pøímé øízení sériového portu ................................................................ 25 Programátorský model ......................................................................... 25
2
IMPULZNÍ GENERÁTOR DO 1 MHz .......................... 27
3
ÈÍTAÈ DO 16 MHz .................................................... 35
3.1
Realizace ovládacího programu v C++ Builderu .................................. 40
4
PROGRAMÁTOR OBVODÙ GAL ................................ 49
5
PROGRAMOVATELNÝ GENERÁTOR DO 100 KHz .... 55
5.1 5.2.
Naprogramování obvodù IO8 a IO9 ............................................................................................... 59 Vytvoøení øídicí aplikace v C++ Builderu .............................................. 62
6
OBVODY SE SBÌRNICÍ I2C ....................................... 77
6.1. 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.1.6 6.2 6.3 6.4 6.4.1
Charakteristiky sbìrnice I2C ................................................................. 78 Pøenos bitù ........................................................................................... 79 START a STOP .................................................................................... 79 Uspoøádání systému ............................................................................ 79 Kvitování (ACK) .................................................................................... 80 Protokol I2C sbìrnice ............................................................................ 80 Adresy I2C zaøízení ............................................................................... 80 Osminásobný 6bitový D/A pøevodník TDA8444 ................................... 81 8bitový vstupnì/výstupní port PCF8574 .............................................. 85 8bitový A/D a D/A pøevodník PCF8591 ................................................ 88 Adresování ........................................................................................... 89
A
D. MATOUEK: UDÌLEJTE SI Z PC ...
3
6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5
Øídicí bajt .............................................................................................. 90 D/A pøevodník ....................................................................................... 91 A/D pøevodník ....................................................................................... 91 Referenèní napìtí ................................................................................. 93 Mezní a charakteristické údaje ............................................................. 93 Parametry I2C sbìrnice ........................................................................ 95
7
MÌØICÍ DESKA K SÉRIOVÉMU PORTU POÈÍTAÈE ................................................... 97
7.1 7.2 7.3 7.3.1 7.3.2 7.3.3
Schéma zapojení .................................................................................. 98 Programátorské rozhraní v C++ Builderu ........................................... 100 Aplikace .............................................................................................. 104 Univerzální panel ................................................................................ 105 Snímání VA charakteristiky diody ..................................................... 113 Sledování pøechodných dìjù .............................................................. 115
8
VYLEPENÝ PROGRAMOVATELNÝ GENERÁTOR .......................................................... 117
8.1 8.2
Vytvoøení øídicí aplikace ..................................................................... 124 Výpoèet konvoluce ............................................................................. 126
PØÍLOHA A ........................................................................ 129 A.1 A.2 A.3 A.4 A.5 A.6
Ploný spoj impulzního generátoru .................................................... 130 Ploný spoj èítaèe .............................................................................. 133 Ploný spoj programátoru obvodù GAL ............................................. 136 Ploný spoj programovatelného generátoru ...................................... 139 Ploný spoj mìøicí desky .................................................................... 142 Ploný spoj vylepeného programovatelného generátoru ................. 146
PØÍLOHA B ........................................................................ 153 B B.1 B.2 B.3
Uivatelská pøíruèka programu GALip ............................................... 154 Ne zaèneme pracovat s programem GALip ..................................... 154 Zaèínáme pracovat s programem GALip ........................................... 155 Pøíklad naprogramování obvodu GAL ................................................ 157
ZÁVÌR ............................................................................... 160 LITERATURA ..................................................................... 161
4
D. MATOUEK: UDÌLEJTE SI Z PC ....
A
CO V KNIZE NAJDETE Tato kniha je urèena ètenáøùm, kteøí mají alespoò základní znalosti èíslicové techniky a rámcové pøedstavy o programování. Jádrem knihy je toti popis konstrukce a ovládání esti elektronických pøístrojù, které lze vyuít v amatérské praxi. Vechna tato zaøízení se pøipojují k sériovému portu poèítaèe a jsou ovládána programy, které bìí na operaèních systémech: Windows 95, Windows 98, Windows NT, Windows 2000 nebo Windows Me. Ovládací programy byly vytvoøeny ve vývojovém prostøedí C++ Builder verze 1.0 (popis viz [11], [12]). První kapitola probírá teorii spojenou s ovládáním sériového portu jak pod Windows, tak i na úrovni operaèního systému MS-DOS. Krátce je vìnována pozornost i práci s paralelním portem. Kapitoly 2, 3, 4 a 5 popisují stavbu nìkolika jednoduích zaøízení. Jedná se impulzní generátor do 1 MHz, èítaè do 16 MHz, programátor obvodù GAL a programovatelný generátor do 100 kHz. está kapitola nejdøíve popisuje chování sbìrnice I2C a poté se vìnuje výkladu tøí obvodù pracujících s touto sbìrnicí. Jedná se o obvody: TDA8444 (8násobný 6bitový D/A pøevodník), PCF8574 (8bitový vstupnì/výstupní port) a PCF8591 (jednoduchý 8bitový D/A pøevodník a 4kanálový 8bitový A/D pøevodník). Sedmá kapitola pouívá obvody popsané v kapitole 6 pro konstrukci mìøicí desky vybavené pøevodníky A/D a D/A a èíslicovými vstupy a výstupy. Jsou ukázány dvì aplikace této desky. Osmá kapitola popisuje stavbu programovatelného generátoru do 100 kHz vycházejícího z konstrukce popsané v kapitole 5. Dochází k rozíøení moných nastavení parametrù signálu a s tím je spojená i úprava ovládacího programu. Pøílohy popisují konstrukci desek ploných spojù pro vechna uvedená zaøízení v amatérských podmínkách a ovládání programu GALip, který øídí programátor obvodù GAL. Popis obvodù pouitých v daných konstrukcích lze nalézt v [18], [1] a [2].
CD ROM Na pøiloeném CD ROM jsou ve slokách nazvaných dle kapitol obsaeny výpisy programù ve zdrojovém tvaru, spolu s pøíslunými zkompilovanými programy (*.EXE). Ve sloce SPOJ jsou uvedena vechna klié ploných spojù. Navíc jsou na CD umístìny pøehledy aktuální technické a poèítaèové literatury ve formátu PDF (poèítaèová podoba titìného èasopisu BEN) a HTML (zrcadlo webových stránek http://www.ben.cz).
A
D. MATOUEK: UDÌLEJTE SI Z PC ...
5