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
|