česky english Vítejte, dnes je čtvrtek 21. listopad 2024

Ultrazvuková měření s MCU PIC® a AVR®

DPS 1/2019 | Články
Autor: Gregor Sunderdiek, Microchip Technology

S měřením využívajícím ultrazvukových vln se dnes potkáváme na každém kroku. Jeho hlavní výhoda spočívá v bezkontaktním přístupu a také schopnosti detekovat prakticky jakýkoli materiál, takže jej oceníme na různých úrovních. Ze všech aplikací vybíráme např. měření kapalných nebo též pevných látek v silech či dalších nádobách s cílem zabránit jejich přetečení, příp. jen zkontrolovat aktuální stav během plnění. Jinou oblast působnosti pro ultrazvuková měření zase představuje počítání pohybujících se předmětů. Představit si můžeme např. sčítání láhví na linkách plnicích sodu. V automobilech se s ultrazvukem pro změnu potkáváme při parkování, kdy čidlo detekující vzdálenost měří odstup vozidla od překážky – dalšího auta, zdi apod. A to je pouze několik málo příkladů možného využití ultrazvukového měření v současné praxi. Zmíněnou technologii totiž dokážeme nasadit i v celé řadě dalších aplikací.

Vše se bude odvíjet od měření vzdálenosti, resp. stanovení rozmezí mezi ultrazvukovým čidlem a dalším předmětem. Sledujeme tedy dobu šíření signálu od jeho vyslání až po opětovnou detekci přijímačem na základě odrazu od konkrétní překážky. Jinými slovy jde o čas, který bude přímá a odražená vlna z obr. 1 potřebovat k překonání vzdálenosti r. Z takového údaje pak délku trasy r dokážeme určit, protože známe rychlost šíření ultrazvukového signálu ve vzduchu (rychlost zvuku). Výpočet na první pohled nevypadá vůbec složitě, nicméně dobu šíření ultrazvukové vlny podmiňuje řada dalších faktorů.

Ultrazvuková měření s MCU PIC® a AVR®

Rychlost šíření zvuku totiž z velké části ovlivňuje teplota vzduchu, ve kterém se pohybujeme. Další vlivy pak vnáší vlhkost, tlak vzduchu, jeho proudění (pouze však silný vítr) a také konkrétní složení. Většina ultrazvukových měřicích senzorů je navržena do prostředí, ve kterém budou lidé schopni dýchat, tzn. přibližně s 21 % kyslíku, 78 % dusíku a zhruba jedním procentem zbývajících stopově zastoupených složek. U čidel navržených pro práci v takových podmínkách však nezaručíme stejnou činnost v prostředí s odlišným výskytem plynů, protože rychlost zvuku bude záviset na konkrétní situaci. Nejčastěji využívané kmitočty se pohybují v rozsahu 40 kHz, který již převyšuje slyšitelnou oblast od 20 Hz až do 20 kHz.

Měříme s 8bitovými MCU od Microchipu

Ultrazvuková měření bude možné provádět s řadou různých mikrokontrolérů (MCU) od společnosti Microchip. Vhodnými kandidáty se stávají jak 8bitové mikrokontroléry PIC® PIC16F1769 či 8bitové MCU AVR® ATtiny817.

Jedna z klíčových výhod vývoje s 8bitovými mikrokontroléry od Microchipu spočívá v přítomnosti periférií CIP nezávislých na jádru (Core Independent Peripheral). V aplikacích vystavěných okolo ultrazvukového měření lze periférie CIP využít k účinnému měření doby šíření signálu, bez nutnosti zapojení CPU (Central Processing Unit). Dokážeme tak snížit nejen celkovou výkonovou spotřebu systému, ale rovněž odlehčíme CPU a umožníme přitom vykonávat i jiné úkoly.

Další přednost spojovaná s perifériemi CIP se pak dotýká příkazů mezi jednotlivými perifériemi, které nezaberou ani jeden hodinový cyklus. Platit to bude jak pro mikrokontroléry PIC®, tak pro AVR®. Pokud se něco takového rozhodneme udělat bez periférií CIP, neobejdeme se přitom bez CPU. Potřebujeme tedy přerušení, jeho zpracování a teprve pak může příkaz směřovat k dané periférii. Celé to však zabere několik hodinových cyklů, zpomaluje systém a vyžaduje nepoměrně více energie.

Zapomenout ale nesmíme ani na výrazný prospěch plynoucí z menších softwarových nároků, protože díky mikrokontrolérům s perifériemi CIP vyřešíme více úkolů hardwarovou cestou. Méně práce se softwarem zároveň znamená jednodušší ověřování, a tudíž i menší riziko spojované s vývojem. A v kontextu výše uvedeného svá zařízení uvedeme na trh ještě rychleji.

Ať již tedy naše návrhy vystavíme na mikrokontrolérech PIC® nebo AVR®, periférie CIP nám poslouží k měření doby šíření, stejně jako ke generování, vysílání a také příjmu ultrazvukového signálu. Jakmile začnou periférie CIP jednou pracovat, není již ze strany CPU vyžadována za účelem vykonávání zmiňovaných úkolů žádná účast. Žadná přerušení, prostředky CPU, paměť SRAM nebo dlouhý běh programu – nic takového není pro měření doby šíření nutné. CPU pak do hry vstupuje pouze v okamžiku, kdy počítáme vzdálenost r a potřebujeme u toho vynásobit dobu šíření s rychlostí zvuku. Podrobnější technický popis celého procesu zájemci naleznou ve speciálních aplikačních poznámkách – viz také dodatečné zdroje vypsané níže.

Stojíme-li před návrhem systému ultrazvukového měření, může nám pomoci tabulkové srovnání obou mikrokontrolérů. ATtiny817 je jedním z nových MCU tinyAVR® představených koncem roku 2016, zatímco s mikrokontroléry PIC16F176x/7x výrobce přišel téhož roku dříve. V obou případech se tak jedná o nové rodiny součástek obsahujících periférie nezávislé na jádru, které umožní stanovit dobu šíření signálu bez užití CPU.

Aplikační poznámky

Společnost Microchip má k dispozici dvě aplikační poznámky popisující měření vzdálenosti s využitím ultrazvukových transceiverů. Jedna využívá 8bitových mikrokontrolérů PIC®, PIC16F1769, zatímco druhá bude stavět na 8bitových MCU AVR® ATtiny817. V obou případech se návrh odvíjí od periférií CIP, s nimiž dokážeme účinně změřit vzdálenost, využít k tomu ultrazvukových vln a udržet zároveň nejmenší možnou velikost kódu, včetně účasti CPU. V tabulce 2 sledujeme a srovnáváme požadavky na minimální paměť typu Flash, SRAM (Static Random-Access Memory) a také vstupy a výstupy I/O.

Ultrazvuková měření s MCU PIC® a AVR® 1

Jak ostatně vyplývá z tabulky 1, oba mikrokontroléry dostaly různé sady periférií. Druhá tabulka pak zachycuje požadavky každého MCU s ohledem na jejich aplikaci a paměť Flash nebo SRAM. Zmíněný kód zároveň počítá se zobrazením výsledků na displeji LCD či OLED. Měření doby šíření signálu se odehrává na základě periférií CIP, bez účasti CPU a také bez potřeby paměti SRAM. Instrukce pro inicializaci periférií CIP vyžadují jen velmi omezený počet bajtů paměti Flash. Stále tak bude možné optimalizovat kód a osadit přitom obvody příslušných rodin PIC® či AVR® s nižší hustotou paměti Flash. Pro obě řešení zde máme dostatek prostoru k rozšíření firmwaru a přizpůsobení odlišným komunikačním kanálům. Ultrazvukové čidlo tak bude možné provozovat v průmyslové síti nebo s volbou různých variant sériové komunikace.

Výhody obou řešení

V obou případech lze na základě ultrazvuku účinně měřit vzdálenost. Obvody PIC16F1769 dostaly řadu integrovaných analogových prvků, včetně dvou operačních zesilovačů. Ty jsou nezbytné pro příjem zeslabeného ultrazvukového signálu. Operační zesilovač tudíž zesiluje vstupující ultrazvukový signál tak, aby jej dokázal analogový komparátor detekovat. S takovou analogovou výbavou lze v rámci mikrokontrolérů PIC16F1769 snadno dosáhnout řešení s minimem vnějších součástek.

Obvody ATtiny817 lze zase využít s dvojicí vnějších operačních zesilovačů sloužících k příjmu ultrazvukového signálu. Takové desky je možné rovněž přizpůsobit na základě různých externích součástek, přesně s ohledem na odlišný záběr, příp. též konkrétní funkce.

Závěr

Díky nejširší nabídce 8bitových mikrokontrolérů ve své třídě může společnost Microchip podpořit řešení, která vyhoví požadavkům prakticky jakékoli aplikace stavějící na ultrazvukovém měření vzdálenosti. Periférie CIP nezávislé na jádru pak při stanovení doby šíření signálu vylučují potřebu zásahu ze strany CPU. Systém proto pracuje velmi efektivně a s evidentně malou výkonovou spotřebou.

Výrobce má kromě toho k dispozici jednoduše uchopitelný ekosystém zkracující celý vývojový cyklus. Obě série mikrokontrolérů PIC® a také AVR® jsou podporovány ze strany IDE (Integrated Development Environment) od Microchipu, MPLAB® X pro obvody PIC® a Atmel Studio 7 v případě prvků AVR®, nástrojů sloužících ke konfiguraci/inicializaci, MPLAB Code Configurator (MCC) pro MCU PIC® a Atmel Start pro MCU AVR® a také dalších nástrojů potřebných k vývoji, včetně vývojových desek a programátorů/ debuggerů. A nejen to. V aplikačních poznámkách pro obvody PIC16F1796 a ATtiny817 najdeme vše potřebné k tomu, abychom sami dokázali navrhnout měřicí aplikaci v ultrazvukovém spektru, příp. též detekovali přiblížení.

DALŠÍ DOSTUPNÉ INFORMACE

[1] AVR42779: ultrazvukové měření vzdálenosti nezávisle na jádru s obvody ATtiny817, http://ww1.microchip.com/downloads/en/appnotes/atmel-42779-core-independent-ultrasonic-distance-measurement-with-attiny817_applicationnote_avr42779.pdf

[2] Ukázka softwaru na stránkách start.atmel.com, http://start.atmel.com/#example/Atmel%3Acip_ultrasonic_distance%3A1.0.0%3A%3AApplication%3AAVR42779_Ultrasonic_Distance_Measurement%3A

[3] Dokumentace k obvodům ATtiny817, http://www.microchip.com/wwwproducts/en/attiny817

[4] AN1536: ultrazvuková detekce rozsahu s obvody PIC16F1769, http://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en566650

[5] Dokumentace k obvodům PIC16F1769, http://ww1.microchip.com/downloads/en/DeviceDoc/40001775B.pdf

[6] Periférie CIP nezávislé na jádru – přehled, http://www.microchip.com/design-centers/8-bit/peripherals/core-independent/overview