Současné trendy vývoje mikrořadičů

Současné trendy vývoje mikrořadičů

V pracovním životě technika - vývojáře  se objevují rozhodnutí, která lze popsat jako ryze „emotivní“. Současní výrobci programovatelných obvodů na trh přináší velké množství nových a nových součástek, které umožňují stále co vylepšovat. Ani v možnostech profesionálů není mít celou oblast novinek pod kontrolou.

Jednou z oblastí, v níž se vždy vyjadřují vyhraněné názory, je volba mikrořadiče. Většina vývojářů má vlastní, oblíbenou architekturu a návrh změny se často rovná kacířství. Technik bude často schopen vyřešit konstrukční problémy překvapivě rychle, protože spoléhá na dokonalou znalost konkrétní architektury, instrukčního souboru mikrořadiče a na shromážděnou zásobu programů a algoritmů vyvinutých pro předchozí projekty. Naproti tomu znamená rozhodnutí o změně architektury nákladové i časové zatížení, protože vývojový tým se musí učit. Takovéto úvahy přispěly k úspěchu nejrozšířenějších architektur mikrořadičů a procesorů, jakými jsou např. řady 80C51 nebo ARM.

Tuto přirozenou setrvačnost mohou vyvažovat dva faktory:

Prvním je výkon a rozsah funkčního vybavení aktuální „oblíbené“ architektury. Jestliže konkrétní řada nedokáže poskytnout výpočetní výkon požadovaný novou aplikací nebo nemá variantu s tou „pravou„ kombinací periferních zařízení, není moc z čeho vybírat, a je tedy nutno se poohlédnout po řešení někde jinde.

Druhým faktorem je rostoucí tendence k programování ve vyšších jazycích, zejména v jazyku C, což umožňuje jistou míru přenosnosti kódu a knihoven a představuje praktičtější řešení při úvahách o použití jiné řady mikrořadičů.

Bez ohledu na motivaci ke změně by se měla brát v úvahu jednoduchost, s níž lze dosavadní duševní vlastnictví přenést do nové architektury. To znamená zajistit, aby nová architektura měla ty správné vývojové nástroje a podporu. Cena této podpory v minulých letech klesla a dnes se považuje za samozřejmé, že dodavatelé mikrořadičů poskytnou alespoň nástroje na základní úrovni. Přesto zůstává nutné zajistit dostupnost a kvalitu nástrojů od jiných dodavatelů, např. překladačů jazyka C, emulátorů a programátorů. Také linka podpory a  servis se mohou ukázat jako nedocenitelné. Stojí za to vybrat distributora nabízejícího přístup k technikům zabývajícím se praktickými aplikacemi, kteří důvěrně znají výrobky a absolvují pravidelná školení, aby drželi krok s nejnovějším vývojem.

Osmibitové mikrořadiče mohou pohodlně zvládat většinu vestavěných aplikací. Mnohé jsou založeny na známých zavedených architekturách, jako je např. 80C51. Vzhledem k tomu, že osmibitová technologie se používala delší čas, je v současné době k dispozici obrovská nabídka mikrořadičů – od levných pomalých náhrad čtyřbitových mikrořadičů až po zařízení s desítkami MIPS (Microprocessor without Interlocked Pipeline Stages, mikroprocesor bez spřažených zřetězených stupňů) – např. série Atmel AVR, která dosahuje instrukční cyklus 50 ns při taktování s krystalem 20 MHz.

V případě aplikací vyžadujících větší výpočetní výkon bude výběr pravděpodobně zúžen na 16- a 32bitová zařízení. Druhý typ, často založený na jádru ARM (Advanced Reduced Instruction Set Computer Machine, zařízení s progresivním počítačem s redukovanou sadou instrukcí) nebo MIPS, začíná ovládat tento tržní sektor jednoduše proto, že dodavatelé mohou nabízet 32bitový výkon za konkurenční ceny. Zvýšený výkon 32bitového zařízení znamená pro uživatele vpodstatě nulové zvýšení ceny.

Dlouhodobé trendy směřující k fakticky standardním jádrům (např. 80C51, ARM, MIPS) vedly dodavatele k hledání jiných faktorů, než je čistý výkon; podle těchto faktorů odlišují dodavatelé své výrobky. Jedním ze způsobů, jakým toto uskutečnili, bylo poskytování podpory orientované na aplikace prostřednictvím specificky nakonfigurovaného mikrořadiče pro hardware (a někdy softwaru), který je třeba pro konkrétní cílový segment nebo aplikaci. Například společnost Atmel má ve svém sortimentu zařízení určená k použití v různých aplikacích, jako jsou např. inteligentní čtečky karet, dekodéry MP3, nabíjení baterií a systémy pro zadávání údajů bez tlačítek.

Ve skutečnosti je výběr součástek do značné míry ovlivněn kombinací periferních zařízení na čipu bez ohledu na to, zda jsou zařízení prodávána s orientací na konkrétní aplikace. Většina současných řadičů nabízí široký výběr vstupních či výstupních portů, časovačů a sériových rozhraní. Ale také lze najít mnoho dalších periferních zařízení integrovaných na čipu, včetně síťových rozhraní Ethernet 10/100 Base-T, sběrnicových rozhraní CAN, USB, vysokofrekvenčních vysílačů a grafických ovladačů. Integrování těchto bloků na čipu může nejen snížit cenu systému díky eliminaci externích součástek, ale také ušetřit čas a práci na vývoj, neboť poskytuje řešení připravené k integraci.

S počtem vstupů či výstupů a periferních zařízení na čipu souvisejí konfigurace pouzder a vývodů. Je samozřejmě důležité zvolit zařízení s dostatečným počtem vstupních a výstupních vývodů pro danou aplikaci a vzhledem k tomu, že mikrořadiče se dodávají v mnoha typech pouzder od malých SO8 až po BGA s mnoha vývody, je z čeho vybírat. Externí sběrnice zvyšují počet vývodů, protože vyžadují další vývody pro rozhraní. Jedná se o kompromis ve prospěch potřebného efektivního přenosu dat ze zařízení a do zařízení, který zvyšuje velikost a cenu. Při výběru pouzdra je dále nutné zjistit, zda zvolená řada obsahuje zařízení vyhovující novým směrnicím, které zakazují používání olova a jiných nebezpečných látek.

Architektura paměti je vždy kritickým faktorem v konstrukci systémů založených na mikrořadičích. Umístění paměti na čipu nebo mimo něj a požadovaná velikost mohou být klíčovými údaji jak pro určování celkových nákladů na postavení systému, tak pro jeho rychlost. Existují tři hlavní typy paměti, které jsou důležité při výběru programové paměti – lze vybírat součástky s pamětí flash, OTP (One-Time Programmable, jednorázově programovatelný), s ROM nebo bez ní, datové paměti (SRAM na čipu nebo externí SDRAM) a stálé paměti na ukládání dat (EEPROM nebo flash).

Stále větší počet zařízení má všechny tři typy pamětí na čipu. Například řada Atmel AVR se dodává s pamětí flash na uložení programu o velikosti 1 až 128 kB, integrovanou SRAM na data a několika bajty EEPROM na uložení dat, jako jsou konfigurační informace a sériová čísla. Díky těmto charakteristikám je řada AVR velmi oblíbená ve všeobecných aplikacích v průmyslovém a bezpečnostním segmentu.

Paměť flash předstihla v tradičních aplikacích OTP. Flash poskytuje vývojovému týmu flexibilitu pro vykonávání změn kódu později během vývojového cyklu a umožňuje programování v systému (ISP – In-System Programmable). V tomto výrobním přístupu se na desku s plošnými spoji připájí „prázdný„ mikrořadič a naprogramuje se později v systému. Podobný přístup umožňuje také následné přeprogramování, což usnadňuje aplikace v provozu. Použití segmentovaných bloků flash dovoluje mikrořadiči přeprogramovat jeden segment procesem řízeným z jiného segmentu, aniž by se přerušilo napájení. Tuto funkci podporují obě řady Atmel 89C51 a MegaAVR .

Ačkoliv většina uživatelů s hromadnou výrobou obvykle volí zařízení s pamětí ROM kvůli jejich nízké ceně bezpečnosti kódu, razí si také paměť flash cestu do této arény prostřednictvím služeb továrního programování. Princip spočívá v tom, že výrobce mikrořadiče dodává předem naprogramovaná zařízení přímo do výrobního závodu zákazníka, což zkracuje dobu nezbytnou k realizaci a vylučuje nákladné změny kódu, které se týkají součástek s pamětí ROM.

Zařízení s pamětí ROM si také zachovávají tradiční pozici v aplikacích s bateriovým napájením, protože dokážou tolerovat velmi malá provozní napětí (kolem 0,9 V). Avšak i zde se uplatňují mikrořadiče s pamětí flash, která nyní vydrží pokles provozního napětí (v případě zařízení Atmel AVR až na 1,8 V).

Pokud jde o datovou paměť, je hlavním uvažovaným faktorem (kromě vlastních požadavků aplikace na data) vývoj kódu. Kompilátory jazyka C mohou být velmi náročné na velikost RAM jak pro ukládání proměnných a ukazatelů, tak pro zásobník.

Dalším důležitým faktorem při výběru konfigurace paměti je dostupnost různých variant v rámci stejné řady. Optimální je zvolit takové zařízení z určité řady, které může nabídnout více paměti, než bude podle vývojového týmu třeba, a to pro případ, že výsledný software bude vyžadovat více paměťového prostoru, než se předpokládalo. A naopak se může stát, že během vývoje projektu bude možné přejít k menší konfiguraci paměti, bude-li kód menší nebo pokud bude v budoucnu nutná „ořezaná“ verze aplikace.

S ohledem na všeobecné rozšiřování přenosného vybavení si vývojáři stále více uvědomují spotřebu energie různých zařízení. Hodnocení spotřeby mikrořadiče není obvykle jednoduché a vyžaduje, aby se technik nejprve zaměřil na potřebný příkon při dané taktovací frekvenci, jež je nutný pro provoz aplikace. Avšak většina současných mikrořadičů má různé režimy nečinnosti a spánku a je třeba pečlivě zvážit způsob maximálního využití těchto režimů ke snížení spotřeby.

Poslední a možná nejdůležitější faktor pro výběr mikrořadiče je cena. Stejně jako v případě všech ostatních faktorů není ani hodnocení ceny často tak jednoduché, jak by se zdálo. Je-li implementace jednoho zařízení výrazně jednodušší než implementace jiného zařízení, bude možná nutné obětovat cenu součástek na úkor času technika. Funkce integrované na čipu jdou v neprospěch nákladů na vybavení; při použití externích součástek je zase nákladnější montáž. Poněkud obtížnější je vypočítat cenové aspekty použití technologie, jako je např. flash – neboť, jak ocenit možnost pozdějších změn kódu nebo nabídku aktualizace v provozu?

 

Zdroje
  • JAN, Janeček. Projektování mikropočítačových systémů. Vyd. 2. Praha: ČVUT, 1999, 132 s. ISBN 80-010-1289-1.
  • [online]. [cit. 2015-01-30]. Dostupné z: http://elektrotechnika.vesele.info/rubriky/vyvoj-pocitacu/vyvoj-pc
Zamysli se
  • Zkus se zamyslet proč existují různé architektury konstrukce mikrořadičů a podle jakých kritérií se technik rozhoduje pro volbu toho "správného" mikrořadiče pro  novou konstrukci digitálního obvodu?