VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF RADIO ELECTRONICS
ZPRACOVÁNÍ TELEMETRICKÝCH ÚDAJŮ RC MODELŮ LETADEL PROCESS OF TELEMETRIC’S ENTRIES OF RC MODELS PLANES
SEMESTRÁLNÍ PROJEKT BACHELOR’S PROJECT
AUTOR PRÁCE
Tomáš Žák
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR BRNO, 2012
Ing. Jan Prokopec, Ph.D.
ABSTRAKT Bakalářská práce se zaměřuje na problematiku snímání stavu RC modelu letadla, během letu. Je zde detailně rozebrána vnější tak i vnitřní struktura, včetně komunikace. Cílem práce je navrhnutí funkční desky pro snímání stavu RC letadla během letu, k tomu je použita součástka akcelerometr umožňující snímat přetížení. V digitální podobě je pak následně přeposílá k vyhodnocení přes Wi-Fi převodník do počítače, kde jsou následně data zpracována. V příloze je uvedeno celkové schéma zapojení včetně seznamu použitých součástek.
KLÍČOVÁ SLOVA mikrokontrolér, mikroprocesor, ATMEGA64A, zásobník, paměť, ALU, registr, akcelerometr, MMA7455L, g-cell buňka, SPI, Sériové rozhrání, EEPROM, Slave, Master, AVR, Wi-Fi, RS232, Latronix, Matchport, 802.11 b/g, převodník.
ABSTRACT Bachelor’s project focuses on problematic about scanning state of RC plane model, during the fly. In detail there is described internal and external structure, including communication. Main objective of work is design functional board for scanning state of RC plane model, during the fly. There is used akcelerometer for scanning actual overload of plane. Accelerometer sends measured data of overload in digital form over Wi-Fi converter to computer, where data are processed. List of used components is in the enclosure.
KEYWORDS microcontroller, microprocessor, ATMEGA64A, stack, memory, ALU, register, accelerometer, MMA7455L, g-cell, SPI, Seriál interface, EEPROM, Slave, Master, AVR, Wi-Fi, RS232, Latronix, Matchport, 802.11 b/g, converter.
ŽÁK, T. Zpracování telemetrických údajů RC modelů letadel. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií. Ústav radioelektroniky, 2012. 41 s., 18 s. příloh. Bakalářská práce. Vedoucí práce: Ing. Jan Prokopec, Ph.D.
PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma Zpracování telemetrických údajů RC modelů letadel jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a jsem si plně vědom následků porušení ustanovení § 11 a následujících 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), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. V Brně dne ..............................
.................................... Tomáš Žák
PODĚKOVÁNÍ Děkuji vedoucímu bakalářské práce Ing. Janu Prokopcovi, Ph.D. za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce.
V Brně dne ..............................
.................................... Tomáš Žák
OBSAH Seznam obrázků
ix
Seznam tabulek
x
Úvod
11
1
12
Návrh zařízení 1.1
Blokové schéma zařízení ........................................................................ 12
1.2
Akcelerometr .......................................................................................... 13
1.2.1
Obecný popis akcelerometru .............................................................. 13
1.2.2
Softwarový popis akcelerometru ........................................................ 14
1.2.3
Rozložení a funkce jednotlivých pinů ................................................ 15
1.2.4
Popis funkce akcelerometru................................................................ 16
1.2.5
Realizace akcelerometru ..................................................................... 17
1.3 1.3.1
Popis převodníku ................................................................................ 18
1.3.2
Softwarový popis převodníku přes webové rozhrání ......................... 18
1.3.3
Problémy s převodníkem přes bezdrátové rozhrání............................ 21
1.3.4
Softwarový popis převodníku přes sériovou linku ............................. 22
1.3.5
Rozložení jednotlivých pinů převodníku ............................................ 23
1.4
2
3
Převodník Matchport b/g ........................................................................ 17
SPI – Sériové periferní rozhrání ............................................................. 25
1.4.1
Popis rozhrání SPI .............................................................................. 25
1.4.2
Mód SLAVE ....................................................................................... 27
1.4.3
Mód MASTER.................................................................................... 27
1.4.4
Mód DATOVÝ ................................................................................... 27
1.4.5
Popis registrů ...................................................................................... 28
Obvodová realizace
31
2.1
Popis návrhu schématu ........................................................................... 31
2.2
Schéma výsledného zapojení .................................................................. 32
2.3
Schéma zapojení pro sérivou komunikaci .............................................. 33
Řídící software
34
vii
3.1
První část obslužného programu............................................................. 34
3.2
Druhá část obslužného programu ........................................................... 36
3.3
Třetí část obslužného programu.............................................................. 38
Závěr
39
Literatura
40
Seznam symbolů, veličin a zkratek
41
Seznam příloh
42
4
viii
SEZNAM OBRÁZKŮ Obr. 1.1:
Navržené blokové schéma ........................................................................... 12
Obr. 1.2:
Blokové schéma vnitřního uspořádání akcelerometru [1] ........................... 13
Obr. 1.3:
Horní pohled na rozložení pinů akcelerometru............................................ 15
Obr. 1.4:
Zjednodušený model g-cell buňky............................................................... 16
Obr. 1.6:
Webové rozhrání převodníku – Network [8]............................................... 19
Obr. 1.12:
Sériové rozhrání převodníku – vstup do setup menu [8]............................ 22
Obr. 1.13:
Sériové rozhrání převodníku – setup menu [8] .......................................... 22
Obr. 1.14:
Sériové rozhrání převodníku – nastavení položek [8]................................ 23
Obr. 1.15: Blokové schéma vnitřního uspořádání SPI [2] ............................................ 25 Obr. 1.16: Blokové schéma komunikace mezi zařízeními Master a Slave [2] ............. 26 Obr. 3.1:
Vývojový diagram pro měření a posílání naměřených dat pro mikrokontrolér ............................................................................................. 36
Obr. 3.2:
Vývojový diagram pro přijímání naměřených dat pro počítač, programem Matlab .......................................................................................................... 37
Obr. 3.3:
Vývojový diagram pro zpracování naměřených dat pomocí programu Matlab ...................................................................................................................... 38
Obr. 4.1:
Blokové schéma vnitřní struktury CPU mikroprocesoru Atmel ATMEGA64A [2]........................................................................................ 45
Obr. 4.2:
Soubor univerzálních pracovních registrů [2].............................................. 49
Obr. 4.3:
Rozdělení Flash paměti programu [2].......................................................... 51
Obr. 4.4:
Rozdělení paměti dat typu SRAM [2] ......................................................... 52
Obr. 4.5:
Blokové schéma zapojení mikrokontroléru ATMEGA64A [2]................... 57
ix
SEZNAM TABULEK Tab. 1.1:
Tabulka popisu rozložení jednotlivých pinů akcelerometru ........................ 15
Tab. 1.2:
Tabulka popisu rozložení jednotlivých pinů převodníku ............................ 24
Tab. 1.3:
Tabulka datového módu............................................................................... 27
Tab. 1.4:
Tabulka kontrolního registr – SPCR [2] ...................................................... 28
Tab. 1.5:
Tabulka nastavení předděličky hodinového cyklu....................................... 29
Tab. 1.6:
Tabulka stavového registru – SPSR [2] ....................................................... 29
Tab. 1.7:
Tabulka datového registru – SPSR [2]......................................................... 30
Tab. 4.1:
Stavový registr [2]........................................................................................ 47
Tab. 4.2:
Rozložení jednotlivých bitů zásobníku [2] .................................................. 50
Tab. 4.3:
Tabulka konfigurace paměti typu SRAM .................................................... 51
x
ÚVOD Cílem práce je realizace univerzální desky s mikroprocesorem pro zaznamenávání stavu RC modelu letadla během letu. Během letu je snímáno přetížení RC modelu a data jsou vysílána bezdrátově do počítače. Z důvodu kratší doby schopnosti létání RC modelů a neustálému měření při letu, nebylo u vybraných komponentů hleděno moc na spotřebu, avšak vybrané součástky jsou schopny pracovat v režimu se sníženou spotřebou a tím prodloužit svoji výdrž na baterii. Předpokládaná výdrž při aktuální konfiguraci součástek se pohybuje okolo 6 hodin provozu. Na začátku práce je popis akcelerometru, který realizuje samotné snímání přetížení RC modelu. Je zde uvedeno, na jakém principu funguje samotné snímání a v jakých modech a osách je akcelerometr schopen měřit. Dále je zde popsán převodník RS232/Wi-Fi, který zajišťuje samotné přeposílání naměřených dat do počítače. Poslední části je popsána samotná komunikace, která probíhá mezi mikrokontrolérem a akcelerometrem, přes sériové rozhrání SPI. Jsou zde uvedeny nejdůležitější registry, které jsou nutné pro samotnou komunikaci. V seznamu příloh je uvedeno výsledné zapojení celého zařízení. V příloze práce je popsán použitý mikroprocesor, který realizuje celou funkci zařízení. Jsou zde uvedeny jeho parametry, rozdělení paměti a popis jeho nejdůležitějších registrů. Změřená data, která jsou přijata počítačem, jsou následně zpracována programem Matlab. Cílem programu je vykreslit po dokončení letu a zpracování dat, grafy přetížení, zrychlení a rychlosti.
11
1
NÁVRH ZAŘÍZENÍ
1.1 Blokové schéma zařízení Navržené zařízení se skládá z několika funkčních celků, mikrokontroléru, akcelerometru a převodníku z RS232 na Wi-Fi. Princip zařízení je založen na měření telemetrických údajů a jejich zasílání do počítače přes bezdrátovou komunikaci. Na požadavek mikrokontroléru, je z akcelerometru vyčteno přetížení v jednotlivých osách, následná data jsou poslána přes mikrokontrolér do převodníku, který posílá změřené údaje do počítače. V počítači jsou údaje zpracovány pomocí programu Matlab a následně je vykreslen graf pro zrychlení, přetížení a rychlost letu RC modelu. Komunikace mezi mikrokontrolérem a akcelerometrem probíhá pomocí sběrnice SPI, která je popsána dále. Komunikace mezi mikrokontrolérem a převodníkem probíhá pomocí sériové linky.
Obr. 1.1:
Navržené blokové schéma
12
1.2 Akcelerometr Nedílnou součástí přípravku je i součástka zvaná akcelerometr. Není to zas tak složité zařízení, jak by se mohlo zdát a jeho využití je velmi široké. Nejvíce ho využíváme právě tam, kde je vykonáván nějaký pohyb. Akcelerometr má schopnost měřit přetížení a to převést do digitální podoby. Záleží také na typu akcelerometru, který vyžadujeme. Existují akcelerometry schopné měřit pouze ve dvou osách anebo měří všechny osy tedy X, Y a Z. Musíme si také uvědomit, zdali chceme, aby výstup z akcelerometru byl analogový, to znamená, aby se na jeho výstupu objevovala různě velká hodnota napětí v závislosti na zrychlení anebo jestli požadujeme, aby byl akcelerometr digitální a na jeho výstupu se objevila hodnota ve formě ,,jedniček a nul“. S akcelerometrem se setkáme například v mobilech, kde je použit pro snímání polohy mobilu, v hodinkách a nejvíce se uplatňuje v počítačové technice, kde slouží k ochraně pevných disků při pádů notebooku. V práci byl akcelerometr použit pro zaznamenávání průběhu letu modelu letadla, konkrétně k měření zrychlení, přetížení a rychlosti letadla.
1.2.1
Obecný popis akcelerometru
Vybraný typ akcelerometru byl MMA7455L. Součástka je integrována do pouzdra LGA-14. Její rozměry jsou velmi malé, což ji předurčuje pro použití v zařízeních, která vyžadují menší rozměry. Vybraný typ akcelerometru je schopen měřit ve všech třech osách a naměřená data jsou vysílána v digitální podobě, jedná se tedy o akcelerometr s digitálním výstupem. Akcelerometr je také schopen měřit až ve třech různých velikostech přetížení, konkrétně jsou to 2g, 4g a 8g. Obsahuje 14 pinů, které jsou nezbytné pro funkčnost celé součástky. Akcelerometr vyžaduje poměrně malé hodnoty napětí a podporuje stand-by režim, takže je to i úsporná součástka. Blokové schéma akcelerometru a vnitřní zapojení je zde:
Obr. 1.2:
Blokové schéma vnitřního uspořádání akcelerometru [1]
13
1.2.2
Softwarový popis akcelerometru
Typ MMA7455L obsahuje 31 registrů, které jsou nezbytné pro správnou funkčnost a činnost celého akcelerometru. Seznam registrů je uveden v katalogovém listě výrobce. Komunikaci je možné uskutečnit pomocí sběrnice SPI nebo I2C. Volba komunikace závisí pouze na daném uživateli, je tedy na něm, zda-li zvolí komunikaci přes SPI a nebo I2C. Jak komunikace probíhá pomocí sběrnice SPI je uvedeno v kapitole SPI – Sériové periferní rozhrání. Přes sběrnici SPI je možné přistupovat k 28 registrům a pomocí nich můžeme daný akcelerometr ovládat anebo zjišťovat naměřené hodnoty. Akcelerometr také obsahuje vektory přerušení, které jsou především využívány v pulsním módu měření. Při samotné komunikaci s akcelerometrem je nutné si uvědomit, že při vyslání požadavku na výčet aktuálních hodnot přetížení v jednotlivých osách musíme vždy posílat požadavek jen na jednu konkrétní osu, nelze tedy posílat jeden požadavek na více os. Je také nutné při výčtu hodnoty přetížení dané osy počkat, až akcelerometr naplní posuvný registr a teprve po této době je schopen akcelerometr naměřené hodnoty přetížení poslat do mikrokontroléru. Akcelerometr dále umožňuje nastavit způsoby měření přetížení, může si vybrat z těchto způsobů měření: •
Measurement mode
(Měřící)
•
Level detection mode
(Úrovňový)
•
o
Motion detection
(Pohybový)
o
Freefall detection
(Volný pád)
Pulse detection mode
(Pulsní)
o
Single pulse detection
(Jednopulsní)
o
Freefall detection
(Volný pád)
o
Double pulse detection
(Dvojpulsní)
V práci je akcelerometr nastaven na mód Measurement mode, tedy měřící. Uvedený mód, používá k měření přetížení všechny tři osy a měří v celém rozsahu akcelerometru. V tomto módu akcelerometr měří neustále přetížení v jednotlivých osách. Rychlost obnovování měření jednotlivých os je 125 Hz, tedy 8 ms. Dále je možné si zvolit způsob měření, máme na výběr mezi měřením absolutních hodnot přetížení, tedy v celém rozsahu nebo měřením pouze kladného nebo jen záporného přetížení. V tomto módu je též možné vypnout měření jednotlivých os, vypnutí se nastavuje pomocí registru CTL1, který se nachází na adrese $18.
14
1.2.3
Rozložení a funkce jednotlivých pinů
Rozložení jednotlivých pinů je patrné z obrázku, jedná se o pohled shora, a protože je tento typ akcelerometru v SMD provedení, jsou místo klasických pinů použity pájecí plošky. Stručný popis jednotlivých pinů a jejich funkce je uveden v tabulce pod obrázkem.
Obr. 1.3:
Číslo pinu 1 2
Horní pohled na rozložení pinů akcelerometru
Značka pinu
Stručný popis pinu
Typ pinu
DVDD_IO GND
Napájení pro digitální vstupní/výstupní piny Zem Žádné vnitřní zapojení. Je možné jej nechat nezapojený anebo propojený se zemí. I2C adresní bit 0 Zem Napájení SPI povoleno (0), I2C povoleno (1) Přerušení č. 1 / Data připravena Přerušení č.2 Žádné vnitřní zapojení. Je možné jej nechat nezapojený anebo propojený se zemí. Žádné vnitřní zapojení. Je možné jej nechat nezapojený anebo propojený se zemí. SPI Sériový výstup dat 2 I C Sériový výstup dat (SDA), SPI Sériový vstup dat (SDI), 3 vodičové rozhrání Sériových výstupních dat (SDO) I2C a SPI Sériové hodiny
Vstupní Vstupní
3
N/C
4 5 6 7 8 9
IADDR0 GND AVDD CS INT1/DRDY INT2
10
N/C
11
N/C
12
SDO
13
SDA/SDI/SDO
14
SCL/SPC Tab. 1.1:
Vstupní Vstupní Vstupní Vstupní Vstupní Výstupní Výstupní Vstupní Vstupní Výstupní Otevřená zátěž/Vstupní/Výstupní
Tabulka popisu rozložení jednotlivých pinů akcelerometru
15
Vstupní
1.2.4
Popis funkce akcelerometru
Princip funkce akcelerometru je založen na snímání kapacitně citlivých buněk označovaných jako g-cell buňky. Dále jsou zde přítomny obvody pro úpravu signálu ASIC. Celý citlivý prvek je hermeticky uzavřen. G-cell buňka je založena na mechanické struktuře vytvořené z polovodičových materiálů (polysilicon). Zrychlení je indikováno pomocí změny kapacity, kdy při pohybu dojde k vychýlení pohyblivé části z její klidové polohy a tím ke změně kapacity. Struktura g-cell buňky je uvedena na obrázku:
Obr. 1.4:
Zjednodušený model g-cell buňky
Chceme-li zjistit jaká je kapacita mezi destičkami, lze využít následující ho vztahu:
C =ε
S d
(1.1)
C – Kapacita mezi deskami
[F]
ɛ - Permitivita prostředí kondenzátoru
[F*m-1]
S – Plocha destiček
[m2]
d – Vzdálenost jednotlivých destiček
[m]
Obvody ASIC používají techniku spínaných kondenzátorů k měření kapacity g-cell buňky. Data o přetížení se získávají porovnáváním kapacit dvou g-cell buněk, jedná se o samotnou měřící buňku a o buňku referenční. Rozdíl jejich kapacit je následně převeden A/D převodníkem do digitální podoby. Obvody ASIC mají filtry, kterými se dá dále upravit signál k získání vysoké úrovně digitálního výstupního napětí úměrného velikosti zrychlení.
16
1.2.5
Realizace akcelerometru
Před samotným zapojením a zapájením do desky je nutné si uvědomit, jak daný akcelerometr vlastně funguje. Jak je možné vyčíst z katalogového listu, tak nikdy nedosáhneme toho, aby u akcelerometru byly všechny osy nulové, vždy bude jedna z os vykazovat nějakou počáteční hodnotu, jestliže je akcelerometr v klidovém stavu. V práci, po zapojení je výchozí osa Z, která by měla ve výchozí poloze a zapojení indikovat hodnotu 0x3F. Výsledné zapojení akcelerometru a celé desky je uvedeno v kapitole Obvodová realizace.
1.3 Převodník Matchport b/g Použitý převodník je zde využit jako komunikační prvek mezi samotným mikrokontrolérem a počítačem, který je na tento převodník připojen. Komunikace mezi mikrokontrolérem a převodníkem probíhá po sériové lince, komunikace mezi počítačem a převodníkem probíhá pomocí bezdrátového připojení. V práci je převodník nastaven takto: o IP adresa: 192.168.1.1 o Maska podsítě: 255.255.255.0 o Rozhrání komunikace: Bezdrátové o Vysílací kanál převodníku: 11 o Typ sériové komunikace: RS232 o Nastavení pravidel komunikace sériové linky: 8 bit, 1 stop bit, bez parity o Komunikační port pro sériovou linku převodníku: 9090 o Režim komunikace: Ad-Hoc o Jméno sítě: VUTRC o Zabezpečení: Není o Bez DHCP o IP adresa počítače, na který jsou data posílána: 192.168.1.2 o Komunikační port pro sériovou linku počítače: 9091 o Typ komunikačního balíčku: UDP o Typ Datagramu: 01 o Rychlost sériové linky: 9600 Baud
17
1.3.1
Popis převodníku
Převodník komunikuje po sériové licence typu RS232, avšak podporuje ještě komunikaci po sériové lince typu RS485. Rychlost komunikace sériové linky je možné nastavit až do 921 kbps. Zvolený převodník umožňuje propojení s počítačem, buď pomocí bezdrátového připojení, které je uskutečněno pomocí protokolů IEEE 802.11b a IEEE 802.11g a nebo pomocí ethernetového připojení (LAN) s rychlostí 10/100 Mbps. Bohužel, však tento převodník neumožňuje, aby byly obě připojení zároveň aktivní. Ve výchozím stavu je aktivní bezdrátové připojení. Převodník též obsahuje osm konfigurovatelných pinů označených jako CP1-8, těmto pinům je možné přiřadit různé speciální funkce, jako například restartování do výchozího továrního nastavení apod. K převodníku je možné připojit až dvě sériové linky. Pro správnou funkčnost převodníku je nutné jej napájet 3,3V napětí. Při aktivní bezdrátové komunikaci odebírá převodník kolem 350 mA, pokud komunikace neprobíhá, klesne spotřeba proudu na 160 mA.
1.3.2
Softwarový popis převodníku přes webové rozhrání
V bezdrátovém režimu umožňuje převodník zvolit dva typy sítě. Prvním typem je AdHoc, kdy se převodník chová jako server a je možné se na něj připojit z počítače. Druhým typem je Infrastructure, v tomto režimu je převodník schopen se sám připojit do již vytvořené bezdrátové sítě, avšak je nutné převodník nejdřív pro tuto síť nastavit. V režimu Ad-Hoc umožňuje převodník zabezpečit komunikaci pomocí WEP šifrování, pokud je převodník v režimu Infrastructure, umožňuje zabezpečit komunikaci pomocí WEP, WPA a WPA2 šifrování. V tomto případě však není nutné použít zabezpečení komunikace pomocí šifrování, protože nejsou po bezdrátové síti přenášena žádná důležitá, popřípadě zneužitelná data, dále je možné nastavit číslo kanálu, ve kterém převodník vysílá. Převodník je možno konfigurovat třemi způsoby a to buď pomocí připojení bezdrátového, ethernetového a nebo pomocí sériové linky. Pokud se rozhodneme nastavovat převodník pomocí sériové linky, je možné pro tyto účely využít například programu Terminal, který zajišťuje komunikaci mezi počítačem a převodníkem po sériové lince v reálném čase. V případě nastavování převodníku pomocí bezdrátového a nebo ethernetového programu, je možné využít programu dostupného na stránkách výrobce a nebo pomocí běžného internetového prohlížeče. Převodník obsahuje webové rozhrání, ve kterém je možné ho pohodlně nakonfigurovat do požadovaného nastavení, abychom se však dostali do webového rozhrání, je nutné znát IP adresu převodníku.
18
Obr. 1.5:
Webové rozhrání převodníku – Network [8]
Po přihlášení do webového rozhrání převodníku je první položka Network (Síť). Pod touto položkou je možné nastavit, s jakým rozhráním bude převodník pracovat, zda-li v bezdrátovém a nebo ethernetovém. Dále je možné nastavit, aby převodník měl statickou adresu, která je neměnná, a nebo dynamickou, tedy aby převodníku byla adresa přidělena. Posledním nastavením je možnost nastavení rychlosti komunikace pro ethernetové rozhrání, případě zatržení položky Auto Negotiate dojde k automatickému zjištění rychlosti. Pod položkou Server je možné nastavit heslo pro komunikaci přes rozhrání Telnet. Další důležitou volbou je TCP Keepalive, který nám zajišťuje, jak dlouho bude převodník čekat, než zkusí zkontrolovat připojení. V případě, že připojení není aktivní, ukončí převodník komunikaci. Další důležitou volbou je CPU Perfomance Mode, který nám zajišťuje různý takt procesoru převodníku. Pokud je na Low (nízký), tak odezva převodníku je pomalejší, ale za to převodník má menší spotřebu, pokud je na High je situace opačná. Frekvence taktu CPU jsou následující: o Low – 26 MHz o Regular – 48 MHz o High – 88 MHz Další položkou je Host List, ve kterém jsou uvedena zařízení, ke kterým se má převodník připojovat. Ve výchozím nastavení je Host List deaktivován a k převodníku se může připojit jakékoliv zařízení. Pokud je Host List aktivován a není k němu připojeno žádné zařízení, tak převodník projíždí jednotlivé položky Host Listu a kontroluje k němu připojená zařízení do té doby, dokud není nalezeno zařízení, které odpovídá jedné z položek Host Listu.
19
Převodník je schopen komunikovat až s dvěma sériovými linkami. Linky je možné nastavit pomocí webového rozhrání. Můžeme nastavit typ protokolu RS232 nebo RS485, dále je možné nastavit komunikační rychlost sériové linky, počet bitů, paritu a počet stop bitů. Dále je možné zapnout tzv. ,,Balíčkování (Enable Packing)“, to je možné využít například, když posíláme více dat najednou. Poslední položkou je vymazání vstupního a výstupního zásobníku, při různých možnostech nastavení.
Další možností nastavení pro sériovou linku je způsob, pomocí kterého komunikačního protokolu budou data posílána do počítače. V práci je využita první možnost a to protokol UDP. Další volbou v nastavení je tzv. ,,Datový typ“. Pomocí něj je možné nastavit, s kolika a jakými počítači bude převodník komunikovat. Podle nastavení datového typu je možné nakonfigurovat zbytek nastavení, jedná se konkrétně o IP adresu a komunikační port cílového počítače, nastavení komunikačního portu samotného převodníku. Převodník umožňuje posílat naměřená data současně až na patnáct počítačů, které jsou na něj současně připojeny. Aby bylo možné data posílat na více počítačů současně, je nutné definovat jejich IP adresy do tabulky adres. Druhou možností je pomocí protokolu TCP. U tohoto komunikačního protokolu je možné nastavit navíc oproti typu UDP ještě ochranu pomocí hesla. Toto heslo je vyžadováno vždy při příchozí komunikaci. Dále je zde možné povolit komunikaci pomocí rozhrání telnet. U tohoto rozhrání je můžeme také nastavit tzv. ,,List uživatelů (Use Hostlist)“. V případě, že je list uživatelů povolen, převodník tento list prochází do té doby, dokud nenajde odpovídající adresu IP počítače, po té hledání ukončí. V případě, že dojde k odpojení, převodník začne znovu vyhledávat odpovídající adresu IP. Pokud dojde k výpadku spojení mezi převodníkem a počítačem, je možné nastavit, po jakou dobu bude převodník čekat a snažit se znovu obnovit spojení. Jednou z posledních možností konfigurace je nastavení chování LED diody, máme na výběr mezi trvale zhasnutou LED diodou anebo mezi blikající LED diodou po dobu připojení počítače.
Předposlední možností nastavení převodníku je nastavení Wi-Fi sítě. První je SSID, to určuje jméno, pod kterým je vidět vytvořená síť pomocí převodníku. Dále volíme typ sítě a to mezi Ad-Hoc a nebo Infrastructure, více k typu sítě je napsáno na začátku kapitoly 1.3.2. V pokročilých nastaveních je možné upravit maximální rychlost vysílání dat až na 54 Mbps, což odpovídá maximální rychlosti protokolu IEEE 802.11g. Dále máme možnost nastavit minimální rychlost vysílaných dat, její minimální hodnota je 1 Mbps. V případě výpadku nebo ztráty spojení, je možné nastavit počet špatně vyslaných paketů, pokud dojde k překročení této hodnoty, pokusí se převodník znovu navázat spojení. Poslední důležitou položkou je tzv. ,,Správce napájení rádia (Radio power management)“. Pokud je správce povolen, dojde ke snížení spotřeby, avšak naroste přístupová doba. Správce napájení rádia, není přístupný pro Ad-Hoc mód.
20
Poslední položkou je nastavení konfigurovatelných pinů. K dispozici jich je celkem 8. U každého pinu je možné zvolit jeho směr komunikace, zdali je vstupní anebo výstupní. Další položkou je Trigger input, ten slouží pro zaslání upozornění na emailovou schránku. Poslední možností nastavení pro jednotlivé piny je, při jaké úrovni napětí na daném pinu dojde ke spuštění nadefinované funkce. Pokud je zvolena úroveň Low, dojde ke spuštění funkce tehdy, je-li daný pin spojen se zemí. Při úrovni High je tomu naopak. Mezi nejdůležitější funkce patří: o Reset do výchozího nastavení pro bezdrátové rozhrání o Reset do výchozího nastavení pro ethernetové rozhrání •
V případě, že není možné navázat spojení s převodníkem je možné jej uvést do továrního nstavení.
o Diagnostika pomocí LED •
V případě poruchy dojde k rozblikání LED, pomocí kterého je možné určit typ poruchy, tabulka uvedená s jednotlivými poruchami je uvedena v datasheetu převodníku.
•
Umožňuje vybrat typ komunikace sériové linky a to buď RS232 a nebo RS485
o Volba RS485
1.3.3
Problémy s převodníkem přes bezdrátové rozhrání
Během programování a nastavení převodníku se objevila komunikační chyba. Chyba se týká komunikace mezi převodníkem a některými druhy bezdrátových karet. V mém případě nastala chyba při připojení notebooků s bezdrátovou kartou Intel Wi-Fi Link 1000BGN a 5100 AGN k převodníku. Na jednom je nainstalován Windows 7 a na druhém byl pokusně nainstalován Windows 8. Oba notebooky měly nainstalované nejnovější ovladače od výrobce. Chyba se projevovala na obou noteboocích stejně. Chyba spočívala v tom, že notebook viděl bezdrátovou síť vytvořenou převodníkem, avšak při prvním pokusu o spojení došlo k připojení na převodník, ale již dále nedocházelo k vzájemné komunikaci a nebylo možné se dostat do webového rozhrání převodníku. Při odpojení od převodníku a druhém pokusu o připojení, již odmítal se notebook připojit a vybíhalo chybové hlášení o nezdařeném připojení. Problém se vyřešil přeinstalováním ovladačů od bezdrátové karty. Zkoušením předchozích revizí ovladačů bylo zjištěno, že poslední revizí, se kterou je převodník s notebookem schopen komunikovat je revize uvolněná do konce ledna roku 2011, konkrétně se jedná o verzi ovladače 13.5.0.6, po této době se mi již komunikaci nepovedlo rozchodit. Jestli se chyba vyskytuje i u bezdrátových karet jiných výrobců, bohužel nemám možnost odzkoušet.
21
1.3.4
Softwarový popis převodníku přes sériovou linku
Kromě konfigurace převodníku přes webové rozhrání je možné nastavit převodník i přes sériovou linku. Ke konfiguraci převodníku byl využit volně dostupný program Terminal ve verzi 1.9, který je právě určen pro komunikaci přes sériovou linku v reálném čase. Pro správnou komunikaci je nutné nastavit také komunikační pravidla, která jsou následující: o Komunikační rychlost – 9600 baud o Počet posílaných bitů – 8bit o Bez parity o Stop bity – 1 stop bit o Bez průběžné kontroly Pokud jsou správně nastavena komunikační pravidla, je možné se spojit s převodníkem. Nejdříve je nutné převodník restartovat a přes komunikační program k němu poslat do 5 vteřin, než začne převodník načítat zaváděcí program, sekvenci tří malých písmen x. Pokud převodník zaznamená sekvenci, zobrazí se následující výzva:
Obr. 1.6:
Sériové rozhrání převodníku – vstup do setup menu [8]
Dále je nutné potvrdit vstup do setup menu pomocí klávesy enter ( u programu Terminal se jedná o zaškrtnutou položku +CR, kdy dochází k automatickému odeslání klávesy enter ). Pokud převodník nezaznamená stisknutí klávesy enter, objeví se sekvence znaků ,,!?!“ a převodník začne načítat zaváděcí program. V opačném případě dojde k výpisu jaké je aktuální nastavení převodníku a na konci se vypíše následující menu:
Obr. 1.7:
Sériové rozhrání převodníku – setup menu [8]
22
Jak je patrné z obrázku, položky v setup menu jsou podobné jako položky ve webovém rozhrání. Pro vstup do jakékoliv položky v setup menu je nutné zadat číslo a potvrdit klávesou enter. Například pro nastavení bezdrátové sítě je nutné vložit číslo 4 a potvrdit klávesou enter. Další nastavení je podobné a nebo stejné jako při nastavení pomocí webového rozhrání. Převodník se postupně například zeptá na následující sekvenci nastavení:
Obr. 1.8:
Sériové rozhrání převodníku – nastavení položek [8]
Při nastavování IP adresy převodníku se jednotlivé části adresy nastavují postupně a vždy se jednotlivá část musí potvrdit klávesou enter. Jak je dále patrné z obrázku, u jednotlivých položek jsou závorky, v těchto závorkách jsou uvedeny aktuální hodnoty nastavení. Pro ukončení nastavení převodníku je nutné použít položky označené pod čísly 8 a 9, kdy v případě položky 8 nedojde k uložení nastavených změn v převodníku. Po potvrzení dojde k restartování převodníku a následnému zavádění programu.
1.3.5
Rozložení jednotlivých pinů převodníku
Pin
Název
Funkce
Pin
Název
Funkce
1
RESET IN
Aktivní při nízké úrovni. Min. doba pro spuštění je 2ms.
2
GND
Zem
3
NC
Není zapojen
4
NC
Není zapojen
5
TXD1
Vysílání dat, 1.sériová linka, port 0
6
TX+
Ethernet vysílání +
7
RTS1
Požadavek pro vyslání dat pro 1.sériovou linku
8
TX-
Ethernet vysílání -
9
RXD1
Příjem dat, 1.sériová linka, port 0
10
TXCT
Ethernet centrální vodič
23
pro vysílání 11
CTS1
Potvrzení pro vyslání dat pro 1.sériovou linku
13
CP1
Konfigurační pin
14
RX+
Ethernet příjem +
15
CP2
Konfigurační pin
16
RX-
Ethernet příjem -
17
CP3
Konfigurační pin
18
ELED1
Ethernet link
19
CP4
Konfigurační pin
20
ELED2
Ethernet aktivita
21
TXD2
Vysílání dat, 2.sériová linka, port 1
22
WLAN LED
Stavová LED pro bezdrátovou síť
23
RTS2
Požadavek pro vyslání dat pro 2.sériovou linku
24
NC
Není zapojen
25
RXD2
Příjem dat, 2.sériová linka, port 1
26
NC
Není zapojen
27
CTS2
Potvrzení pro vyslání dat pro 2.sériovou linku
28
RES
Rezervován pro budoucí použití
29
CP5
Konfigurační pin
30
RES
Rezervován pro budoucí použití
31
CP6
Konfigurační pin
32
NC
Není zapojen
33
CP7
Konfigurační pin
34
NC
Není zapojen
35
CP8
Konfigurační pin
36
NC
Není zapojen
37
3.3V
Napájení
38
NC
Není zapojen
39
GND
Zem
40
NC
Není zapojen
Tab. 1.2:
12
RXCT
Ethernet centrální vodič pro příjem
Tabulka popisu rozložení jednotlivých pinů převodníku
24
1.4 SPI – Sériové periferní rozhrání Jedná se o základní rozhrání, které nám umožňuje komunikaci mezi jednotlivými součástkami. Typickým příkladem takové komunikace je třeba komunikace mezi mikroprocesorem a nějakou součástkou.
1.4.1
Popis rozhrání SPI
Obr. 1.9:
Blokové schéma vnitřního uspořádání SPI [2]
25
Sériové periferní rozhrání umožňuje vysoko-rychlostní synchronní přenos dat mezi mikroprocesorem ATMEGA64A a ostatními zařízeními. Celý systém sběrnice SPI, obsahuje dva posuvné 8 bitové registry a hlavní (master) generátor hodinového cyklu. SPI master začíná komunikační cyklus tím, že nastaví pin Slave select ( SS ) do nízké úrovně. Master a Slave připraví data, která budou poslána, do posuvných registrů a Master začne generovat potřebné hodinové pulsy na pinu SCK, které jsou nutné pro uskutečnění výměny dat. Data z Masteru do Slave jsou vždy vyslána přes pin Master Out (výstupní) – Slave in (vstupní) (MOSI). Ze zařízení Slave jsou odeslána data do zařízení Master přes pin Master in – Slave out (MISO). Po každé uskutečněné komunikaci je zařízení Slave synchronizováno nastavením vysoké úrovně na pinu SS . Pokud je mikroprocesor nastaven jako Master, sběrnice SPI, nemá automatickou kontrolu nad pinem SS . Musí být proto ošetřen v uživatelském programu, předtím než může začít komunikace. Pokud je to vyřešeno, zápisem bytu do datového registru sběrnice SPI, začne generování hodinové cyklu a zařízení master pošle 8bitů do zařízení Slave. Po odeslání těchto bitů se zastaví generátor hodinového cyklu a nastaví bit SPIF do logické 1 ve stavovém registru sběrnice SPI. Bit SPIF nám značí příznak dokončení přenosu. Pokud je povolen bit SPIE v registru SPCR, je vyvoláno přerušení. Zařízení Master může pokračovat v komunikaci, jestliže zapíšeme do registru SPDR a nebo nastavíme vysokou úroveň na pinu SS . Poslední příchozí byte je zachycen v registru zásobníku pro pozdější použití. Pokud je mikroprocesor nastaven jako Slave, je sběrnice SPI neaktivní do doby než je na pinu SS přivedena vysoká úroveň. V tomto stavu je program schopen aktualizovat obsah datových registrů, registru SPDR, ale data nejsou vyslána do doby, dokud není nastaven pin SS do nízké úrovně. Po odeslání těchto bitů se zastaví generátor hodinového cyklu a nastaví bit SPIF do logické 1 ve stavovém registru sběrnice SPI. Bit SPIF nám značí příznak dokončení přenosu. Pokud je povolen bit SPIE v registru SPCR, je vyvoláno přerušení. Poslední příchozí byte je zachycen v registru zásobníku pro pozdější použití. Systém sběrnice SPI, má jednonásobný zásobník na straně vysílaného signálu a dvojnásobný zásobník na straně příjmu signálu. To znamená, že byte, který je vysílaný, nemůže být zapsán do datového registru SPI předtím, než je dokončen celý posílací cyklus. Přijímaný byte, musí být přečten z datového registru SPI předtím, než přijde byte následující, jinak dojde ke ztrátě prvního bytu.
Obr. 1.10: Blokové schéma komunikace mezi zařízeními Master a Slave [2]
26
1.4.2
Mód SLAVE
Pokud je SPI nastaven jako Slave, potom pin SS je vždy vstupní. Pokud je na pinu SS nízká úroveň, sběrnice SPI je aktivní a pin MISO je nastaven výstupní, pokud je nastaven uživatelem. Všechny ostatní piny jsou vstupní. Pokud je na pinu SS vysoká úroveň, sběrnice SPI je neaktivní, tudíž nepřijímá žádná data a zároveň zařízení Slave okamžitě resetuje vysílací a přijímací logiku a přijímací posuvný registr.
1.4.3
Mód MASTER
Je-li SPI nastaven jako Master, to znamená, že bit MSTR v registru SPCR má hodnotu log. 1, může si uživatel zvolit směr pinu SS . Pokud je pin SS nastaven jako výstupní, nemá vliv na sběrnici SPI a je považován za pin pro řízení SS pinu zařízení Slave. Pokud je pin SS nastaven jako vstupní, musí být na pinu udržována vysoká úroveň, která je nezbytná pro Master SPI operace. Pokud se však stane, že na pinu SS bude nízká úroveň, může to systém SPI považovat jako pokus o navázání komunikace od jiného zařízení Master a může začít vysílat data jako zařízení Slave. Existují následující dvě možnosti k odstranění této nežádoucí funkce: •
•
1.4.4
MSTR bit v registru SPCR musí mít hodnotu log. 0 a SPI se stane zařízením Slave. Výsledkem této operace je, že se piny MOSI a SCK stanou vstupními. Příznakový bit SPIF v registru SPSR je nastaven do hodnoty log. 1 a pokud je povoleno přerušení od sběrnice SPI a zároveň je povoleno globální přerušení, dojde ke spuštění obsluhy přerušení.
Mód DATOVÝ
Existují čtyři kombinace SCK (systémových hodin) fáze a polarity, které jsou zjišťovány kontrolními bity CPHA a CPOL. Tyto stavy uvádí následující tabulka: CPOL=0, CPHA=0 CPOL=0, CPHA=1 CPOL=1, CPHA=0 CPOL=1, CPHA=1
Náběžná hrana
Sestupná hrana
SPI mód
Vzorek (roste)
Systém (klesá)
0
Systém (roste)
Vzorek (klesá)
1
Vzorek (klesá)
Systém (roste)
2
Systém (roste)
Vzorek (klesá)
3
Tab. 1.3:
Tabulka datového módu
27
1.4.5
Popis registrů
SPI kontrolní registr – SPCR
Tab. 1.4:
Tabulka kontrolního registr – SPCR [2]
Bit 7 – SPIE: SPI Interrupt Enable ( Povolení přerušení SPI) Je-li tento bit v log. 1 je vyvoláno přerušení, za předpokladu že je bit SPIF v log. 1 v registru SPSR a pokud je povoleno globální přerušení. Bit 6 – SPE: SPI Enable (Povolení SPI) Pokud je bit v log. 1 je sběrnice SPI povolena, tento bit musí být vždy povolen, chcemeli provádět operace s SPI. Bit 5 – DORD: Data Order (Uspořádání dat) Pokud je bit v log. 1 jsou nejdříve vysílány nejméně významné bity. Pokud je bit v log 0. jsou nejdříve vysílány nejvíce významné bity. Bit 4 – MSTR: Master/Slave select (Výběr Master/slave) Pokud je bit v log. 1 pracuje SPI v režimu Master, pokud je bit v log. 0 pracuje SPI v režimu Slave. Pokud je pin ¯ SS nastaven jako vstupní a jeho vstupu je nízká úroveň během nastavování bitu MSTR do hodnoty log. 1, bit MSTR bude vynulován a příznakový bit SPIF v registru SPSR bude v hodnotě log. 1. Uživatel musí znovu nastavit bit MSTR a znovu povolit režim Master. Bit 3 – CPOL: Clock polarity (Hodinová polarita) Pokud je bit v log. 1, pak na pinu SCK je nastavena vysoká úroveň. Pokud je bit v log. 0, je pak na pinu SCK nastavena nízká úroveň. Bit 2 – CPHA: Clock phase (Fáze hodin) Nastavení fáze hodin detekuje, zdali je vzorek na náběžné hraně anebo na sestupné hraně SCK. Pokud je v log.0 je vzorek na náběžné hraně, pokud je bit v log.1 je vzorek na sestupné hraně SCK.
28
Bit 1,0 – SPR1, SPR0: SPI Clock Rate Select (Nastavení předděličky hodinového cyklu) Tyto dva kontrolní byty určují velikost předděličky hodinového cyklu. Tyto 2 bity jsou aktivní, pouze pokud zařízení pracuje v modu Master, v modu Slave nemá nastavení bitů efekt na hodinový cyklus. Nastavení předděličky je uvedeno v následující tabulce:
Tab. 1.5:
Tabulka nastavení předděličky hodinového cyklu
SPI stavový registr – SPSR
Tab. 1.6:
Tabulka stavového registru – SPSR [2]
Bit 7 – SPIF: SPI Interrupt Flag (Příznakový bit přerušení) Příznakový bit SPIF je nastaven pokaždé do hodnoty log. 1, když dojde k dokončení sériového přenosu. Je také vyvoláno přerušení od SPI, pokud je povoleno globální přerušení. Bit 6 – WCOL: Write COLlision flag (Příznakový bit kolizního zápisu) Bit WCOL je nastaven do hodnoty log. 1 tehdy, dojde-li během přenosu k zápisu do datového registru SPDR.
29
Bit 0 – SPI2X: Double SPI Speed Bit (Dvourychlostní bit SPI) Je-li hodnota tohoto bitu v log. 1, dojde k dvojnásobnému zvýšení frekvence SCK v Master modu. To znamená, že minimální perioda SCK bude dvě periody hodinového signálu CPU. Pokud zařízení je v režimu Slave, je garantovaná rychlost nejvýše fosc/4 a méně.
SPI stavový registr – SPSR
Tab. 1.7:
Tabulka datového registru – SPSR [2]
Datový registr je určen pro přenos mezi souborovým registrem a posuvným registrem SPI.
30
2
OBVODOVÁ REALIZACE
2.1 Popis návrhu schématu Práce se skládá ze tří hlavních částí. První částí je mikrokontrolér, který je zde použit jako řídící prvek celého zapojení. Použitý mikrokontrolér je od firmy Atmel a jedná se o model ATMEGA64A v pouzdře TQFP64 určeného pro SMD montáž. Další částí je akcelerometr, který je zde použit pro měření přetížení, jedná se o typ MMA7455L v pouzdře LGA-14 určeného také pro SMD montáž. Poslední částí je převodník z RS-232 na Wi-Fi. Použitý převodník je výrobkem firmy Lantronix, jedná se o typ Matchport b/g. Rozměry desky jsou určeny především použitým převodníkem, který je největší součástkou. Při návrhu zapojení bylo potřeba řešit několik věcí. Především komunikaci mikrokontroléru s akcelerometrem, kde je použita sběrnice SPI. Pro sběrnici SPI je u mikrokontroléru vyhrazen port B. Pro zavedení programu do mikrokontroléru slouží rozhrání JTAG, které je zapojeno do portu F. Pro vytvoření hodinových pulzů je použit 12 MHz oscilátor, který je ve formě integrovaného obvodu s nastavenými parametry a je připojen na piny XTAL1 a XTAL2 mikroprocesoru. Zapojení bylo doplněno stabilizátorem napětí zajišťující stálé napětí 3,3V pro všechny obvody. O stavu celého zapojení nás informují tři LED diody, jedna dioda informuje, zda-li je obvod napájen, druhá nás informuje formou blikání o posílání dat do převodníku a poslední dioda je u převodníku a informuje, zda-li je někdo na převodník připojen, pokud ano, tak dioda svítí, pokud ne je dioda zhasnutá. Dále tato dioda informuje o chybách převodníku, různou délkou svitu. Význam těchto chybových hlášení je uveden v datasheetu výrobce. Desku plošných spojů jsem navrhl pomocí programu EAGLE. Při návrhu desky plošných spojů šlo o snahu, aby obvodové propojení bylo ze strany součástek a napájení součástí bylo na spodní straně desky. Při kontrole parametrů obvodu výpočtem bylo zjištěno, že ztráta na stabilizátoru nepřekračuje hodnotu 0,8 W a podle doporučení výrobce není nutné použít chladič. Druhé schéma je určeno pro zapojení převodníku desky, která umožňuje jeho konfiguraci přes sériové rozhrání. Konfigurace přes sériovou linku je vhodná, pokud dojde ke špatnému nastavení převodníku a nelze se již k jeho konfiguraci dostat jiným způsobem. Pro přizpůsobení sériové linky převodníku a COM portu počítače byl použit převodník MAX3232CPE. Na této desce byl použit stabilizátor TS1084, který zajišťuje napětí 3,3V pro celou desku. Zapojení je doplněno tlačítkem pro restartování převodníku.
31
2.2 Schéma výsledného zapojení
Schéma zapojení výsledného výrobku
32
2.3 Schéma zapojení pro sérivou komunikaci
Schéma zapojení pro konfiguraci převodníku RS232/Wi-Fi po sériové lince
33
3
ŘÍDÍCÍ SOFTWARE
Celý obslužný program je rozdělen do tří částí. První část je obslužný program pro mikrokontrolér, který zajišťuje samotnou komunikaci a předání naměřených dat mezi akcelerometrem a převodníkem. Druhá část obslužného programu je skript ,,mereni“ běžící na počítači v programu Matlab, který přijímá naměřená data přes bezdrátovou síť a po ukončení letu uloží naměřená data do souboru, který si uživatel sám pojmenuje. Třetí část obslužného programu je také realizována pomocí programu Matlab a stará se o samotný výpočet naměřených hodnot. Při spuštění skriptu ,,vypocet“, se nejdříve program zeptá na jméno souboru a pokud je soubor nalezen, dojde k jeho zpracování, pokud soubor nalezen není v adresáři, program zahlásí chybové hlášení o nenalezení příslušného souboru.
3.1 První část obslužného programu Prvním nutným krokem je samotná inicializace jednotlivých zařízení. U mikrokontroléru jde především o nastavení přerušení, nastavení módu komunikace a nastavení I/O portů. U akcelerometru nastavujeme typ modu, ve kterém akcelerometr bude měřit, v práci je zvoleno přetížení 8g. Nastavení registrů pro ukládání hodnot a definování typu měření, který je v práci zvolen na mód nepřetržitý, jedná se o tzv. Measurement mód, více k tomuto typu je uvedeno v kapitole 1.2.2. Nastavení akcelerometru probíhá pomocí sběrnice SPI. Převodník není nutné inicializovat. Po zapnutí se však začne převodník inicializovat sám a to do posledního známého stavu, nastavení je indikováno blikající LED diodou, která po skončení samotné inicializace zhasne. V případě, že je někdo na převodník připojen LED dioda svítí. Po inicializaci se program dostane do nekonečné smyčky, kde probíhá resetování watchdogu a kontroluje se, jestli bit en_usart je v jedničce. V případě, že je bit en_usart je v 1, je vyvolána funkce putchar, která nejdříve zakáže jakékoliv přerušení, vyšle po sériové lince naměřenou hodnotu přetížení osy X a následně opět povolí přerušení a navrátí se zpět do nekonečné smyčky. Po úspěšném odeslání osy X dojde k vyvolání přerušení sériovou linkou, kdy jsou odeslány zbývající osy, tzn. Y a Z a poté dojde opět k návratu do nekonečné smyčky. Pokud bit en_usart není v 1, čekáme na spuštění přerušení od časovače. V případě přerušení od časovače je vyslán požadavek po sběrnici SPI do akcelerometru na získání aktuálního přetížení v jednotlivých osách a dojde k nastavení bitu en_usart do 1 a ke změně stavu LED diody indikující získání dat.
34
Start
Inicializace mikrokontrolé ru Inicializace akcelerometru
Inicializace XPORT
While (1)
Časovač >0,2s
Ano Komparace časovače
Ne Ne Reset Watchdog
Pokud en_usart=1
Ano Funkce putchar
35
Funkce putchar
Zákaz všech přerušení
Vyslání osy X do převodníku
Přerušení od sériové linky
Pokud je tx_counter<3 Ano Odeslání os Y a Z Ne
Povolení všech přerušení RET RET Obr. 3.1:
Vývojový diagram pro měření a posílání naměřených dat pro mikrokontrolér
3.2 Druhá část obslužného programu Druhou částí je program, který je v počítači a přijímá data od převodníku pomocí bezdrátového rozhrání. Program běží v nekonečné smyčce a kontroluje vstupní data. Pokud data přichází, dochází k jejich zaznamenávání. V případě, že je však komunikace ukončena, dojde k porušení podmínky, protože není splněna podmínka daného počtu přijatých prvků, v tomto případě tří. Dojde k ukončení smyčky a program vyzve uživatele, aby si pojmenoval soubor, do kterého se uloží naměřená data. Následně dojde k ukončení komunikace a program se ukončí s hlášením, že uložení bylo úspěšné.
36
Start
Zaznamenání času
Spuštění komunikace s převodníkem
While (1)
Pokud se count≠3 Ne Zazname návání hodnot
Ano Ukončení smyčky Dotaz na jméno souboru Jméno souboru Uložení času a neměřných hodnot do souboru Uzavření komunikace
Uložení bylo úspěšné
Konec
Obr. 3.2: Vývojový diagram pro přijímání naměřených dat pro počítač, programem Matlab
37
3.3 Třetí část obslužného programu Třetí část obslužného programu nám zajišťuje výpočet jednotlivých požadovaných veličin a to konkrétně zrychlení, přetížení a rychlosti. Po spuštění skriptu vyzve program, abychom zadali jménu souboru pro otevření. Po otevření se v programu vypíše, v kolik hodin a kdy byl let uskutečněn. Poté dojde k výpočtu jednotlivých veličin pomocí cyklů a po skončení cyklů dojde vždy k vykreslení grafu s jednotlivou veličinou. Pokud vše proběhne v pořádku, zobrazí program za každou částí výpočtu hlášku o úspěšném dokončení. Po vypočtení všech tří veličin je program ukončen.
Obr. 3.3: Vývojový diagram pro zpracování naměřených dat pomocí programu Matlab
38
4
ZÁVĚR
Bakalářská práce vznikla za účelem vytvoření univerzálního zařízení pro snímání stavu RC modelu letadla během letu a odeslání naměřených dat do počítače v reálném čase. Po uvážení a doporučení vedoucího práce jsem zvolil akcelerometr MMA7455L, který tvoří jeden z hlavních obvodů práce. Dalším důležitým obvodem je převodník z RS232 na WiFi, který zaručuje bezdrátový přenos dat do počítače. Jeho nevýhoda je ovšem pořizovací cena, která je pro vybraný model poměrně vysoká. V práci je důkladně popsán akcelerometr, mikroprocesor, převodník a sběrnice SPI tak, aby čtenář pochopil základní funkci a princip těchto zařízení. Samotné výsledné zapojení je uvedeno v příloze. Při vytváření výrobku nebyla zahrnuta možnost, že může dojít k nesprávnému nastavení převodníku a tím pádem k jeho nefunkčnosti, pokud dojde k tomuto stavu, je možné využít dvě cesty řešení. První cesta je uvedení převodníku zpět do původního nastavení pomocí konfigurovatelného pinu, na kterém je nastavena funkce továrního obnovení. Ovšem, aby byla tato funkce využitelná, musí být daný pin ošetřen již při vytváření desky, což však není zahrnuto v této práci. Proto je nutné v případě poruchy využít druhé řešení a tím je uvedení převodníku do původního nastavení pomocí sériové linky. Pro toto řešení však bylo nutné navrhnout další samostatnou desku. Největší část na obou deskách zabírá samotný převodník. Obě dvě desky jsou napájeny stabilizátory s výstupním napětím 3,3V, které je nutné dodržet, protože jej vyžaduje samotný převodník. Napájení je zajištěno pomocí čtyř tužkových baterií velikosti AA, případě desky, která je umístěna na RC modelu letadla, druhou desku je možné napájet díky svorkám různými zdroji napětí, například 5V napájecím zdrojem. Samotný obslužný program je rozdělen na tři části. První část je program pro obsluhu mikrokontroléru a pro zajištění poslání dat pomocí převodníku. Druhá část je skript běžící v Matlabu, který zaznamenává hodnoty posílané převodníkem. Poslední třetí část se stará o samotný výpočet. Bylo vhodnější rozdělit program pro zaznamenání hodnot a následný výpočet do dvou celků ze dvou důvodů. Prvním důvodem je, že kdyby byly hodnoty hned počítány a vykresleny do grafu, mohlo by docházet k chybám v případě, že by program nestíhal při náročnějších výpočtech. Druhým důvodem je, že uživatel má možnost si otevřít již dříve uskutečněný let. Výstupem práce jsou grafy s veličinami přetížení, zrychlení a rychlosti, které jsou vypočítány a následně vykresleny pomocí programu Matlab.
39
LITERATURA [1] Freescale [online]. 2004-2011 [cit. 2011-12-03]. MMA745xL Product Summary Page. Dostupné z WWW:
. [2] Atmel [online]. 2011. 2011 [cit. 2011-12-03]. Atmel Corporation - Atmel AVR 8- and 32bit Microcontrollers megaAVR. Dostupné z WWW: . [3] CadSoftusa [online]. 2011 [cit. 2011-12-03]. Libraries | PCB Component Libraries | CadSoft EAGLE |. Dostupné z WWW: . [4] Pinouts [online]. 2006-2011 [cit. 2011-12-03]. RJ 45 pinout. Dostupné z WWW: . [5] Pajatrb [online]. 2002-2011 [cit. 2011-12-03]. PaJa - Elektronika - Eagle. Dostupné z WWW: . [6] GitHub [online]. 2011 [cit. 2011-12-03]. SparkFun.lbr at master from sparkfun/SparkFunEagle-Library - GitHub. Dostupné z WWW: . [7] LANTRONIX. MatchPort b/g™ Integration Guide [online]. Revize C. United States of America, 2008, 2008 [cit. 2012-04-22]. Dostupné z: http://www.lantronix.com/pdf/MatchPort_IG.pdf [8] LANTRONIX. Match Port ™ b/g User Guide [online]. Revize D. United States of America, 2010, 2010 [cit. 2012-04-22]. 2010. Dostupné z: http://www.lantronix.com/pdf/MatchPort_UG.pdf [9] MAXIM INTEGRATED PRODUCTS. MAX3232CPE Datasheet [online]. 3/1999. United States of America, 3/1999, 3/1999 [cit. 2012-04-22]. Rev. 5. Dostupné z: http://www.gme.cz/dokumentace/433/433-106/dsh.433-106.1.pdf [10] HALLIDAY, DAVID, ROBERT RESNICK a JEARL WALKER. Fyzika: Vysokoškolská učebnice obecné fyziky. Fifth Editon Extended. USA: John Wiley & Sons, Inc, 1997. ISBN 80-214-1869-9. [11] VÁŇA, Vladimír. Mikrokontroléry Atmel AVR: Programování v jazyce C. Praha: Nakladatelství BEN, 2006. ISBN 80-7300-102-0. Dostupné z: http://shop.ben.cz/121139
40
SEZNAM SYMBOLŮ, VELIČIN A ZKRATEK ε
Permitivita, dielektrická konstanta
S
Plocha destiček
d
Vzdálenost destiček
C
Elektrická kapacita
41
SEZNAM PŘÍLOH A Mikrokontrolér
43
A.1
Parametry mikroprocesoru Atmel ATMEGA64A.................................. 43
A.2
Struktura jednotky CPU mikroprocesoru ATMEL64A.......................... 45
A.3
Stavový registr ........................................................................................ 47
A.4
Soubor univerzálních pracovních registrů .............................................. 48
A.5
X-, Y- a Z- registry ................................................................................. 49
A.6
Stack pointer (Zásobník)......................................................................... 49
A.7
Paměťové prostory AVR ........................................................................ 50
B Návrh zařízení
54
B.1
Deska plošného spoje – top (strana součástek) pro výsledné zapojení... 54
B.2
Deska plošného spoje – bottom (strana spojů) pro výsledné zapojení ... 55
B.3
Deska plošného spoje – top (strana součástek) pro sériovou linku ........ 55
B.4
Deska plošného spoje – bottom (strana spojů) pro sériovou linku ......... 56
B.5
Blokové schéma mikroprocesoru Atmel ATMEGA64A........................ 57
C Seznam součástek
58
42
A MIKROKONTROLÉR Mikrokontrolér má v dnešní době velmi významné postavení. Má široké spektrum využití, ať se již jedná o lékařství, kde slouží například pro řízení operačních přístrojů, až po různá odvětví lidského průmyslu jako je automobilový průmysl, kde se uplatňuje ve výrobních linkách. Dnes se můžeme setkat s odlišnými typy mikrokontrolérů, ať již z pohledu architektury tak vzhledem k jejich výbavě, či instrukční sadě. V dnešní době existuje mnoho výrobců mikrokontrolérů mezi nejznámější určitě patří společnosti ATMEL, či TEXAS INSTRUMENTS. Před samostatným výběrem mikrokontroléru je nutné si uvědomit, co od něj požadujeme. Určitě jedno z prvních hledisek při výběru je, komunikace s mikrokontrolérem. Nabízí se dvě možnosti, buď přes poněkud zastaralejší rozhrání RS232 a nebo novější USB. Dále je nutné si také uvědomit, v jaké formě budou data, zdali budeme používat mikrokontrolér pro výpočty, či pro jednoduché operace. Podle těchto kritérií volíme samozřejmě jak architekturu, dnes jsou mikrokontroléry typicky 8, 16, 32 bitové, tak i podle toho zda pracuje s plovoucí desetinou čárkou, či nikoliv. Existuje samozřejmě ještě více kritérií, podle kterých lze mikroprocesory dělit, vzhledem ale k obsáhlosti dané problematiky nepovažuji za rozumné zde všechny rozebírat. Vybraný typ mikrokontroléru je ATMEGA 64 A. Jak je již patrné z názvu, obsahuje písmeno A, jedná se tedy o novější revizi, která má oproti původní revizi hlavní výhodu v menším proudovém odběru, je tedy úspornější.
A.1 Parametry mikroprocesoru Atmel ATMEGA64A Jedná se o 8bitový mikroprocesor typu AVR. Jak jsem již psal, jedná se o mikroprocesor s nízkými nároky na spotřebu. Mikroprocesor je Harvardské architektury, má tedy oddělenou paměť dat a programu, což považuji za velkou výhodu, protože nemůže program přepsat sám sebe. Jeho architektura instrukcí je typu RISC, tedy jedná se o zřetězené načítání instrukcí, většina instrukcí je vykonána v jednom strojovém cyklu, a tím tedy dochází k jejich rychlejšímu zpracování. AVR jádro kombinuje bohatou instrukční sadu s 32 univerzálními pracovními registry, tyto registry jsou přímo připojeny na ALU, což umožňuje nezávisle pracovat s dvěma registry v jedné instrukci vykonávané během jednoho strojového cyklu. Výsledkem této architektury je, že dosáhneme až 10 násobné rychlosti oproti architektuře CISC. ATMEL64A obsahuje paměti: • • •
64 kB samo-programovatelné paměti typu FLASH 2 kB EEPROM paměti 4 kB SRAM paměti
43
Periferní jednotky: • • • • • • • • •
53 obecně účelový vstupně/výstupních linek 32 univerzálních pracovních registrů Časovač odměřující skutečný čas 4 Časovače/čítače s komparačními módy a PWM 2 rozhrání USART Bytově orientované dvouvodičové sériové rozhrání 8- kanálový 10bitový ADC převodník Sériový port SCI Programovatelný Watchgod časovač s vnitřním oscilátorem.
Mikrokontrolér dále obsahuje testové rozhrání JTAG, které může být použito pro ladění aplikací přímo na čipu, dále podporuje těchto šest softwarově volitelných úsporných módů: •
Idle mode: Zastaví pouze činnost CPU, ostatní periferie jako SRAM, Časovače/Čítače, SPI port, přerušení jsou stále aktivní.
•
Power-Down mode: Uloží obsah registrů a zastaví činnost oscilátoru. Vypne ostatní funkce čipu do doby než přijde další přerušení nebo hardwarový reset.
•
Power-save mode: V tomto módu jsou zapnuty asynchronní časovače. Uživateli je umožněno upravovat nastavení časovačů, ikdyž zbytek zařízení je vypnut.
•
The ADC noise reduction mode: V tomto módu je pozastavena jakákoliv činnost CPU, vstupních/výstupních portů kromě asynchronních časovačů a ADC, k minimalizování šumu během ADC konverze.
•
Standby mode: V tomto modu je zapnut pouze vnitřní krystal/ vnější rezonátor, zatímco zbytek zařízení je vypnut.
44
•
Extended standby mode: Tento mod je stejný jako standby mod, s tím rozdílem, že je ke krystalu/rezonátoru ještě zapnut asynchronní časovač.
A.2 Struktura jednotky CPU mikroprocesoru ATMEL64A
Obr. 4.1:
Blokové schéma vnitřní struktury CPU mikroprocesoru Atmel ATMEGA64A [2]
Hlavní funkcí CPU je zajistit správné zpracování programu. CPU tedy musí mít přístup do paměti, musí být schopna provádět nezbytné výpočty a být schopna reagovat na přerušení. Proto, abychom maximalizovali výkon a byly schopni zpracovávat instrukce paralelně, je u AVR použita Harvardská architektura. Jak již bylo zmíněno, tak se AVR zakládá na instrukční architektuře RISC, to znamená, že mezitím co je jedna instrukce prováděna, tak další je načítána z paměti programu.
45
Tímto je dosaženo toho, že při každém hodinovém cyklu je zpracována jedna instrukce. Paměť programu je součástí 64 kB programovatelné paměti Flash. Mikroprocesor dále obsahuje 32 x 8 bitový univerzální pracovní registry, ke kterým je možno přistoupit během jednoho hodinového cyklu. To umožňuje Aritmeticko Logické Jednotce (ALU) vykonávat pouze operace, které nezabírají více než jeden hodinový cyklus. Typická operace ALU probíhá tak, že ze souboru registrů vystupují dva operandy, tyto dva operandy zpracujeme podle příslušné operace a výsledek uložíme do registru souborů. Šest z 32 registrů je možné použít jako tři 16 bitové registrové ukazatele pro nepřímé adresování dat, což umožňuje efektivnější řešení jednotlivých výpočtů. Jeden z těchto tří adresních ukazatelů může být také využit jako adresový ukazatel pro vyhledávací tabulky v paměti dat. Tyto přidané funkční registry jsou 16 bitové a nazývají se X, Y a Z. ALU jednotka vykonává aritmeticko-logické operace jako je násobení, sčítání, dělení a další. Může však také vykonávat jednoregistrové operace. Po dokončení příslušné operace je aktualizován Stavový registr (SREG). Paměť programu Flash je rozdělena na dvě části: • Boot program section (Zaváděcí část programu) • Application program section (Aplikační část programu)
Obě části obsahují vyhrazené Lock bity, které umožňují ochranu proti čtení a zápisu. SPM instrukce, které zapisují do Aplikační části programu, musí být uloženy v Zaváděcí části programu. Během přerušení nebo vykonávání podprogramu je návratová adresa programového čítače uložena do zásobníku. Zásobník je uložen v datové paměti SRAM a jeho velikost je omezena pouze velikostí této paměti. Před použitím uživatelského programu musí nejdříve být nadefinována adresa zásobníku. Definice adresy zásobníku se obvykle uvádí do funkce reset. Všechna přerušení mají vektor přerušení, které jsou uloženy v tabulce přerušení. V tabulce přerušení jsou všechny vektory přerušení, uspořádány podle jejich priority., to znamená, že vektor na nejnižší adrese má největší prioritu. Vektory přerušení jsou uloženy v paměti dat typu SRAM a jejich počáteční adresa začíná od adresy 0x20 a končí adresou 0x5F. ATMEGA64A má ještě přídavné adresy, které začínají od adresy 0x60 a končí adresou 0xFF v paměti dat typu SRAM. Toto paměťové místo může být však využito pouze pro instrukce ST/STS/STD a instrukce LD/LDS/LDD. Pro vyšší výkon AVR je jednotka ALU přímo připojena na 32 univerzálních pracovních registrů.
46
Jednotlivé operace ALU lze rozdělit do tří hlavních kategorií: • • •
Aritmetické Logické bitově-funkční ( bit functions)
Některé implementace této architektury též umožňují vytvoření výkonné násobičky s podporou znaménkového/neznaménkového násobení a také podporují zlomkový tvar.
A.3 Stavový registr Stavový registr obsahuje informace o výsledku poslední vykonané aritmetické operace. Tato informace může být využita pro upravení programu k vykonání podmíněných operací. Stavový registr je vždy aktualizován po dokončení všech operací ALU. To ve většině případů tedy znamená, že nemusíme používat instrukce určené pro porovnání, tím pádem dostaneme výsledek rychleji a také tím redukujeme délku zdrojového kódu. Stavový registr není automaticky ukládán anebo obnovován v případě, že nastane přerušení. Ukládání a obnovení je nutné ošetřit softwarově.
Tab. 4.1:
Stavový registr [2]
Bit 7 – I: Global Interrupt Enable (Povolení globálního přerušení) Povolení globálního přerušení musí být povoleno, jestliže chceme používat ostatní přerušení. Každé přerušení má svůj vlastní řídící registr pro nastavení parametrů a jeho povolení. Pokud však bit I není nastaven, nemůže dojít k žádnému přerušení. I-bit je nulován hardwarově po každém vyvolaném přerušení a opět povolován pomocí instrukce RETI, také může být nastavován a nulován pomocí instrukcí SEI a CLI. Bit 6 – T: Bit Copy Storage (úložiště bitové kopie) Instrukce bitové kopie BLD (bit load) a BST (bit store) používají T-bit jako příznak, zda-li je bit se kterým pracujeme zdrojem a nebo cílem. Bit 5 – H: Half Carry Flag (Příznakový bit polovičního přetečení) Příznak polovičního přetečení je indikován při některých aritmetických operacích. Bit H je též užitečný při BCD aritmetice.
47
Bit 4 – S: Sign bit (Znaménkový bit) Znaménkový bit se nastaví vždy, když je výsledek neekvivalence mezi příznakem záporného výsledku N a přetečením příznaku druhého doplňku V. Bit 3 – V: Two’s Complement Overflow Flag (Příznakový bit přetečení druhého doplňku) Pomocí příznakového bitu přetečení druhého doplňku jsou podporovány aritmetické operace druhého doplňku. Bit 2 – N: Negative flag (Příznakový bit záporného výsledku) Příznakový bit záporného výsledku nám určuje, že výsledek aritmetické nebo logické operace je menší než nula, je tedy záporný. Bit 1 – Z: Zero flag (Příznakový bit nulového výsledku) Příznakový bit nulového výsledku je nastaven vždy, když výsledek aritmetické nebo logické operace je roven nule. Bit 0 – C: Carry flag (Příznakový bit přenosu) Příznakový bit přenosu je nastaven vždy, když dojde k přenosu do vyššího řádu při provádění aritmetické nebo logické operace.
A.4 Soubor univerzálních pracovních registrů Soubor registrů je optimalizován pro rozšířenou instrukční sadu typu RISC. Pro dosažení potřebného výkonu a flexibility jsou následující vstupně/výstupní rozvržení podporována souborem registrů: •
Jeden 8bitový výstupní operand a jeden 8bitový vstupní výsledek
•
Dva 8bitové výstupní operandy a jeden 8bitový vstupní výsledek
•
Dva 8bitové výstupní operandy a jeden 16bitový vstupní výsledek
•
Jeden 16bitový výstupní operand a jeden 16bitový vstupní výsledek
48
Obr. 4.2:
Soubor univerzálních pracovních registrů [2]
Většina instrukcí pracujících s registrem souborů má přímý přístup do všech registrů a většina z nich je jednocyklových. Jak je vidět na Obr. 4.2: Soubor univerzálních pracovních registrů tak každý registr má přidělenou adresu v paměti. Tyto registry nejsou fyzicky implementovány do datové paměti SRAM. Tento způsob uspořádání paměti zajišťuje flexibilní přístup registrům, jako jsou X-, Y- a Z-.
A.5 X-, Y- a Z- registry Tyto registry se nalézají v registru souborů a jsou uloženy od adresy 0x1A po adresu 0x1F. Rozdělení je na obrázku Obr. 4.2: Soubor univerzálních pracovních registrů. Jak je patrné nejdříve vždy následuje nižší byte a následně vyšší byte daného registru. Tyto registry jsou využívány jako 16bitové adresní ukazatele pro nepřímé adresování datového prostoru.
A.6 Stack pointer (Zásobník) Zásobník je převážně používán pro uložení zpracovávaných dat, dále pro uložení místních proměnných a také pro uložení návratových adres po vyvolání přerušení a nebo při obsluze podprogramu. Ukazatel zásobníku vždycky ukazuje na vrchol zásobníku, pokud je zásobník naprogramován jako vzrůstající, to znamená, že jdeme od vyšší po nižší adresu. Ukazatel zásobníku ukazuje na datovou paměť typu SRAM, kde jsou umístěny zásobníky volání podprogramů a přerušení. Místo uložení zásobníku v datové paměti musí být definováno dříve, než dojde k prvnímu volání podprogramu nebo než je povoleno první přerušení. Zásobník musí být v datové paměti uložen od adresy 0x60 a výše.
49
Ukazatel zásobníku je dekrementován o jedničku, když jsou data ukládána do zásobníku pomocí instrukce PUSH. Ukazatel zásobníku je dekrementován dvojkou, pokud je návratová adresa uložena do zásobníku pomocí volání podprogramu nebo přerušení. Ukazatel zásobníku je inkrementován o jedničku, pokud jsou data vyčtena ze zásobníku pomocí instrukce POP a ukazatel zásobníku je inkrementován o dvě pokud, jsou data vyčtena ze zásobníku pomocí návratu z podprogramu nebo přerušení pomocí instrukcí RET a RETI. Zásobník je realizován jako dva 8bitové registry a nachází se ve vstupně/výstupním prostoru. Rozložení jednotlivých bitů zásobníku je následující:
Tab. 4.2:
Rozložení jednotlivých bitů zásobníku [2]
A.7 Paměťové prostory AVR Programovatelná paměť typu Flash Mikroprocesor ATMEGA64A obsahuje 64 kB programovatelné paměti pro uložení programu, která je umístěná na chipu. Protože všechny AVR instrukce mají velikost 16 nebo 32 bitů, je paměť organizována do matice jako 32K x 16. Flash paměť by měla být schopna vydržet nejméně 10 000 cyklů zapsání a vymazání. Velikost programového čítače (PC) je 15 bitů. Pro zajištění softwarové bezpečnosti je paměť programu Flash rozdělena do dvou sekcí: • Boot program section (Zaváděcí část programu) • Application program section (Aplikační část programu)
50
Obr. 4.3:
Rozdělení Flash paměti programu [2]
Paměť dat typu SRAM
Konfigurace
Velikost interní datové paměti SRAM
Velikost externí datové paměti SRAM
Normální mód
4096
Do 64 kB
Mód kompatibility s ATMEGA103
4000
Do 64 kB
Tab. 4.3:
Tabulka konfigurace paměti typu SRAM
Pro zápis do prostoru rozšířených vstupně/výstupní registrů, které se nachází od adresy 0x60 do adresy 0xFF, mohou být použity pouze instrukce ST/STS/STD a instrukce LD/LDS/LDD. Prostor rozšířené vstupně/výstupní paměti neexistuje, pokud je mikroprocesor přepnut do modu kompatibility s mikroprocesorem ATMEGA103. Mikroprocesor obsahuje celkem 4352 adresovatelných datových míst, rozdělení datových míst je následující: •
Prvních 32 adresovatelných datových míst je určeno registru souborů
•
Následujících 64 je určeno pro vstupně/výstupní paměť
51
•
Následných 160 je určeno pro rozšířených vstupně/výstupních registrů
•
Zbylých 4096 adresovatelných datových míst je určeno pro uložení dat do interní paměti dat typu SRAM.
Pro rozšíření datového prostoru je možné k mikroprocesoru připojit externí paměť, jejíž adresa začíná od koncové adresy interní datové paměti. Maximální velikost externí paměti může být maximálně 64 kB. Pokud chceme používat externí paměť, je nutné povolit bit SRE v registru MCUCR. K přístupu do datové paměti SRAM je možné využít až 5 režimů adresování: • Přímé adresování • Nepřímé adresování s posunutím • Nepřímé adresování • Nepřímé adresování s predekrementací • Nepřímé adresování s postinkrementací Jako ukazatele pro nepřímé adresování jsou využity registry R26 až R31 v registru souboru. Všech 4352 adresovatelných datových míst je možné adresovat výše uvedenými mody adresace.
Obr. 4.4:
Rozdělení paměti dat typu SRAM [2]
52
EEPROM datová paměť Mikroprocesor ATMEGA64A obsahuje 2 kB datovou paměť EEPROM. Tato datová paměť je organizována jako oddělený datový prostor, ze kterého můžeme po jednotlivých bytech číst i zapisovat. Paměť EEPROM by měla být schopna minimálně vydržet 100 000 cyklů zápisu a mazání. Pro přístup do datové paměti EEPROM je nutné nastavit správně nastavit kontrolní registr datové paměti EEPROM. Při zápisu do datové paměti EEPROM je největší problém s kolísáním napětí, to v průběhu zápisu může klesnout pod pracovní úroveň paměti. V případě poklesu může dojít ke ztrátě dat, protože není dodržena napájecí úroveň při daném hodinovém cyklu. Ztrátě dat se můžeme vyhnout pomocí zapnutí interního Brown-out detectoru (BOD), to nám zajistí, že data budou zapsána do paměti EEPROM tehdy, až bude úroveň napětí dostatečná. Vstupně výstupní paměť Všechny vstupně/výstupní zařízení u mikroprocesoru ATMEGA64A jsou umístěny ve V/V prostoru. Ke všem V/V místům můžeme přistupovat pomocí instrukcí LD/LDS/LDD nebo pomocí instrukcí ST/STS/STD, které nám zajišťují přenos dat mezi 32 univerzálními pracovními registry a V/V prostorem. V adresním prostoru 0x00 až 0x1F je možné přistupovat po bitech pomocí použití instrukcí SBI (set bit) a CBI (clear bit). Jestli že si potřebujeme ověřit jaká hodnota se nachází n daném bitu, můžeme to ověřit pomocí instrukcí SBIS a SBIC. Do rezervovaných bitů by měla být zapsána logická 0, pokud chceme k nim přistupovat, to je dáno z důvodu kompatibility s budoucími zařízeními. Některé stavové příznaky jsou nulovány, pokud do nich zapíšeme logickou 1.
53
B
NÁVRH ZAŘÍZENÍ
B.1 Deska plošného spoje – top (strana součástek) pro výsledné zapojení
71
45 Rozměr desky 45 x 71 [mm], měřítko M1:1
54
B.2 Deska plošného spoje – bottom (strana spojů) pro výsledné zapojení
71
45 Rozměr desky 45 x 71 [mm], měřítko 1:1
B.3 Deska plošného spoje – top (strana součástek) pro sériovou linku
85,2
45,2 Rozměr desky 46,5 x 85,2 [mm], měřítko 1:1
55
B.4 Deska plošného spoje – bottom (strana spojů) pro sériovou linku
85,2
45,2 Rozměr desky 46,5 x 85,2 [mm], měřítko 1:1
56
B.5 Blokové schéma mikroprocesoru Atmel ATMEGA64A
Obr. 4.5:
Blokové schéma zapojení mikrokontroléru ATMEGA64A [2]
57
C SEZNAM SOUČÁSTEK Označení MEGA64-A MMA7455L Matchport b/g JP1 JP2 IC2 Q1
Hodnota
D1
SMD LED 1206
Led dioda
D2
SMD LED 1206
Led dioda
D3
SMD LED 1206 100 nF 100 nF 100 nF 100 nF 100 nF 220 uF 220 uF 220 Ω 220 Ω 220 Ω 47 kΩ 47 kΩ
Led dioda
C1 C2 C3 C4 C5 C6 C7 R1 R2 R3 R4 R5 MAX3232CPE Switch IC2 D-SUB R1 R4 R5 LED1 LED2 C1 C2 C3 C4 C5 C6
3,3 V 16 MHz
3,3V 220 Ω 47 kΩ 47 kΩ
100 pF 100 pF 100 nF 100 nF 100 nF 100 nF
Pouzdro TQFP64 LGA-14
Popis Mikrokontrolér Akcelerometr Převodník RS232/Wi-Fi Pinhead 1X2mm WIFI převodník Lantronix Matchport Pinhead 1X2mm WIFI převodník Lantronix Matchport SOT-223 Napěťový stabilizátor 1/6TC4069UBPx2 Rezonátor
EZV EZV EZV EZV EZV EZV EZV RC0402 RC0402 RC0402 RC0402 RC0402 DIL16 TACTILE-PTH SOT220 H3M09RA 0207 0207 0207 LED3MM LED3MM C050-025X075 C050-025X075 C050-025X075 C050-025X075 C050-025X075 C050-025X075
58
SMD kondenzátor SMD kondenzátor SMD kondenzátor SMD kondenzátor SMD kondenzátor SMD kondenzátor SMD kondenzátor SMD rezistor SMD rezistor SMD rezistor SMD rezistor SMD rezistor Převodník na sériovou linku Tlačítko Stabilizátor Konektor COM Rezistor Rezistor Rezistor LED dioda LED dioda Kondenzátor Kondenzátor Kondenzátor Kondenzátor Kondenzátor Kondenzátor
C6 C7
220 uF 220 uF
E5-8,5 E5-8,5
59
Kondenzátor Kondenzátor