TECHNICKÁ UNIVERZITA v LIBERCI



Podobné dokumenty
Vestavné systémy BI-VES Přednáška 10

TECHNICKÁ UNIVERZITA V LIBERCI Studentská 1402/ Liberec 1

Průmyslové pece Tepelné procesy Sušárny a klimatizační komory Zkušebny Technologické linky Stroje

Mikrořadiče fy ATMEL

Rozhraní mikrořadiče, SPI, IIC bus,..

REZISTIVNÍ DOTYKOVÉ OBRAZOVKY A VYUŽITÍ V UNIVERZÁLNÍM REGULÁTORU Resistive Touch Screens and Usage in a Universal Controller

Cílem této kapitoly je seznámit s parametry a moduly stavebnice NXT. Obr. 1: Brick s moduly [3]

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

Řídicí systémy řady 400 str.2 z 16 MICROPEL

Maturitní témata - PRT 4M

Kompaktní procesní stanice

ÚAMT FEKT VUT. mikroprocesor Rabbit. Diplomová prá ce. Tomá škreuzwieser. Brno

Architektura počítače

Registrační teploměr

MSP 430F1611. Jiří Kašpar. Charakteristika

Zpracování informací

Technické prostředky počítačové techniky

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor

STŘEDOŠKOLSKÁ TECHNIKA 2013

FVZ K13138-TACR-V004-G-TRIGGER_BOX

CHARAKTERISTIKY MODELŮ PC

Elektronická stavebnice: Deska s jednočipovým počítačem

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

UDAQ-1216A UDAQ-1416A. multifunkèní modul pro rozhraní USB

FREESCALE KOMUNIKAČNÍ PROCESORY

Elektronická kapacitní dekáda - BASIC

Maturitní témata. Informační a komunikační technologie. Gymnázium, Střední odborná škola a Vyšší odborná škola Ledeč nad Sázavou.

Funkční vzorek. Geofyzikální ústředna GU100 modulární ústředna pro záznam dat v autonomním i síťovém režimu

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Základní normalizované datové přenosy

PROCESOR. Typy procesorů

Inovace bakalářského studijního oboru Aplikovaná chemie. Reg. č.: CZ.1.07/2.2.00/

Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš

Mikrokontroléry. Doplňující text pro POS K. D. 2001

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

Úvod do architektur personálních počítačů

Bakalářská práce Realizace jednoduchého uzlu RS485 s protokolem MODBUS

Principy činnosti sběrnic

Alfanumerické displeje

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

) informace o stavu řízené veličiny (předávaná řídícímu systému) - nahrazování člověka při řízení Příklad řízení CNC obráběcího stroje

Elektronicky řízené šroubovací systémy. Předprogramovaná inteligence. Technika, která spojuje

1.1 Schema zapojení pro MODBUS. 1.2 Zapojení desky DMS2 T3 a uživatelských vstupů. Binární vstup A1/N. Binární vstup A1/N. Binární vstup B1/P

KONTROLA PŘESNOSTI VÝROBY S VYUŽITÍM MATLABU

Displej DT20-6. Update firmware řadiče. Simulační systémy Řídicí systémy Zpracování a přenos dat TM 2012_10_

Datalogger Teploty a Vlhkosti

Základní pojmy a historie výpočetní techniky

1 Podrobná specifikace Yunifly Datasheet

DISTRIBUOVANÉ ZABEZPEČOVACÍ ZAŘÍZENÍ SIRIUS

ROZHRANÍ 4 VSTUPŮ/VÝSTUPŮ. 4x OPTICKY ODDĚLENÉ LOG. VSTUPY 4x RELÉ SPÍNACÍ VÝSTUPY OVLÁDÁNÍ: LINKA RS232

Vestavné systémy BI-VES Přednáška 5

Komunikativní pokojové ovladače a čidla

JEDNOTKA SNÍMAČŮ 1-WIRE (DALLAS) TUDS-40-MOD

Vývojové kity Mega48,

Datasheet Fujitsu LIFEBOOK A512 Notebook

Univerzální jednočipový modul pro řízení krokových motorů

Autonomní snímací jednotky řady SU104*

SPECIFIKACE DODÁVKY EPS A SERVISU EPS

Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 11 (12)

Technické prostředky počítačové techniky

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

Druhá generace palivoměru LUN 5275 pro letoun EV-55

Grafické adaptéry a monitory

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

HW počítače co se nalézá uvnitř počítačové skříně

Uživatelský manuál. (cz) Tablet S7.1

Jízda po čáře pro reklamní robot

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

Řídicí bloky CPX-CEC

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

VINCULUM VNC1L-A. Semestrální práce z 31SCS Josef Kubiš

Úloha č. 2: Měření voltampérových charakteristik elektrických prvků pomocí multifunkční karty

Procesor. Procesor FPU ALU. Řadič mikrokód

Dálkové ovládání GB060. Umožní jednoduché ovládání otopné soustavy. Osm binárních vstupů / výstupů a jeden reléový výstup

Zřízení technologického centra ORP Dobruška

Data Sheet Fujitsu LIFEBOOK AH531 Notebook

A4B38NVS, 2011, kat. měření, J.Fischer, ČVUT - FEL. Rozhraní mikrořadiče, SPI, IIC bus,.. A438NVS, kat. měření, ČVUT - FEL, Praha. J.

Nástroj Project Loader TXV Šesté vydání Září 2013 změny vyhrazeny

Topologická struktura měřicích systémů

C 208. Dálkové ovládání GB060. Aplikační list. Dálkové ovládání regulátorů a přenos technologických informací telefonním terminálem GB060

Inovace předmětu Mikroprocesorové praktikum I, II

PROTOKOL O LABORATORNÍM CVIČENÍ

ZADÁVACÍ DOKUMENTACE

GSM Komunikace ČSN EN ISO 9001: 2001

Microchip. PICmicro Microcontrollers

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor

ROTALIGN Ultra Moderní laserový systém k ustavování

Převodník USB na RS232. Milan Horkel

Systémové elektrické instalace KNX/EIB (11. část) Ing. Josef Kunc

Programovatelné automaty SIMATIC S7 a S5

Vestavné počítače PAC

Dotkněte se inovací CZ.1.07/1.3.00/ Základní jednotka "skříň PC" Interní a externí zařízení PC Přídavná (periferní) zařízení PC

DOSTUPNÉ METODY MĚŘENÍ JÍZDNÍCH DYNAMICKÝCH PARAMETRŮ VOZIDEL

Technická dokumentace

Profilová část maturitní zkoušky 2014/2015

Mikrořadiče společnosti Atmel

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

Transkript:

TECHNICKÁ UNIVERZITA v LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Uživatelské rozhraní geologické ústředny Semestrální práce Bc. Matěj Kolář Liberec 2012 Materiál vznikl v rámci projektu ESF (CZ.1.07/2.2.00/07.0247) Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření, KTERÝ JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY

Poděkování Příjmení a jméno studenta, (osobní číslo - nepovinné) Fakulta mechatroniky, informatiky a mezioborových studií Ústav řízení systémů a spolehlivosti Zadání semestrálního projektu Matěj Kolář Datum zadání práce 15.2. 2012 Plánované datum odevzdání květen 2012 Rozsah grafických prací Rozsah průvodní zprávy Název práce (česky) Dle potřeby dokumentace cca 15 stran Uživatelské rozhraní geologické ústředny Název práce (anglicky) User interface for geological control unit Zásady pro vypracování BP: 1. Prostudujte strukturu procesorů ARM-Cortex M3 a M4 a jejich možnosti se zaměřením na uživatelská rozhraní. 2. Navrhněte koncepci jednotlivých rozhraní geologické ústředny (klávesnice, display, komunikační sběrnice, paměťová uložiště) hw i sw. 3. Realizujte funkční model (hw i sw) kapacitní klávesnice pro geologickou ústřednu. Seznam odborné literatury: [1] Praktické zkušenosti s procesory ARM Cortex M3, (URL: <http://www.hw.cz>) [2] Kapacitní klávesnice (URL: <http://www.mcu.cz>) [3] Katalogové listy firmy ST (procesory STM32F207, STM32F407) Vedoucí BP/DP Ing. Lubomír Slavík, Ph.D. Konzultant BP/DP 2

Poděkování Poděkování Chtěl bych poděkovat Ing. Lubomíru Slavíkovi Ph.D. za spolupráci na konceptu celého zařízení, návrhu hardwarových částí a především pak za konzultace k různým částem řešení i úkolu jako celku. Dále pak Ing. Milošovi Hernychovi za konzultace a nápady ke koncepci řešení a v neposlední řadě také doc. Ing. Milanovi Hokrovi za všeobecnou podporu. Tento text vznikl za podpory projektu ESF CZ.1.07/2.2.00/07.0247 Reflexe požadavků průmyslu na výuku v oblasti automatického řízení a měření. 3

Abstrakt Abstrakt Teoretická část práce pojednává o obecném popisu návrhu koncepce geologické ústředny. Popisuje jednotlivé části zařízení celku a jeho budoucí vývoj. Důraz je kladen na uživatelské rozhraní zařízení. V druhé části jsou popsány praktické zkušenosti s vývojem software pro geologickou ústřednu. Software je vyvíjen v jazyce C a C++ pro mikroprocesory ARM CORTEX, konkrétně STM32. Poslední část popisuje řešení kapacitní klávesnice a vzniklé problémy s návrhem. Abstract The theoretical part of project is general description of the concept of geological data logger. This part describes the different parts of the device unit and its future development. Emphasis is placed on the user interface device. The second section describes practical experience in developing software for geological data logger. Software is developed in C and C ++ for ARM CORTEX microprocessors, specifically STM32. The last part describes how to solve capacitive keyboard and the resulting problems with the proposal. 4

Obsah Obsah Prohlášení... Chyba! Záložka není definována. Poděkování... 3 Abstrakt... 4 Obsah... 5 1. Úvod... 6 2. Koncepce zařízení... 8 2.1. Řídící deska... 8 2.2. Měřící moduly... 9 2.3. Uživatelské rozhraní... 9 2.4. Napájení... 10 2.5. Blokové schéma... Chyba! Záložka není definována. 3. Základní prvky zařízení... 11 3.1. Mikroprocesor... 11 3.2. Přístrojová krabice... 12 3.3. Displej... 12 3.4. Klávesnice... 12 3.5. SD karta... 13 3.6. Vývojová deska... 13 3.7. Adresace... Chyba! Záložka není definována. 3.8. Protokol Finet... 13 4. Software... 15 4.1. Vývojové prostředí... 15 4.2. Proprietární ovladače... 16 4.3. Multitasking... Chyba! Záložka není definována. 4.4. Paralelní interface displeje... 16 4.5. SPI ovládání displeje... 16 4.6. Grafická knihovna... 17 4.7. SDIO rozhraní... Chyba! Záložka není definována. 4.8. Implementace FAT32... 17 4.9. ADC s DMA... 18 5. Kapacitní klávesnice... 19 5.1. Atmel QTouch... 19 6. Závěr... 21 Literatura... 22 5

Úvod 1. Úvod Úkolem práce je koncepční návrh mechanického, elektronického a softwarového provedení, výroba prototypů a následná kusová výroba univerzálního měřícího celku pro on-line monitoring geofyzikálních jevů a procesů, včetně jednotlivých měřících modulů pro široký rozsah různorodých veličin a uživatelského rozhraní s důrazem na minimální spotřebu celého zařízení. Na úkolu spolupracuji s Ing. Lubomírem Slavíkem Ph.D., s předpokladem dokončení spolu s mojí diplomovou prací. Pro magisterský projekt jsem řešil dílčí část celého úkolu a to koncept řešení s důrazem na uživatelské rozhraní, včetně prvního prototypu návrhu. Požadavky na měřící systém jsou jeho modulárnost, ale jednotná koncepce pro všechny druhy měření, uživatelské rozhraní pro místní zásah do měřícího procesu a spotřeba energie odpovídající možnosti provozu na baterie. Komerčně dostupná řešení nabízejí jednotlivé požadované vlastnosti, ale nenašli jsme takové, které by mělo všechny. Uživatelské rozhraní by mělo být realizováno klávesnicí a displejem a rozhraním pro lokální uchovávání dat. Velmi důležitým požadavkem je také provoz zařízení v nepříznivých podmínkách. Na základě dohody jsem se v celé práci ujmul vývoje software a elektronické a mechanické konstrukci kapacitní klávesnice a spolupráce na koncepci řešení. Stěžejním rozhodnutím celé koncepce byla zcela přirozeně volba používané architektury mikroprocesoru a bohužel také volba konkrétní krabice pro naše zařízení, kde byl výběr značně problematický. S tím související následné volby dalšího postupu, jako je výběr vývojových prostředků a programovacího prostředí, programovacího jazyka a případného operačního systému reálného času. Nemalou část práce jsme pak také věnovali výběru displeje a volbě druhu klávesnice a její následné možnosti optimalizace. Celé zařízení je vyvíjeno jako co možná nejuniverzálnější, ale jeho aktuální vývoj je pro projekt dlouhodobého sledování geologických jevů v reálném prostředí granitů Českého masivu pro bezpečnostní výpočty a pro návrh požadavků, indikátorů a kritérií 6

Úvod na výběr vhodného prostředí pro hlubinné úložiště jaderného odpadu v české republice, který probíhá v bedřichovském tunelu a je veden doc. Ing. Milanem Hokrem Ph.D. Naše ústředna by měla sjednotit již probíhající systém měření. Podmínky této lokality jsou poměrně nepříznivé k elektronickým zařízením, je zde kolem 10 C a 100% vlhkost. Stěžejní funkcí zařízení v této konkrétní aplikaci je komunikace s nadřazenou řídící jednotkou vyvíjenou ing. Milošem Hernychem a databázovým systémem pro sběr všech dat v řídícím centru Technické univerzity v Liberci. Po konzultaci jsme se rozhodli pro přizpůsobení se stávajícímu protokolu a sběrnici instalované ve štole. 7

Koncepce zařízení 2. Koncepce zařízení Celé zařízení můžeme rozdělit do tří samostatných bloků a to hlavní řídící desku, jednotlivé měřící moduly a rozhraní pro uživatelský vstup. Z důvodů co největší modulárnosti jsme se rozhodli pro inteligentní měřící moduly osazené vlastním mikroprocesorem. Hlavní procesor pak bude na řídící desce. Komunikační rozhraní mezi hlavní procesorem a jednotlivými moduly je poněkud nestandardně sběrnice RS- 485 (důvody uvedu později). Pro komunikaci s nadřízenou řídící jednotkou jsme také zvolili RS-485 a mírně modifikovaný protokol FINET (stávající stav ve štole). 2.1. Řídící deska Základní deska bude obsahovat: hlavní mikroprocesor zdroje jednotlivých napětí komunikační interface rozhraní pro připojení měřících modulů rozhraní pro archivaci dat Principiálně by pak měla celá měřící ústředna fungovat tak, že hlavní procesor bude vyčítat stavy jednotlivých měřících modulů a dále s nimi nakládat v závislosti na konkrétní aplikaci. Pro účely sběru dat v tunelu bude procesor pouze čekat na dotazy od nadřazené řídící jednotky na sběrnici RS-485 a vracet hodnoty jednotlivých veličin. Případně je pak ještě archivovat na paměťové médium. Obecně pak bude jednotka připravena na použití různých komunikačních rozhraní, ať osazenými přímo na desce, nebo prostřednictvím zásuvných modulů. Jako základní alternativou pro sběrnici RS-485 bude bezdrátové rozhraní 2,4 GHz. V dalších stupních vývoje se pak počítá také s rozhraním ethernet a možností vyčítat lokální archiv na USB flash-disk. Deska bude poskytovat rozhraní pro měřící moduly a to jednak interní, ale i externí. 8

Koncepce zařízení Další úkol hlavního mikroprocesoru bude kontrola nad spotřebou energie celého zařízení. Na základní desce bude několik spínaných zdrojů, které budou poskytovat napájecí napětí 3,3 V, 12 v a 24 V. Všechny napájecí napětí bude možné zapínat a vypínat na základě rozhodnutí hlavního procesoru nebo žádostí jednotlivých měřících modulů. Stejně tak bude mít možnost hlavní procesor probouzet jednotlivé moduly a jednotlivé moduly případně probudit hlavní procesor. Všechna tato opatření by měla dát dostatek hardwarových prostředků pro maximální možnou úsporu energie. Zejména při asynchronním snímání stavů čidel a probouzení pouze důležitých bloků na co nejkratší dobu a pouze v situacích kdy se něco stalo. 2.2. Měřící moduly Jak jsem již naznačil, tak budou interní i externí měřící moduly, které budou k hlavnímu procesoru připojeny pomocí druhé společné sběrnice RS-485. Každý měřící modul bude osazen vlastním menším mikroprocesorem. Externí moduly budou napájeny pouze jedním 12V napětím a budou mít pouze rozhraní pro datovou komunikaci. Interní pak budou mít možnost využívat napětí 3,3 V, 12 v a 24 V, přičemž 3,3 v bude permanentních a od 12 v nebo 24 v si budou muset zažádat. Dále pak interní budou moct být probouzeni (a probouzet) hlavním CPU. Interní moduly budou moct být maximálně čtyři, externě se pak dají přidat další čtyři. Pro komunikaci mezi moduly a hlavním procesorem jsme zvolili sběrnici RS-485, právě proto, aby se sběrnice dala vyvést i mimo desku plošných spojů a také pro kompatibilitu s hlavní sběrnicí. Za těchto okolností nebude problém pouze softwarovou úpravou udělat z měřícího modulu samostatné zařízení připojitelné na hlavní sběrnici, samozřejmě s tím že bude umožňovat měřit pouze jednu veličinu a bude bez uživatelského rozhraní. 2.3. Uživatelské rozhraní Pod pojmem uživatelské rozhraní se v naší aplikaci rozumí klávesnice, displej a ukládání dat na paměťové médium. Pro realizaci klávesnice se nabízejí v podstatě jen dvě možnosti. Univerzální fóliová klávesnice nebo vlastní konstrukci klávesnice kapacitní. Nakonec jsme se rozhodli pro druhou variantu s tím, že jsem na sebe vzal 9

Koncepce zařízení kompletní návrh jak HW, tak SW i mechanického řešení. Klávesnice musí být podsvícená (v tunelu je úplná tma). 2.4. Napájení Celé zařízení počítá se dvěma možnostmi napájení. První je 13,6 v z napájecího zdroje (230 V/13,6 v nebo 24 V/13,6 V) s možností napájení zálohovat 12 v olověnou baterií. Druhá možnost je napájení z baterie a pro větší výdrž a minimální samovybíjení jsme zvolili moderní baterii LiFePO4. Primárně se také počítá, že v případě připojení na sběrnici RS-485 bude zařízení napájeno ze souběžně vedené napájecí větve a bateriové napájení se využije při bezdrátovém přenosu dat. 10

Základní prvky zařízení 3. Základní prvky zařízení 3.1. Mikroprocesor Stěžejní část celého projektu je mikroprocesor. Zvolili jsme architekturu ARM Cortex M3/M4. Zejména z důvodu nezávislosti jádra na výrobci, jeho rozšířenost a v neposlední řadě také výkon. Konkrétně jsme vzali SMT32 od firmy ST. Jedná se o 32- bitový mikroprocesory pracující rychlostí až 210 MIPS ve spolupráci se signálovým procesorem. Původně jsme začali vývoj s STM32F2 jako hlavním CPU a s STM32L1 jako procesorem pro moduly. V souvislosti s tím jsme pořídili vývojovou univerzální desku osazenou STM32F207IG na které jsem prozatím většinu software ladil. Později jsme se rozhodli základní desku postavit na výkonnějším STM32F407. 3.1.1. STM32F2 Většina software je teď napsaná pro STM32F207IG s jádrem CORTEX M3. Jedná se o 176 nožičkový procesor s 1 MB paměti flash a 128 KB RAM, paralelním rozhraním pro přídavnou paměť a paralelně řízený displej. Rozhraním Ethernet a Full Speed USB (i USB Host). Rozhraním SDIO pro připojení SD karty a samozřejmě řadou dalších standartních periférií jako jsou 4x USART (s maximální rychlostí 7,5 Mb/s), 3x SPI (s maximální rychlostí 30 Mb/s), 16-ti kanálové DMA, 12-bitový AD i DA převodník (až 6 MSPS), 17 časovačů a obvod reálného času s podporou kalendáře a možností zálohy oddělenou baterií. Navíc procesor obsahuje paralelní rozhraní pro připojení CMOS kamery, hardwarový kalkulátor CRC a pravý generátor náhodných čísel. Maximální taktovací frekvence je 120 MHz s dosažením až 150 MIPS. 3.1.2. STM32L1 Pro měřící moduly jsme zvolili podstatně méně výkonný procesor, ale se zachováním stejného jádra. Konkrétně STM32L152 ve 48 nožičkovém provedení. Procesor běhá na 32 Mhz, paměť flash je maximálně 128 KB a RAM 16KB. Byť se jedná o podstatně slabší procesor většinu běžných periférií si zachovává, chybí mu pouze paralelní rozhraní pro displej, kameru, generátor náhodných čísel a Ethernet. Cenově je srovnatelný s 8-bitovými CPU, ale možnostmi je o úroveň výše. 11

Základní prvky zařízení Důležitým faktorem je spotřeba, která se pohybuje okolo 233 µa/mhz a ve stand-by módu pouze 300 na. 3.1.3. SMT32F4 Pro hlavní desku jsme nakonec zvolili ještě o něco výkonnější procesor z řady STM32F4, konkrétně STM32F407 s jádrem CORTEX M4. Procesor kromě vyššího výkonu (210 MIPS) navíc disponuje signálovým procesorem a FPU (jednotkou pro operace s plovoucí řádovou čárkou). Varianta byla volena spíše s výhledem do budoucna, aktuálně nám to konkrétní výhody patrně nepřinese. 3.2. Přístrojová krabice Paradoxně je největším problémem sehnat nějakou vyráběnou krabicí, do které by se mohla elektronika instalovat. Do užšího výběru se nám dostalo asi 40 různých krabic, ale žádná z nich nebyla optimální. Nakonec jsme zvolili krabici firmy Fibox o rozměrech 215x315 cm a hloubce 17 cm, s tím že se postaví na šířku. Krabice se doplní o tzv. inspekční okno, pod které přijde displej s klávesnicí. 3.3. Displej Výběr displeje je také poměrně problematický, potřebujeme dostatečně veliký monochromatický podsvícený displej s minimální spotřebou. Na výběr máme mezi menším displejem, ovládaným pomocí SPI a poměrně nízkou spotřebou a větší paralelně řízený displej, ale s vyšší spotřebou a nutností 15 v napájení. Displej bude připojen k hlavnímu procesoru. Na displeji je potřeba psát text a vykreslit jednodušší grafiku jako například názorné rozmístění senzorů. 3.4. Klávesnice Důvody proč jsme zvolili kapacitní klávesnici, jsou zejména možnost zakrytí sklem a umístění elektroniky uvnitř krabice, možnost s minimálními náklady vytisknout vlastní layout a mít klávesnici na míru. Udělat profesionální vzhled v "domácích podmínkách" a v neposlední řadě absence jakéhokoliv mechanického prvku. 12

Základní prvky zařízení Klávesnice bude předávat informace o svém stavu (stisku kláves) hlavnímu procesoru. Pravděpodobně pomocí SPI nebo řídícími signály GPIO. Měla by obsahovat číselnou klávesnici a ovládací prvky jako jsou šipky, případně kontextová tlačítka. 3.5. SD karta Zvolili jsme microsd kartu. Slot bude umístěn na základní desce a k procesoru připojen prostřednictvím SDIO rozhraní (hardwarová periferie). Sloužit bude k lokálnímu ukládání dat, jako záloha a v případě autonomního provozu ústředny v jiné aplikaci i jako primární úložiště. Na kartě by měl být souborový systém pro snadné nahrání dat do PC. 3.6. Vývojová deska Vývojová deska, kterou jsme zakoupili, je Keil MCBSTM32F200. Osazená je procesorem STM32F207IG. Na desce je barevný TFT displej s rozlišením 320x240 bodů, externí paměť (8MB Flash, 512 MB NAND Flash, 2 MB RAM, 8 KB EEPROM). EEPROM je navíc kompatibilní s NFC technologií. Dále deska obsahuje fyzické rozhraní sítě Ethernet, řadič USB, CAN interface, RS232, podporu MicroSD karet, akcelerometr a digitální kompas, audio rozhraní, digitální mikrofon a kameru. 3.7. Protokol Finet FINET je binární protokol s pevným rámcem (úvodní a ukončovací znak) určený pro přenos po duplexních i poloduplexních komunikačních kanálech. Komunikaci vždy navazuje nadřízený systém na principu dotaz - odpověď. Stanice odpovídá na každý dotaz pro ni určený. Důležitým parametrem je doba označená jako klid na lince. Ta je podmínkou pro rozeznání začátku bloku dat. Obvykle je nastavena na trojnásobek doby potřebné k odeslání jednoho bytu. Tato prodleva je nutná jak na straně SLAVE mezi přijetím dotazu a odesláním odpovědi, tak i na straně MASTER po přijetí odpovědi před vysláním dalšího dotazu. Druhým časovým parametrem je maximální doba mezi jednotlivými byty zprávy. Po jejím vypršení je zbytek zprávy ignorován a čeká se na příchod nové zprávy (SLAVE) nebo se vyšle opakovaný dotaz (MASTER). Obvyklé nastavení komunikačního portu je 19200 b, 8 bitů, žádná parita, 1 stop bit a žádné řízení toku dat. 13

Základní prvky zařízení 3.7.1. Komunikační rámec Směr MASTER -> SLAVE - Zpráva (dotaz) bez datového pole SD1 DA SA FC FCS ED Směr MASTER -> SLAVE - Zpráva (dotaz) s datového pole SD2 LE LER SD2R DA SA FC DATA FCS ED Směr SLAVE -> MASTER - Odpověď bez datového pole - krátké potvrzení SACK Směr SLAVE -> MASTER - Odpověď bez datového pole SD1 DA SA FC FCS ED Směr SLAVE -> MASTER - Odpověď s datovým polem SD2 LE LER SD2R DA SA FC DATA FCS ED Směr SLAVE -> MASTER - Negativní odpověď SD2 LE LER SD2R DA SA FC ER1 ER2 FCS ED 3.7.2. Znaky komunikačního rámce SD1 úvodní znak 1, pevná hodnota $10 SD2 úvodní znak 2, pevná hodnota $68 LE délka dat, vlastní délka dat + 3 (DA,SA,FC) LER opakovaná délka dat SD2R opakovaný úvodní znak 2, pevná hodnota $68 DA cílová adresa zprávy SA zdrojová adresa zprávy DATA vlastní předávaná data (pro vyšší vrstvu) FCS kontrolní součet jako bytový součet DA+SA+FC+ DATA modulo 256. ED koncový znak, pevná hodnota $16 SACK krátké potvrzení, pevná hodnota $E5 14

Software 4. Software Software je vyvíjen pro dva procesory, v další etapě se pak přejde ještě ke třetímu, ale vzhledem k použití ovladačů a stejné architektury je software téměř bez úprav přenositelný a není tedy úplně podstatné, na čem je momentálně. Na STM32F2 je vyřešeno: Multitasking. Obsluha SD karty pomocí periferie pro SDIO operace a DMA. Plná implementace souborového systému FAT32 pomocí knihovny FatFs. Obsluha paralelně řízeného barevného TFT displeje. AD převodník pracující s DMA. Sériová komunikace s PC. Na STM32L1 je vyřešeno: Zpracování řídících signálů kapacitní klávesnice Řízení menšího monochromatického displeje ovládaného pomocí SPI. Grafická knihovna umožňující vykreslování a mazání obdélníku a textový výstup pomocí fontu importovaného z MS Windows (možnost importu libovolného fontu, případně i včetně diakritiky). 4.1. Vývojové prostředí Pro vývoj software jsem zvolil vývojové prostředí firmy CrossWorks CrossStudio for ARM. Programovací jazyk kombinaci C a C++. Přičemž v C jsou většinou knihovny třetích stran a svůj kód se snažím spíše psát v C++. C++ určitě nabízí větší pohodlí, ale jaký jazyk bude nakonec převážně používán zatím nevím. Vývojové prostředí mimo jiné nabízí vlastní multitasking, který také využívám. Jako programátor a debugger používám J-Link od firmy SEGGER, který disponuje jednak rozhraním JTAG tak i redukovaným rozhraním SWD. 15

Software 4.2. Proprietární ovladače Za velmi efektivní z hlediska vývoje považuji proprietární ovladače od firmy ST. Více či méně za nás obstarají fyzický přístup do registrů pomocí C-funkcí. Ovladače jsou ve formě sady souborů se zdrojovými kódy a hlavičkových souborů. Bylo poměrně problematické je importovat do projektu v prostředí CrossStudio, ale nakonec se to povedlo. Dalším přínosem je také C soubor, který kompletně obstará nastavení hodinového zdroje. Nastavení u Cortexu je poměrně rozsáhlé, protože lze různě taktovat jednotlivé skupiny periférií. Soubor lze pomocí nástroje od ST automaticky vygenerovat na základě nastavení v grafickém prostředí. Součástí sady ovladačů jsou také knihovny, které pomocí ovladačů dokáží už ovládat konkrétní připojené zařízení k procesoru, jako například paměť EEPROM pomocí I2C, knihovna pro zápis a čtení dat na/z SD karty využívající SDIO rozhraní apod. 4.3. Paralelní interface displeje Paralelní rozhraní displeje jsem vyzkoušel na vývojové desce osazené barevným TFT displejem. Procesor STM32F2 obsahuje jednotku FSMC (flexible static memory controller), která umožňuje přímé připojení displeje a přímí zápis do jeho paměti. Pro jeho ovládání jsem použil knihovnu od firmy ST, která v sobě sdružuje grafické funkce i výpis textu na displej. Text je bohužel omezen pouze na jediný font a to neproporcionální. Příklad zápisu textu do řádku: sprintf(text," ADC = %d,%d v ",v,mv); LCD_DisplayStringLine(LINE(6),text); 4.4. SPI ovládání displeje Pro ovládání menšího displeje jsem si napsal vlastní knihovnu, která využívá pouze ovladače rozhraní SPI. Displej je k procesoru připojen rozraním SPI, jedním resetovacím pinem a pinem určující režim příkazů nebo režim dat. V režimu příkazů může procesor posouvat kurzorem, zapínat displej a nastavovat jeho vlastnosti. Displej má rozlišení celkem 102 x 64 bodů a je rozdělen na 16

Software celkem 102 x 8 buněk v paměti o velikosti osmi bitů. To znamená, že jeden bajt v paměti displeje představuje jeden sloupec osmi bodů na displeji. Zápis bajtu se provádí v datovém režimu a pozice ukazatele se automaticky inkrementuje o jeden sloupec doprava. Ukazatel může mít celkem 102 pozic na souřadnici X a 8 pozic na Y. 4.5. Grafická knihovna Rozhodl jsem se napsat si vlastní jednoduchou grafickou knihovnu, protože ta od ST nebyla úplně vyhovující. Největší problém byl v tom, že na displej můžu zapisovat vždy pouze po osmi bodech v daných souřadnicích. Pro velikost písma například 10 bodů bych při přímém zápisu na displej musel jedním řádkem obsadit dva osmibodové řádky a plýtvat místem. Problém jsem vyřešil tím, že jsem si vytvořil pole bajtů v paměti RAM, do které lze zapisovat pomocí logického součtu a neovlivňovat tím okolní body a potom nahrát celé pole do displeje. Tímto způsobem jsem docílil toho, že můžu cokoliv začít vykreslovat v libovolném bodě displeje. 4.6. Implementace FAT32 Jako souborový systém jsem zvolil FAT32 a pro jeho implementaci knihovnu FatFs. Jedná se o kompletní FAT32 včetně podpory procházení a vytváření adresářové struktury a dlouhých názvů souborů. Knihovna je nezávislá na architektuře. Pro implementaci je nutné pouze vytvořit těla funkcí pro spodní vrstvu, tzn. fyzický zápis do paměti. Potom již lze používat API knihovny pro čtení, vytváření, zapisování i mazaní souborů a složek, které se velmi podobá standartním funkcím pro práci se souborem v prostředí MS Windows. Proměnná rc nese informaci o úspěšnosti vykonávané funkce. f_open otevře soubor, argumentem funkce je struktura popisující soubor (zatím prázdná), název souboru a způsob jeho otevření. f_close soubor uzavírá. Funkce f_write zapisuje do souboru a f_lseek posouvá začátek zápisu o daný počet znaků, v tomto případě na konec souboru. To proto, že knihovna neumí otevřít soubor pro zápis na konec souboru. Příklad funkce, kterou knihovna volá při zápisu do paměti: 17

Software 4.7. ADC s DMA AD převodník jsem nastavil spolu s DMA na kontinuální převod analogového napětí na digitální hodnotu. Vzhledem k DMA se o převod kromě inicializace nemusím starat, hodnotu převodu mám vždy k dispozici v předem určené proměnné. 18

Kapacitní klávesnice 5. Kapacitní klávesnice 5.1. Atmel QTouch Aktuální stav je realizován knihovnou pro kapacitní klávesy QTouch firmy Atmel. QTouch umožňuje implementaci algoritmu pro vyhodnocení dotyku (zvýšení kapacity) do většiny svých procesorů. Použil jsem 8-bitový procesor, který dokáže obsloužit až 12 kláves. Procesor obstarává pouze kapacitní klávesnici a informaci o stavu dává hlavnímu procesoru pomocí řídících signálů. Jediným problémem je vysoká spotřeba celé klávesnice, která se pohybuje kolem 10mA. Při návrhu jsem počítal s úsporným módem, ve kterém by byla aktivní pouze jedna klávesa, a její stav by se kontroloval s nižší frekvencí, takže by se pro probuzení zařízení musela jedna klávesa déle podržet. Spotřeba pak měla výrazně klesnout. Po fyzické realizaci a vysoké spotřebě za všech možný okolností, jsem v dokumentaci procesoru dohledal, že je problém s nedefinovaným stavem pinu, se kterým se společně s knihovnou Qtouch nedá nic udělat. Předpoklad dalšího vývoje je implementace knihovny od firmy ST do hlavního procesoru a klávesnici doplnit o jednoúčelový obvod kapacitního tlačítka, který by se staral pouze o "probouzecí" tlačítko (z důvodu spotřeby právě jen jedno). Spotřeba ve vypnutém stavu by se pak měla pohybovat kolem 50uA a to bude vzhledem k ostatním úkolům ústředny zanedbatelné. 19

Kapacitní klávesnice Na povrchu elektrod kláves je led dioda, celá klávesnice, včetně diod se zalije průsvitnou zalévací hmotou určenou pro rozptyl světla a celek se překryje fólií s potiskem, který bude prosvícen diodou. V ideálním případě bude součástí desky i displej pro zařízení a bude tvořit kompaktní celek, který se nalepí na inspekční okno v krabici. Obrázek 1 - Zapojení QTouch 20

Závěr 6. Závěr Zadání práce, tedy uživatelské rozhraní geologické ústředny bylo splněno. Výsledkem práce je řada nástrojů a postupů, které jsou použitelné pro další vývoj kompletního software celé ústředny. Z hlediska úkolů této části zůstává jediným problémem vysoká spotřeba klávesnice. Nejpravděpodobnější další postup bude pokus implementovat kapacitní knihovnu od firmy ST do mikroprocesoru STM32 a klávesnici doplnit o takzvané wake-up tlačítko, které procesor probudí a ten teprve spustí kapacitní klávesnici. Tlačítko bude také kapacitní, ale obsluhováno jednoúčelovým obvodem s nízkou spotřebou pracující pouze s jedním tlačítkem. Osobní přínos celé této práce je přechod z architektury AVR na ARM. Výkon a paměťové prostředky 32bitových procesorů se jeví jako zbytečný komfort, ale na druhou stranu právě tyto faktory mohou celý vývoj značně zpříjemnit. Stejně tak je markantní rozdíl v rychlosti debuggeru a celkové koncepci řešení naprogramování procesoru. 21

Literatura Literatura [1] Reference manual for STM32F4 [online]. [cit. 2012-05-10]. http://www.st.com/internet/mcu/subclass/1521.jsp [2] Reference manual for STM32F2 [online]. [cit. 2012-05-10]. http://www.st.com/internet/mcu/subclass/1520.jsp [3] Reference manual for STM32L1 [online]. [cit. 2012-05-10]. http://www.st.com/internet/mcu/subclass/1376.jsp [4] Atmel QTouch [online]. [cit. 2012-05-10]. http://www.atmel.com/products/touchsolutions/touchsoftware/default.aspx [5] CrossWorsk manual [online]. [cit. 2012-05-10]. http://www.rowleydownload.co.uk/arm/documentation/index.htm [6] SEGGER J-Link manual [online]. [cit. 2012-05-10]. http://www.segger.com/j-link-edu.html 22