0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaPredstavljamoRazvijajte ločeno in integrirajte brezhibno z dvojedrnim krmilnikom

    Razvijajte ločeno in integrirajte brezhibno z dvojedrnim krmilnikom

    Ugnezdene aplikacije postajajo zapletene in izpopolnjene za doseganje večjega števila ciljev. Prvič, aplikacije morajo izboljšati učinkovitost, kar zahteva znatno zmogljivost krmilnika za izvajanje sofisticiranih algoritmov.

    Microchip Technology Inc.
    Avtor: Harsha Jagadish
    2022-304-19

    Nadalje, vseprisotna internetna dostopnost omogoča, da ugnezdene aplikacije postanejo „pametnejše“ in bolj „povezane“.

    Tretji cilj je zmanjšati stroške z integracijo večjega števila funkcij, kot so vmesnik za senzorje, povezljivost, krmiljenje motorja, digitalna pretvorba moči, varnost in zaščita v enem samem krmilniku. Tako visoka stopnja integracije zahteva, da strokovnjaki za posamezne domene obravnavajo posebna funkcionalna področja ali module, nato pa je treba več funkcij integrirati v končno aplikacijo. Pogosto je zaradi multinacionalnih podjetij, ki imajo svoje ekipe razpršene po vsem svetu, še bolj pomembno, da je možno različne module razvijati ločeno in jih brezhibno integrirati z lahkoto, da se zmanjša razvojno tveganje in prizadevanja.

    Izboljšanje učinkovitosti
    Najprej poglejmo, kako cilj izboljšanja energetske učinkovitosti zahteva povečano zmogljivost krmilnika. Razmislite o primeru aplikacije za krmiljenje motorja. Industrija se odmika od enosmernih krtačnih motorjev, ki ponujajo 75-80-odstotno učinkovitost, in se usmerja k brezkrtačnim enosmernim (BLDC) motorjem ali novejšim sinhronim motorjem s trajnim magnetom (PMSM).

    Ti motorji ponujajo do 85 – 90 odstotkov boljšo učinkovitost, zmanjšano glasnost in podaljšano življenjsko dobo izdelka. Tipično krmiljenje krtačnega enosmernega motorja zahteva zelo preproste tehnike nadzora smeri in hitrosti, ki jih je mogoče doseči z uporabo enostavnega in poceni 8-bitnega mikrokontrolerja. V primerjavi s tem je krmiljenje BLDC ali PMSM motorja brez senzoprjev s ‘Field Oriented Control’ (FOC) bolj izpopolnjeno in računsko bolj intenzivno.

    Omogoča natančno kontrolo energije, ki jo porabi motor v širokem razponu obremenitve ali hitrosti, in pomaga znatno izboljšati učinkovitost. Dodatni krmilni algoritmi se lahko izvajajo tudi na podlagi zahtev aplikacije, kot so ‘Zaznavanje in obnovitev zastoja rotorja’, ‘Prosto vrtenje po izklopu’, ‘Nasičenost PI zanke in preprečevanje navijanja’, ‘Slabitev toka’ in ‘Maksimalni navor na amper’, ki pomagajo izboljšati zmogljivost, odzivnost na dinamično obremenitev in povečati splošno učinkovitost.

    Vse te napredne tehnike nadzora so računsko intenzivne, vključujejo matematične operacije, kot so deljenje, množenje, kvadratno korenjenje in trigonometrične operacije, ki zahtevajo znatno pasovno širino centralne procesne enote (CPE). Ker je treba te nadzorne funkcije izvajati periodično z visoko frekvenco, je nujno, da CPE dodeli v določene časovne intervale. Takšno tesno izvajanje nadzorne zanke lahko zavzame večino pasovne širine CPE in lahko vpliva na druge časovno kritične funkcije v kompleksni aplikaciji.

    Razvijalec ugnezdene programske opreme bo imel omejeno fleksibilnost pri dodajanju dodatnih funkcij, kot so komunikacija, varnostni nadzor, sistemske in “gospodinjske” funkcije, ki bi lahko motile časovno kritičen nadzor motorja. Izziv se povečuje v aplikacijah za digitalnihmočnostnih aplikacijah, kjer se morajo časovno kritične funkcije krmilne zanke izvajati na še višji frekvenci.

    Kompleksna programska oprema
    Zdaj pa razmislimo o naslednjem cilju, ki ga vodi povezljivost v internetu ali oblaku. Najnovejši trend v industriji je, da so aplikacije “pametne” in “povezane”, ki ponujajo inteligenco in dostopnost od koder koli. Te pogoji zahtevajo, da ugnezdene aplikacije vključujejo več skladov programske opreme, kot so:
    Programska oprema za funkcijo glavne aplikacije. V našem primeru ta funkcija izvaja krmiljenje motorja, vzdrževanje in operacije uporabniškega vmesnika, ki so običajno potrebne v večini aplikacij.
    Komunikacijska programska oprema, ki poganja nujne omrežne protokole za povezljivost.
    Varnostna programska oprema za zaščito IP, zasebnost, integriteto podatkov, pristnost, nadzor dostopa in preprečitev vseh možnosti vdora.
    Če aplikacije vključujejo človeške operacije in lahko povzročijo telesne poškodbe zaradi okvare, potem mora biti celo programska oprema za funkcionalno varnost del takšnih aplikacij, ki so kritične za varnost.
    Nekatere končne aplikacije imajo lahko tudi zahteve po prilagajanju, kjer bodo določene funkcije edinstvene za določene različice, namenjene različnim tržnim segmentom.

    Vsi ti funkcijski pogoji zahtevajo, da se v razvoj ustreznih skladov programske opreme vključijo različne skupine strokovnjakov za področje in jih lahko optimalno in hitro integrirajo v končno aplikacijo. Strokovnjaki iz več področij se bodo morali zelo tesno uskladiti z arhitektom in implementirati končno aplikacijo. Ta scenarij se še bolj zaplete v multinacionalnih podjetjih, kjer bodo strokovne ekipe razporejene po vsem svetu.

    Nižanje cene
    Na koncu je optimizacija stroškov pomemben cilj, ki je skupen vsem končnim aplikacijam. Pogosto inženirji za ugnezdene aplikacije ne bodo imeli proračuna, da bi razmislili o zasnovi z več mikrokontrolerji, kjer se lahko posamezen sklad programske opreme izvaja na različnih mikrokontrolerjih z zelo malo koordinacije.

    Najbolj optimalna rešitev bo izbira enega samega mikrokontrolerja z zelo visoko integracijo. To dodatno omogoča znižanje stroškov zaradi kompaktne zasnove PCB in zmanjšanega števila zunanjih komponent, kot so kristalni oscilatorji in pasivne komponente.

    Kakšni so razvojni izzivi?
    Za implementacijo sofisticiranih algoritmov in izvajanje več skladov programske opreme razvojniki ugnezdenih sistemov pogosto izberejo mikrokontroler z večjo zmogljivostjo. Vendar pa to morda ni najboljša izbira zaradi izzivov, povezanih s časovno kritično izvedbo, razvojem večjega števila skladov programske opreme, integracijo in testiranjem.

    Preprost razporejevalnik ali operacijski sistem v realnem času (RTOS) lahko služi namenu načrtovanja in izvajanja večjega števila nalog iz različnih skladov na visoko zmogljivem CPE-ju na časovno spojen način. Vendar pa razporejevalnik ali RTOS dodaja dodatne stroške, ki porabijo pasovno širino v CPE, pomnilnik in druge vire mikrokontrolerja.

    Časovno spajanje prav tako poveča stroške preklapljanja in zmanjša učinkovito uporabo CPE. Scenarij se dodatno zaplete, ko je treba redno izvajati dve časovno kritični kompleksni krmilni zanki v natančnem in prekrivajočem se časovnem intervalu ali ko je treba v realnem času hkrati izvajati dve asinhroni varnostno kritični funkciji. V takih primerih uporaba mikrokontrolerja s še višjo zmogljivostjo ne bo vedno izpolnjevala sistemskih zahtev.

    Tudi če ima visokozmogljiv enojedrni mikrokontroler dovolj pasovne širine CPU-ja, da sprejme več skladov programske opreme, morda skupaj z RTOS, je treba upoštevati še veliko drugih zapletov pri načrtovanju. Za razvoj, integracijo in preizkušanje večjega števila skladov programske opreme je potrebna precejšnja koordinacija med strokovnjaki za to področje. Zahteva razvoj združljive in modularne arhitekture programske opreme, ki dinamično deli vire in informacije. Zapleti se še povečajo, če obstajajo stari skladi brez združljive arhitekture.
    Podedovani skladi imajo lahko različne arhitekture, ki temeljijo na načinu pozivanja ali načinu prekinitve
    Podedovani skladi morda uporabljajo iste vire mikrokontrolerja, ki jih je zdaj treba deliti brez kakršnih koli konfliktov, da bi se izognili nevarnostim, kot sta stanje dirke in zastoj

    Skladi lahko imajo več skupnih globalnih spremenljivk in funkcij z enakimi imeni
    Vsak sklad lahko deluje brezhibno, če se izvaja posamezno, vendar pa se lahko zgodi, da pri integraciji ne deluje pravilno. Odpravljanje napak tako integrirane rešitve bo nočna mora, ki podaljšuje čas razvoja.

    Samostojni sklad, ki je že na voljo, morda ne pomaga vedno skrajšati razvojnega časa, če je implementiran na enojedrnem mikrokontrolerju. Vsi ti izzivi predstavljajo veliko razvojno tveganje in podaljšujejo čas trženja.

    Dvojedrni krmilnik
    Dvojedrni krmilnik pomaga izboljšati učinkovitost, poenostaviti razvojna prizadevanja in znižati stroške z naslednjimi ponudbami.
    Ponuja večjo zmogljivost kot podoben enojedrni krmilnik, ki deluje z dvakratno hitrostjo in je idealen za aplikacije, kjer sta dve ali več časovno kritičnih funkcij
    Poenostavlja razvoj programske opreme z dvojnimi neodvisnimi jedri, ki omogočata:

    • Geografsko razpršen razvoj programske opreme
    • Brezhibna integracija z zelo minimalno koordinacijo
    • Enostavno prilagajanje funkcij v več različicah linije izdelkov
    • Dvojedrni krmilnik – boljša zmogljivost
    • Dvojedrni krmilnik omogoča večjo integracijo programske opreme, saj omogoča izvajanje različnih funkcij na dveh neodvisnih jedrih. To je še posebej koristno, če aplikacija zahteva občasno izvajanje dveh časovno kritičnih funkcij ob določenem času ali kot odziv na asinhrone dogodke. Med funkcijama ne bo spora z vsako časovno kritično funkcijo, ki se izvaja na dveh različnih neodvisnih jedrih.

    To izboljša splošno izkoriščenost CPE-ja zaradi zmanjšanih stroškov preklapljanja konteksta med funkcijami ali pa celo brez stroškov. Številni dvojedrni krmilniki imajo namenske vire, kar dodatno zmanjša stroške preklapljanja in arbitraže.

    Nekateri dvojedrni krmilniki imajo tudi namenski hitri programski RAM (PRAM), ki je povezan z enim od jeder, običajno s podrejenim jedrom, kar dodatno izboljša zmogljivost. Zato dvojedrni krmilnik ponuja večjo zmogljivost kot podoben enojedrni krmilnik, ki deluje z dvakratno hitrostjo.

    Dvojedrni krmilnik – poenostavljen razvoj
    Številni dvojedrni krmilniki ponujajo namenski pomnilnik, zunanje naprave in podporo za odpravljanje napak z vsakim jedrom. Prilagodljiva shema upravljanja virov nadalje omogoča skupno dodelitev virov enemu od jeder v skladu z zahtevami aplikacije.

    Takšna arhitektura mikrokontrolerja omogoča neodvisen razvoj programske opreme z zelo minimalno koordinacijo med domenskimi strokovnjaki in omogoča enostavno integracijo. Dvojedrni krmilnik še posebej poenostavi integracijo dveh programskih skladov, ki temeljita na različnih arhitekturah ali zahtevata podobna sredstva mikrokontrolerja, ki zdaj lahko delujeta na dveh neodvisnih jedrih.

    To je podobno razvoju skladov za izvajanje na dveh različnih krmilnikih, vendar s prednostmi izboljšane zmogljivosti, optimalne izrabe virov in nižjih stroškov. To odpravlja vse zaplete, povezane z integracijo sklada, časovno združenimi viri in s tem povezanimi nevarnimi pogoji.

    Dvojedrni krmilnik omogoča tudi enostavno odpravljanje napak po integraciji, saj ima vsako jedro lastne vmesnike za odpravljanje napak. Zaradi zmanjšane odvisnosti med skladi je odpravljanje napak izjemno poenostavljeno tako, da se izolirajo težave in se jih odpravi. Dvojedrni krmilnik, ki ponuja toliko prednosti, znatno zmanjša razvojno tveganje in čas za trženje.

    Da dodamo še to na seznam prednosti: dvojedrni krmilnik omogoča enostavno prilagajanje brez spreminjanja glavne funkcionalnosti. Z arhitekturo glavne funkcionalnosti za delovanje na enem jedru je mogoče funkcije po meri implementirati na drugo jedro. Vse te ponudbe dvojedrnega krmilnika poenostavljajo načrtovanje programske opreme, tudi če je vključenih več ekip po vsem svetu, in omogočajo brezhibno integracijo z zelo minimalnimi prizadevanji za usklajevanje.

    Dual-core Controller – Cost Reduction
    Dvojedrni krmilnik z večjo zmogljivostjo omogoča razvijalcu ugnezdenih rešitev realizacijo kompleksnih aplikacij z enim samim mikrokontrolerjem. Dvojedrni krmilnik s poenostavitvijo razvoja znatno zmanjša čas načrtovanja in tveganje ter omogoča konkurenčne zasnove z nižjimi stroški in krajšim časom do trženja.

    Da bi praktično uresničili vse zgornje prednosti dvojedrnega krmilnika, smo izvedli majhen poskus. V tej predstavitvi eno od jeder (običajno podrejeno jedro) izvaja krmiljenje motorja, ki izvaja FOC algoritem za nadzor BLDC motorja. Da bi ponudili grafični uporabniški vmesnik, drugo jedro (glavno jedro) izvaja grafični sklad za vmesnik OLED zaslona in izvaja sistemsko funkcijo za povezovanje potenciometra in tipk, ki nadzorujejo hitrost in stanje motorja.

    Za prikaz preprostosti razvoja, ki jo ponuja dvojedrna naprava, sta grafični sklad in programsko opremo za krmiljenje motorja razvili dve različni skupini, ki sta bili geografsko ločeni. Zaradi prilagodljivosti za vzdrževanje neodvisne arhitekture programske opreme je bilo med obema ekipama potrebnega zelo malo usklajevanja.

    Ekipa, ki ima strokovno znanje o krmiljenju motorja, bi lahko zelo hitro uvedla FOC algoritem za nadzor BLDC motorja. Ker ima druga ekipa strokovno znanje o razvoju grafičnega uporabniškega vmesnika, bi lahko obe ekipi izkoristili svoje izkušnje na posameznih področjih in hitro zaključili projekt.

    Za vzpostavitev dogovora, kako bi prenašali status tipke in potenciometra med obema jedroma, je bilo potrebno zelo malo usklajevanja. Kot razširjen eksperiment sta obe ekipi uporabili že razpoložljive knjižnice programske opreme za izvajanje krmiljenja motorja in grafičnega vmesnika. To je privedlo do zaključka projekta v kratkem času z zelo malo truda, porabljenega za integracijo dveh različnih podedovanih skladov.

    Zaradi visoke zmogljivosti jedra je bilo na obeh jedrih še vedno na voljo veliko pasovne širine CPE. Za premikanje meja je bil na podrejeno jedro dodan tudi vmesnik za OLED zaslon, ki prikazuje dinamične parametre motorja brez vpliva na zmogljivost motorja. Tukaj je predstavitev aplikacije za krmiljenje motorja v živo z grafičnim uporabniškim vmesnikom, ki deluje na dvojedrnem digitalnem krmilniku signala.

    Primer dvojedrnega krmilnika, ki ponuja vse te prednosti, je Microchipov najnovejši dvojedrni digitalni krmilnik signala (DSC) dsPIC33CH128MP508 [2]. Dvojedrni dsPIC33CH ponuja visoko zmogljivost z namenskim pomnilnikom in perifernimi napravami, specifičnimi za aplikacijo, zaradi česar je idealen za visoko zmogljive ugnezdene aplikacije, krmiljenje motorjev in digitalno pretvorbo energije. Dvojno jedro v tej družini razvijalcem omogoča, da ločeno razvijejo ugnezdeno programsko opremo za različne sistemske funkcije in jih nato nemoteno združijo, ne da bi se bloki kode med seboj motili.

    Vir:
    1: https://bit.ly/3pqjWz0
    2: https://bit.ly/3po0vqw

    Harsha Jagadish je vodja trženja izdelkov v poslovni enoti Microchip Technology za 16-bitne mikrokontrolerje. Ima osem let izkušenj v industriji polprevodnikov in se trenutno osredotoča na visoko zmogljive ugnezdene rešitve.

    Dosegljiv je na:
    Twitter: @MicrochipTech
    Facebook: https://www.facebook.com/microchiptechnology/

    Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.

    https://www.microchip.com