4.5 Blokový záznam s hardwarovým zásobníkem

Charakteristika:
  • zařízení obsahuje obvody pro autonomní zpracování signálů vstupů
  • základní "nízkokapacitní" zásobník je řešen hardwarově přímo v zařízení a je zaplňován nezávisle na běhu ovladače, resp. aplikace; časová nepřesnost zaplňování je nepatrná (typicky desítky nanosekund) ; kapacita tohoto zásobníku závisí na zařízení (od desítek naměřených hodnot po stovky tisíc naměřených hodnot)
  • druhá úroveň zásobníku je řešena uvnitř ovladače (tzn. v operační paměti PC); ovladač načítá data z hardwarového zásobníku zařízení na základě informací o jeho zaplnění a ukládá je do vlastního zásobníku; kapacita tohoto zásobníku je nastavena na cca 800 tisíc naměřených hodnot
  • záznam dat může být iniciován periodicky časovačem (součást zařízení) nebo externím signálem (speciální vstup zařízení)

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.


Krok 1. Upravení časových poměrů v měřicí sekvenci

Pro úpravu časových poměrů (zpravidla individuální zpoždění pro každé zesílení a externí multiplexer) je určena funkce Td_Set_Parameters.
Upozornění: Podpora implementována pouze u vybraných zařízení. V převážné většině aplikací vyhovují defaultní parametry, v případě potřeby lze časové poměry nastavit i funkcemi administračního programu.

Krok 2. Nastavení režimu synchronně scanovaných čítačů

Budou-li využity i synchronně scanované čítače (viz krok "konfigurace měřicí sekvence"), je vhodné nejprve funkcí Td_Config_ScanCounter definovat počáteční režim.

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 spouštění měřicích sekvencí funkcí Td_Config_Timing_Acquisition.
V případě spouštění měření externím signálem je touto funkcí ovladač informován o maximální očekávané frekvenci a nastaví optimální přenosové parametry.

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 nebo externím pulsem.
Zařízení akceptuje konfigurační hodnoty nastavené v předešlých krocích a následně začne periodicky (nebo na základě externího signálu) provádět měřicí sekvence a data ukládat do interního zásobníku.

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živateské 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 se SW ř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