Att skapa virtuella instrument som bygger pÄ PC Àr kostnadseffektivt och ger breda möjligheter. Men vanliga operativsystem begrÀnsar resurserna. HÀr beskriver Mikael Lindner, MyTech, hur man med specialprogramvaran QuX tillsammans med mÀtprogramvara som LabVIEW eller VisualBasic enkelt och effektivt kan programmera DSP med realtidsegenskaper.
Klicka hÀr för att ladda ned hela artikeln med alla illustrationer i PDF-
format.
För mÄnga test- och mÀtapplikationer kan en PC idag vara en kostnadseffektiv lösning. En PC har idag ett mycket bra förhÄllande mellan pris och berÀkningskraft. Det finns Àven ett stort utbud av I/O-kort pÄ marknaden och de stödjer enkla utvecklingsprogram som t ex LabVIEW frÄn National Instrument. Men Àven med en multi-GHz Pentium dator begrÀnsas arbetet den kan utföra för applikationen ifrÄga. Det beror delvis pÄ resurskrÀvande operativsystem som t ex Microsoft Windows XP. Med ett sÄdant operativsystem och om applikationen har ett komplext anvÀndargrÀnssnitt, samtidigt som mÀtdata ska samlas in och analyseras för att sedan rapporteras, dÄ rÀcker inte datorkraften till. För kritiska realtidsapplikationer kan dessutom inte en PC uppfylla de krav som stÀlls.
En lösning pĂ„ problemet Ă€r att köra realtidsfunktioner i programmet pĂ„ en andra processor. Men Ă€ven en kraftfull DSP Ă€r inte mycket till hjĂ€lp om den hela tiden mĂ„ste avfrĂ„gas och kommunicera med en PC för att kunna utföra nĂ€sta funktion. Ett alternativ till detta finns utvecklat av Sheldon Instruments. Denna lösning Ă€r en kombination av hĂ„rd- och mjukvara. Alla funktioner för mĂ€tinsamling, kontroll och analys laddas pĂ„ ett separat DSP-kort dĂ€r realtidsfunktionerna kan exekveras utan att störas av PCn som kan göra andra saker samtidigt. Ănnu enklare blir det om man som i det hĂ€r fallet kan anvĂ€nda ett enkelt programmeringsverktyg som LabVIEW frĂ„n National Instrument eller Visual Basic frĂ„n MicroSoft.
AnvÀndarvÀnlig DSP-programmering
Produkten som kan erbjuda detta kallas för QuX och dess mÄl Àr enkelt: att ge sÄvÀl novisen som experten möjlighet att bygga de mest komplexa och sofistikerade applikationer utan att behöva lÀgga ut en förmögenhet pÄ dyra realtids-OS som ofta förknippas med lÄnga inlÀrningsperioder och udda utvecklingsmiljöer.
QuX har funnits lÀnge och Àr vÀlkÀnd i USA. I Europa Àr det marginellt kÀnt och anvÀnt. Sedan introduktionen 1991 har QuX utvecklats frÄn enkla funktioner för mestadels styr- och reglerapplikationer i realtid, till den kompletta realtidsplattform den Àr idag. QuX Àr idag ett flertrÄdigt realtidsoperativ dÀr man kan programmera funktioner för bÄde mÀtpunkt per mÀtpunkt och som kompletta mÀtblock och exekvera dessa pÄ ett DSP-kort med tillhörande multifunktions I/O-kort. De funktioner som anvÀnds för att bygga ett program bestÄr av en stor mÀngd olika verktyg, t ex vektorer, matriser, filter, signalhantering för tids- och frekvensdomÀn, Z-transformationer för att implementera polynom direkt i z-domÀnen. Alla dessa verktyg tillsammans Àr nog för att kunna uppfylla de mest komplexa krav för en avancerad mÀt- och kontrollapplikation.
Idealisk arbetsfördelning
KÀrnan i QuX bestÄr av tvÄ huvudkomponenter: en del för PCn (vÀrden) och en del för DSPn. Interaktionen mellan dessa Àr synkroniserad med ett dynamiskt schema och en minnes-pool.
VÀrdkomponenten bestÄr av:
• LĂ„gnivĂ„-drivrutiner för att kommunicera med DSP-hĂ„rdvaran.
• Ett flertal DLLer för Windows eller gemensamma objekt (SO) för Linux som fungerar som en brygga mellan lĂ„gnivĂ„-drivrutinerna och anvĂ€ndargrĂ€nssnittet.
• Ett anvĂ€ndargrĂ€nssnitt/utvecklingsverktyg som fungerar som ett skal för de DLLer som behövs för att kommunicera med DSP-kortet.
QuX erbjuder tvÄ val för att bygga en applikation med anvÀndargrÀnssnitt pÄ en PC: LabVIEW frÄn National Instrument (grafiskt utvecklingsverktyg) och Visual Basic frÄn MicroSoft för programmering med traditionell text-syntax. Programvaran för LabVIEW kallas QuVIEW och för Visual Basic kallas den QuBASE. QuX kan köras pÄ Win9x/NT/2000/XP eller Linux.
DSP-komponenten bestÄr av ett DSP-program (en COFF-fil) som bestÄr av realtidsoperativet, funktionsbiblioteken som applikationen baseras pÄ och alla funktioner som behövs för att kommunicera med vÀrden (PC).
FÄ förkunskaper krÀvs
Ingen erfarenhet av C-kompilatorer, assembler-sprÄk eller DSP behövs för att anvÀnda QuX. Sheldon Instruments har utvecklat det till ett nyckelfÀrdigt mÀt- och kontrollsystem. Det behövs ingen C-kompilator, ingen assemblator eller lÀnkare och det behövs heller ingen kunskap om hur en DSP fungerar. QuX Àr extremt snabbt och effektivt. Beroende pÄ applikation sÄ kan t ex ett LabVIEW-program accelereras upp till 100 gÄnger, Ànnu mer om flera DSP-kort anvÀnds i samma program.
Punkter, vektorer eller strukturer
Det finns tvÄ distinkta metoder för databehandling tillsammans med programflöde och strukturering implementerade i DSPn, dÀrför Àr funktionsbiblioteken uppdelade pÄ ett sÀtt som ÄskÄdligör detta pÄ ett sÄ bra sÀtt som möjligt.
Den första metoden, som kategoriseras som âPoint Queueâ, Ă€r lĂ€mpad för kontinuerlig datahantering i realtid. Data hanteras pĂ„ basis av âsample per sampleâ, dvs ett mĂ€tvĂ€rde returneras sĂ„ fort det Ă€r inlĂ€st frĂ„n t ex en A/D och kan behandlas innan nĂ€sta mĂ€tvĂ€rde returneras. En typisk applikation Ă€r rörelsekontroll.
Den andra metoden, som kategoriseras som â Vector Queue â, Ă€r bĂ€ttre lĂ€mpad för att databehandla stora block av mĂ€tvĂ€rden. En typisk applikation Ă€r dynamisk signalanalys.
Slutligen, programflödet kan kontrolleras med universella villkorliga strukturer som Ă€r implementerade med hjĂ€lp av traditionella âCaseâ, âConditional Execute/Branchâ och âWhile Loopâ.
Nedan visas nÄgra typiska exempel pÄ vad som kan göras med QuX i realtid:
• HĂ€mta mĂ€tvĂ€rden frĂ„n ett godtyckligt antal analoga och digitala ingĂ„ngar
• AnvĂ€nda digitala filter, aritmetik och differentialrĂ€kning
• Processkontroll med PID-reglering eller âState Space Algorithmsâ
• Generera godtyckliga vĂ„gformer
• Kontinuerlig datalagring till hĂ„rddisk med hastigheter upp till 800kHz
• Samtidig visning av tid- och frekvensdata
Data som behöver överföras mellan vÀrden (PC) och DSP, för grafisk presentation eller uppdatering av parametrar i realtid, överförs i bakgrunden med hjÀlp av DMA.
Tack vare att QuX körs pÄ DSP-kortet och dess autonoma kÀrna, blir realtidsapplikationen helt fristÄende frÄn vÀrden (PC) och behöver sÄledes inte nÄgon sÄdan för att fungera. DSP-korten kan bestyckas med flash-minne för att köras helt fristÄende.
QuVIEW: Turboladda LabVIEW
För att kunna accelerera LabVIEW med dessa DSP-kort sĂ„ har Sheldon Instruments skrivit om ca 75 procent av programmets (LabVIEW) matematik- och analysbibliotek samt adderat ytterligare funktioner. âPoint Queueâ- och âVector Queueâ-funktionerna ligger som separata ikon-grupper precis som de gör vid standardanvĂ€ndandet i LabVIEW. AnvĂ€ndaren kan anvĂ€nda och blanda dessa olika grupper helt godtyckligt, dvs utnyttja funktioner för att anvĂ€nda i PCn (standard LabVIEW-ikoner) eller i DSPn (QuVIEW-ikoner).
QuBASE: Realtid i visual BASIC
För kostnadsmedvetna utvecklare kan Visual Basic vara tilltalande tack vare dess text-baserade paradigm och möjligheten att skapa mindre, exekverbara program. âPoint Queueâ- och âVector Queueâ-funktionerna Ă€r precis de samma som för QuVIEW och anvĂ€nds som enkla funktionsanrop med unika prefix för varje funktionstyp.
AnvÀndaren kan godtyckligt blanda funktionsanrop som ska exekveras lokalt pÄ vÀrden (PC) eller pÄ DSP-kortet (QuBASE).
För utvecklare som behöver implementera sin applikation i ett annat sprĂ„k levererar Sheldon Instruments ett komplett paket med utvecklingskit och kĂ€llkod som kallas SI-DDK. HĂ€ri medföljer kod-exempel som visar hur t ex Code Composer frĂ„n Texas Instrument anvĂ€nds för att anvĂ€nda DSP-resurserna pĂ„ bĂ€sta sĂ€tt. PĂ„ vĂ€rd-sidan (PC) medföljer stabila drivrutiner (âkernel mode driversâ) för Windows och Linux. Med dessa drivrutiner medföljer Ă€ven kĂ€llkoden, ett komplett API-bibliotek och funktioner för att ladda COFF-filen till DSP-kortet. Allt detta medföljer varje DSP-kort frĂ„n Sheldon Instruments.
HÄrdvaran bakom mjukvaran
QuX fungerar med alla DSP- och multifunktions I/O-kort frÄn Sheldon Instruments. DSP-korten baseras pÄ processorer frÄn Texas Instrument. Processorerna Àr 32 bit flyttalsprocessorer frÄn familjerna C33 och C671x som kan ge prestanda upp till 1800 MFLOPS vid 300 MHz DSP-klocka. Korten finns i flera utföranden, t ex som PCI och PC104/p. Inom kort kommer Àven kort med Ethernet som kommunikationsgrÀnssnitt.
Multifunktions I/O-korten, som kallas SI-MODxx, sÀtts ihop med DSP-kortet. NÄgra av alla de funktioner som erhÄlls med en enhet Àr:
• 4-64 analoga ingĂ„ngar med förstĂ€rkning 1-1000
• Upp till 16 analoga utgĂ„ngar
•16 bit upplösning
• Samplingshastighet upp till 250 kHz, vid samtidig datainsamling, och upp till 1MHz additiv sampling.
• 36 digitala I/O
•TvĂ„ PWM-utgĂ„ngar
•IngĂ„ngar för att mĂ€ta puls/frekvens, kvadratur-enkodare (quadrature encoders)
* Flexibel klockhantering med 3 DDS (direct digital synthesizers) och 4 hÀndelse-rÀknare (event counters).
För att utöka antalet analoga ingÄngar kan flera DSP-kort synkroniseras i samma applikation.
Mikael Lindner, Mytech