Preview only show first 10 pages with watermark. For full document please download

Výpočetní část Aerometrického Systému

   EMBED


Share

Transcript

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE ELEKTROTECHNICKÁ FAKULTA BAKALÁŘSKÁ PRÁCE VÝPOČETNÍ ČÁST AEROMETRICKÉHO SYSTÉMU Roman Čižinský Vedoucí bakalářské práce: Doc. Ing. Karel Draxler, CSc. Studijní program: ELEKTROTECHNIKA A INFORMATIKA Studijní obor: KYBERNETIKA A MĚŘENÍ Akademický rok: 2010/2011 I II Prohlášení Prohlašuji, že jsem bakalářskou práci vypracoval samostatně. Všechny použité zdroje uvádím v příloze. Děkuji vedoucímu Doc. Ing. Karlu Draxlerovi za odbornou pomoc při tvorbě bakalářské práce. Dále bych chtěl také poděkovat panu Jeffu Grahamovi z britského oddělení péče o zákazníky společnosti FTDI Chip Inc. za pomoc při oživování aplikace. Praha 7. února 2011 __________________________ podpis III IV Abstract The goal of this work is to design and verify the calculations of aerometric system. This system calculates altitude, calibrated and real air speed and vertical speed providing that the static and total air pressure, static air temperature and angle of attack is available. The system also know the referential altitude and correction of static and total pressure sensor depending on angle of attack. Abstrakt Cílem této práce je návrh a ověření postupu výpočtů v aerometrickém systému. Jedná se konkrétně o výpočet výšky, kalibrované a skutečné vzdušné rychlosti a vertikální rychlosti za předpokladu, že jsou k dispozici měřené údaje o statickém a celkovém tlaku vzduchu, teplotě vnějšího vzduchu a úhel náběhu. Dále je zadána vztažná výška a korekce údajů snímačů statického a celkového tlaku vzduchu v závislosti na úhlu náběhu. V VI Obsah 1 Úvod .......................................................................................................................1 2 Teoretický rozbor ................................................................................................. 2 2.1. Popis veličin .................................................................................................... 2 2.2. Měření vstupních veličin ................................................................................. 4 2.3. Aerometrický systém ....................................................................................... 6 2.4. Výpočty veličin ................................................................................................ 8 2.5. Korekce ..........................................................................................................12 2.6. Požadavky na přesnost ...................................................................................14 3 Hardwarové nároky ............................................................................................ 15 3.1. Paměť .............................................................................................................15 3.2. Řídící logika pamětí.......................................................................................19 4 Hardwarová implementace ................................................................................27 4.1. Rozbor realizace ............................................................................................27 4.2. Výběr paměti .................................................................................................32 4.3. Výběr vhodného mikroprocesoru .................................................................. 34 4.4. Komunikační rozhraní ................................................................................... 38 4.5. Spojení s ostatními moduly ........................................................................... 39 4.6. Návrh schématu ............................................................................................. 40 4.7. Návrh desky plošných spojů .......................................................................... 44 5 Návrh software .................................................................................................... 45 5.1. Nastavení mikroprocesoru ............................................................................. 45 5.2. Komunikační protokol ...................................................................................48 5.3. Obsluha pamětí ..............................................................................................50 5.4. Blokové schéma zdrojového kódu .................................................................51 VII 6 Závěr ....................................................................................................................52 7 Literatura ............................................................................................................ 54 VIII 1. Úvod Tato bakalářská práce je svou strukturou vrstvena do několika úrovní, reprezentujících postupné pronikání do problematiky leteckých aerometrických systémů, měřených veličin, měřících přístrojů, matematických vztahů a následné realizace funkčního modelu systému. Tato struktura je stručně popsána v následujících bodech: x V první fázi je nutné se seznámit s měřenými veličinami a základní terminologií v letecké technice. Dále získat představu, jakým způsobem se nejčastěji zmíněné veličiny měří. Protože ovšem letecká technika zahrnuje velké množství informací z dané problematiky, nastíníme zde pouze základy, nutné pro vytvoření dostatečné teoretické platformy, ze které můžeme dále odvíjet pracovní postupy. Poté se práce bude zabývat obecným aerometrickým systémem a korekcí některých měřených veličin. Na závěr této části jsou uvedeny v požadavky na přesnost zobrazovaných veličin používané v současné době. x Další fáze obsahuje matematické vztahy mezi jednotlivými veličinami a způsob, jakým s nimi aerometrický systém pracuje. Zde budou také uvedeny mezinárodní normy pro tolerance přesnosti výpočtů aerometrických veličin. x V poslední fázi se již posouváme do více praktické sféry, neboť zde půjde o návrh možné konstrukce hardware a software aerometrického systému specializujícího se na použití v užší skupině letadel. Dojde zde k nastínění několika možných konceptů konstrukce celého systému. Na základě paměťových nároků výpočtů na systém bude nastíněny problémy adresování velkých paměťových prostorů a jejich možná řešení, včetně výhod, resp. nevýhod toho kterého řešení. Dále zde budou nastíněny důležité parametry pro výběr součástek a vybrány konkrétní součástky, jež by v tomto návrhu mohly být využity. V neposlední řadě také dojde k návrhu schématu a desky plošných spojů včetně motivu rozmístění součástek. 1 2. Teoretický rozbor Než se budeme zabývat konkrétními výpočty a způsoby zpracování dat v leteckých systémech, definujeme nejprve základní terminologii, jejíž těžiště je pro tuto bakalářskou práci převážně v měřených veličinách. 2.1 Popis veličin Základní veličiny měřené letovými přístroji a jejich označení jsou znázorněny na obr. 2.1.1. Definice znázorněných veličin jsou vztaženy k souřadné soustavě tvořené podélnou osou letadla ‫ݔ‬, svislou osou letadla ‫ ݕ‬a bočnou osou letadla ‫ݖ‬. Hodnota [0, 0, 0] této souřadné soustavy se vždy nachází v těžišti letounu. Výška letu (altitude) ࡴ - je dána svislicí od letoun vzhledem k nastavené vztažné hodnotě, udává se ve feetech nebo v metrech (1 feet = 0,30478 m) a je měřena výškoměrem. Relativní (vzdušná) rychlost letu (air speed) ࢜ – je dána pohybem letadla vzhledem k okolní nerozrušené atmosféře, udává se v knotech nebo v km/hod (1 knot = 1,83 km/h) a je měřena rychloměrem. Machovo číslo (Mach number) ࡹ – udává poměr rychlosti letu ‫ ݒ‬k rychlosti zvuku ‫ݒ‬௭ , která odpovídá dané výšce. Tato veličina je měřena machmetrem. Vertikální rychlost (vertical speed) ࢜࢜ – udává rychlost pohybu letounu ve směru osy ‫ݕ‬. Udává se ve feetech/min nebo v m/s a měřena je variometrem. Absolutní podélný sklony (pitch angle) ࣖ - úhel, který svírá podélná osa letadla s vodorovnou rovinou, udávaný v úhlových stupních a zobrazený umělým horizontem. 2 Absolutní příčný sklon (bank angle) ࢽ - úhel, který svírá bočná osa letadla s vodorovnou rovinou, udávaný ve stupních a zobrazený umělým horizontem. Relativní příčný sklon (skluz) (slip angle) – úhel, který svírá bočná osa letadla s rovinou kolmou na průmět výsledného vektoru zrychlení do roviny ‫ݖݕ‬. Udává se v úhlových stupních. Úhel náběhu (angle of attack) ࢻ - svírá průmět vektoru relativní rychlosti ࢜ do roviny ‫ ݕݔ‬s podélnou osou letadla ‫ݔ‬, udává se v úhlových stupních a měří se pomocí křidélka nebo speciálního snímače založeného na diferenci tlaků. Úhel vybočení (angle of sideslip) ࢼ - svírá průmět vektoru relativní rychlosti ࢜ do roviny ‫ ݖݔ‬s podélnou osou letadla. Udává se v úhlových stupních. Teplota vnějšího vzduchu (static air temperature SAT) – je teplota vnější atmosféry, neovlivněné pohybem letadla. Udává se ve °C nebo v K. Obrázek 2.1.1 Znázornění veličin vůči vztažné soustavě 3 2.2 Měření vstupních veličin Podle způsobu snímání měřených veličin, fyzikálního principu a použitých snímačů lze letové a pilotážně navigační přístroje rozdělit do následujících skupin: Aerometrické přístroje a snímače – snímají parametry z vnější atmosféry. Jedná se především o tlaky, teplotu vzduchu a směr rychlosti pohybu letadla vzhledem k okolní atmosféře. Mechanické resp. elektromechanické přístroje a snímače – snímají polohu, zrychlení, úhlové rychlosti a směr letu letadla. Elektrooptické a elektronické snímače – snímají úhlové rychlosti zatáčení a zrychlení působící na letadlo. Komplexní letové a pilotážně navigační systémy – tento koncept je založen na snímání aerometrických veličin, které jsou převedeny na elektrické signály a následně shromážděny v systému. Pomocí těchto údajů systém dopočítá zbylé letové a pilotážně navigační údaje, které zobrazí na výstupních prvcích. Mezi hlavní představitele patří především ADC (Air Data Computer) a systém inerciální navigace, který vyhodnocuje především polohu letadla v prostoru. Vzhledem k obsáhlosti dané problematiky se budeme v následujícím textu hlouběji zabývat pouze měřením vstupních veličin zadaných pro tuto práci, tedy statický a celkový tlak vzduchu, teplota vnějšího vzduchu a úhel náběhu. 4 Obrázek 2.2.1 Umístění sond na letadle Statický tlak vzduchu ࢖ࡴ – jedná se o tlak snímaný sondou, mající otvory kolmo ke směru letu. Tento snímač je bývá součástí Pitot–statické sondy. Může také tvořit samostatný blok tzv. otvorů statického tlaku, které jsou umístěny na boku trupu letadly v jeho přední části, jak je patrné z obr. 2.2.1. Celkový tlak vzduchu ࢖ࢉ - je snímán pomocí Pitotovy sondy. Tato sonda se u současných dopravních i vojenských letadel převážně nachází na boku přední části trupu letadla. U starších typů vojenských letadel byla vysunuta před trup. U malých sportovních resp. dopravních letadel je umístěna před náběžnou hranou křídla resp. na kýlové ploše. 5 Úhel náběhu ࢻ resp. Úhel vybočení ࢼ – Měří se buď pomocí křidélka, jehož osa otáčení leží v dané rovině a křidélko se vychýlí ve směru proudnic vzduchu, nebo pomocí speciálních snímačů tlaku vzduchu. Snímá se především úhel náběhu ߙ, použití snímače úhlu vybočení je méně časté. 2.3 Aerometrický systém Aerometrický systém (aeormoetrická centrála, aeormetrický počítač) – anglicky Air Data Computer (ADC) – slouží ke snímání elektrických veličin z jednotlivých senzorů. Tyto hodnoty následně zpracovává a vypočítává z nich příslušné letové veličiny. Kromě zobrazení aktuálních parametrů letu může sloužit k uchování a pozdějšímu vyhodnocení hodnot nasnímaných a vypočtených v průběhu záznamu. K tomuto konceptu nutila konstruktéry palubních přístrojů rostoucí automatizace při řízení letadla a systémové pojetí jednotlivých celků, které se na něm podílejí. Většina těchto systémů potřebuje mimo jiné ke své funkci zpravidla i aerometrické parametry, takže jejich zpracování v komplexním systému a další předávání formou elektrických signálů se jeví jako jediné možné. První jednoduché aerometrické systémy byly na letadlech používány v letech 1950 až 1960. Jednalo se především o realizaci pomocí analogových počítačů. V současné době se z mnoha zřejmých důvodů využívá výhradně číslicová forma zpracování signálů v číslicových počítačích. V anglické literatuře jsou proto také někdy tyto současné systémy označovány jako Digital Air Data Computer (DADC). 6 Obrázek 2.3.1 Blokové schéma aerometrického systému Základní blokové uspořádání na obr. 2.3.1 může být různě modifikováno podle typu letadla, pro něž je aerometrická ústředna určena. U dopravních letadel se většinou používá uspořádání, kde není snímán úhle vybočení ߚ. U jednodušších systému se neprovádí ani korekce snímačů tlaku na úhel náběhu ߙ a nezadává se teplota vzduchu v nulové výšce ܶ଴ , která se podle MSA předpokládá 15°C. Podrobné blokové schéma, z něhož je patrný postup při výpočtu jednotlivých parametrů, je na obr. 2.3.2. 7 Obrázek 2.3.2 Schéma výpočtů aerometrického systému 2.4 Výpočty veličin Výpočet hodnot v aerometrickém systému na obrázku 2.3.2 probíhá následujícím způsobem. A) Korekce údaje snímaného statického a celkového tlaku vzduchu Hodnoty statického tlaku vzduchu ‫݌‬ு௦ a celkového tlaku vzduchu ‫݌‬஼௦ mohou být snímány s chybou, která závisí na úhlu náběhu ߙ a Machovu číslu ‫ܯ‬. Tyto hodnoty 8 jsou korigovány v bloku polohových oprav, kam jsou vedle měřených veličin vedeny ještě signály odpovídající ߙ a ‫ܯ‬. ‫݌‬ு ൌ ݂ሺ‫݌‬ு௦ ǡ ߙǡ ‫ܯ‬ሻǡ‫݌‬஼ ൌ ݂ሺ‫݌‬஼௦ ǡ ߙǡ ‫ܯ‬ሻǡ (2.4.1) Kde ‫݌‬ு௦ a ‫݌‬஼௦ jsou naměřené hodnoty celkového a statického tlaku vzduchu ze snímačů. Výstupem bloků polohových oprav jsou elektrické signály odpovídající korigovaným (správným) hodnotám ‫݌‬ு a ‫݌‬஼ . B) Výpočet Machova čísla Machovo číslo závisí pouze na velikosti celkového tlaku ‫݌‬஼ a statického tlaku ‫݌‬ு . Pro podzvukové rychlosti, kdy ‫ ܯ‬൑ ͳ, máme výraz pro výpočet Machova čísla ve tvaru మ ௣಴ ళ భ మ ‫ ܯ‬ൌ ቊͷ ቈቀ ቁ െ ͳ቉ቋ (2.4.2) ௣ಹ Pro nadzvukové rychlosti, kdy ‫ ܯ‬൒ ͳ, se Machovo číslo stanoví vztahem ௣಴ ௣ಹ ଶ ହǡ଻଺ெమ ఱ మ ൌ ͳǡʹ‫ ܯ‬ቀହǡ଺ெమ ି଴ǡ଼ቁ (2.4.3) C) Výpočet teploty vnějšího vzduchu Teplota vnějšího vzduchu ܶு se vypočítá z celkové teploty zabržděného proudu vzduchu ܶ஼ , snímané sondou, pomocí Machova čísla ‫ ܯ‬podle vztahu ் ೎ ܶு ൌ ேሺଵା଴ǡଶெ మሻ (2.4.4) Kde ܰ je součinitel snímače celkové teploty vzduchu ܶ஼ , jehož hodnota se pohybuje v rozmezí ܰ ൌ Ͳǡͻͺ െ Ͳǡͻͻ. 9 D) Výpočet pravé vzdušné rychlosti Pravá vzdušná rychlost se vypočte pomocí Machova čísla ‫ ܯ‬a statické teploty vnějšího vzduchu. Při výpočtu využijeme vztahu pro Machovo číslo ‫ ܯ‬a rychlost zvuku ‫ݒ‬௭ ve výšce ‫ܪ‬. ோ೛ ‫ ݒ‬ൌ ‫ݒܯ‬௭ ൌ ‫ܯ‬ට݇ ெ ܶு ൌ ʹͲǡͲͶ͸‫ܯ‬ඥܶு ೡ (2.4.5) Kde ‫ ݒ‬je pravá vzdušná rychlost ሾ݉‫ି ݏ‬ଵ ሿ ܶு je statická teplota vnějšího vzduchu ሾ‫ܭ‬ሿ E) Výpočet kalibrované rychlosti Kalibrovaná rychlost se vypočítá dle vztahu మ ௣೏ ళ భ మ ‫ݒ‬଴ ൌ ‫ݒ‬௭଴ ቊͷ ቈቀ ௣ ቁ െ ͳ቉ቋ బ Kde ‫ݒ‬଴ (2.4.6) je kalibrovaná rychlost ሾ݉‫ି ݏ‬ଵ ሿ ‫ݒ‬௭଴ ൌ ͵ͶͲǡʹͻͶ݉‫ି ݏ‬ଵ je rychlost zvuku v nulové výšce standardní atmosféry ‫݌‬଴ ൌ ͳͲͳ͵ʹͷܲܽ ‫݌‬ௗ ൌ ‫݌‬஼ െ ‫݌‬ு je univerzální plynová konstanta je dynamický tlak ሾܲܽሿ F) Výpočet výšky Výška měřená pomocí statického tlaku vzduchu se vypočte z barometrické rovnice ௗ௣ ௣ሺுሻ ௗு ൌ െ ோሺ் ାఛுሻ బ (2.4.7) Její obecné řešení pro rozsah výšek do 11 km je po dosazení za jednotlivé konstanty dáno vztahem 10 ௣ ‫ ܪ‬ൌ ͶͶ͵͵Ͳ ൤ͳ െ ቀ ಹ ቁ ௣ ଴ǡଵଽ଴ଶ଺ బ ൨ (2.4.8) Pro rozsah výšek 11 km až 20 km se barometrická rovnice pro závislost statického tlaku vzduchu na výšce zjednoduší a dosazením za konstanty získáme vztah ௣ ‫ ܪ‬ൌ ͸͵Ͷͳǡͷ Ž ቀ ௣భభ ቁ ൅ ͳͳͲͲͲ ಹ (2.4.9) Kde ‫݌‬ଵଵ je statický tlak vzduchu ve výšce 11 000 m. Obdobně dostaneme pro rozsah výšek 20 km až 32 km vztah pro výpočet výšky ve tvaru ଴ǡ଴ଶଽଶ଻ଵ ௣ ‫ ܪ‬ൌ ʹͳ͸ǡ͸ͷ ൤ቀ ௣మబ ቁ ಹ െ ͳ൨ ൅ ʹͲͲͲͲ (2.4.10) Kde ‫݌‬ଶ଴ je statický tlak vzduchu ve výšce 20 000 m. G) Výpočet vertikální rychlosti Vertikální rychlost ‫ݒ‬௩ je definována jako časová změna výšky, která se vyhodnocuje pomocí statického tlaku vzduchu. Její výpočet je tedy realizován na základě obecného vztahu ve tvaru ‫ݒ‬௩ ൌ ௗு ௗ௧ ൎ ௗ௣ಹ ௗ௧ (2.4.11) H) Výpočet hustoty vzduchu Hustota vzduchu ߩு se po dosazení konstanty počítá ze vztahu ௣ ಹ ߩு ൌ ଶ଼଻ǡ଴ହ் 11 ಹ (2.4.12) I) Výpočet kritického úhlu náběhu pro pádové varování Minimální vztlakovou sílu ‫ܨ‬௩೘೔೙ působící na letadlo lze vyjádřit ve tvaru ‫ܨ‬௩೘೔೙ ൌ ‫ܥ‬ி ሺߙሻܵ‫݌‬ௗ (2.4.13) Kde ‫ܥ‬ி ሺߙሻ je koeficient vztlakové síly, závislý na úhlu náběhu ߙ ܵ je plocha křídla Na základě aerometrických parametrů letadla je stanovena podmínka pro ‫ܨ‬௩೘೔೙ tak, aby pro kritický úhel náběhu ߙ௞௥ neklesla hodnota dynamického tlaku ‫݌‬ௗ pod úroveň odpovídající ‫ܨ‬௩೘೔೙ . J) Výpočet skutečné (pravé) vzdušné rychlosti 2 V případě, že aerometrický systém nemá k dispozici jako vstupní hodnotu Machovo číslo ‫ܯ‬, resp. ho pro výpočty a korekce nevyužívá, může být skutečná vzdušná rychlost v závislosti na dynamickém tlaku ‫݌‬ௗ a statickém tlaku ‫݌‬ு pro rozsahu výšek 0 až 11 km je vyjádřena vztahem (2.4.14). ௣ ʙషభ ʙ ‫ ݒ‬ൌ ඨቊቈቀ௣ ೏ ൅ ͳቁ ಹ ଶʙ ௣ െ ͳ቉ ʙିଵ ܴ௠ ܶ଴ ቀ ௣ಹቁ బ ଴ǡଶ ቋ (2.4.14) 2.5 Korekce Jak vyplývá ze vztahu (2.4.1) , je potřeba provádět korekci vlivu úhlu náběhu ߙ a vzdušné rychlosti, udávané pomocí Machova čísla ‫ܯ‬. Vzhledem k tomu, že při daném návrhu nebudeme pro výpočty využívat Machovo číslo, ale vztahů s dynamickým tlakem ‫݌‬ௗ , budeme se v této kapitole zabývat pouze vlivem úhlu náběhu na chybu Pitot–statické sondy. 12 Vliv úhlu náběhu resp. vybočení na chyby Pitot–statické sondy Obvyklým předpokladem je, že se chyba v závislosti na úhlu náběhu ߙ, resp. úhlu vybočení ߚ uplatní stejně. To platí za předpokladu, že je Pitot–statická sonda umístěna tak, aby rozložení tlaků nebylo ovlivněno drakem letadla a otvory statického tlaku byly rozmístěny rovnoměrně po obvodu sondy. Tento předpoklad většinou není ideálně splněn, takže se oba vlivy liší. Z obrázku 2.5.1 je zřejmé, že při nenulovém úhlu náběhu dojde ke změně tlakových poměrů podél sondy a tím k chybě při snímání statického tlaku ‫݌‬ு . Obrázek 2.5.1 Vliv úhlu náběhu na rozložení tlaku okolo sondy Závislost této chyby je vyjádřena poměrným vztahem ߜ‫݌‬஼ ൌ ௣಴ ሺఈሻି௣಴ ሺ଴ሻ ௣೏ Kde ‫݌‬஼ ሺߙሻ je celkový tlak při úhlu náběhu ߙ ‫݌‬஼ ሺͲሻ je celkový tlak při úhlu náběhu 0 ‫݌‬ௗ je dynamický tlak. 13 (2.5.1) 2.6 Požadavky na přesnost Stejně jako u měření jednotlivých aerometrických veličin samostatnými přístroji musí i údaje výška, vztažného tlaku, kalibrované rychlosti, vertikální rychlosti a Machova čísla měřené pomocí aerometrického systému splňovat co do přesnosti odpovídající předpisy. Také v tomto případě se většina výrobců řídí předpisy FAA resp. JAA, které se v této oblasti navzájem neliší. Dovolené tolerance údaje výšky jsou uvedeny v tabulce 2.6.1. výška [kfeet] 0 1 2 3 4 5 8 11 14 17 20 30 40 50 tolerance 25 25 25 25 25 25 30 35 40 45 50 75 100 125 ±[feet] tolerance 8 ±[m] 8 8 8 8 8 9 11 12 14 15 23 30 38 Tab. 2.6.1 Požadavky na přesnost údaje kalibrované rychlosti měřené aerometrickým systémem jsou uvedeny v tabulce 2.6.2. kalibrovaná knot 50 rychlost km/h 90 knot 5,0 tolerance ± km/h 9,3 80 100 120 450 200 250 300 350 400 450 150 180 220 280 370 460 560 650 740 830 3,0 2,0 2,0 2,0 2,0 2,4 2,8 3,2 3,6 4,0 6,5 3,7 3,7 3,7 3,7 4,4 5,2 5,9 6,7 7,4 Tab. 2.6.2 Dovolené tolerance v údaji vertikální rychlosti měřené pomocí aerometrického systému jsou uvedeny v tabulce 2.6.3. 14 Vertikální rychlost tolerance ± tolerance ± ft/min 20 000 6 000 4 000 2 000 1 000 500 200 100 50 0 m/min 6096 1829 1219 610 305 152 61 30 15 0 ft/min 1000 300 200 100 50 45 45 45 45 45 m/min 305 91 61 30 15 14 14 14 14 14 Tab. 2.6.3 Z celkového porovnání požadavků na přesnost měření aerometrických veličin pomocí mechanických přístrojů s tlakoměrnými krabicemi a pomocí aerometrických systémů je zřejmě, že měřící systémy umožňují zvětšení rozsahu a zvýšení přesnosti měření. 3. Hardwarové nároky 3.1. Paměť Při pohledu na složitost výpočtů a vztahů mezi veličinami, lze zhruba určit, jaký by měl být základní princip realizace. Vzhledem k některým funkcím (např. umocňování necelým číslem apod.) nebude reálné, aby mikroprocesor vypočítával všechny hodnoty sám v přijatelném čase, nemluvě o nárocích na algoritmus a paměť programu. Přikloníme se spíše k metodě vyčítání z tabulky funkčních hodnot. Mikroprocesor tedy bude obklopen pamětmi, jejichž adresy budou vytvářet definiční obor jednotlivých funkcí výpočtů a hodnoty na těchto adresách budou tvořit naopak obor hodnot zmíněných funkcí. Toto řešení je ovšem poměrně náročné na množství vývodů procesoru. Zmíněný problém lze ovšem úspěšně řešit vhodnou logikou řízení adresové a datové sběrnice. Navíc existují způsoby, jak vhodnou kombinací hardwarových a softwarových prostředků obsloužit velké množství pamětí pomocí několika málo 15 vývodů. Malou nevýhodou tohoto řešení je pouze ve většině aplikací zanedbatelné časové zpoždění. Předpokládejme nyní ideální senzory vstupních veličin. Pro správný odhad velikosti tabulky funkčních hodnot musíme nejprve zjistit, po jak velkých skocích si můžeme dovolit stupňovat výstupní signál, abychom stále ještě nepřekročili maximální toleranci udávanou v tab. 2.6.1. Ze zadání víme, že se budeme pohybovat ve výšce 0 – 5 000 m, což odpovídá rozsahu 0 – 16 405 feet. Nejbližší vyšší hodnota v tab. 2.6.1 je 17 000 feet. V rozmezí 0 – 8 000 feet platí tolerance maximální odchylky േ25 feet. V tomto intervalu tedy budeme potřebovat ு ݊଴ି଼ ൌ ణு ൌ Kde ଼଴଴଴ ଶହ ൌ ͵ʹͲ polí ݊ je počet polí, které bude mít tabulka na daném intervalu ‫ܪ‬ je rozsah hodnot intervalu (3.1.01) ߴ‫ ܪ‬je tolerance v daném intervalu V rozmezí 8 000 – 11 000 feet je tolerance േ30 feet. Dosazováním hodnot z tabulky 2.6.1 do vztahu (3.1.01) získáme následující výsledy ݊଴ି଼ ൌ ͵ʹͲ polí (3.1.02) ଼݊ିଵଵ ൌ ͳͲͲ polí (3.1.03) ݊ଵଵିଵସ ൌሶ ͺ͸ polí (3.1.04) ݊ଵସିଵ଺ସ଴ହ ൌ ͸ͳ polí (3.1.05) 16 Na takovouto převodní tabulku bychom tedy potřebovali tolik řádků, kolik je součet stupňů všech uvažovaných intervalů ݅. Celkový počet potřebných buněk dané tabulky výšek je vyjádřen vztahem (3.1.06). ݊ ൌ σ ݊௜ ൌ ͷ͸͹ polí (3.1.06) Stejným způsobem můžeme postupovat při určení velikosti tabulky funkčních hodnot pro výpočet vertikální a kalibrované rychlosti. Vertikální rychlost: Rozsah hodnot je േ60 m/s, což odpovídá േ11 812 feet/min. Využijeme opět vztahu (9.01) a dosadíme hodnoty intervalů a tolerancí z tabulky 2.13 z [1] str. 93. ݊଴ିଵ ൌሶ ʹ͵ polí (3.1.07) ݊ଵିଶ ൌ ʹͲ polí (3.1.08) ݊ଶିସ ൌ ʹͲ polí (3.1.09) ݊ସି଺ ൌ ͳͲ polí (3.1.10) ݊଺ିଵଵ଼ଵଶ ൌሶ ʹͲ polí (3.1.11) ݊ ൌ ͻ͵ polí (3.1.12) Kalibrovaná rychlost: Rozsah hodnot je 70 – 550 km/h. Využijeme intervalů a tolerancí z tabulky 2.11 z [1] str. 91. 17 ݊଴ିଽ ൌሶ ͳͲ polí (3.1.13) ݊ଽିଵହ ൌሶ ͳͲ polí (3.1.14) ݊ଵହିଷ଻ ൌሶ ͸Ͳ polí (3.1.15) ݊ଷ଻ିହ଺ ൌሶ ͺͲ polí (3.1.16) ݊ ൌ ͳ͸Ͳ polí (3.1.17) Pokud bychom použili rozsahy tabulek z výpočtů (3.1.06), (3.1.12) a (3.1.17), měli bychom jistotu, že při bezchybném vstupním signálu splníme požadavky na přesnost veličin. Pokud bychom chtěli mít výstupní hodnoty ‫ ݔ‬krát jemnější (měl by ‫ ݔ‬krát více stupňů), museli bychom mít také ‫ ݔ‬krát větší tabulku funkčních hodnot. V pokročilejší fázi práce bude také nutné vypočítat rozlišovací schopnost A/D převodníků převádějících vstupní elektrický signál ze senzorů na číslo, se kterým by pracoval aerometrický systém. Postup výpočtu bude vypadat tak, že se ze vztahů (2.4.6) a (2.4.8) vyjádří vstupní veličina v závislosti na výstupní, tedy v podstatě inverzní funkce. Dosazením jednotlivých požadovaných výstupních úrovní vybereme nejmenší absolutní hodnotu rozdílu dvou po sobě jdoucích výsledků a ten stanovíme jako minimální rozlišení A/D převodníku. Formálně lze tento výpočet zapsat podle následujícího vztahu. ο‫ݔ‬௠௜௡ ൌ ‫ܰܫܯ‬ሾȁ݂ ିଵ ሺ‫ݕ‬௜ ሻ െ ݂ ିଵ ሺ‫ݕ‬௜ାଵ ሻȁሿ௡ିଵ ௜ୀ଴ Kde ο‫ݔ‬௠௜௡ ‫ݕ‬ (3.1.18) je minimální rozlišení A/D převodníku je konkrétní hodnota výstupu z tabulky funkčních hodnot 18 ݅ je ukazatel na výsledek resp. řádek tabulky f.h. ݊ je velikost tabulky funkčních hodnot Také samozřejmě budeme klást nároky na přesnost systému vůči nejistotám vstupních hodnot. Pokud si tedy stanovíme, že chyba A/D převodníku bude např. o jeden řád (10x) nižší, než chyba senzoru, jednoduchým výpočtem zjistíme požadované minimální rozlišení A/D převodníku. ο‫ݔ‬௠௜௡ ൌ Kde ‫ݑ‬௦ ݅ ௨ೞ ௜ (3.1.19) je nejistota měření senzoru je koeficient přesnosti (v našem volíme i = 10). Předpokládá se, že budeme uplatňovat oba požadavky na A/D převod (tzn. citlivost převodu v závislosti na velikosti tabulky funkčních hodnot a ݅ - násobně menší chybu převodu vůči nejistotě měření) najednou. V tom případě zvolíme jako minimální rozlišovací stupeň ten, který je z obou hodnot menší. Musí tedy platit ο‫ݔ‬௠௜௡ ൑ ο‫ݔ‬୫୧୬ ଵ Ƭο‫ݔ‬௠௜௡ ൑ ο‫ݔ‬୫୧୬ ଶ (3.1.20) 3.2. Řídící logika pamětí Jak již bylo zmíněno v kapitole 3.1, přikloníme se při realizaci k použití tabulek funkčních hodnot. Ty ovšem mohou, vzhledem k nárokům kladeným na přesnost, být poměrně velké. Tomu odpovídá i paměťová náročnost celé implementace. Velikost použitého adresního prostoru bude odpovídat počtu řádků tabulky funkčních hodnot a velikost jedné paměťové buňky bude odpovídat požadavkům na „jemnost“ výsledku. Už dle prvních odhadů lze usoudit, že bude nutno použít paměťové moduly nezávislé na procesoru (externí paměti). V tom případě bude 19 třeba také vyřešit řídící logiku adresové a datové sběrnice mezi procesorem a pamětmi. V jednoduchých aplikacích s malými adresními prostory se tento problém řeší paralelním přístupem k adresové i datové sběrnici. Tato metoda je rychlá a snadná, je také ovšem velmi náročná na počet vývodů procesoru, protože k adresaci ݊ adres potřebujeme Ž‘‰ ଶ ݊ vývodů a k přečtení ݉ bitové buňky potřebujeme ݉ vývodů. Takže například pro přístup k paměti 64 KiB s datovou šířkou 8 bitů potřebujeme Ž‘‰ ଶ ݊ ൅ ݉ ൌ ͳ͸ ൅ ͺ ൌ ʹͶ vývodů procesoru, jak je znázorněno na obrázku 3.2.1. Je pravděpodobné, že si takovou náročnost nebudeme moci dovolit a tudíž musíme zvažovat způsob, kterým ušetříme vývody procesoru při zachování datového prostoru. Obrázek 3.2.1 Paralelní zapojení adresové a datové sběrnice Počet vývodů pro datovou sběrnici je možno omezit rozdělením na části, např. vícekontaktovým přepínačem. Z hlediska číslicové techniky je vhodné sběrnici dělit na počet částí rovnající se ݇-násobku čísla 2. Při rozdělení sběrnice o ܾ bitech na ݊ částí potřebujeme počet vývodů dle vztahu (10.1). ௕ ‫ ݔ‬ൌ ൅ Ž‘‰ ଶ ݊ ௡ 20 (10.1) Při datové sběrnici o 16 bitech bychom původně potřebovali 16 vývodů procesoru. Při rozdělení na 4 části bychom dle (10.1) potřebovali již jen 6 vývodů. To je poměrně výrazná úspora vodičů při velice jednoduché úpravě obvodu, viz obrázek 3.2.2. Obrázek 3.2.2 Rozdělení datové sběrnice na 4 části Při snižování počtu vývodů adresové sběrnice je situace výrazně složitější. Zatímco u datové sběrnice jsme lineární závislost změnili na logaritmickou, u adresové sběrnice závislost již logaritmická je a není žádný vhodný matematický prostředek, který by počet nutných vývodů snížil za použití přijatelných prostředků. Je tedy nutné změnit přístup k problému. Nejzákladnější způsob, sériové zadání adresy, dokáže adresovat nekonečně velký datový prostor pomocí jediného vodiče. Na adresovou sběrnici paměti se připojí synchronní binární čítač s příslušným počtem bitů a na jeho vstup hodinového signálu se přivede vývod z procesoru. Adresa se nastaví počtem hodinových pulzů z procesoru. 21 Jako každá metoda, která nám šetří jeden nárok, i tato svým principem zvyšuje nárok jiný. Zde jsme snížili nároky na vývody procesoru, zvýšili jsme ovšem časové nároky na zadání adresy. Zatímco při paralelní adresaci stačí zpravidla jediný instrukční cyklus procesoru na zadání jakékoliv adresy, při použití čítače by počet instrukčních cyklů procesoru byl závislý na adrese, kterou zadáváme. Nejhorším případem je zadávání nejvyšší adresy, kdy pro ܽ vodičů adresové sběrnice (při k instrukcích obsluhujících jeden hodinový puls) potřebujeme počet instrukčních cyklů ‫ ݔ‬dle následujícího vztahu. ‫ ݔ‬ൌ ሺʹ௔ െ ͳሻ݇ (3.2.02) Časová závislost je lineární vzhledem k množství adres a exponenciální vzhledem k počtu vodičů adresové sběrnice. Tato závislost se může výrazně projevit při velkých adresních prostorech, např. při adresaci 64 KiB prostoru potřebujeme 16 vodičů adresové sběrnice. Zadání adresy 0xFFFF hex nám zabere 65 535 instrukčních cyklů. Při době instrukčního cyklu např. 1 ߤ‫ ݏ‬by zadání adresy zabralo 65 ms a to za předpokladu, že čítač je dostatečně rychlý, aby stíhal reagovat na hodinový signál z procesoru. Tato doba je z hlediska strojového času dlouhá a v implementacích náročných na rychlé výpočty nebo přerušovací systém by taková prodleva byla velikým problémem. Navíc je tato doba ještě násobena počtem instrukcí nutných pro obsloužení zadání adresy, jako například dekrementace vnitřních registrů (zpravidla 1 instrukční cyklus) nebo bitové testování a skoky (zpravidla 2 instrukční cykly), doba se tak v reálné aplikaci může zvětšit i pětinásobně a více (uváděno jako ݇). Zapojení obvodu s čítačem je znázorněno na obrázku 3.2.3. Pro mikroprocesor s redukovanou instrukční sadou je zpravidla obsluha jednoho hodinového pulsu ve tvaru znázorněném v tabulce 3.2.1. 22 Návěstí Instrukce Počet instrukčních cyklů 1 Decrement_reg_skip_if_zero 1 Goto 2 2 //pokračování v kódu 2 Set_bit 1 Clear_bit 1 Goto 1 2 Tab. 3.2.1 Přehled pravděpodobných instrukcí pro obsloužení jednoho hodinového pulzu. Z tabulky 3.2.1 můžeme vyvodit, že konstanta ݇ ൌ ͹. Obrázek 3.2.3 Sériové zadávání adresy přes synchronní binární čítač Bylo by však možné použít obě varianty (paralelní i se synchronním binárním čítačem) naráz. Počet vodičů paralelně by určovaly naše potřeby v kompromisu mezi počtem vývodů a časovými prostředky. Náročnost na počet instrukčních cyklů ݅ a počet vývodů procesoru ܽ při kombinaci obou metod je vyjádřena ve vztazích (3.2.03) a (3.2.04). 23 Kde ݇ ݅ ൌ ݇ሺʹ௫ െ ͳሻ (3.2.03) ܽ ൌ‫ܣ‬െ‫ݔ‬൅ͳ (3.2.04) je počet instrukcí procesoru pro obsloužení jednoho hodinového pulzu ‫ݔ‬ je počet vývodů adresové sběrnice ovládané čítačem ‫ܣ‬ je šířka adresové sběrnice Pokud se tedy například rozhodneme z výše zmiňované adresy zapojit 8 bitů na čítač, ušetříme 7 vývodů procesoru a nejdelší možná doba zadání adresy při době instrukčního cylku 1 ߤ‫ ݏ‬bude ͳ͹ͺͷ ߤ‫ݏ‬, což je dobrý výsledek. Schéma paralelního zapojení se synchronním binárním čítačem je znázorněno na obrázku 3.2.4. Takovéto rozdělení je obzvláště výhodné u osmibitových mikroprocesorů, neboť můžeme pohodlně řídit cyklus dekrementací jednoho registru a zadání adresy dokončit jednoduchým přesunem registru druhého. Obrázek 3.2.4 Sério – paralelní zadávání adresy Další možností je využití paralelního adresování čítači, jež je znázorněno na obrázku 3.2.5. Tato metoda vyžaduje použití více čítačů a možností kombinovat jejich počet a rozsah zanáší do problému opět prvek matematického 24 zjednodušování. Náročnost na počet instrukčních cyklů ݅ a počet vývodů procesoru ܽ při kombinaci obou metod je vyjádřen ve vztazích (3.2.05) a (3.2.06). Kde ݇ ݅ ൌ ݇ܿሺʹ௫ െ ͳሻ (3.2.05) ܽൌܿ (3.2.06) je počet instrukcí procesoru pro obsloužení jednoho hodinového pulzu ‫ݔ‬ je počet vývodů adresové sběrnice ovládané jedním čítačem ܿ je počet čítačů Uvažujme výše zmiňovanou paměť při původních parametrech procesoru. Využitím čtyř 4-bitových čítačů bychom potřebovali pro adresaci pouze 4 vývody procesoru a maximálně ͶʹͲ instrukčních cyklů, což při dané délce instrukčního cyklu vyžaduje dobu ͶʹͲ ߤ‫ݏ‬. To je výborný výsledek. Obrázek 3.2.5 Zadávání adresy paralelním zapojením více čítačů 25 Dalšího zkrácení doby potřebné na zadání adresy můžeme dosáhnout, pokud připojíme hodinové signály ze všech čítačů na jediný vývod procesoru přes hradlo AND. Počet potřebných instrukčních cyklů a počet vývodů nutných pro adresaci pak definují vztahy (3.2.07) a (3.2.08). ݅ ൌ ݇ሺʹ௫ െ ͳሻ ൅ ܿ െ ͳ ܽ ൌܿ൅ͳ Kde ݇ (3.2.07) (3.2.08) je počet instrukcí procesoru pro obsloužení jednoho hodinového pulzu ‫ݔ‬ je počet vývodů adresové sběrnice ovládané jedním čítačem ܿ je počet čítačů Při dosavadních hodnotách a čtyřech 4-bitových čítačích zabere nejdelší možné zadání adresy ͳͲͺߤ‫ ݏ‬a vyžaduje pouze 5 vodičů. Obrázek 3.2.6 Paralelní zapojení více čítačů ovládaných přes hradla AND 26 4. Hardwarová implementace 4.1. Rozbor realizace Vzhledem k faktu, že pro daný problém nebyly zadány žádné konkrétní senzory a převodníky měřených veličin, bylo by vhodné, aby celkový koncept realizace hardware aerometrického systému byl co možná nejuniverzálnější co se týče variability vstupů a výstupů. Dalším kritériem byla také cena daného řešení, neboť hlavní myšlenkou této práce je vytvořit aerometrický systém s dostatečnou přesností a současně cenově přijatelný natolik, by bylo výhodné jej využít pro malá letadla nižších cenových kategorií. Při rozhodování, jakým způsobem samotnou realizaci pojmout, byly uvažovány dva základní modely. Model s výměnnou pamětí Jedná se o variantu znázorněnou na obrázku 4.1.1. Toto řešení by se nacházelo na jedné desce plošných spojů. Všechny senzory měřených veličin by byly přímo zapojeny do této desky. Po zpracování jejich vstupních signálů by mikroprocesor přistoupil na příslušná místa v paměti, kde by byly uloženy výsledky výpočtů od korekce nelinearity senzoru přes daný vztah mezi měřenou a výstupní veličinou až po případnou úpravu na dané jednotky. Pro tento model by bylo výhodné vytvořit přímý komunikační kanál s PC a upravit komunikační protokol. Stejně tak i software mikroprocesoru. Důvodem je především možnost vytvořit pro osobní počítač aplikaci, do které by se vložily charakteristiky a potřebné vztahy a která by následně vypočítala dané dvojice adresa – výsledek. Tyto dvojice by byly následně zaslány mikroprocesoru, který by jimi naplnil příslušná místa v paměti. 27 Obrázek 4.1.1 Blokové schéma modelu s výměnnou pamětí Výhodou tohoto řešení je, že se celý systém nachází na jedné desce plošného spoje. Je poměrně univerzální, ovšem připojitelné senzory se musí pohybovat v určitých mezích přesnosti a rozsahu výstupních veličin. Případná normování výstupního signálu by totiž vyžadovala další úpravy hardware, čímž by tento způsob řešení ztrácel smysl. Stejně tak by nebylo možné nahrazovat senzory s různými výstupními elektrickými veličinami. Například nelze nahradit senzor s převodem „tlak – napětí“ senzorem s převodem „tlak – frekvence“, neboť v tomto konceptuálním modelu nelze provádět žádné dodatečné změny hardware. Veškeré změny by se omezily pouze na přepsání převodu „vstupní hodnota (adresa) – výsledek (data)“ v paměti. 28 Model s měřícími moduly Další způsob řešení se zakládá především na modularitě a univerzálnosti použití pro širokou škálu senzorů s různou nelinearitou a různým převodem měřené veličiny na výstupní elektrický signál. Z tohoto důvodu byl původní centralizovaný způsob, jakým jsou prezentovány modely současných aerometrických systémů, upraven na hybrid centralizovaného a distribuovaného systému. V zásadě se jedná o distribuovaný systém, jehož komunikační rozhraní bude sériově zapojeno v jednotlivých blocích tak, aby nebylo třeba řešit kolize na komunikační sběrnici. Jednotlivé bloky bude možno zapojovat do obvodu přímo, přičemž jádro systému bude vytvářet tzv. „velká deska“, jež bude vybavena pro výpočet hodnot na základě lineárních normovaných čísel reprezentujících jednotlivé veličiny. Zbylé bloky budou tzv. „malé desky“, jež budou hardwarově i softwarově normalizovat výstupní elektrické veličiny jednotlivých senzorů pro potřeby systému a předávat je dál. Bude možno vyrobit jednu „malou desku“ normalizující všechny senzory, stejně tak půjde vytvořit i blok pro každý senzor zvlášť a zapojit je na komunikační sběrnici sériově. V takovém případě by každý blok odchytil datový paket nesoucí vstupní hodnoty, upravil pouze ta data v paketu, která přísluší pro hodnoty změřené jeho senzorem, a poslal takto upravený paket dále. 29 Obrázek 4.1.2 Blokové schéma s připojením jedné „malé desky“ „Velká deska“ může ovšem také fungovat samostatně. Tento mód se nastaví pouhým přemístěním jumperu na této desce. V takovémto režimu může deska přijímat normované hodnoty přímo z PC, kde budou generovány vytvořenou aplikací prezentující ovládací terminál celého zařízení. Stejně tak výstup této desky bude již přímo do PC, kam bude odesílat vypočtené výsledky. Obrázek 4.1.3 Přímé spojení „velké desky“ s PC 30 Výhodou tohoto řešení je kompatibilita se všemi senzory, které mohou být pro daný účel použity. Ani použití senzoru, jehož přesnost je pod přijatelnou mez nezpůsobí nefunkčnost celého systému, pouze dojde ke zhoršení přesnosti výsledků. Další nespornou výhodou je, že jádro celého modelu, tedy „velká deska“ zůstává při libovolné konfiguraci „malých desek“ neměnné, čímž výrazně ušetříme náklady na návrh a výrobu hlavní části systému. Nevýhodou je nutnost pro každý nový senzor navrhnout a vytvořit nový, případně upravit nějaký vhodný již existující modul. To je ovšem stále menším problémem, než měnit celý systém. Obrázek 4.1.4 Zapojení s více „malými deskami“ Z důvodů lepší kompatibility s širokou škálou senzorů, modularity a celkové komplexnosti řešení byl jako výchozí model zvolena druhá možnost, tedy „velká deska“ s měřícími moduly pro normalizaci výstupních signálů senzoru. Dále se tato práce bude zabývat především konstrukcí „velké desky“ a jejího software. Detailní rozbor konstrukce „malých desek“ a jejich přizpůsobení pro dané 31 senzory, stejně jako normalizace měřených veličin by svým rozsahem vyžadovala mnohem více času a prostoru a může být případně námětem pro navazující diplomovou práci. 4.2. Výběr paměti Předtím, než začneme vybírat konkrétní typ dané paměti, bude třeba nejprve zjistit, jaké nároky klade požadovaná přesnost výpočtů na paměťový prostor. Byla proto navržena aplikace v jazyce Java (viz přiložené CD). Vstupními parametry této aplikace jsou rozsahy hodnot v jednotlivých tolerančních třídách pro danou veličinu. Na základě toho si aplikace vygeneruje množinu výstupních hodnot takovou, že diference mezi jednotlivými výsledky přesně odpovídají maximálním odchylkám výsledků definovaných v kapitole 2.6. Protože ovšem funkce pro výpočet daných výsledků nejsou lineární, je třeba vytvořit pomocí inverzní funkce množinu hodnot, jež bude tvořit vstupní hodnoty pro dané vztahy. Rozestupy mezi těmito vstupními hodnotami samozřejmě taktéž nejsou lineární. Vzhledem k tomu, že rozestupy jednotlivých hodnot v paměti lineární jsou, algoritmus nalezne nejmenší diferenci mezi dvěma sousedními hodnotami v této množině a vypíše je na výstup. Tato hodnota je největší rozestup mezi vstupními hodnotami pro výpočty, která musí být dodržena, aby došlo k zaručeném splnění kriterií pro přesnost výsledků. V této práci bude definována hodnota rozestupů zhruba třikrát až čtyřikrát menší, než tento parametr. Na základě toho lze zjisti počet buněk paměti, jež budou třeba pro převod daného vztahu. Rozsah hodnot [feet] Nejmenší nalezená diference [Pa] 0 – 8000 72 8000 – 11 000 79 11 000 – 14 000 83 14 000 – 16 405 88 Tab. 4.2.1 32 Nejmenší nalezené diference pro výšku Rozsah hodnot [km/h] Nejmenší nalezená diference [Pa] 70 – 150 871 150 – 180 1348 180 – 460 947 460 – 560 5463 Tab. 4.2.2 Nejmenší nalezené diference pro kalibrovanou rychlost Z tabulek 4.2.1 a 4.2.2 získáme nejnižší diference na celém rozsahu hodnot, kterými jsou hodnoty 72 Pa pro výšku a 871 Pa pro kalibrovanou rychlost. Bylo rozhodnuto, že rozsahy hodnot aerometrického systému budou 3x menší. Tedy krok vstupních hodnot bude 24 Pa pro výšku a 290 Pa pro kalibrovanou rychlost. Pokud těmito hodnotami vydělíme příslušný vstupní interval, získáme požadovaný datový prostor pro paměť. ݊ൌ ௉೘ೌೣ ି௉೘೔೙ (4.2.1) ο௉ Dosazením do vztahu (4.2.1) získáme požadavky na paměť, uvedené v tab. 4.2.3. ܲ௠௔௫ [Pa] ܲ௠௜௡ [Pa] οܲ[Pa] ݊ 24 1971 290 1161 Výška ͳͲͳ͵ʹͷሺ̱Ͳ݂݁݁‫ݐ‬ሻ ͷͶͲͳ͹ሺ̱ͳ͸ͶͲͷ݂݁݁‫ݐ‬ሻ Kalibrovaná rychlost ͵͵ͻͺͷͻሺ̱ͷͷͲ݇݉Ȁ݄ሻ ͵Ͳ͵͵ሺ̱͹Ͳ݇݉Ȁ݄ሻ Σ (16b) 3132 Σ (8b) 6264 Tab. 4.2.3 Paměťové nároky výpočtů 33 Z výstupu programu vyplývá, že budeme nutně potřebovat zhruba 6kB paměti. Protože má ovšem paměť datovou šířku 8 bitů, což není pro přesnost uložených čísel dostatečné, vyhradíme jeden bit adresové sběrnice na přepnutí mezi prvním a druhým datovým bytem, čímž dojde k přeorganizování na paměť o polovičním adresním prostru, ovšem jednotlivé výsledky získají šířku 16 bitů, což s dostatečnou přesností obsáhne potřebné výsledky. Dále je třeba vyřešit, na jakém principu bude paměť fungovat. Teoreticky by stačilo, aby byla paměť programovatelná pouze jednou, ovšem pak by nebylo možné opravit chybu zápisu nebo špatně vypočtenou hodnotu jinak, než výměnou celé paměti. Vzhledem k tomu, že potřebný datový prostor není nijak velký, bylo by výhodné volit paměť typu EEPROM. Jedním z hlavních důvodů této volby je také jednoduchost přístupu k paměti a množství zápisů, jež dává dostatečný prostor pro experimenty a chyby při plnění paměti daty. Dalším důvodem je relativní cenová dostupnost EEPROM pamětí s danou velikosti vytvořeních v balení DIL pro THT technologii montáže na desku plošných spojů. Proč byla zvolena zrovna THT technologie je detailněji probráno v kapitole 4.7. Po porovnání nabídky vzhledem k ceně a dostupnosti pamětí na našem trhu s elektronickými součástkami byla vybrána paměť AT28C256 od společnosti ATMEL s datovou konfigurací 32KiB x 8b, jež bude z již zmíněných důvodů softwarově přeorganizována na 16KiB x 16b. Paměť samozřejmě pracuje na napěťové úrovní 5V. Další výhodou daného typu je doba přístupu k datům ͳͷͲ݊‫ ݏ‬a konstrukce v balení DIL28. 4.3. Výběr vhodného mikroprocesoru Důležitými kritérii pro výběr vhodného mikroprocesoru jsou především jeho instrukční sada, bitová hierarchie, taktovací frekvence, velikost vnitřních pamětí, počet vývodů, periferie, kterými je vybaven a v neposlední řadě také cena. 34 Instrukční sada Jedná se o soubor instrukcí, kterými daný mikroprocesor disponuje, tzn. množství různých operací, které dokáže mikroprocesor vykonat, ať už s daty, během programu nebo s vnitřními periferiemi a nastavením mikroprocesoru. Pro tzv. Harvardskou architekturu, která je nejčastěji zastoupena právě v mikroprocesorech a jednočipových monolitických mikropočítačích, jsou nejběžnější dvě různé instrukční sady, a to RISC a CISC. x RISC (Reduced Instruction Set Computer) Jedná se o procesory s redukovanou instrukční sadou, jejichž návrh je zaměřen především na jednoduché aplikace, kde využijeme malou a vysoce optimalizovanou sadu strojových instrukcí. Je přímým protikladem k CISC a jiným specializovaným instrukčním sadám. x CISC (Complex Instruction Set Computer) Definuje v číslicové technice skupinu procesorů disponujících širokou a komplexní sadou instrukcí, jež by ovšem mohly být naprogramovány pomocí jednodušších instrukcí obsažených například v RISC, kdy například násobení může být nahrazeno cyklickým sčítáním nebo bitovými posuny apod. Vzhledem k tomu, že v této aplikaci je většina složitějších výpočtů realizována pomocí tabulky funkčních hodnot, nebude mikroprocesor s komplexní instrukční sadou potřeba. Vhodnější je se přiklonit k levnějším a jednodušším mikroprocesorům s instrukční sadou RISC. Bitová hierarchie Je vlastnost, která popisuje, s jakou datovou šířkou je daný mikroprocesor schopen přirozeně pracovat, tzn. jako datovou šířku mají jeho vnitřní registry a s jakou datovou šířkou jsou jeho instrukce schopny pracovat. Protože výsledky v paměti budou uloženy jako číslo o šířce 16 bitů, bylo by výhodnější použít 35 mikroprocesor s šestnáctibitovou hierarchií. Ovšem načítání dat z paměti je, vzhledem k její struktuře 2 x 8b, ovládáno jedním vyhrazeným adresním bitem. Postačí pro dané účely levnější osmibitový mikroprocesor. Taktovací frekvence Jedná se o maximální frekvenci, jež může mít hodinový signál, kterým je procesor řízen, takovou, aby stále ještě byl schopen spolehlivě a správně pracovat. Při znalosti vnitřních chodů v mikroprocesoru a způsobu zřetězení načítání a vykonání instrukcí vzhledem k hodinovému signálu můžeme odvodit dobu trvání vykonání jedné instrukce, což je důležitý parametr při tvorbě časového rozvrhu číslicových dějů v aplikaci. Nároky na taktovací frekvencí závisí na tom, jaký způsob adresace paměti bude zvolen (viz kapitola 3.2). Pokud zvolíme takový, jehož časové nároky budou vysoké, nepochybně budeme potřebovat mikroprocesor s vyšší taktovací frekvencí. Pokud se nám naopak podaří zvolit mikroprocesor takový, pomocí kterého budeme moci využít paralelní adresaci, nebo některý z časově méně náročných způsobů sériové adresace, můžeme naopak zvolit levnější mikroprocesor pro nižší taktovací frekvence. Velikost vnitřních pamětí Jedná se především o velikost tří různých druhů pamětí. První z nich je paměť programu typu FLASH, která je právě u Harvardské architektury a na rozdíl od architektury VonNeumanovy, jež používají dnešní PC, oddělena od paměti dat. Jedná se zjednodušeně o to, kolik instrukcí může obsahovat program. Dalším důležitým kritériem je velikost paměti, ve které lze přímo vykonat instrukce typu CALL a RETURN. U některých mikroprocesorů se jedná například jen o první 2 KiB paměti. Tato velikost záleží především na způsobu správy paměti programu a bitové šířce zásobníku STACK, jež obsahuje návratové adresy. Výše zmíněné operace je přes daný rozsah nutno vykonávat složitým způsobem pomocí přepisování stránek v systémových registrech apod. Proto, pokud je třeba dané 36 instrukce využít i mimo daný rozsah, je lepší nahradit sice, pro toto využití poněkud nekonvenční, přesto za daných okolností efektivní instrukcí GOTO. Další z pamětí je paměť typu RAM obsahující systémové registry a registry pro všeobecné použití, které slouží pro obsluhu vnitřních dějů a nastavení v mikroprocesoru a jako operační paměť pro data, se kterými často pracujeme. Tato paměť se svou velikostí zpravidla pohybuje maximálně do 1 KiB. Poslední ze zmíněných pamětí je vnitřní paměť typu EEPROM, jež je napěťově nezávislá a slouží k uchování informací i pokud mikroprocesor není zrovna napájen. Výhodná je především pro uložení konstant pro výpočty a historie událostí v mikroprocesoru. Její velikost se zpravidla pohybuje okolo 256B. Počet vývodů Jedná se o důležitý parametr z hlediska konstrukce desky plošných spojů a v naší aplikaci také pro určení způsobu adresace paměti. Při volbě vhodného mikroprocesoru bude nutné zvolit vhodný kompromis mezi větším množstvím vývodů, jež nám umožní softwarově i hardwarově jednodušší správu paměti, rozměry balení, do kterého je mikroprocesor zalit a jeho cenou. Periferie Vnitřní periferie jsou zpravidla hardwarově realizované bloky v mikroprocesoru, jež zajišťují širší možnosti programování a interakce s okolím. Mezi nejzákladnější patří především komunikační rozhraní UART pro sériovou komunikaci, modul čítače/časovače, A/D převodník a přerušovací systém. V této práci bude kladen důraz především na první a poslední ze jmenovaných, tedy modul UART a dobře vybavený přerušovací systém. Cena Na českém trhu se cena mikroprocesorů pohybuje v závislosti na výše vyjmenovaných parametrech a mnoha další faktorech zhruba v rozmezí od 70 do 37 250 Kč. Přičemž mikroprocesory pohybující se při horní cenové hranici zmíněného intervalu již mají zpravidla zbytečně vysoký výkon a výbavu, čímž bychom platili zbytečně za něco, co nevyužijeme. Po porovnání nabídky na českém trhu byl jako nejvýhodnější kompromis v poměru cena/výkon/výbava/potřeba zvolen mikroprocesor firmy Microchip a to typ PIC16F887 v provedení PDIP40. Mezi hlavní přednosti patří velké množství vývodů, jež nám umožní bezproblémovou paralelní správu paměti. Dále také to, že se vyrábí v provedení pro THT montáž, jehož výhody probereme v kapitole 4.7. Tento mikroprocesor má osmibitovou hierarchii a disponuje 14KB paměti programu, 256B EEPROM pamětí, 368B RAM pamětí, instrukční sadou RISC a je schopen pracovat na frekvenci až 20MHz. Při poměru hodinového signálu ku instrukčnímu cyklu 4:1 je tedy na dané frekvenci schopen vykonat jeden instrukční cyklus za ʹͲͲ݊‫ݏ‬, což je po výkonové stránce výborný výsledek. Modul UART a kvalitní přerušovací systém je u tohoto mikroprocesoru samozřejmostí. Nespornou výhodou je také cena, pohybující se okolo 85 Kč. 4.4. Komunikační rozhraní Základní komunikační rozhraní v celé aplikaci bude sériová linka, která jednoduchostí své obsluhy a hardwarové realizace naprosto vyhovuje našim potřebám. Dále je třeba vytvořit komunikační rozhraní mezi „velkou deskou“ a PC. Zde není zcela vhodné používat sériovou linku, neboť dnes již málokterý notebook a ani většina stolních PC není vybavena konektorem COM pro rozhraní RS232. Nejvhodnějším řešením by byla komunikace pomocí sběrnice USB. To je ovšem doprovázeno řadou komplikací počínaje přizpůsobením napěťových úrovní, přes komunikační protokol a vytvořením ovladačů pro daný operační systém konče. Nejjednodušší možností by bylo zakoupení kabelové redukce USB/RS232, která se ovšem pohybuje zhruba od 500 Kč a její spolehlivost je pro takto specializované aplikace více, než pochybná. Kvalitnější a spolehlivější redukce 38 již stojí v řádu tisíce korun, čímž by cena pouhého převodu USB na RS232 byla srovnatelná s výrobními náklady aerometrického systému samotného. Nejvhodnějším řešením se jeví využití USB/RS232 převodníku FT232R od firmy FTDI chip. Jež má přizpůsobené úrovně sériové linky pro přímé připojení k mikropočítači a cenově se pohybuje okolo 150 Kč. Vyrábí se v provedení SMD montáže na desky plošných spojů, což klade trochu vyšší nároky na přesnost zhotovení desky, v dnešní době ovšem poměrně zanedbatelné. Jednou z hlavních výhod, kromě ceny, je u této součástky především to, že se pod operační systém PC přihlásí jako vitual COM a dále se k němu z aplikací přistupuje právě jako k fyzické sériové lince, čímž se všestranně zjednoduší komunikace mezi aplikací a PC. Pro spojení s počítačem bude využit standardní konektor USB – A MALE. 4.5. Spojení s ostatními moduly Pro spojení s ostatními moduly bude využita standardní sériová linka na jejíž koncích budou moduly UART v mikroprocesorech na jednotlivých deskách. Právě sériová linka se jeví jako nejvhodnější, neboť nebudou vyžadovány žádné redukce ani převodníky napěťových úrovní apod., a tudíž mohou být jednotlivé mikroprocesory propojeny přímo pomocí třívodičového spojení. Pro fyzické spojení dvou desek budou využity konektory typu CANON9, ve výpočetní technice často využívané právě pro standard RS232. Ovšem zapojení vodičů na tyto konektory neodpovídá přímo tomuto standardu a je upravené pro vlastní účely této aplikace. Tuto skutečnost je nutno zdůraznit i popisem vodičů přímo na desce plošných spojů, aby nedošlo k náhodnému připojení k sériové lince stolního počítače nebo jiného zařízení dle standardu RS232, čímž by pravděpodobně došlo k poškození jednoho z koncových zařízení. Kromě standardních vodičů ܸ௖௖ , ‫ܦܰܩ‬, ܴ௫ a ܶ௫ jsou využity i vodiče pro hardwarový handshaking a přenos hodinového signálu. Zapojení vývodů konektoru CANON9 je znázorněno v tabulce 4.5.1. 39 Číslo vodiče Zapojení vodiče 1 CLK 2 Rx 3 Tx 4 5 GND 6 RTS 7 CTS 8 9 Vcc Tab. 4.5.1 Zapojení vývodů konektoru CANNON9 Vodič CLK slouží pro přenos hodinového signálu, jehož zdrojem je vnitřní oscilátor v USB/RS232 převodníku FT232R, pracující na frekvenci 12 MHz, který může být v případě potřeby využit jako vnější zdroj hodinového signálu pro celý obvod včetně všech připojených bloků. Vodiče RTS a CTS slouží jako jednoduchý hardwarový handshaking s dvěma sousedními deskami zapojenými na datové sběrnici. Vzhledem k tomu, že při odpojení jedné desky budou oba vodiče v log 0, resp. ve třetím stavu, může být kontrola propojení dvou desek detekována pomocí přítomnosti log 1 na těchto vodičích. Je ovšem nutné při programování software mikroprocesorů dodržet autora indikace těchto signálů, aby nedošlo ke zkratování přes vnitřní spínací obvody v mikroprocesorech. 4.6. Návrh schématu Schéma samotného obvodu „velké desky“ je rozděleno do několika bloků. Jedná se o napájecí část, doprovodná zapojení, vycházejících zpravidla ze zapojení 40 uvedených v dokumentaci pro jednotlivé integrované obvody, a samotné celkové zapojení datových a adresových vodičů a komunikačních sběrnic. Vzhledem k hodnotě maximálního povoleného stálého odběru proudu přes sběrnici USB, jež je podle předběžných odhadů nedostačující, bude zařízení napájeno nezávisle z napětí 9 – 24 V přivedeného na stabilizátor 5V. Z tohoto důvodu může být celý aerometrický systém napájen ze spínaného zdroje zapojeného přes usměrňovač a transformátor do veřejné sítě 230 V 50 Hz stejně tak, jako z olověných článků o celkovém napětí 12V nebo 24 V. Zapojení obvodů napájení a stabilizace je znázorněno na obrázku 4.6.1. Obrázek 4.6.1 Schéma zapojení obvodu napájení Pro převodník USB/RS232 FT232R je předepsána ve spojení s napájecím napětím sběrnice USB tavná pojistka pro maximální proud 200 mA. Krom napájecích vodičů jsou také zapojeny vodiče Rx a Tx, které vedou z a do mikroprocesoru. Dále jsou využity vodiče pro handshaking RTS a CTS, stejně tak jako zdroj hodinového signálu, jež se v software převodníku dá nastavit na jeden z univerzálních vývodů. Pro indikaci příjmu a vysílání jsou také na tyto vývody zapojeny indikační led. Celé schéma je znázorněno na obrázku 4.6.2. 41 Obrázek 4.6.2 Schéma zapojení převodníku FT232R Celkové schéma zapojení, na kterém je znázorněno propojení vodičů adresové a datové sběrnice, konektoru CANON9 a vodičů rozhraní mezí FT232R a PIC16F887, je znázorněno na obrázku 4.6.3. Pro paměť použitou v této aplikaci neexistovala knihovna se schematickou značkou, ani taková, která by se jí podobala. Byla proto využita univerzální schematická značka integrovaného obvodu o příslušném počtu vodičů. Rozmístění jednotlivých vodičů této součástky je dostupné v dokumentaci DATASHEET]. 42 součástky v [ATMEL Paměť Obrázek 4.6.3 Schéma celkového zapojení obvodu 43 4.7. Návrh desky plošných spojů Na rozmístění součástek nejsou kladeny prakticky žádné nároky. Jedinou výjimkou jsou konektory komunikačních sběrnic a napájení. Konektor vnějšího napájení a konektor USB může být vyveden na jednu stranu desky. Naproti tomu konektor CANON9 se sériovou linko pro spojení s „malými deskami“ musí na jedné straně vyčnívat sám, aby svou pozicí vůči ostatním konektorům do budoucna neomezoval návrh desek plošných spojů zbývajících bloků aplikace. V této práci je jedním z hlavních kritérií cena výrobku. S výhodou jsme při navrhování desky plošných spojů využili sice dnes již poněkud zastaralé technologie montáže součástek THT, místo novějších a prostorově úspornějších SMD. Hlavní předností takového návrhu bylo, že se mezi vývody těchto součástek dají vést ještě jiné vodiče. Pokud by byly všechny použité součástky typu SMD, neobešli bychom se při konstrukci bez vícevrstvé desky, jejíž výroba stojí neúměrně více. V našem případě ovšem postačila deska jednostranná jednovrstvá a křížení vodičů bylo vyřešeno několika drátovými propojkami. Celkový motiv desky plošného spoje a rozmístěním součástek je na obrázku 4.7.1 a 4.7.2. (Pozor – rozměrově se nejedná o motiv 1:1) Obrázek 4.7.1 Deska plošných spojů – strana spojů 44 Obrázek 4.7.2 Deska plošných spojů – strana součástek 5. Návrh software 5.1. Nastavení mikroprocesoru Každý mikroprocesor je třeba před spuštěním v aplikaci nastavit. Existuje totiž řada možností a faktorů, které mají na chod mikroprocesoru tak zásadní vliv, že jejich nastavování už během prvních instrukcí programu (inicializace mikroprocesoru), není možné, neboť je nutné, aby během první instrukce byly již tyto parametry pevně dány. O toto nastavení se stará tzv. konfigurační slovo. Jedná se ho souhrn ݊-tic bitů, týkajících se každého konkrétního nastavení. Pro ݊ ൌ ͳ se zpravidla jedná o volbu ‫ ݁ݑݎݐ‬nebo ݂݈ܽ‫ ݁ݏ‬říkající, zda má být příslušné nastavení, resp. funkce mikroprocesoru aktivována. Pro ݊ ൐ ͳ se běžně jedná o nutnost rozhodnout mezi více než dvěma stavy dané volby. Typickým příkladem je nastavení zdroje hodinového signálu mikroprocesoru, kdy například pro čtyřstavovou volbu kombinace ͲͲ určuje, že zdrojem hodinového signálu bude libovolný oscilátor 45 připojený zpravidla na vstup mikroprocesoru označený jako CLK. Zbylé tři kombinace naopak určují, že bude využit vnitřní oscilátor mikroprocesoru – samozřejmě za předpokladu, že je jím vybaven – a jednotlivé hodnoty nastavují dělící poměr signálu vnitřního oscilátoru. Následuje popis a nastavení konfiguračního slova mikroprocesoru PIC16F887, pro danou aplikaci. Tento mikroprocesor obsahuje čtrnáctibitové konfigurační slovo s dvoubitovým doplňkem do šestnácti bitů. Číslo bitu Název Popis + možnosti Nastavení 0 ‫Ͳܥܱܵܨ‬ 111 RC oscilátor 0 1 ‫ͳܥܱܵܨ‬ 2 ‫ʹܥܱܵܨ‬ - - Pin RA6 nastaven jako výstup 0 hodinového signálu CLKOUT. 1 Pin RA7 nastaven jako vstup hodinového signálu CLKIN. 110 RC oscilátor I/O - Pin RA6 nastaven jako I/O pin pro všeobecné použití. - Pin RA7 nastaven jako vstup hodinového signálu CLKIN. 101 Vnitřní oscilátor - Pin RA6 nastaven jako výstup hodinového signálu CLKOUT. - Pin RA7 nastaven jako I/O pin pro všeobecné použití. 100 Vnitřní oscilátor I/O - Pin RA6 nastaven jako I/O pin pro všeobecné použití. - Pin RA7 nastaven jako I/O pin pro všeobecné použití 46 011 Oscilátor jiného typu - Pin RA6 nastaven jako I/O pin pro všeobecné použití. - Pin RA7 nastaven jako vstup hodinového signálu CLKIN. 010 High – speed crystal - Vysokorychlostní krystalový oscilátor připojen mezi RA6 a RA7. 001 Krystalový oscilátor - Připojen mezi RA6 a RA7. 000 Low – Power Crystal 3 ܹ‫ܧܶܦ‬ Připojen mezi RA6 a RA7. Watch – dog timer 0 0 Vypnuto 1 Zapnuto 4 തതതതതതതതതത ܹܴܲܶ‫ܧ‬ Zpoždění resetu po zapnutí 0 0 Zapnuto 1 Vypnuto 5 ‫ܧܴܮܥܯ‬ Vstup programovacího napětí 0 0 Vývod RE3 nastaven jako vstup, obvod തതതതതതതത vnitřně připojen na ܸ஽஽ . ‫ܴܮܥܯ‬ 1 Vývod RE3 nastaven jako vstup obvodu തതതതതതതത. ‫ܴܮܥܯ‬ 6 തതതത ‫ܲܥ‬ Ochrana paměti programu proti čtení 1 0 Zapnuto 1 Vypnuto 7 തതതതതത ‫ܦܲܥ‬ Ochrana paměti EEPROM proti čtení 1 0 Zapnuto 1 Vypnuto 8 ‫ Ͳܰܧܴܱܤ‬Modul resetu při výpadku napájení 1 9 ‫ ͳܰܧܴܱܤ‬11 Zapnuto 1 47 10 Zapnuto, vypnuto během režimu sleep 01 Ovládáno pomocí SBOREN bitu 00 Vypnuto 10 ‫ܱܵܧܫ‬ Modul vnitřního/vnějšího přepínače 0 0 Vypnuto 1 Zapnuto 11 ‫ܰܧܯܥܨ‬ Detekce selhání oscilátoru 0 0 Vypnuto 1 Zapnuto 12 ‫ܸܲܮ‬ Povolení programování nízkým napětím 0 0 Vypnuto 1 Zapnuto 13 തതതതതതതതതത ‫ܩܷܤܧܦ‬ Funkce ladění v aplikaci ICD 1 0 Zapnuto, vývody RB6 a RB7 jsou rezervovány pro debugger. 1 Vypnuto, vývody RB6 a RB7 jsou nastaveny jako I/O piny pro všeobecné použití. 14 + 15 - Doplňkové bity – nejsou implementovány 1 - Čteny jako log 1 1 Podle výše uvedených nastavení lze tedy vyvodit, že hodnota konfiguračního slova je 1110 0011 1100 0100 bin, neboli 0xE3C4 Hex. 5.2. Komunikační protokol Komunikace mezi počítačem a jednotlivými moduly bude prováděna pomocí jednoduchého a pevně daného protokolu o proměnné délce. Každý datový paket bude rozdělen na jednotlivé bloky bytů, podle účelu. 48 1 – Lenght (1 byte) 2 – Inf (1 byte) 3 – Data (Lenght – 2 bytes) Tab. 5.2.1 Rozdělení paketu na jednotlivé bloky 1 – Lenght Obsahuje hodnotu délky celého paketu včetně tohoto bytu. Využití bytu definujícího délku zprávy poskytuje mnohem větší variabilitu a možnost přizpůsobení komunikačního protokolu daným účelům při různých úpravách, které dané zařízení do budoucna umožňuje. 2 – Inf Byte obsahující informaci o tom, čeho se zpráva týká. Můžeme tedy v aplikaci definovat až 256 různých typů zprávy od hodnot pro výpočty, přes různá nastavení, až po příkaz ke změně funkčního režimu aplikace. Použití tohoto bytu je opět výhodné, pokud plánujeme do budoucna zařízení upravovat, resp. vylepšovat. Definice typu zprávy s hodnotami pro výpočet by bylo vhodné definovat pro hodnotu 0x00 Hex, neboť, pokud dojde k přerušení datových vodičů, bude přečtena pravděpodobně právě tato hodnota. Mikropočítač tak vypočte sice špatné výsledky na základě špatných vstupních hodnot, následně se ovšem po odeslání výsledků uvede do čekacího režimu, zatímco kdyby daná hodnota bytu INF příslušela některému z nastavovacích režimů, mohlo by dojít k náhodnému nastavení mikroprocesoru, což je z hlediska funkčnosti aplikace nebezpečné. 3 – Data Jedná se o byte nesoucí datové podklady, nad kterými se budou provádět operace na základě hodnoty bytu INF. Svou délkou v bytech je doplňkem do zbylého paketu na základě délky definované v bytu LENGHT. 49 5.3. Obsluha pamětí Vzhledem k tomu, že jsme pro aplikaci využili mikroprocesor s dostatečným počtem I/O vývodů pro přímé obsloužení jak datové, tak i adresové sběrnice paměti, bude samotné zadání adresy a přečtení dat otázkou několika málo instrukcí. Pro ušetření paměti budou data tabulek funkčních hodnot zařazena přímo za sebe a do paměti EEPROM budou zapsány offset hodnoty adres pro výsledky jednotlivých výpočtů. Před zadáním adresy budou registry obsahující tuto adresu zvětšeny o daný offset, čímž dojde k posunutí ukazatele adresy do intervalu pro daný výpočet. Obrázek 5.3.1 Sdružená data výpočtů v paměti a jejich adresování Před samotným součtem hodnoty ze senzoru s offsetem je nutné zkontrolovat, zda je hodnota ze senzoru v daných mezích. Pokud například máme pro daný výpočet definováno 2048 hodnot, využijeme pro ně tedy rozsah 0 – 2047, což 50 odpovídá hodnotě 0x7FF Hex. Hodnota dat ze zmíněného senzoru tedy nesmí přesáhnout tuto maximální mez, neboť by pak byla jako výsledek získána výstupní hodnota náležící zcela jinému výpočtu. Proto musí být jakákoli hodnota přesahující tento interval „oříznuta“ na hodnotu právě 0x7FF Hex. 5.4. Blokové schéma zdrojového kódu Zdrojový kód bude ve většině svého strojového času čekat na přijetí nových dat. Po jejich získání rozhodne na základě hodnot v hlavičce paketu, tvořeného bloky LENGTH a INF (viz. Tab. 5.2.1), zda jde o nastavovací či datový paket. Následně dojde k provedení nastavení, resp. výpočtu a případnému sestavení datového paketu s odpovědí. Po odeslání tohoto paketu se program opět vrací do stavu čekání na další instrukce. Obrázek 5.4.1 Blokové schéma hlavní programové smyčky 51 6. Závěr Tento aerometrický systém je výhodné a praktické použít pro malá letadla nižších cenových kategorií. Využití drahých a vysoce přesných senzorů a systémů, které s nimi pracují, by bylo u těchto letounů značně neekonomické, neboť by se cena za takový systém mohla klidně vyšplhat až na cenu celého letadla. Jak již bylo ovšem naznačeno v kapitole 2.3, moderní trendy v přístrojové technice leteckých systémů stále více směřují ke konceptu aerometrického systému. Zařízení navržené v této práci je svými výrobními náklady výborně cenově přijatelné i pro nejlevnější letadla, přičemž současně splňuje nároky mezinárodních norem na přesnost výsledků. Zařízení je navrhováno tak, aby dokázalo pracovat s širokou škálou různých senzorů. Nároky na přesnost senzoru nejsou přesně definované. Při použití přesnějšího senzoru, než vyžaduje aplikace budou změřené hodnoty upraveny podle požadavků systému. Stejně tak, pokud použijeme méně přesný senzor, budou jeho hodnoty přiřazeny k nejbližší hodnotě, z intervalu přípustných hodnot pro výpočet. V tomto případě by, pokud by přesnost senzoru byla příliš nízká, mohlo dojít i k nesplnění požadavků na přesnost systému. Z těchto vlastností vyplývá, že je zbytečné pro systém využít drahé senzory se značně vyšší přesností, než odpovídá rozlišení vstupních hodnot, neboť dosáhneme pouze částečného zvýšení přesnosti systému, nepřesahujícího možnosti použité paměti. Naopak připojením senzoru s nižší přesností, než je požadovaná, bude systém sice fungovat, přesnost jeho výsledků bude ovšem odpovídat možnostem senzoru. Celkově se doporučuje použití snímačů s lehce vyšší přesností, než odpovídá vstupnímu rozlišení aerometrického systému. Je řada věcí, které by se v návrhu aerometrického systému v této práci daly zlepšit či upravit. Právě ty mohou být námětem na další práci, jež bude na tuto navazovat, resp. z ní vycházet. V první řadě je třeba navrhnout a realizovat jednotlivé senzorové moduly. Další z mnoha úprav by se mohla týkat např. 52 vylepšení komunikace s PC. V neposlední řadě by také byly vhodné některé drobné úpravy ve schématu zapojení součástek na obrázku 4.6.3, které byly navrženy na základě komunikace s britským oddělením zákaznické podpory společnosti FTDI Chip Inc., která je výrobcem USB/RS232 převodníku FT232RL. Tyto změny by ovšem také vyžadovaly úpravy desky plošných spojů, na které se převodník nachází. 53 7. Literatura [1] DRAXLER, Karel. Přístrojové systémy letadel II. Praha : Vydavatelství ČVUT, 2002. 124 s. ISBN 80-01-02484-9. [2] FT232R USB UART I.C. Datas heet Version 2.09 [online]. Glasgow - United Kingdom : Future Technology Devices International Inc., 2011 [cit. 2011-05-22]. Dostupné z WWW: . [3] PIC16F882/883/884/886/887 Data Sheet [online]. Chandler - Arizona - USA : Microchip Technology Inc., 2009 [cit. 2011-05-22]. Dostupné z WWW: . [4] 256K (32K x 8) Paged Parallel EEPROM Data sheet : AT28C256 [online]. Orchard Parkway - San Jose - USA : Atmel Corporation, 2009 [cit. 2011-05-22]. Dostupné z WWW: . [5] Parallel EEPROM Data Protection : Application Note [online]. Orchard Parkway San Jose - USA : Atmel Corporation, 1998 [cit. 2011-05-22]. Dostupné z WWW: . [6] Software Chip Erase : Application Note [online]. Orchard Parkway - San Jose - USA : Atmel Corporation, 1998 [cit. 2011-05-22]. Dostupné z WWW: . 54