Vývojový kit STAX

28. September, 2011, Autor článku: Horínek František, Elektrotechnika, Študentské práce
Ročník 4, číslo 9 This page as PDF Pridať príspevok

Táto práca predstavuje novovyvinutú vývojársku platformu založenú na novej generácii 8-bitových mikrokontrolérov, určenú pre rapídny vývoj aplikácií. Platforma je univerzálna, modulárna a navrhnutá pre jednoduché použitie v sofistikovaných aplikáciách ako aj pre prvé pokusy v oblasti elektroniky bez predchádzajúcich znalostí s mikrokontrolérmi. Ako súčasť platformy boli vyvinuté rozsiahle softvérové knižnice zľahčujúce integráciu s hardvérom platformy. Vyvinutý hardvér a softvér bude vydaný pod open-source licenciou pre obohatenie študentskej a vedeckej komunity.

1. Úvod

V súčasnosti je na trhu množstvo vývojových platforiem určených pre rapídny vývoj aplikácii, ale iba pár z nich je dostatočne flexibilných na to, aby sa dali použiť v priamej produkcii v menšom počte sérií, predovšetkým kvôli veľkému rozmeru dosky plošných spojov a/alebo vysokej cene. Hlavný problém spočíva v tom, že moderné vývojové platformy sú zamerané viac na propagáciu produktov, vyvinutých vlastnou spoločnosťou a obvykle tak nesledujú potreby užívateľa. Ďalšie problémy vznikajú použitím proprietárnych vývojových nástrojov, ktoré obvykle preferujú konkrétny operačný systém a vyžadujú špeciálne nástroje, potrebné na samotné programovanie hardvéru. Kvôli týmto aspektom je užívateľ často nútený orientovať sa na kompatibilitu a je pri aplikovanom vývoji obmedzený rozsahom vývojovej platformy.


Obr. 1. Príklad použitia platformy: Senzor vlhkosti a teploty pôdy

Vzhľadom na súčasný stav bola vyvinutá doska plošných spojov s malými rozmermi, zameraná primárne na modularitu a flexibilitu samotného systému. Hlavným rozhraním je mini-USB konektor, slúžiaci na komunikáciu, programovanie a napájanie, dva 2×15 konektory so štandardnou roztečou 2.54mm, pre vstupno/výstupné rozhrania alebo rozširujúce dosky. Komponenty na doske môžu byť redukované na minimum v závislosti od aplikácie, čo umožňuje nízku výrobnú cenu. Doplňujúce funkcie môžu byť pridané prostredníctvom rozširujúcich dosiek.


Obr. 2. Hlavná doska(core) platformy

V spojení s hlavnou vývojovou platformou bolo vytvorených viacero modulov, ktoré môžu v spolupráci s počítačom vytvoriť doplnkové vývojové nástroje, akými sú osciloskop, logický analyzátor, funkčný generátor, multimeter, emulátor zberníc a ďalšie.

2. Návrh vývojovej platformy

Vývojová platforma je vhodným prostriedkom pre výuku a je postavená na novej generácii 8-bitových mikrokontrolérov architektúry AVR od firmy Atmel Corporation. Pri návrhu bol zvolený typ procesora Atxmega128a3[1,2], ktorý obsahuje 128KB pamäte typu flash a 8KB pamäte pre bootloader, 8KB pamäte RAM a 2KB pamäte EEPROM. Tento procesor obsahuje množstvo bežných modulov ako napríklad sedem modulov USART, sedem 16-bitových časovačov, tri sériové zbernice SPI a dve sérové zbernice I2C. Konverziu analógového signálu zabezpečujú dva 8-kanálové analógovo-číslicové prevodníky (ADC) s rýchlosťou až 2 Msps, schopné diferenčných meraní s programovateľným 2 až 64-násobným zosilnením. Ako doplnok ku ADC modulu, mikrokontrolér obsahuje jeden 2-kanálový číslicovo-analógový prevodník (DAC) s rýchlosťou 1 Msps.


Obr. 3. Bloková schéma platformy

Jednou z hlavných výhod tohto procesora je podpora pre aplikácie v reálnom čase pri využití udalostného systém, ďalšou je priamy prístup do pamäte (DMA). Softvérovo ovládaný udalostný systém umožňuje zmenou stavu rozhrania alebo modulu spustenie určenej akcie v jednom alebo vo viacerých rozhraniach bez nutnosti použitia CPU. DMA kontrolér umožňuje presun dát medzi rozhraniami alebo pamäťou na základe softvérovo nastaviteľného spúšťača, napríklad úspešný prenos bitov sériovým rozhraním po dokončení ADC konverzie.

Táto transakcia prebieha iba s minimálnou asistenciou CPU. Spojením týchto dvoch systémov sa dajú vytvoriť jednoduché slučky, napríklad nastavenie časovača na periodické vyvolávanie udalosti. ADC prevodník, citlivý na túto udalosť zaháji zakaždým, keď časovač dosiahne definovanú hodnotu, konverziu. Nakoniec sa výsledok konverzie uloží priamo do pamäte pomocou DMA po dokončení konverzie. Táto slučka prebieha iba s minimálnou účasťou CPU.

3. Riadiaci softvér

Vďaka použitiu open-source kompilátora GCC (GNU compiler collection), ktorý je priamo podporovaný výrobcom procesora, môžeme zabezpečiť multiplatformné prostredie pre aplikačný vývoj. Programovanie vývojovej platformy je vykonávané priamo cez virtuálny sériový port prostredníctvom USB pomocou funkcie bootloader, preto okrem zbernice USB nie sú potrebné žiadne iné externé nástroje. Podobne ako kompilátor sú i ostatné nástroje potrebné na vývoj založené na základe otvoreného zdrojového kódu „open-source“. Na celkový rozvoj platformy bol využitý Eclipse IDE (integrated development enviroment) v spojení z AVR Eclipse zásuvným modulom a ako programátor bola použitá aplikácia AVRDude[3].

Spolu s hárdverom bola navrhnutá a realizovaná komplexná softvérová knižnica, výrazne napomáhajúca integrácii  a urýchleniu vývoja. Ako primárny programovací jazyk bol zvolený jazyk C++. Úlohou knižníc je poskytnúť všetkým modulom inicializáciu rozhraní, spracovanie prerušení a základné vstupno/výstupné operácie.

4. Návrh rozširujúcich funkčných modulov

Pre zabezpečenie doplňujúcich funkcií boli navrhnuté, vyvinuté a zrealizované funkčné rozširujúce moduly na samostatných doskách plošného spoja. Konektor, slúžiaci na prepojenie hlavnej dosky s rozširujúcimi doskami je rozdelený na dve sekcie: užívateľskú a systémovú. Užívateľská sekcia prepojuje tri 8-pinové rozhranie, pričom ako doplnok štandardných vstupno/výstupných (GPIO) funkcií obsahujú prvé dva porty multiplexovaný vstup na ADC a analógový komparátor, tretí port môže slúžiť ako PWM výstup alebo ako špeciálny výstup určený pre pokročilé riadenie motorov (AWeX). Systémová časť slúži na prepojenie štandardných zberníc ako je SPI, TWI (I2C) a USART, taktiež sa tu nachádzajú piny na ovládanie systémových funkcii procesora a napájacieho zdroja.


Obr. 4. Alokácia pinov na vývojovej doske

4.1. Integrovaný logický analyzátor

Tento rozširujúci modul môže byť využitý v spojení s počítačom ako logický analyzátor, funkčný generátor alebo osciloskop. Maximálna vzorkovacia frekvencia logického analyzátora je 24 Msps. Vzorkovacia frekvencia osciloskopu a funkčného generátora je obmedzovaná hárdverom na 2 Msps na jeden kanál pre osciloskop a 1 Msps na knál pre funkčný generátor. Parametre tohto modulu sú plne postačujúce pre väčšinu meraní s potrebou nižšej presnosti.


Obr. 5. Modul logického analyzátora

4.2. Robotic/RC modul

Modul je vhodný pre robotické aplikácie alebo ako platforma pre R/C modely. Obsahuje jeden dvojosí(X, Z) gyroskop, jeden jednoosí (Z) gyroskop a jeden trojosí akcelerometer. Bezdrôtová komunikácia pomocou ZigBee modulu[4] s dosahom až 4 km je vhodná pre mnoho robotických a telemetrických aplikácii. Množstvo doplnkových externých senzorov môže byť pripojených pomocou desiatich analógových vstupov. GPS alebo GSM moduly je možné pripojiť cez dva USART konektory a tri TWI (I2C) konektory, ktoré môžu byť použité na pripojenie SMART senzorov. Rozširujúci modul môže byť použitá na dekódovanie a generovanie 8-kanálových PWM signálov pre servo-motory ktoré môžu byť využité ako pohonné jednotky.


Obr. 6. Robotic/RC modul s pripojenými servami

4.3. Modul batérie

Tento rozširujúci modul slúži pre batériou napájané aplikácie. Obsahuje jeden Litium-polymérový článok, ktorý dokáže napájať hlavnú dosku alebo rozširujúce dosky po dobu od niekoľkých hodín až po niekoľko dní v závislosti od použitej aplikácie. Batéria sa nabíja cez hlavný USB konektor pomocou obvodu na rozširujúcej doske.


Obr. 7. Modul batérie

4.4. Modul displeja

Pre priamu interakciu s užívateľom bol vyvinutý displej v podobe rozširujúcej dosky. Modul bol navrhnutý tak, aby sa dal použiť pre viaceré druhy displejov. Použité môžu byť 2×16 znakové displeje(BC1602A), 4×16 znakové displeje(BC104A), 4×20 znakové displeje (BC2004A, BC2004B, EADIP204) a 128×64 bodové displeje (EADOGM128, EADOGLI128) s  variabilnými možnosťami osadenia tlačidiel. Tlačidlá a displej sú pripojené na sériovú zbernicu TWI (I2C) pomocou expanderov, čím sa redukuje počet pinov, slúžiacich pre znakové displeje tohto modulu, čím je užívateľovi ponechaná väčšia flexibilita pre vývoj aplikácie. Modul tiež obsahuje jednoduchý zvukový signalizačný prvok.


Obr. 8. Modul displeja osadený najväčším znakovým 4×20 displejom BC2004B a štyrmi bočnými tlačítkami


9. Možné kombinácie displejov(modré) a tlačítok(zelené)

5. Záver

Navrhnutá platforma predstavuje vhodný prostriedok na vývoj špecifických užívateľských aplikácií, ako i pri procese výuky. Vďaka základnej koncepcii je možné integrovať platformu v mnohých aplikáciách, napríklad v špeciálnych meracích zariadeniach a zdrojoch. Nasledujúcimi cieľmi našej práce bude ďalší rozvoj hardvéru a softvéru platformy s plánovaných zverejnením vyvíjaných zdrojových kódov a hardverového návrhu pre verejnosť. Cieľom je tiež vytvorenie užívateľského fóra študentov, vedcov a nadšencov. Taktiež sa budeme snažiť naďalej optimalizovať platformu s modulmi tak, aby bol minimalizovaný počet komponentov a zjednodušil sa výrobný proces.

10. Odkazy na literatúru

  1. Atmel Corporation (2009), AVR XMEGA A manual,
    http://www.atmel.com/dyn/resources/prod_documents/doc8077.pdf (445 strán, revízia H)
  2. Atmel Corporation (2010), Atxmega64/128/256A3 manual,
    http://www.atmel.com/dyn/resources/prod _documents/doc8068.pdf (120 strán, revízia T)
  3. Jaakko Ala-Paavola (2006), Eclipse IDE for Embedded AVR Software Development,
    www.cs.hut.fi/Studies/T-106.530/2006/eclipse-avr.pdf (14 strán, verzia 0.2)
  4. NXP Laboratories (2010), Data Sheet: JN5139-xxx-Myy,
    http://www.jennic.com/files/support_files/JN-DS-JN5139MO-1v6.pdf (27 strán, verzia 1.6)

Spoluautorm článku je Martin Daříček,Katedra mikroelektroniky, Fakulta elektroniky a informatiky, Slovenská technická univerzita
Práca bola prezentovaná na Študentskej vedeckej a odbornej činnosti (ŠVOČ 2011) v sekcii Mikroelektronické systémy a získala Diplom dekana, ISBN 978-80-227-3508-7

Napísať príspevok