Programmerbar logik arbetar sig sakta in i embeddedtillÀmpningar, bÄde för att hantera I/O och för att ta hand om snabb signalbehandling. Hermann Strass frÄn MEN Mikro Elektronik beskriver hÀr ett ovanligt avancerat system som tagits fram för att styra en ringcyklotron hos Paul Scherrer Institute i Schweiz.
Hela artikeln i PDF-format.
Den digitala utvecklingen gör det möjligt att digitalisera signaler pÄ ett mycket tidigt steg i signalbehandlingskedjan. Det ger optimala prestanda och maximal flexibilitet för instrumenteringen. Medan de analoga ingÄngarna i systemen normalt sett Àr specifika för varje experiment kan den efterföljande digitala delen vara densamma för mÄnga olika mÀtÀndamÄl. Hos PSI utvecklades ett generellt PMC-bÀrarkort i VME-format för att ge en gemensam plattform för diagnostik av elektron- och protonacceleratorer och snabba inhÀmtning av data och snabba styrsystem för Äterkoppling.
VME64x-kortet Ă€r baserat pĂ„ tvĂ„ stora FPGA-kretsar, Virtex2Pro, vardera med tvĂ„ inbyggda PowerPC-processorer och RAM. FPGA-kretsarna kan hĂ€mta och behandla data frĂ„n VME-bussens P0/P2-kontaktdon eller frĂ„n tvĂ„ applikationsberoende PMC-moduler. TvĂ„ stycken optotranceivers med vardera maximalt 2 Gbaud kan ocksĂ„ anvĂ€ndas för att hĂ€mta och distribuera mĂ€tdata. . Typiska applikationer Ă€r âdigital beam position monitoringâ (DBPM) och strömmonitorer för protonstrĂ„lar, dataprocessning för âmuon decayâ-experiment och generell diagnostik, sĂ„vĂ€l som global Ă„terkopplingsstyrning av SLS-acceleratorer och âbeamlinesâ. Ett exempel pĂ„ anvĂ€ndning av VME-systemen Ă€r SLS, âSwiss light sourceâ, ocksĂ„ kallad âSynchrotron Light Sourceâ. DĂ€r styrs alltsammans av 150 VME-rackar, med vardera upp till 2 VME-kort.
Ett stort antal nya projekt inom acceleratordivisionerna hos PSI krĂ€ver mĂ„nga och varierande diagnostik- och styrsystem. Exempel pĂ„ det Ă€r det supraledande cyklotron-projektet PROSCAN, för protonterapi, projektet vid SLS för att generera synkrotronstrĂ„lpulser under en pikosekund, LEG-projektet för âlow emittance gunâ och de kontinuerliga förbĂ€ttringarna i protonringcyklotronen.
Acceptansen av VME64x som gemensam plattform motiverade en modulĂ€r ansats för elektronikkonstruktionen, dĂ€r inhĂ€mtning och digitalisering av signaler sker via applikationsspecifika grĂ€nssnitt, medan datahantering, analys och överföring till styrsystem, sĂ„vĂ€l som datadistribution via snabba fiberoptiska lĂ€nkar. Detta görs via VPC-kortet som en gemensam digitalbearbetnings- och kommunikationsplattform. Till att börja med kommer mer Ă€n 300 VPC-kort at anvĂ€ndas i olika experiment inom PSI. Cyklotronringen, som innehĂ„ller ca 2000 ton magneter, kan vara i kontinuerlig drift i flera mĂ„nader. Programmen till styrdatorerna och EPICS-systemet (Experimental Physics and Industrial Control System) mĂ„ste kunna arbeta felfritt under hela den tiden. Om fel intrĂ€ffade skulle styralgoritmerna stoppa högenergistrĂ„len, vilket skulle leda till stora förseningar och förluster i arbete och pengar. VME-hĂ„rdvaran kan byggas redundant och klarar âlive insertionâ pĂ„ kortnivĂ„.
Systemarkitektur
Det digitala systemet hos PSI bestÄr av VME-system som kör realtidsoperativsystemet VxWorks. Valet av VME berodde bland annat pÄ mÀngden tillgÀngliga processor- och I/O-kort. Andra snabba bussar som PCI eller CompactPCI skulle vara möjliga, men det Àr osÀkert om de hÀr synkrona bussarkitekturerna kommer att ha lika lÄng livstid som den asynkrona VME-bussen. Generellt sett brukar PC-teknologi ha en kort livslÀngd.
Kommunikationen mellan realtidssystemen och operatörsgrÀnssnittet gÄr via standardiserade lokala nÀtverksanslutningar. Enheter som krÀver I/O med höga prestanda, till exempel monitorer för strÄlpositionen, anpassas direkt till VME-systemen.
Den digitala behandlingen av diagnostikdata om strÄlen görs typiskt i flera steg, med data som levereras i hastigheter upp till mÄnga miljoner samples per sekund frÄn A/D-omvandlare i konstruktionens framkant. Data gÄr sedan via de första processtegen till en kontinuerlig decimering av data i de följande stegen. Slutresultatet Àr en berÀkningskedja, som till exempel RMS- eller medelvÀrdesberÀkning av strÄlens position eller storlek. Data levereras normalt sett i frekvenser frÄn Hz till kHz till styrsystemets anvÀndargrÀnssnitt eller till Äterkopplingsalgoritmerna.
Det första steget i processkedjan involverar normalt sett filter som processar data vid de höga frekvenser som anvÀnds vid ingÄngarna. De följande stegen arbetar normalt sett med lÀgre datahastigheter, men utför i stÀllet mera komplexa operationer. Det kan handla om rutiner för att matcha vÄgformer, Äterkopplingsalgoritmer för banor eller kommunikationsprotokoll pÄ högre nivÄ.
VPC-kortets arkitektur hanterar detta via en FPGA-krets (User FPGA). Anslutningen till ingÄngselektroniken gÄr via anvÀndardefinierade I/O till VME-kortets P0/P2-bakplan och till PMC-kontaktdonet. En programmerbar logikkrets gör det möjligt att implementera tiotals eller hundratals processelement (framför allt FIR-filter) som kan optimeras för tillÀmpningen. De kan arbeta parallellt i hög hastighet för att hantera de första stegen i signalprocessorkedjan.
Den hÀr lösningen Àr normalt sett en eller flera magnituder snabbare Àn att anvÀnda en konventionell processor med sekventiell bearbetning. DÀremot kan med fördel de sista stegen i kedjan hanteras av en processor, eftersom datahastigheterna dÀr Àr lÀgre och algoritmerna och programmen mera komplexa. De kan bestÄ av mÄnga tusen rader högnivÄkod och vara alltför komplexa för att implementeras i en FPGA-struktur utan en processor.
DĂ€rför anvĂ€nder VPC-kortet en Xilinx Virtex2PRO-FPGA, som inte bara innehĂ„ller en normal FPGA-struktur (med vippor och uppslagstabeller), utan ocksĂ„ tvĂ„ PowerPC 405-processorer, ca 100 kbyte dedikerat RAM, klocksynteskretsar och Ă„tta seriella tranceivers (Rocket I/O) som klarar hastigheter i multi-Gbit-klassen i full duplex. TvĂ„ av de snabba seriekanalerna ansluts till fiberoptiska tranceivers för lĂ„ngdistanskommunikation mellan en grupp VPC-kort. Resten av systemkretsen (User FPGA) anvĂ€nds för att implementera den kompletta digitala sektionen av accelerationsmonitorn och/eller Ă„terkopplingssystemet. FPGA-kretsen kan lagra mĂ€tdata i fyra Mbyte externt âZero Bus Latencyâ-minne (ZBT RAM), med ett kontinuerligt dataflöde pĂ„ 1,32 Gbyte/s.
Detta RAM kan ocksÄ lagra PowerPC-programkod om FPGA-kretsens interna RAM Àr för litet. Icke-flyktiga data, som bootdata för PPC-processorn eller kalibreringsdata, kan lagras i 16 Mbyte flashminne.
User FPGA-kretsen ansluts till en andra FPGA-krets (System FPGA) via fem Gbit-tranceivers (Rocket I/O). DÀr överförs stora datamÀngder med en bandbredd av 1 Gbyte/s. Data överförs ocksÄ via en multiplexerad 32-bits data/adressbuss. Den anvÀnds för att nÄ interna register eller RAM i den andra FPGA-kretsen. PÄ bussen finns ocksÄ 16 Mbyte flashminne, som kan nÄs frÄn bÀgge FPGA-kretsarna.
System FPGA har ocksÄ ett direkt grÀnssnitt mot VME-bussen, en anslutning till en DSP-processor med 3 Mbyte SRAM, en anslutning till de tvÄ PMC-socklarna via en 66 MHz/64 bit PCI-buss och en 8-bits databuss till en flashkortshanterare. Tack vare den modulÀra strukturen Àr det lÀtt för anvÀndaren att lÀgga till egna IP-moduler för hÄrdvarufunktioner om sÄ krÀvs.
Mjukvara och hÄrdvara
Programmeringen av User FPGA definieras helt av respektive diagnostiktillÀmpning, förutom det standardiserade grÀnssnittet till System FPGA. System FPGA anvÀnder dÀremot ett generellt VHDL-baserat program som Àr tillrÀckligt flexibelt för att klara kraven frÄn VPC-kortens applikationer.
Genom att separera generella och applikationsspecifika program i de tvÄ FPGA-kretsarna garanteras att fel eller timingproblem i applikationsprogramvaran inte pÄverkar VME-bussen och i och med det andra kort. Detta minskar risken vid uppgradering av FPGA-program under körningen av acceleratorn.
Ytterligare fördelar med tvÄ separata FPGA-kretsar Àr att utvecklingscyklerna accelereras via snabbare place&route-körningar och att antalet in- och utgÄngar blir mycket större Àn med bara en FPGA-krets. Eftersom kommunikationen mellan de tvÄ kretsarna Àr sÄ snabb finns inga egentliga prestandaförluster i att dela upp systemet.
För att göra det lÀtt att expandera programmet i System FPGA definierades en modulÀr buss för anvÀndning inom kretsen. Den bygger pÄ en 64-bits 132 MHz-buss (OCB), som klarar flera bussmastrar. De olika grÀnssnitten, till exempel VME-bussen, status- och konfigureringsregistren, Rocket I/O och parallellbussen till flashminnet konstruerades som oberoende moduler som ansluts till OCB som mastrar eller slavar.
Konstruktionen Àr helt synkron och har stöd för olika oberoende klockor (antingen synkrona eller asynkrona) för OCB-bussen och för varje grÀnssnitt som ansluts till OCB-bussen. Det modulÀra konstruktionssÀttet tillÄter gradvisa förbÀttringar i takt med ökade krav.
VPC-korten kan ocksÄ utrustas med specialtillverkade PMC-kort som har anvÀndarspecifika kommunikationsprotokoll mellan PMC-modulen och System FPGA. Protokollen definieras dÄ som anvÀndarspecifika moduler i FPGA-kretsen.
VME-grÀnssnittet har stöd för konventionella D8/D16/D32-cykler med enstaka ord. För högre hastigheter stöds ocksÄ blocköverföringar enligt 2eVME. Tranceiverkretsarna för VME-bussen har stöd för 2eSST (2-edge Source Synchronous Transfer), vilket ger hastigheter upp till 320 Mbyte/s.
VPC-kortet har bara ett fÄtal komponenter förutom FPGA-kretsarna. Alla grÀnssnitt implementeras i FPGA, utan externa kretsar, förutom de busstranceivrar som behövs för omvandlig av spÀnningsnivÄer. Detta skiftar komplexiteten frÄn hÄrdvara till mjukvara (firmware) och tillÄter snabba prototyper. Konstruktionen av hÄrdvara krÀver ingen eller liten kunskap om grÀnssnitt, protokoll och timing.
PÄ det sÀttet flyttas risken för buggar frÄn hÄrdvara till mjukvara. Det kortar ner tiden för at rÀtta fel frÄn veckor eller mÄnader till timmar eller dagar. samtidigt minskar risken för att valda komponenter försvinner ur produktion. KÀllkoden i VHDL för grÀnssnitten kan relativt lÀtt modifieras för andra existerande eller kommande FPGA-kretsar. Efterföljare till VPC-korten kan anvÀnda samma kod med inga eller minimala förÀndringar.
EPICS-drivrutiner finns tillgĂ€ngliga för VPC och anvĂ€nds i PSI-tillĂ€mpningarna. EPICS Ă€r en uppsĂ€ttning Open Source-verktyg, bibliotek och tillĂ€mpningar som utvecklats gemensamt. EPICS anvĂ€nds globalt för att skapa distribuerade âmjukaâ realtidsstyrsystem för vetenskapliga instrument som partikelacceleratorer, teleskop och andra stora vetenskapsexperiment. EPICS startade 1989 som ett samarbete mellan Los Alamos National Laboratory (LANL) och Argonne National Laboratory (ANL), bĂ€gge i USA. Idag har mĂ„nga andra organisationer som behöver tillförlitlig styrmjukvara anslutit sig till samarbetet. Bland dem finns DESY och BESSY i Tyskland, Rutherford Appleton Laboratory i Storbritannien och PSI i Schweiz.
Sedan 2004
BĂ„de VPC-korten och FPGA-programmen utvecklades frĂ„n början hos PSI och har anvĂ€nts sedan maj 2004. Sedan 2006 har kortet producerats och underhĂ„llits för PSI av tyska MEN Mikro Elektronik. Kortet sĂ€ljs kommersiellt av MEN under namnet âA405-6U VME64 Processing Board PMC Carrierâ. A405-kortet levereras med data som gör det möjligt att programmera System FPGA och nĂ„ hĂ„rdvarufunktionerna pĂ„ User FPGA.
DÀrutöver finns ett grundlÀggande demopaket för User FPGA tillgÀngligt frÄn www.men.de. Paketet innehÄller exempel pÄ tillÀmpningar i kÀllkod, bland annat en konstruktion som tillÄter enkel digital access av alla P0/P2- och PMC-I/O via VME. PÄ det sÀttet kan anvÀndare av A405 testa sina ingÄngar utan att behöva skriva FPGA-kod. Filerna Àr preparerade för CompactFlash-grÀnssnittet.
VPC-kortet har anvÀnts i en rad tillÀmpningar inom PSIs sektion för acceleratordiagnostik. Vid flera transferlinjer hos PSIs protonringscyklotron har BPM-elektroniken ersatts av digitala system. DSP-kort i SLS-boostern har ersatts och ett billigt Ättakanals samplingschip för vÄgformer har anslutits via PMC-kort. Det hÀr chipet (domino chip) utvecklades av PSI och kan spela in 1024 samples med 0,5-4,2 GSamples/s. FrÄn början togs chipet fram för ett experiment (muon decay) som anvÀnde 100 VPC-kort med vardera tvÄ dominochip pÄ ett PMC-kort i dubbel storlek. Dominochipet ocksÄ i andra diagnostiktillÀmpningar för acceleratorn.
PSIs sektion för acceleratordiagnostik medverkar i det europeiska CARE-programmet (Coordinated Accelerator Research) och i XFEL-programmet (X-ray Free Electron Laser). DÀr testas VPC-baserade system för digital RF-styrning och snabb stabilisering av elektronstrÄlen hos TESLA VUV FEL (Tera ElectronVolt Superconducting Linear Accelerator, Vacuum Ultra-Violet, Free Electron Laser).
Hermann Strass, MEN Mikro Elektronik