ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra měření
BAKALÁŘSKÁ PRÁCE
Experimentální modul řádkového snímače CCD
2008
Dušan ZABLOUDIL -0-
České vysoké učení technické v Praze
Fakulta elektrotechnická
Katedra měření K13138
Školní rok
2006/2007
ZADÁNÍ BAKALÁŘSKÉ PRÁCE
Student
Dušan Zabloudil
Obor
Kybernetika a měření
Název tématu: Experimentální modul řádkového snímače CCD (anglicky: Experimental linear CCD sensor module) Zásady pro vypracování:
Navrhněte a realizujte experimentální výukový modul s řádkovým snímačem CCD. Modul bude poskytovat jednotlivé řídicí signály a výstupní signál v analogové i digitální formě. Řídicí blok modulu umožní provoz snímače nejen ve standardním režimu, ale i v nestandardních módech ( v módu TDI, sumačním,..). Digitalizovaný videosignál se bude prostřednictvím rozhraní RS232, případně USB přenášet na nadřazené PC, které bude sloužit pro nastavování modulu a zobrazení výsledků. Vytvořte potřebné programové vybavení pro řídicí procesor v modulu i programy pro nadřazené PC.
-1-
Anotace Tato práce se zabývá rozborem návrhu modulu řádkového CCD snímače umožňujícího digitalizaci obrazu a komunikaci s počítačem. Hlavní část práce se soustředí na popis návrhu elektronického obvodu a programu pro mikroprocesor a tvorba softwaru pro počítač.
Annotation This work deals with analysis of a linear CCD sensor module enabling picture digitizing and communication with PC. The main aim of the work is to characterize the design of electronical circuit and programme for microprocessor and creation of computer programme.
Prohlášení Prohlašuji, že jsem svou bakalářskou práci vypracoval samostatně a použil jsem pouze podklady (literaturu, projekty, SW apod.) uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu § 60 Zákona č.121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne ……………………..
………………………………....... Podpis
-2-
Obsah 1.
Úvod ..................................................................................................................... 5 1.1.
2.
CCD senzor – řádkový snímač obrazu ................................................................. 6 2.1.
Blokové schéma..................................................................................... 6
2.1.2.
Fotoelement ........................................................................................... 7
2.1.3.
Posuvný registr ...................................................................................... 7
CDS mód ............................................................................................... 8
2.2.2.
SH mód .................................................................................................. 9
Časování ..................................................................................................... 10
2.3.1.
CDS mód ............................................................................................. 10
2.3.2.
SH mód ................................................................................................ 10
Mikroprocesor .................................................................................................... 12 3.1.
Blokové schéma .......................................................................................... 12
3.2.
Použité prostředky ...................................................................................... 13
3.2.1.
XRAM .................................................................................................. 13
3.2.2.
A/D převodník ...................................................................................... 14
3.2.3.
UART ................................................................................................... 16
3.2.4.
Programovatelné vstupy/výstupy a Crossbar ....................................... 18
3.2.5.
JTAG (rozhraní C2) .............................................................................. 19
3.3.
5.
Video signál .................................................................................................. 8
2.2.1.
2.3.
4.
Teorie ............................................................................................................ 6
2.1.1.
2.2.
3.
Motivace ........................................................................................................ 5
Časování ..................................................................................................... 20
3.3.1.
ILX503a ............................................................................................... 20
3.3.2.
A/D převod ........................................................................................... 21
3.3.3.
XRAM .................................................................................................. 21
3.3.4.
RS232 – sériový kanál ......................................................................... 22
Jednočipové řešení (interní A/D převodník) ....................................................... 23 4.1.
Hlavní program ........................................................................................... 23
4.2.
Analogové měření ....................................................................................... 24
4.3.
Digitální měření ........................................................................................... 26
Budič sběrnice.................................................................................................... 29 -3-
6.
Převodník MAX232 ............................................................................................ 30
7.
Napájení ............................................................................................................. 31
8.
Program PC ....................................................................................................... 32
9.
8.1.
RS232 ......................................................................................................... 32
8.2.
Zpracování dat ............................................................................................ 32
8.3.
Zobrazení dat .............................................................................................. 33
8.4.
Ovládání programu ..................................................................................... 34
Závěr .................................................................................................................. 36
Seznam použité literatury .......................................................................................... 37
-4-
1. Úvod Stejně jak se zvyšují požadavky na kvalitu a přesnost výrobků, dochází v technickém světě ke zdokonalování technologických procesů. Snad každý technik dnes ví jaký vliv na řízení má zpětná vazba. A každý lepší technik ví, že čím méně zpětná vazba ovlivňuje proces, tím lépe. A pávě tuto podmínku splňují optoelektronické senzory. Informace, kterou nám o svém okolí dávají, je ze všech snímačů lidskému chápání nejblíže. Přinášejí řadu užitečných pohledů na danou situaci. Dokážeme pomocí nich rozeznávat barvu, tvar, velikost, ale také jako lidský zrak jsou náchylné, umí pracovat jen v určitém pásmu a někdy přinášejí falešné informace. Ale na rozdíl od lidských smyslů se tyto nedostatky dají potlačit přídavnými podpůrnými prostředky.
1.1. Motivace Snahou této práce je nahradit učební modul pro začínající techniky v oboru videometrie, který slouží ve zdejší laboratoři. Výhodou oproti předcházejícímu zařízení by mělo být: Zvýšení rozlišení sejmutého obrázku z původních 256 pixelů na 2048 (respektive jen 512) bodů Převod signálu do digitální podoby a přenesení obrazu do počítače, čímž vznikne možnost uchovat informaci pro pozdější zpracování Nastavování parametrů, měření a komunikace s přípravkem přes výpočetní techniku Přínosem uživatelů by mělo být osvojení si základních dovedností a poznatků při práci s optoelektronickou technikou, přesněji s řádkovým snímačem obrazu. Grafické znázornění problému nalezneme na Obr. 1.1. PC
A/D převodník
Mikroprocesor
Řádkový snímač
Obr. 1.1 Součástí práce je také softwarové vybavení pro počítač, pomocí něhož se nastavují parametry měření a slouží jako grafický výstup měření.
-5-
2. CCD senzor – řádkový snímač obrazu 2.1. Teorie Jedná se o stejné zařízení jaké nalezneme například ve faxech či skenerech. Jeho výstupem je jeden
sejmutý řádek snímané scény. Dvourozměrného obrazu je
docíleno mechanickým pohybem předlohy, respektive snímacího prvku.
2.1.1. Blokové schéma Použitý řádkový snímač Obr. 2.1 se skládá z 2048 fotocitlivých elementů, pomocí nichž se zachycuje obraz. Doba, po kterou je scéna zachycována (fotoelementy jsou osvětlovány), se nazývá dobou integrace. Ta je určena dvěma pulzy vstupního signálu fROG. Tato doba má zásadní vliv na kvalitu obrazu. Každým příchozím pulzem fROG dojde k přesunutí nashromážděných nábojů z
fotoelementů do
posuvného registru, kde již nedochází ke změně nábojů vlivem dopadajícího světla. Signál je ve formě nábojů transportován směrem k výstupu. Vedle užitečného signálu je senzor ještě opatřen několika zakrytými pixely, tak zvané černé pixely, na které nedopadá světlo, jejich signál je generován pouze tepleným šumem okolí a slouží ke korekcím tohoto nežádoucího efektu, neboť tento šum ovlivňuje i fotoelementy.
D14
Výstupní zesilovač Vzorkovací obvod
S1
S2048
D34
D39
CCD posuvný registr
Časová základna
Generátor hodinových pulzů Sample-hold generátor
EXRS
fCLK
SHSW
Přepínání módů
RSSW
Vout
D33
Obr. 2.1
-6-
Generátor Vysouvacích pulzů
fROG
2.1.2. Fotoelement Optoelektronickým prvkem je fotodioda, jedná se o PN přechod na nějž dopadá světelné záření. Dopadající foton předá svou energii elektronu, díky čemuž může přejít z valenčního do vodivostního energetického pásu a vytvoří se tak pár elektron – díra. Vlivem elektrického pole působícího v oblasti OPN dojde k rozdělení páru elektron – díra. Díry se pohybují do oblasti P+ a elektrony do oblasti N. Proto se na anodě fotodiody objeví kladné napětí a na katodě záporné. Osvětlená část přechodu je pokryta antireflexní vrstvou, která snižuje odraz záření. Navíc kovové kontakty jsou umístěny na oblast s vyšší koncentrací majoritních nosičů náboje P+, respektive N+, kdyby to tak nebylo vznikl by nežádoucí usměrňovací přechod – Schotkyho dioda.
P+
Antireflexní vrstva Kontakt
Izolační vrstva
OPN
N N+
Kontakt
Obr. 2.2
2.1.3. Posuvný registr Úkolem posuvného registru je přenést náboje z fotoelementů do výstupních obvodů senzoru. Přenos je uskutečněn pomocí série MOS kapacitorů. Na Obr. 2.3 naznačený princip je založen na dvoufázovém řízení. Tímto samotným režimem se nedá zaručit směr pohybu náboje, proto je každá elektroda rozdělena na dvě části, které jsou od přenosového kanálu odděleny různou tloušťkou izolantu, čímž je dosaženo různého potenciálů pod elektrodami. V situaci naznačené na obrázku je napětí u1 rovno minimální hodnotě, naopak napětí u2 má maximální úroveň. Náboje nashromážděné pod elektrodou b se posunují do potenciálové jámy vzniklé pod -7-
elektrodou d. Poté dochází ke snižování napětí u2 a zvyšování napětí u1, tím se potenciálová jáma posune pod elektrodu b a všechny náboje se posunou směrem doprava. Opačnému pohybu doleva bude bránit potenciálová hráz pod elektrodou c. u1 u2 a
c
a
b
d
Poly Si
b
SiO2 P-Si
Obr. 2.3
2.2. Video signál Výstup snímače může mít dva různé tvary, každý má své výhody a nevýhody, výběr módu se tedy provádí podle požadavků na dané zařízení.
2.2.1. CDS mód Dvojí korelované vzorkování (correlated double sampling). Signál v tomto módu má tři fáze. Nejprve se objeví průnik resetovacího pulzu. Jedná se o uvedení nábojového detektoru do počátečního stavu. Na resetovacím pulzu bývá superponován tepelný šum vzniklý ve snímači. Následující hodnotou je referenční úroveň. Ta představuje signál, který generují zakryté snímací body senzoru, neboli hodnotu jakou budou mít fotoelementy při úplném zatemnění. Tato hodnota je velmi důležitá při pozdějším zpracování signálu, umožňuje dosáhnout lepších výsledků co se týče kvality. A poslední fáze je užitečný signál právě čteného pixelu. Při zpracování signálu se od této hodnoty odečítá referenční úroveň, abychom zjistili intenzitu osvětlení dopadající na daný obrazový bod.
-8-
Referenční úroveň
Videosignál
Průnik resetovacího pulzu
Obr. 2.4 Tento mód je ve videometrii velmi často používaný, protože pomocí něho je velmi snadné korigovat vliv tepelného šumu. Tato korekce se provádí až při zpracování signálu například v analogově-digitálním převodníku. Převodníky navržené ke zpracování obrazu totiž umějí s takto generovaným signálem pracovat.
2.2.2. SH mód V případě, že není nutné provádět předchozí korekce lze ze senzoru číst následující signál, který má pouze dvě části. Průnik resetovacího pulzu - opět uvedení nábojového detektoru do počáteční fáze a samotný videosignál.
Průnik resetovacího pulzu
Videosignál
Obr. 2.5 Je zřejmé, že při použití tohoto módu není možné provádět analogové odečítání úrovně tmavých pixelů, ovšem i nadále zde existuje možnost toto odečtení provést pomocí procesorové techniky na digitálním signálu, samozřejmě tím ale dojde ke snížení přesnosti. Ovšem v některých aplikacích je to dostačující. -9-
2.3. Časování Pro správnou funkci řádkového snímače je nutné dodržet několik základních kroků při generování řídicích pulzů. První z nich je samozřejmě dodržet patřičný sled pulzů doporučený výrobcem snímače. Poté u hodinového signálu fCLK pohybovat se se střídou pulzů mezi 40 až 60 %. A posledním doporučením je vytvářet periodu signálu fROG jako celočíselný násobek 10ms, čímž omezíme vliv blikání, které vzniká při použití umělého osvětlení, například zářivky. V obou použitých módech sekvence začíná vysouvacím pulzem fROG, čímž dojde k přesunutí nábojů z fotoelementů do posuvného registru. A hodinovými impulzy fCLK vysouváme signál směrem k výstupu. Za dobu integrace je nutné vysunout ze senzoru všechny náboje, aby příští měření nebylo ovlivněno předchozím průběhem.
2.3.1. CDS mód Pokud požadujeme videosignál pro zpracování dvojím korelovaným vzorkováním použijeme takovéto časování Obr. 2.6. Výstupní signál bude ve tvaru který je popsán v kapitole 2.2.1. fROG
fCLK
fRS
Obr. 2.6 Částečného zjednodušení lze dosáhnout použitím interního generování pulzů fRS, tím ale obsluha ztrácí přehled kdy přesně která úroveň ve videosignálu začíná a končí.
2.3.2. SH mód V módu sample hold se běžně nepoužívá signál fRS pro označování resetovacího průniku. fROG
fCLK
Obr. 2.7
- 10 -
Poznámka: V další práci je použit tento mód, ale zároveň jsou programově generovány i pulzy fRS udávající průnik resetovacího pulzu. Jednoduchým přesunutím propojky je pak možné používat signál ve tvaru CDS.
+9V R1 R
C13 100n
GND ADc0
GND_a
2N1132 Q1
503
+5V
GND_A +9V
C10 100n
C15 100n +9V
GND_A
f CLK
+5V C11 CAP NP
f ROG
GND
1 2 3 4 5 6 7 8 9 10 11
Vout GND1 (D) GND1 (A) SHSW f CLK Vdd1 (A)1 GND2 (D) Vdd2 (D)1 T1 NC1 f ROG
Vdd2 (D)2 EXRS Vdd1 (A) RSSW Vgg GND3 (A) GND2 (A) Vdd1 (A)2 NC3 NC2 GND3 (D)
ILX503A
22 21 20 19 18 17 16 15 14 13 12
C22
100n
+ C21 10u +9V
C14 100n
GND GND_A
Obr 2.8
- 11 -
GND_A
GND
3. Mikroprocesor Jako řídicí jednotka byl vybrán procesor od firmy Silicon laboratories C8051F330. Jedná se o klon procesoru s jádrem x51. Tyto procesory sice nepatří mezi špičkovou techniku, nedosahují takových parametrů jako dnešní nejkvalitnější řídicí jednotky. Ale svou oblibu si zajišťují svými stále přibývajícími prostředky jako jsou D/A a A/D převodníky, rozšířená datová paměť XRAM, četné zdroje přerušen aj. Tento obvod je navíc vybaven rozhraním JTAG, které umožňuje přímé krokování programu a to i z již navrženého funkčního plošného spoje. Tedy je možné ladit program již ve své finální verzi. Pomocí tohoto rozhraní se také procesor programuje a to bez nutnosti vyjmutí obvodu z přípravku. A v neposlední řadě procesory s jádrem x51 určitě nepatří do kategorie nejdražších obvodů.
3.1. Blokové schéma Na blokovém schématu Obr. 3.1 jsou zobrazeny všechny důležité součásti mikroprocesoru . Procesor lez pomyslně rozdělit na tři části. Analogová část – Jejím základem je analogová přepínací matice (crossbar) pomocí níž si lze naprogramovat vstupy/výstupy dle potřeby, což často usnadňuje hardwarovou část výrobku. A umožňuje používat veškeré vnitřní analogové prostředky. O přepínací matici více v 3.2.4. Digitální část – Tuto část tvoří vstupně/výstupní porty v digitálním režimu, čítače a časovače, sériový kanál a všechny ostatní zdroje přerušení. Všechny tyto části, které mají co dočinění s vstupy/výstupy opět zastřešuje přepínací matice. Viz. kapitola 3.2.4. Vysokorychlostní
jádro
–
To
spravuje
samotnou
činnost
procesoru,
představuje paměťovou část a to jak programovou tak datovou. Dále se stará o kontrolu obvodu ať už máme na mysli Watchdog a nebo kontrolu napájení, a také má na starosti chod přerušení.
- 12 -
Analogové obvody
UART
10 bit bit 20010ksps 200 ksps ADC ADC
SMBUS SPI PCA
10 bit DAC
Timer0 Timer1 Timer2
24.5 MHz Oscilátor
Digatální Vstup/Výstup
Nízkofrekvenční Oscilátor
Timer3
Port 0
crossbar
A MA UM XU X
Port 1 P2.0
Vysokorychlostní jádro 8 KB flash
Jádro 8051
768 B SRAM
Přerušení
Debugovací obvody
Watchdog
Obr. 3.1 Procesor je napájen ze zdroje 3,3V, ale jeho vstupy jsou tolerantní k běžně používané pětivoltové logice. Vnitřní oscilátor běží na frekvenci 24,5 MHz.
3.2. Použité prostředky 3.2.1. XRAM Procesor je vybaven 512 Byty statické paměti dat, jedná se napěťově závislou paměť, tudíž po odpojení napájení (případně resetování procesoru) dochází ke ztrátě dat. S interní pamětí se pracuje naprosto stejně jako externí datovou pamětí a to pomocí instrukce movx ale s tím rozdílem, že po použití této instrukce se defaultně pracuje s interní pamětí. Pokud bychom chtěli připojit přídavnou paměť, museli bychom to procesoru oznámit. Tedy movx @DPTR,A
provede zápis hodnoty uložené ve střadači A na adresu
určenou data pointerem DPTR. A načtení z dané adresy se provede movx A,@DPTR hodnota bude uložena do střadače.
- 13 -
0xFFFF Zrcadlení bloku 512 Bytů 0x0200 0x01FF 0x0000
XRAM 512 Bytů (přístupné instrukcí MOVX)
Obr. 3.2 Do této paměti se ukládají hodnoty načtené z řádkového senzoru, samozřejmě po jejich převedení na digitální číslo pomocí A/D převodníku. Protože ale senzor má rozsah 2048 bodů užitečného signálu + 18 zatemněných referenčních bodů na začátku senzoru + 6 zatemněných referenčních bodů na konci senzoru a procesor disponuje 512 Byty paměti, je vytvořeno několik programových módů, které se tento nedostatek snaží řešit. Více v sekcích 4. a 8.
3.2.2. A/D převodník Interní analogově digitální převodník má rozlišení 10 bitů, tedy rozsah 0 – 1023, a umožňuje provádět až 200 000 převodů za vteřinu. Převodník pracuje na principu postupného přibližování. Výsledek převodu je ukládán do registrů ADC0H a ADC0L. Je možné si vybrat ze dvou způsobů ukládání:
Zarovnání doleva (left justified) – do horního bytu ADC0H je uloženo horních 8 bitů čísla a zbylé 2 nejméně významné bity jsou uchovány v registru ADC0L.7 a ADC0L.6. Nastavuje se bitem ADC0CF.2 = 1 Zarovnání doprava (right justified) – 2 nejvyšší bity převedeného čísla jsou uloženy v ADC0H.1 a ADC0H.0 a zbylé bity jsou uloženy v ADC0L. Nastavuje se bitem ADC0CF.2 = 0
- 14 -
AMX0P
P0.0 ... P0.7 P1.0 ... P1.7
ADC0CN A M U X
(+) 10 bit 200 ksps ADC
Vdd
ADC0H ADC0L
(-) P0.0 ... P0.7 P1.0 ... P1.7 Vref GND
A M U X
Start AD ADC0CF
AMX0N
Obr. 3.3 Vnitřním analogovým multiplexerem je možné si vybrat, který pin z portů P0 nebo P1 bude sloužit jako kladný vstup převodníku a stejně tak i u záporného vstupu. Tam je navíc ještě možné volit mezi vnitřní referencí Vref a zemí GND. Ve všech případech se jedná o diferenční mód tedy převod se pohybuje v rozmezí +Vref až -Vref, pouze pokud je záporný vstup převodníku připojen na zem GND bude použit nediferenční mód a převádí se hodnoty v rozmezí +Vref až 0. Tato volba se nastavuje v registrech AMX0P a AMX0N. Pro správný chod musí být vstupy použité pro převodník v přepínací matici nastaveny jako analogové vstupy. K tomuto účelu slouží registry P0MDIN a P1MDIN. Poslední volbou je možnost nastavit si jakým způsobem se budeme spouštět A/D převod. Je na výběr přetečení některého ze čtyř časovačů (timer 0 – timer 3), nástupná hrana na pinu P0.6 nebo zapsáním logické jedničky do bitu AD0BUSY v registru ADC0CN. Nakonec zbývá jen povolit A/D převod zapsáním logické jedničky do bitu ADC0CN .7.
- 15 -
V našem případě je použito následující nastavení převodníku: Vzhledem k omezenému paměťovému prostoru mikroprocesoru je využito zarovnání doleva, tedy po digitalizaci čísla se dále pracuje jen s horními 8 bity. Čímž se ale samozřejmě snižuje přesnost celé aplikace Je nastaven nediferenční mód o Kladným vstupem převodníku je pin P0.3 o Záporným vstupem je GND Spouštění konverze se začíná nastavením AD0BUSY do logické jedničky. Konec převodu je v tomto případě oznámen nastavením bitu AD0BUSY do logické nuly.
3.2.3. UART Dosud
stále
ještě
hojně
používaným
prostředkem
pro
komunikaci
mezi
mikroprocesorem a počítačem je sériový kanál. Nedosahuje sice tak vysoké přenosové rychlosti jako jiné protokoly například USB, ale svojí jednoduchostí, spolehlivostí a nenáročností na další nákladný hardware, neboť je standardně implementován v mikroprocesorech, stále nachází uplatnění. Sériový kanál mezi dvěma procesory je tvořen pouhými třemi signálovými cestami. Vysílací signál TxD, přijímací signál RxD a je nutné připojit země GND obou obvodů na stejný potenciál. U spojení počítače s mikroprocesorem se předpokládá delší přenosová cesta (až několik metrů), proto se používá logika +12V -12V což snižuje riziko chyby přenosu dat. K této konverzi slouží například převodník Max232 viz. sekce 6.
Nastavení sériového kanálu Na výběr je opět několik módů a vlastností přenosu dat. První z nich je možnost použití synchronního, či asynchronního přenosu (zda se bude nebo nebude každý vyslaný bit potvrzovat hodinovým impulzem). Dále je na výběr osmi nebo devíti bitová komunikace. Devátý bit je například možné používat jako kontrolu přenosu, tak zvaný paritní bit (udává jestli je počet jedniček ve vyslaném slově sudý, či lichý). A velice důležitým parametrem je rychlost přenosu. Tu budeme nejspíše chtít volit co nejvyšší, avšak je velice důležité brát ohled na délku přenosové cesty a na okolní
- 16 -
rušení. S těmito dvěma narůstajícími parametry pochopitelně rychlost musí klesat, aby se dal zaručit bezproblémový přenos dat. Přenos se uskutečňuje v rámcích zvané baudy. Jedná se o sekvenci začínající start bitem (logickou nulou). Následuje osm (devět) bitů dat, přičemž nejdříve se vysílá bit s nejvyšší váhou a jako poslední se vyšle bit s nejnižší váhou. Celý rámec je zakončen stop bitem (logickou jedničkou).
V přípravku je použito toto nastavení: Asynchronní přenos. Pro něj se používá časovač Timer1 v osmibitové konfiguraci s automatickým přednastavením MOV TMOD, #00100000B Délka dat 8 bitů CLR SCON0.7 Povolený příjem dat SETB SCON0.4 Přenosová rychlost 115200 baudů za sekundu. Této rychlosti odpovídá přednastavená hodnota časovače Timer1 096H. Tato hodnota se uloží do registru TH1. Odtud si ji bude procesor sám číst a přenastavovat podle ní pracovní registr časovače TL1. MOV CKCON,#00001000B MOV TH1,#096H P0.4 (TxD) je nastaven jako digitální výstup v režimu push-pull P0.5 (RxD) je nastaven jako digitální vsup
Odeslání dat se provede zápisem hodnoty do registru SBUF0 a o zbytek přenosu se postará mikroprocesor. Nastavením příznaku TI0 do logické jedničky nám dá signál, že přenos znaku byl ukončen. Poté ručně vynulujeme příznak TI0. Teprve až v tuto chvíli je bezpečné zapsat do registru SBUF0 (poslat sériovým kanálem) další znak. Podobně probíhá i příjem dat. O přijetí nového znaku nás informuje příznak RI0. Ve chvíli kdy se změní z logické nuly na logickou jedničku přijal procesor nový znak a uložil ho do registru SBUF0. Je nutné si tuto hodnotu co nejdříve přečíst a uložit na jiné paměťové místo, protože příchodem dalšího znaku přes sériový port se přepíše obsah registru SBUF0. Příznak RI0 se opět musí nulovat ručně.
- 17 -
3.2.4. Programovatelné vstupy/výstupy a Crossbar Mikroprocesor C8051F330 umožňuje provozovat své vstupy/výstupy v několika různých režimech. Nejlépe je to vidět na schématu 3.4. Volí se zda patřičný pin bude nebo nebude nastaven jako analogovým vstup. K tomu slouží registr PxMDIN. V případě že se nejedná o analogový vstup jsou na výběr další možnosti. Buďto bude pin pracovat v režimu open-drain nebo push-pull. Tato volba se určuje registrem PxMDOUT. Poslední volba se provádí registrem PxSKIP, tento režim je úzce spjat s přepínací maticí a rozhoduje zda tento pin bude poskytnut pro výběr přepínací matice.
Obr. 3.4
Přepínací matice
slouží k rozmístění
vnitřních
zařízení na
jednotlivé
piny
mikroprocesoru (Obr. 3.5). Nejvyšší prioritu při výběru mají piny sériového kanálu TxD, RxD naopak nejnižší prioritu mají vstupy vnějšího přerušení T0,T1. Postupuje se tedy od nejvyšší priority. Je-li využit sériový kanál, pak je na pinech P0.4 a P0.5. Dále pak tyto piny budou při výběru již přeskakovány. A pokračuje se v umisťování zařízení s následující prioritou. Toto zařízení bude umístěno na nejnižší možný neobsazený vstup/výstup (výběr volných možných pinů se podle obr 3.5 provádí zleva doprava). Při výběru se přeskakují již vybrané piny a piny označené registrem PxSKIP.
- 18 -
Obr. 3.5
3.2.5. JTAG (rozhraní C2) Posledním použitým prostředkem tohoto mikroprocesoru je rozhraní JTAG. Toto rozhraní umožňuje propojit mikroprocesor a počítač, ovšem ne k datové komunikaci jako je tomu u sériového portu, ale k programování mikroprocesoru a ke krokování jeho programu. Mezičlánek mezi procesorem a počítačem tvoří debugovací modul, který je zapojen do USB portu počítače. Jako programové vybavení v počítači je použit
software
od
firmy
Silicon
laboratories,
vývojové
prostředí
k jejich
mikroprocesorům. Komunikace mezi mikroprocesorem a debugovacím adaptérem je uskutečněna třemi vodiči: Datovým C2D, data proudí oběma směry Hodinovým C2CK, hodinové pulzy generuje debugovací adaptér Společná zem GND, opět je nutné země připojit na stejný potenciál - 19 -
Programování i krokování programu se uskutečňuje s procesorem, který je již zapojený v elektronickém obvodu. Což je velice pohodlné, usnadňuje to práci a snižuje riziko poškození elektronického obvodu. Zároveň je nutné, aby procesor v době komunikace byl již správně napájený.
PC
C2CK
USB
Debugovací adaptér
C2D
C8051F330
GND Obr. 3.6 Po napsání programu pro mikroprocesor ho stačí zkompilovat, navázat spojení s debugovacím obvodem (respektive mikroprocesorem) a nahrát program. Poté je možné program regulérně spustit (krokovat) a sledovat obsah datových proměnných, příznaků přerušení, hodnot čítačů/časovačů i obsah paměti XRAM. Toto rozhraní bylo s výhodou použito pro ladění přenosu dat sériovým kanálem.
3.3. Časování 3.3.1. ILX503a Při obsluhování řádkového senzoru musíme dodržet všechny požadavky uvedené v kapitole 2.3. Nejdříve se budeme zabývat jak přesně vypadá jeden rámec vyčtených dat. Přesněji pro použitý mód sample hold. fROG Prázdné pixely
Černé pixely
Užitečný signál
Černé pixely
18 2048
33 2087
Obr. 3.7
- 20 -
6
Během doby integrace, která je určena dvěmi vysouvacími pulzy fROG musíme vyčíst minimálně všechny naměřené body (2087). Pokus vyčíst více vzorků není problém, po všech regulérních pixelech senzor vrací nulový signál odpovídající tmě. Přesný sled řídících impulzů je zobrazen na Obr. 3.8. Výrobce zaručuje, že maximálně po 110ns od nástupné hrany signálu fCLK se na výstupu objeví platný videosignál. Během doby, kdy je na výstupu k dispozici musíme zvládnout všechny ostatní následující úkony (digitalizaci signálu a uložení do vnitřní datové paměti) a to v takové době, aby byla zachována podmínka střídy 40 – 60 %.
fCLK
Vout
Obr. 3.8
3.3.2. A/D převod Každý analogově-digitální převodník požaduje, aby se jeho vstupní signál po dobu odběru vzorku (dobu převodu) neměnil. Tedy digitalizaci můžeme odstartovat až v okamžiku kdy jsme si zcela jisti, že signál je již ustálený. Z kapitoly 3.2.2 již víme jak je převodník nastavený a převod spustíme nastavením bitu AD0BUSY do logické jedničky. Poté v čekací smyčce vyčkáme na konec převodu, který je oznámen nastavením tohoto bitu do logické nuly. JB AD0BUSY,$ Neboli opakujeme test tohoto bitu dokud je roven logické jedničce. Výsledek bude uložen v registrech ADC0H, ADC0L.
3.3.3. XRAM Práce se statickou datovou pamětí XRAM již byla naznačena v odstavci 3.2.1. Ještě jednou připomeňme, že z důvodu nedostatečné paměti je možné uložit pouze 512
- 21 -
vzorků paměti, tedy jen jednu čtvrtinu obsahu řádkového senzoru. A z převodníku použijeme jen horních 8 bitů digitálního čísla. Samotné ukládání dat do paměti se skládá z udržování adresy na kterou se bude zapisovat a její inkrementace po každém zápisu a samotné uložení převedené hodnoty. MOV A,ADC0H MOVX @DPTR,A INC DPTR Pro každý měřený rámec se začínají data ukládat od adresy 000h.
3.3.4. RS232 – sériový kanál Při zapojování sériového kanálu nesmíme zapomenout překřížit přenosové cesty, aby se zapisovací signál počítače TxD dostal na čtecí signál mikroprocesoru RxD a čtecí signál počítače RxD na zapisovací mikroprocesoru TxD. Kdybychom toto neudělali snažily by se oba obvody zapisovat na stejný vodič, čímž by docházelo ke kolizi a zároveň by mohlo dojít ke zničení minimálně jednoho z nich. A také by se obvody snažily čít ze společného vodiče, na kterém by nebyl žádný signál. TxD PC
RS232 RxD
TxD
TxD TTL
MAX 232 RxD
Mikroprocesor RxD
Obr. 3.9 Komunikace probíhá podle naznačení v odstavci 3.2.3. Přičemž vyslání dat proběhne až po vyčtení celého obsahu snímače. Data se čtou z paměti XRAM a následující sekvencí se vyčká na odeslání jednoho slova MOV SBUF0,A JNB TI0,$ CLR TI0 Během odesílání dat se ještě počítá jednoduchý kontrolní součet CRC, který slouží v počítači ke kontrole správnosti přenosu dat. Tento součet se posílá jako poslední v daném rámci.
- 22 -
4. Jednočipové řešení (interní A/D převodník) Během vytváření práce se upustilo od původní myšlenky použití tří základních bloků: Řídicí jednotka - mikroprocesor Senzor Analogově - digitální převodník A vznikla snaha vytvořit jednoduchý modul, který by ovšem zvládl všechny dříve plánované operace, byť i třeba se sníženou kvalitou digitalizace. Proto se použil mikroprocesor s integrovaným analogově – digitálním převodníkem. V této kapitole se podíváme na tu nejdůležitější část mikroprocesoru – vlastní program.
4.1. Hlavní program Po zapnutí modulu se jako první věc provede inicializace zařízení. V předchozích kapitolách bylo ukázáno kolik módů a vlastností tyto zařízení skýtají a proto je nutné po každém startu zajistit stejné chování výrobku. Mezi nejdůležitější provedené operace jistě patří: správné nastavení vstupně/výstupních portů na analogové či digitální nastavení periferií – zde se především míní a/d převodník a sériový port namapování periferií na porty (nastavení přepínací matice)
Po správném zavedení se již může rozběhnout hlavní program. Po startu modul provádí analogové měření, neboli výstupní signál je možné sledovat pouze měřicí technikou. K tomuto módu není třeba počítač. Až poté co se počítač připojí a vyšle povel, přechází modul do jiného režimu.
Inicializace
Analogové měření
Test sériové linky
Obr. 4.1 - 23 -
Pro správnou funkci sériové linky je třeba ručně mazat oba příznaky (od čtení i zápisu). Dále se provádí rozhodování jaký znak přišel a podle toho se vybírá měřicí mód přípravku. U analogového a digitálního módu se ještě načte požadovaná doba integrace. Mazání příznaku
Znak = a
s
Načtení doby integrace
d
Speciální mód
Analogové měření
Načtení digitálního podmódu
Načtení doby integrace
Digitální měření
Obr. 4.2
4.2. Analogové měření
Pulz fROG Vyčtení 2090 pixelů
Doplnění do 10ms
Opakování 5ms
Obr. 4.3
- 24 -
Analogové měření Obr. 4.3 začíná přesouvacím impulzem fROG a poté již dochází k vysouvání videosignálu na výstup obvodu Obr. 4.4. O přesnost body integrace se starají dva bloky. Tím prvním Obr. 4.5 se zaručí minimální doba integrace a to 10 ms. A druhý blok zajišťuje její požadovanou délku s krokem 5 ms. Jedná se o jednoduchý cyklus při kterém se také generují pulzy pro řádkový senzor. Bez tohoto by došlo k „ujetí“ výstupního napětí. Vysunutí 2090pixelů je realizováno jako cyklus, ve kterém se generuje deset stejných impulzů Obr. 4.4, cyklus je zopakován 209x. Takto vysoký počet impulzů v jednom průběhu cyklu je volen kvůli snížení počtu opakování, neboť každé opětovné spuštění cyklu je oproti jiným instrukcím časově náročné a zasahuje do požadavku střídy 40 - 60%.
Generování pulzů
Generování pulzů
Obr. 4.4
Generování pulzů fRS fCLK
Obr. 4.5
- 25 -
4.3. Digitální měření Na začátku módu digitálního měření Obr. 4.6 dojde k nejprve k odměru v analogové formě. Tím se zajistí vyprázdnění náboje ze senzoru, který se v něm mohl nashromáždit v době komunikace mikroprocesoru a počítače. Následuje přesunutí nábojů do posuvného registru a odměr zakrytých pixelů na začátku sekvence.
Analogové měření Pulz fROG Černé pixely (32) Volba podmodu Vyčtení pixelů (2048)
Černé pixely (20)
Vyslání dat RS232
Obr. 4.6 Po tomto se program větví na několik možností (podmódů). Ty řeší problém s datovou pamětí mikroprocesoru, jak zpracovat obraz o velikosti 2048 bodů v paměti 512 bytů. První možností je digitalizovat každý čtvrtý obrazový bod Obr.4.7. Generováno je všech 2048 pulzů, ale digitalizován je jen opravdu každý čtvrtý. Tímto odměrem získáme obraz z celého senzoru, ale ve zhoršené kvalitě.
- 26 -
Generování pulzů Odměr Generování pulzů
Generování pulzů
Generování pulzů
Obr. 4.7 Další možností pořízení obrazu je sejmout první, respektive druhou polovinu senzoru a to každý druhý vzorek. Situace naznačena v Obr. 4.8. V jedné polovině se tedy vždy jedna hodnota digitalizuje a druhá zahodí Obr. 4.9. A v druhé půlce Obr. 4.10 se pouze signál vysune na výstup bez jakéhokoli užitku. Tímto tedy máme obraz z poloviny senzoru.
Generování pulzů Odměr
Generování pulzů
Polovina s A/D
Generování pulzů Polovina bez A/D
Obr. 4.8
Obr. 4.9
Generování pulzů
Obr. 4.10
A poslední možností je získat obraz pouze z jedné čtvrtiny snímače Obr. 4.11. Pokud bychom zachycovali dostatečně statickou scénu, dal by se skutečný obraz složit se čtveřice takovýchto průběhů. Ovšem tato operace by byla poměrně časově náročná. - 27 -
Čtvrtina s A/D Čtvrtina bez A/D Čtvrtina bez A/D
Generování pulzů Odměr Generování pulzů
Čtvrtina bez A/D
Obr. 4.11
Obr. 4.12
Obr. 4.13
Nyní již máme obraz sejmutý, digitalizovaný a uložený ve statické paměti. K dokončení operace tedy již zbývá jen odeslat data do počítače Obr. 4.14.. Vyslání počáteční sekvence Čtení XRAM
Výpočet CRC
Vyslání slova
JNB TI0,$
Vyslání CRC
Obr. 4.14 Před vysláním samotných dat obdrží počítač hlavičku datového rámce. Nato je v cyklu načteno z paměti XRAM a odesláno: 512 bytů obrazu a 18 černých pixelů z počátku senzoru. Tyto hodnoty jsou zahrnuty do výpočtu kontrolního součtu CRC, jehož vysláním končí digitální mód.
- 28 -
5. Budič sběrnice Řádkový snímač na svých řídicích vstupech očekává signál v TTL logice, neboli logické jedničce odpovídá napětí 5V a logické nule 0V. Ale použitý mikroprocesor je napájen ze zdroje 3,3V, tedy jeho výstupní úrovně jsou 3,3V a 0V. Z důvodu zabezpečení správných napěťových úrovní je mezi senzor a mikroprocesor umístěn budič sběrnice 74HCT573, jedná se o klopný obvod D typu latch. Jeho funkce je znázorněna v tabulce.
Vstup
Výstup
/OE
LE
data
H
X
X
Z
L
L
X
předchozí stav
L
H
L
L
L
H
H
H
Pokud je aktivní output enable (logická nula) a zároveň je i aktivní latch enable, vstupní data jsou posílána nezměněná na výstup (výstup je již v TTL logice). Tento budič je použit pro konverzi signálů fROG, fCLK, TxD. +5V
74573 1 2 3 4 5 6 7 CLK 8 ROG 9 10
TxD
GND
/OE D0 D1 D2 D3 D4 D5 D6 D7 GND
Vcc Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 LE
20 19 18 17 16 15 14 13 12 11
C9 100n
GND f CLK f ROG
74573
GND
+5V
Obr. 5.1
- 29 -
6. Převodník MAX232 Sériový kanál počítačů pracuje s jinými napěťovými úrovněmi než mikroprocesorová technika. Jeho úrovně jsou dány normou RS232, kde logické jedničce odpovídá -12V a logické nule +12V. Úrovně jsou takto vysoké z důvodu zvýšení šumové odolnosti přenosu dat, protože tato komunikace se provádí na vzdálenost několika metrů. Jedná se už tedy o klasické vedení u kterého se objevují nežádoucí efekty jako třeba odrazy na vedení a zvýšené rušení okolím a také okolí. Použité kabely proto bývají stíněné. Pro konverzi signálu TTL na RS232 se s výhodou používají převodníky jakým je MAX232. Vnitřně se jedná o nábojovou pumpu. Nabíjením kondenzátorů v několika cyklech a posléze jejich spojením dokáže vyrobit úroveň +/-12V. Jeho největší přínos je v tom, že převodník je napájen 5V. Tudíž do elektronického obvodu není nutné zavádět další zdroj napětí. Nejvíce problémů se totiž objevuje při získávání záporné polarity napětí, neboli symetrického napájení. Převodník obsahuje dva nezávislé kanály pro konverzi Z TTL na RS232 a dva kanály pro opačnou konverzi. Tím se nechá plně zabezpečit přenos i s hand shakem.
C23 1u
1u C26
+
+
1 2 3 4 5 6 7 8
+ C25 1u
+5V
GND 232 C1+ Vs C1C2+ C2VsT2out R2in
Vcc GND T1out R1in R1out / TTL T1in / TTL T2in / TTL R2out / TTL
16 15 14 13 12 11 10 9
C8 1u TxD RxD
GND +
1u C24
MAX232
GND Obr. 6.1
- 30 -
7. Napájení V celém zapojení se nachází obvody, které vyžadují rozdílné hodnoty napájecího napětí. Mikroprocesor vyžaduje napájení 3,3V. Ostatní logické obvody pracují s 5V zdrojem a konečně řádkový snímač, který ke své funkci potřebuje jednak 9V pro analogovou část (videosignál) a 5V pro řídicí obvody. Jsou tedy použity tři stabilizátory 9V, 5V a 3,3V zapojené do kaskády Obr. 7.1. Tím sice dochází k největšímu zatěžování devítivoltového stabilizátoru, ale kdybychom napájeli pětivoltový stabilizátor z 15V zdroje, ten pětivoltový by musel na sobě vytvářet úbytek 10V, neboť stabilizátor je ve své podstatě tranzistor, který na svém výstupu udržuje konstantní napětí a nepotřebný zbytek se přeměňuje na teplo. Všechny stabilizátory jsou doplněny jednak o filtrační elektrolytické kondenzátory (jejich kapacita je řádově v desítkách až stovkách mikro faradů), které pomáhají udržovat konstantní napětí při vyšších proudových odběrech. V těchto chvílích se stávají dočasnými zdroji. A zapojení se neobejde bez keramických kondenzátorů. Ty sice nedosahují takových kapacit (desítky až stovky nano faradů), ale dokáží dodat náboj mnohem rychleji. Uplatňují se tedy pro potlačení rychlých krátkých proudových špiček. Stabilizátory jsou přemostěny záporně orientovanými diodami. To zabraňuje jejich zničení nábojem uloženým v kondenzátorech při odpojení hlavního napájení. Mimoto blokovací (keramické) kondenzátory se umisťují ke všem napájecím pinům integrovaných obvodů a to co nejblíže, aby pokryly právě ty krátké proudové špičky. Tím se potlačuje rušení jdoucí po napájecích vodičích. D1
D2
1
+
C1 100n
GND_A
C2 100n
C27 10u
+
C17 100u
Vin
Vout
3V3 2
3
C4 100n
GND
C6 100n
Obr. 7.1
- 31 -
+
+
C18 10u
C20 10u
Vin
3V3
GND
2
+3V3
7805
GND
Vout
3
+
Vin
7805
3
1
+5V
7809
GND
7809
C16 100u
D3
+9V
Vout
2
+
1
VCC
C3 100n
GND
C5 100n
C19 10u
8. Program PC Součástí práce je také software – jednoduché grafické prostředí umožňující veškerou práci s modulem řádkového senzoru. Jedná se tedy o nástroj určený k nastavování parametrů, komunikaci přes sériový kanál a také funguje jako zobrazovač získaných dat. Pro tvorbu byl vybrán objektový programovací jazyk C#, jedná se o klon jazyka C, jehož vývojem se zabývá společnost Microsoft. Pro správnou funkci programového vybavení je třeba mít nainstalovány knihovny .NET 2.0. Program je založen na metodice událostmi řízeného programování.
8.1. RS232 Správu sériové komunikace plně zajišťuje objekt třídy SerialPort. Obsahuje všechny potřebné proměnné i metody k její obsluze. Po startu programu v konstruktoru hlavního okna se inicializuje sériový port COM1, nastaví se parametry přenosu souhlasné s nastavením sériového kanálu mikroprocesoru, to je nutné ke správné funkci, a port se otevře. Počítač je tedy připraven komunikovat. Základem obsluhy je událost serialPort_DataReceived, která nastane při příchodu dat sériovým portem. V její obsluze zjistíme počet příchozích bytů – metoda serialPort.BytesToRead. A tento počet bytů načteme jako pole typu byte – metoda serialPort.Read(pole, 0,pocetPrijatychBytu). K vysílání dat je určena metoda serialPort.Write(). Ta je přetížena neboli jejími vstupními parametry může být hned několik různých datových typů. Jsou využity typy String – řetězec znaků a pole typu byte.
8.2. Zpracování dat Zpracováním dat je míněna jednak kontrola, zdali již sériovým portem přišla všechna požadovaná data:
Hlavička datového rámce - 4 Černé pixely ze začátku senzoru - 18 Užitečný signál – 512
- 32 -
Celkem 534 bytů. Dalším významem je nalezení počátku datového rámce. A konečně posledním výpočet kontrolního součtu příchozích dat, jeho porovnání s kontrolním součtem vyslaným mikroprocesorem a na základě jejich souhlasnosti či rozdílnosti připravení aplikace na zobrazení výsledku, respektive další chování programu s neplatnými daty.
8.3. Zobrazení dat Data jsou vykreslována na komponentu třídy Panel. Tato komponenta mění rozměry podle velikosti hlavního okna. Vykreslená data vždy nabývají hodnot 0 – 255, dochází tedy k automatické změně měřítka vykreslování. Toho je dosaženo pomocí grafických transformací, které poskytuje grafická knihovna, tyto metody jsou dostupné u všech grafických objektů přes takzvaný device kontext třídy Graphics. Nejdříve nastavíme transformace do výchozího stavu (prosměná g je třídy Graphics) g.ResetTransform(); poté již můžeme nastavit nové hodnoty transformací. Pozor pořadí provádění transformací není libovolné, protože další úkon se již provádí v transformovaném souřadnicovém systému. Jako první nastavíme posunutí souřadnic g.TranslateTransform(0, panel1.ClientSize.Height); Tímto jsme vše posunuli v y-ové ose o výšku panelu, na který vykreslujeme. A druhým krokem je změna měřítka g.ScaleTransform(mX, -mY); měřítku pro osu x odpovídá mX a měřítku pro osu y odpovídá mY. Tyto transformace provádíme jednak z důvodu přizpůsobení velikosti grafu rozměrům oknu aplikace a také upravujeme souřadnicový systém počítače, kde hornímu levému rohu obrazovky odpovídá počátek 0,0 a směrem doprava roste x-ová souřadnice a směrem dolů roste y-ová souřadnice, na běžný souřadnicový systém 0,0 kde směrem doprava roste x-ová souřadnice a směrem dolu klesá y-ová souřadnice. Po provedení transformací již jen vykreslujeme data a systém se sám stará o jejich přepočet. g.DrawLines(Pens.Black,body); tento příkaz provede vykreslení multi čáry určené polem souřadnic body, barva vykreslování je černá.
- 33 -
Double buffering Tato metoda je založená na použití dvou bufferů (vykreslovací a přípravný). Nejprve se do přípravného bufferu vykreslí nebo jiným způsobem uloží požadovaný obrazec a poté jedním krokem se celý tento buffer vykreslí. Tato metoda je sice pomalejší a paměťově náročnější než klasické vykreslování, ale její výhodou je, že zabraňuje blikání obrazu vzniklé při vykreslování. Je použit defaultní manažer double bufferingu BufferedGraphicsContext Context = BufferedGraphicsManager.Current; A poté přiřazen vykreslovacímu panelu BufferedGraphics BufferPlatna = Context.Allocate(panel.CreateGraphics(),panel.DisplayRectangle); Předcházejícím příkazem se také určuje velikost plátna pro double buffering, proto je nutné ho vyvolat vždy při změně velikosti vykreslovacího panelu.
8.4. Ovládání programu Po spuštění programu je aplikace v režimu analogového měření, doporučujeme spouštět program až po připojení měřícího přípravku k napájení. Práce s aplikací je rozdělena do tří částí: Hlavní menu o Soubor -> Otevři – slouží k načítání zachycených obrázků. Jedná se o textový soubor následující struktury: Referenční úroveň 1 0
165
1
68
2
67
… 511
10
Délka souboru může být maximálně 513 řádků, kratší soubor nezpůsobí chybu programu. o Soubor -> Ulož – slouží k ukládání právě zobrazeného snímku do souboru s výše uvedenou strukturou. Panel pro vykreslování – slouží pouze k zobrazování naměřených výsledků. Při pohybu myši po vykreslovací oblasti se zobrazuje v pravém horním rohu pozice kurzoru. Ovládací prvky - 34 -
Přepínání měřicích módů se provádí výběrem jedné ze záložek a patřičná doba integrace se nastavuje horizontálním posuvníkem. Nastavená doba je pod ním zobrazena v ms. Pokud je zvolen digitální odměr je k dispozici výběr ze 7 pod módů, jejich výběr se provádí přepínacími tlačítky. Zastavení vykreslování průběhu se provede tlačítkem Jeden odměr. Na obrazovce zůstane zachycen poslední změřený snímek. Znovu spuštění neustálého měření se vyvolá tlačítkem Neustálé měření.
Při běhu programu se mohou vyskytnout následující chybová hlášení:
Chyba CRC – pokud počítač přijme neplatná obrazová data Chyba při komunikaci. Zařízení neodpovídá! – pokud měřicí přípravek nestihne odpovědět v daném časovém intervalu Chyba při komunikaci! – pokud obecně nastane nějaký problém se sériovou komunikací Chyba v souboru xxx ve vzorku: xx - pokud se při načítání datového souboru vyskytne nějaký řádek neodpovídající dané struktuře Soubor xxx je příliš dlouhý – pokud načítaný datový soubor je delší než 513 řádek Chyba při čtení souboru – pokud obecně nastane nějaká chyba při čtení datového souboru - 35 -
9. Závěr Cílem této práce bylo vytvořit učební pomůcku, na které by se nechaly demonstrovat základní úskalí při práci s řádkovým snímačem obrazu. Oproti modulu, který doposud slouží v laboratoři videometrie a má rozlišení 256 obrazových bodů, došlo k jeho zvýšení na 2048 bodů v analogovém a 512 bodů v digitálním režimu. Přičemž tato hodnota je omezena pouze velikostí datové paměti mikroprocesoru C8051F330, tedy pokud by se použil jiný obvod s větší pamětí například C8051F020, nechal by se využít celý rozsah snímače. Pro
digitalizaci
videosignálu
byl
využit
vnitřní
A/D
převodník
použitého
mikroprocesoru. S ohledem na maximální rychlost tohoto převodníku je dosaženo minimální doby integrace 15ms. Modul je však připraven na digitalizaci signálu pomocí externího převodníku například AD9822, který přímo umožňuje zpracovávat videosignál. K jeho aplikaci by ovšem bylo třeba upravit program mikroprocesoru. Pro komunikaci s počítačem byl použit sériový kanál – rozhraní RS232 s pevně nastavenou přenosovou rychlostí 115200 baud/s. Vytvořená počítačová aplikace umožňuje požadované ovládání modulu, bez této aplikace modul pracuje v analogovém režimu s pevně nastavenou dobou integrace. Dále funguje jako grafický zobrazovač digitalizovaného signálu s možností ukládání a načítání průběhů. K původně plánované výrobě plošného spoje nedošlo z časových důvodů. Stejně tak nebyly vytvořeny obslužné rutiny pro nestandardní režimy měření. Takto bych krátce rekapituloval dosažené výsledky, jaký velký užitek bude tato práce mít ukáže až čas, ovšem pro mě samotného má značný význam. Možnost vyzkoušet si práci se snímáním obrazu, jeho pořízení a částečné zpracování. Navrhnout a realizovat propojení mikroprocesorové techniky, analogových obvodů a počítače. A v rámci této práce absolvovat kurz zabývající se pravidly návrhu plošných spojů. Ale jistě nejcennější zkušeností, i když poměrně drahou a nepříjemnou bylo zničení jednoho řádkového snímače. K čemuž došlo zřejmě vlivem špatného kontaktu některého z napájecích pinů. Ale i přes tento problém byla práce dále vyvíjena.
- 36 -
Seznam použité literatury Odborná literatura [1] Fischer, J.: Optoelektronické senzory a videometrie, skriptum, ČVUT - FEL [2] Radil, T. : Diplomová práce, ČVUT - FEL [3] Ježdík, P.: Diplomová práce, ČVUT – FEL [4] Vacek, R.: Diplomová práce, ČVUT - FEL
Firemní literatura Data book SONY – ILX 503A Data book Silicon laboratoriem – C8051F330 Data book Texas instruments – 74HC573 Data book Texas instruments – Max 232 Data book ON semiconductor – MC33269 Data book FAIRCHILD – MC78xx
- 37 -