Jste zde

controlSUITE aneb pozoruhodné možnosti programování MCU

10_per.jpg

Článek přináší českou verzi přehledového dokumentu s názvem Product HOW TO:  Experience a new MCU software approach, jehož autorem je Michael Wei.

S neustále pokračující “digitalizací” našeho světa se v současné době setkáváme s mikrokontroléry (MCU) v takovém rozsahu, jako nikdy předtím. Nové televize s LED využívají MCU v souvislosti s rostoucím kontrastním poměrem. Vyšší komfort díky MCU nabízí i sekačky na trávu, ve kterých byly z důvodu větší účinnosti a menšího znečištění ovzduší nahrazeny benzínové motory těmi elektrickými. Mikrokontroléry se nevyhly ani vyspělým kávovarům, které nás tak mohou každé ráno probouzet způsobem, který máme tak rádi.

Rozmach v podobě MCU jde ruku v ruce s vývojáři i jejich rozmanitou dosavadní praxí, která nás vede ke zvýšené pozornosti v otázce vývoje softwaru pro MCU. Abychom totiž mohli rozšířit pole působnosti procesoru na nejvyšší možnou míru, budeme muset příslušným softwarem, určeným ke spolupráci s MCU, oslovit široké spektrum uživatelů, přičemž větší důraz budeme klást na systémové aplikace.

Jak vyřešit rozdílné preference v souvislosti s programováním?

Programování MCU se již v současné době neomezuje pouze na zkušené vývojáře embedded systémů. Nové aplikace, včetně všeobecné dostupnosti MCU, přitahují odborné techniky, kteří nikdy dříve nepřišli do styku s číslicovou technikou a jejím hardwarem, nadšence se silným zalíbením v digitálních technologiích a dokonce i umělce, hledající nové způsoby, kterak vyjádřit svůj talent. Nadešel tedy čas oprostit se od tradičních, pevně stanovených způsobů programování MCU a podpořit tak uživatele s rozmanitými přístupy, odrážejícími mnohdy rozdílné úrovně abstrakce i způsobu řízení.

Software controlSUITE, určený pro C2000, zahrnuje čtyřúrovňovou HAL (Hardware Abstraction Layer), která takovou flexibilitu umožňuje.

  • Začneme – li od samotného základu, můžeme říci, že registry i adresy lze zapracovat přímo, stejně jako tomu bylo až dosud.
  • Na druhé úrovni se setkáváme s bitovými poli. K registrům a také funkčním skupinám bitů uvnitř lze přistupovat jako k proměnným. Díky namapování registrů do paměti mohou nyní programátoři přistupovat a definovat bity nebo vkládat hodnoty do jejich funkčních skupin, stejně jako by modifikovali proměnnou, případně je také jako proměnnou sledovat v reálném čase. Tímto způsobem lze ve výsledku eliminovat zavádějící a také k chybám náchylné postupy typu bit-masking. Zkušené programátory MCU zase dokáží bitová pole oslovit úplným přístupem k danému obvodu, umocněným jednodušším naprogramováním.
  • A jdeme dále! Díky API v souvislosti s ovládači periférií mohou uživatelé své periférie naprogramovat prostřednictvím jednoduchého volání funkce. Pokud si to máme znázornit, tak například inicializace včetně nastavení PWM se provede zavoláním příslušných funkcí s parametry jako je perioda, pracovní cyklus nebo číslo kanálu. Takové drivery zároveň nabízí jednodušší rozhraní pro nové programátory embedded aplikací (nebo také dobře známé rozhraní pro volání funkcí v případě vývojářů softwaru, určeného pro PC).
  • Konečně, úplný Baseline Framework umožňuje novým uživatelům započít práci, aniž by si přitom museli dělat starosti o kód setupu, včetně managementu úloh či mapování GPIO.

Spojíme – li tedy všechny čtyři úrovně s možností vzájemného přechodu mezi nimi, dostane programátor předpoklady pro rychlou implementaci jednoduchých funkcí, umocněnou plným přístupem ke všem výhodám, které periférie C2000, zaměřené na řízení, nabízí.

 

Obr. 1: Různí programátoři s odlišnými zkušenostmi a také preferencemi mohou pro uživatelsky orientované naprogramování MCU C2000 využít software controlSUITE a jeho čtyři vrstvy HAL (Hardware Abstraction Layer)

Modulární software pro každou vývojovou fázi

U vývojových kitů pro MCU se předpokládá přítomnost vzorového softwaru, který by uživatelům pomohl začít s projektem. Jak se však zdá, k tomu aby mohli požadované vlastnosti, včetně nezbytného důvtipu, přidat i vývojáři, pohybující se právě mimo oblast svých odborných znalostí, prostá ukázka softwarového řešení stačit nebude. Se softwarem se totiž budeme setkávat během celého vývojového cyklu, od vyhodnocení dostupných příkladů knihoven až po vývoj samotné aplikace. Tak třeba vývojáři, pracující na hlasovém ovládání nebo postupech při zpracování obrazu, vůbec nemusí mít rozsáhlé zkušenosti s FFT. Strojaři, pracující s robotickými rukami, zase možná nemají praxi v oblasti číslicového řízení motorů. Naučit se něco o zpracování signálů nebo řídicích algoritmech přitom může zabrat spoustu drahocenného času.

Software controlSUITE v této věci nabízí výraznou podporu a také řešení. Základ přitom tvoří detailní soubor příkladů, které mohou být použity jako odrazový můstek celého vývoje. Příklady přitom zachycují bitová pole a také API knihovnu v rámci HAL.

Základní práci s kódem vhodně podporuje rozsáhlý archiv knihoven. U základních matematických nebo trigonometrických knihoven se ostatně očekává jejich dostupnost přímo od dodavatele MCU. Softwarové řešení controlSUITE však jde ještě dále. Stejně jako v případě našich rodin MCU se silnými předpoklady pro vykonávání matematických operací, vycházejících z 32bitového přístupu jádra C28x (Pipelined), bylo v rámci softwaru controlSUITE rovněž pamatováno na DSP knihovny a algoritmy pro FFT a také filtry.

Tak především, jedinečně použitelná knihovna IQMath, určená pro práci s C2000. Jako knihovna spolu s kompilátorem umožňuje zvolit vlastní rozsah včetně rozlišení a to na základě výběru, které bity v našem binárně vyjádřeném čísle budou integer (I), resp. quotient (Q). Funkce v C tak můžeme místo vyjádření s pevnou řádovou čárkou zapisovat ve formátu s pohyblivou čárkou, přičemž kompilátor se již postará o vše ostatní. Nasazení IQMath rovněž podporuje jediný zdrojový překlad pro MCU s pevnou nebo také pohyblivou čárkou, čímž umožňuje přenositelnost mezi obvody, které nabízíme.

Díky aplikačním knihovnám máme rovněž k dispozici stavební prvky, na kterých lze budovat nejrůznější systémy. Aplikační knihovny, které jsou součástí controlSUITE, odráží základní potřeby systémů, jako např. řízení motorů včetně dalších otázek, spojených s výkonem a jeho konverzí. Máme tak k dispozici modulární soubor, obsahující funkce nebo makra, doplněný nezbytnou dokumentací a také teorií. Implementace nového systému může být dokonce tak jednoduchá, jako prosté propojení mezi vstupy a výstupy. Zkusme si to názorně ilustrovat na příkladu: Knihovna Digital Motor Control zahrnuje téměř 30 maker, včetně transformací, estimátorů, řídicích algoritmů i ovládačů pro periférie.

Právě zmíněné moduly, nabízené v rámci softwarového řešení s názvem controlSUITE, stojí za výrazným zkrácením vývojového času, který bychom jinak trávili implementací základních věcí. Místo toho se raději zaměřme na skutečnosti, které v pozitivním slova smyslu odliší naše návrhy od těch, na kterých pracuje konkurence.

Obr. 2: controlSUITE představuje modulární softwarové řešení pro celou etapu vývoje

Efektivita kódu

Snaha o menší znečištění životního prostředí, resp. prodloužení provozní doby zařízení na jedno nabití, vede k novým a mnohdy také nekompromisním přístupům v otázce dosahované účinnosti. Při zvyšování efektivity celého systému hraje svou roli jak softwarová tak i hardwarová část. Spousta pozornosti se přitom upírá směrem k hardwaru a jeho účinnosti. Sluší se však zdůraznit i stejně významnou úlohu programového vybavení, které by mělo celé úsilí jasně a zřetelně podtrhnout. Matematické a také DSP knihovny, obsažené v rámci softwarového řešení controlSUITE, zahrnují různé přístupy, optimalizované s ohledem na odlišné typy procesorů – tj. pevnou čárku, pohyblivou čárku nebo také převratný CLA (Control Law Accelerator, Piccolo). A co více, aplikační knihovny byly vystavěny se zvláštním zřetelem, kladeným na minimalizaci doby vlastního provedení. Software controlSUITE například zahrnuje knihovnu DMC (Digital Motor Control), která se přesunuje k formátu, založenému na makru. Kompilátor tak může provádět další optimalizace, vedoucí k menšímu kódu, resp. počtu cyklů. Právě popsané schéma pak eliminuje cykly, související s přepínáním kontextu, vyžadované v tradičních knihovnách. Taková opatření nezvyšují jen účinnost, ale rovněž poskytnou větší prostor pro podporu systému a jeho funkcí nebo implementaci průmyslových standardů.

Demonstrační versus vývojové systémy

Hlubší zamyšlení nad systémy a jejich aplikacemi nás staví před další problém: Demonstrační systémy nebo referenční návrhy jsou sice nositeli určité myšlenky, ale když takový návrh vezmeme a pokusíme se jej nechat pracovat v různých sestavách, můžeme narazit na velké nesnáze, pokud se nám ovšem danou aplikaci vůbec podaří zprovoznit. Spousta kitů se např. prodává proto, že nabízí pokročilé, plně funkční referenční návrhy pro řízení motoru v uzavřené smyčce. K tomu, abychom však mohli takový kit vzít, zapojit jej do zákaznického systému, roztočit a následně také odladit činnost různých typů motorů či použitých topologií, potřebujeme provádět poměrně zásadní modifikace.

Základní myšlenku aplikačních kitů pro C2000 vytváří definice plnohodnotného vývojového kitu. Hardware je zde tvořen moduly, které se dají opakovaně používat nebo také modifikovat. Uživatelé mohou přesně na míru přizpůsobovat volně dostupnou rozpisku součástek, schémata i layouty. Pokud jde o samotný software, tak všechny kity, vycházející z controlSUITE, používají tzv. přírůstkový systém. Programátor pak v průběhu celého vývoje zvolna a jednoduše přidává další části.

Pojďme se nyní blíže seznámit se softwarem pro Dual Motor Control a PFC Kit (C2000). Nechceme tímto kitem jen demonstrovat řízení motoru, zaměřené na bezsenzorový přístup, ale také ukázat pětiúrovňové řešení, které uživatele provede celým systémem. První úroveň jednoduše implementuje minimální systémový check – out, potvrzující činnost systémových přerušení a také ověřující správnost průběhů, které dodávají moduly Inverse Park, Space Vector nebo PWM driver. Druhá úroveň verifikuje analogově / číslicový převod spolu s výpočty fázového napětí, přičemž ještě zajišťuje kompenzaci offsetu včetně transformací Clarke / Park. Na třetí úrovni jsme definovali reálné moduly PID a také ověření proudové regulace (dq-axis). Nyní následuje úroveň č. 4 a její moduly pro odhad rychlosti a také polohy rotoru. Poslední, pátou úrovní uzavíráme smyčku a celkový popis vůbec. Na pozici zpětné vazby se zde totiž setkáváme s naměřenou rychlostí.

Díky právě zmíněnému přístupu, umocněnému dostupností nezbytné teorie a také ucelené dokumentace, máme k dispozici kit, podporující rychlé seznámení s danou aplikací, okamžitou modifikaci pro různé systémy a rovněž jednodušší ladění.

Obr. 3: Pětiúrovňový přírůstkový systém, určený pro bezsenzorové řízení motorů v uzavřené smyčce, se odvíjí od prosté verifikace průběhů PWM

Není na tom nic složitého

V případě maloobchodního prodeje softwaru nebo světa spotřební elektroniky se obvykle klade velký důraz na zkušenosti daného uživatele. S takovým přístupem jsme se však v případě softwaru pro MCU či DSP setkávali jen zřídka. Zkušení programátoři si na potíže, provázející vývoj softwaru pro MCU, již zvykli, což ovšem nemusí platit o nových vývojářích, pro které budou takové problémy značně nepříjemné. Podle čeho poznám, že mám vše, co budu potřebovat? Jakým způsobem probíhá aktualizace? A jak to bude se zdrojovým kódem a touto knihovnou? S programovým vybavením controlSUITE a jeho centralizovaným umístěním si takové starostlivé otázky klást nemusíme. Veškerý software, určený pro C2000, je totiž zobrazen a také připraven k volnému stažení prostřednictvím jediné webové stránky a souvisejícího instalačního programu. Instalátoru jsou rovněž známy závislosti mezi jednotlivými softwarovými balíčky. Může proto zaručit, že budou staženy a také nainstalovány všechny potřebné součásti. A co více, se softwarem controlSUITE nepředstavují žádný problém ani aktualizace, přičemž vyhledávání novějších verzí lze řešit zcela automaticky.

S ohledem na budoucnost...

controlSUITE byl navržen tak, aby zajistil vše potřebné, tj. včetně souvisejícího managementu, pro zrychlení vývoje řídicích aplikací, pracujících v reálném čase. Vývojáři tak mají k dispozici tolik potřebnou flexibilitu pro práci, která bude respektovat nejrůznější preference a také úroveň získaných zkušeností. Vícevrstvá HAL umožnuje uživatelům programovat MCU způsobem, který pro ně bude nejvýhodnější. Rozsáhlý archiv knihoven zase šetří čas, který by se jinak musel věnovat vývoji základních prvků. K dispozici jsou rovněž plnohodnotné, aplikační vývojové kity, nabízející rychlé proniknutí do dané oblasti s možností bezprostřední implementace. Jsme přesvědčeni, že tímto přístupem oslovíme celou řadu začínajících i zkušených programátorů.

Něco o autorovi:

Michael Wei je v souvislosti s MCU C2000 v TI odpovědný za konkrétní rozhodnutí a definice, závazky, vyplývající ze zákaznického návrhu, rozvíjení obchodu a také podporu pro rodinu MCU Piccolo. Předmět jeho zájmu rovněž tvoří DPC (Digital Power Conversion) nebo hybridní elektrická vozidla (HEV/EV). Své bakalářské studium se zaměřením na embedded systémy a související systémové programové vybavení absolvoval na elektrotechnické univerzitě v Austinu, hlavním městě státu Texas.

 

Hodnocení článku: