4.6 Blokový záznam s plně softwarovým zásobníkem
Charakteristika:
- tento režim podporují pouze vybrané zásuvné karty pro sběrnici PCI, ne USB moduly
- zařízení neobsahuje žádný zásobník, ale pouze generátor časových značek nebo jiné obvody pro generování požadavku o přerušení systému
- ovladač autonomně zpracovává se zpožděním požadavky o přerušení a načítá data přímo z datových vstupů (analogicky jednorázovému záznamu z aplikace) a ukládá je do vlastního zásobníku (tzn. v operační paměti PC)
- časová nepřesnost načítání dat je závislá na momentálním vytížení operačního systému apod. (typicky stovky mikrosekund až jednotky milisekund).
Doporučení: Aplikační program by měl v uvodu inicializovat všechny použité I/O periferie do potřebných režimů a nastavit vhodné počáteční hodnoty.
Důležité upozornění: Zařízení podporuje buď záznam s HW řešeným zásobníkem nebo SW řešeným zásobníkem, ne však oba současně; některá zařízení však nemusejí podporovat ani jeden z režimů.
Krok1. Nastavení směru digitálních portů
|
|
Pokud bude periodicky zjišťována hodnota vstupního digitální portu a pokud karta umožňuje měnit směr digitálních portů, je potřeba nastavit vybrané porty jako vstupní v administračním programu nebo funkcí Td_Set_Parameters. Zůstanou-li porty nastaveny jako výstupní, jsou do zásobníku ukládány hodnoty generované výstupy.
Upozornění: Směr digitálních portů lze nastavit pouze u vybraných zařízení. |
Krok 2. Počáteční konfigurace čítačů
|
|
Pokud bude periodicky zjišťována hodnota čítačů, je potřeba je zkonfigurovat jako v případě přímého ovládání (viz kapitola 4.3). Mají-li čítače zpracovávat signály již před zahájením měření, lze spustit čítání funkcemi Td_Start_Counter a Td_Save_StartStop_Counter. Čítače lze ovládat v průběhu měření. |
Krok 3. Konfigurace měřicí sekvence
|
|
Pro konfiguraci měřicí sekvence (tzn. výběr měřených vstupů, odpovídajících napěťových rozsahů, zařazení čítačů a digitálních vstupů do sekvence, ...), je vyhrazena funkce Td_Config_Acquisition.
Upozornění: Možnosti funkce a její parametry se odlišují podle typu zařízení. |
Krok 4. Nastavení frekvence měření
|
|
V rámci konfigurace je potřeba nastavit vzorkovací frekvenci, tzn. frekvenci vyvolávání přerušení systému generátorem časových značek funkcí Td_Config_Timing_Acquisition. |
Krok 5. Zahájení měření
|
|
Pro převedení zařízení z klidového konfiguračního režimu do měřicího je určena funkce Td_Start_Acquisition s parametrem spouštění časovačem.
Zařízení zahájí generování přerušení systému a ovladač v rámci zpracování vyvolaného přerušení načítá data z požadovaných vstupů a ukládá je do interního zásobníku ovladače. |
Krok 6. Průběžný přenos dat do aplikace
|
|
Odměřená data je třeba včas odebírat ze zásobníku knihovny jednou ze dvou metod:
Přenos kombinací dvou funkcí:
Td_Get_Buffer_Status - vrací počet již změřených a nevyzvednutých kanálů (tvořících měřicí sekvence)
Td_Get_Buffer_Data - vyzvedne požadovaný počet kanálů a uloží tyto naměřené hodnoty (vzniklé mnohonásobným provedením měřicí sekvence sestavené v kroku 3) do uživatelského bufferu.
Zasílání kolekcí měřicích sekvencí:
V tomto režimu knihovna TEDIA_DAQ01 volá uživatelskou funkci (tzn. funkci uvnitř aplikace) při každé kompletní kolekci odměřených měřicích sekvencí. Tento režim se aktivuje funkcí Td_Start_Buffer_Data_Request a zastavujeme funkcí Td_Stop_Buffer_Data_Request).
V uživatelské funkci by nemělo být přímo pracováno s grafikou a soubory (protože funkce není volaná "Synchronized"). Je tedy potřeba pouze překopírovat či zpracovat data a případně informovat vlastní aplikaci funkcí PostMessage či některým synchronizačním mechanizmem. Při využití synchronizačního mechanizmu (např Semafory, Mutexy, Kritické sekce) lze pozastavit vlákno knihovny TEDIA_DAQ01 volající uživatelskou funkci.
Poznámka:
Během měření lze průběžně konfigurovat režim synchronně scanovaných čítačů funkcí Td_Config_ScanCounter a komunikovat s periferiemi s přímým přístupem.
Přenos je totožný jako v případě záznamu s HW řešeným zásobníkem. |
Krok 7. Ukončení měření, převedení zařízení do klidového režimu
|
|
Použitím funkce Td_Stop_Acquisition je zařízení převedeno zpět do klidového režimu a je připraveno na novou konfiguraci měřicí sekvence. |
Grafické znázornění postupu
|