|

Osnovne prednosti
DMA prenosa
DMA ima nekoliko osnovnih prednosti u odnosu na druge metode prenosa
podataka između akvizicionog modula i memorije računara. Prva je da
tokom DMA prenosa procesor računara ne treba da bude uključen u transfer.
Druga prednost: aktuelni protokol pri DMA transferu je obično jednostavniji
nego kod drugih tipova prenosa, pošto procesor nije angažovan u samom
prenosu.
Pošto
u DMA transferu procesor nije angažovan u aktuelni prenos podataka između
akvizicionog modula i memorije računara, on je slobodan za rad na drugim
poslovima u sistemu. Jedan primer je upisivanje podataka u fajl na disku
za trajno čuvanje podataka, za vreme dok se naredni podaci prikupljaju
sa akvizicionog modula. Drugi primer može biti grafičko prikazivanje
prethodno prikupljenih podataka, za vreme dok se prikuplja sledeća količina
podataka. U sistemima u kojima akvizicija podataka ili izlaz moraju
biti izvršavani istovremeno sa nekim drugim procesiranjem, DMA može
biti mnogo jednostavniji način prenosa podataka nego programirani I/O
(pri kojem procesor izvršava instrukcije za prenos podataka, kao deo
programa koji takođe prikazuje ili arhivira podatke), ili interapt gde
procesor periodično zaustavlja izvršenje programa koji prikazuje ili
arhivira podatke, i prenosi nove podatke pod kontrolom procesora. Dakle,
podaci mogu biti prenešeni mnogo brže DMA prenosom nego kod programiranih
I/O transfera, pošto prenos može da se obavi onda kada hardver odredi
da je podatak spreman, umesto da program određuje trenutak kada je transfer
moguć.
Kada
DMA vrši prenos podataka bez intervencije procesora, za izvršenje transfera
je obično potrebna samo startna sekvenca za definisanje lokacije u računarskoj
memoriji gde će se obavljati transferi, periodična status sekvenca za
utvrđivanje da li je transfer kompletan i stop sekvenca za zaustavljanje
procesa ili čišćenje nakon kompletiranja. Pored toga, ove funkcije se
lakše implementiraju nego procesiranje pomoću interapta, koji može imati
razne oblike na različitim Windows operativnim sistemima i čije vreme
izvršavanja
može znatno da varira, zavisno od toga koji programi i rutine su aktivni
u sistemu.
Prednosti
ED-ovog instrumentacionog hardvera
Pored osnovnih prednosti korištenja DMA prenosa podataka, ED-ov višefunkcionalni
akvizicioni modul ED428, koji radi sa
DMA prenosom podataka, ima i posebne prednosti u odnosu na slične module drugih
proizvođača. ED428 može da radi simultani ulazni DMA za prenos
ulaznih podataka sa modula u memoriju računara i izlazni DMA za prenos
analognih izlaznih podataka iz memorije računara ka modulu. Ovo omogućava da
se dizajniraju sistemi tipa “pobuda/odziv”, u kojim izlazni DMA predstavlja
neki talasni oblik, koji se generiše na modulu i vodi na ulaz spoljnog sistema,
a ulazni DMA meri i zapisuje odziv sistema na tu pobudu.
Prednosti
ED-Link softvera
ED-Link softverski drajveri omogućavaju da se osnovne performanse
PC-a prošire. Osnovni dizajn PC računara,
koji je ustanovljen kada se pojavio originalni IBM PC, za DMA prenos
je koristio memorijske sekcije od maksimalno 64 KB. To znači
da jedan DMA transfer može da se sastoji od samo 64 KB podataka (65536
bajta). ED-Link koristi posebnu strategiju za prevazilaženje
ovog hardverskog ograničenja pod operativnim sistemima Windows
3.x/95/NT. Kada se primenjuje ED-Link, za DMA transfer mogu
da se koriste memorijske sekcije do ukupne veličine raspoložive
memorije u računaru.
|
|

Baferi
Svaki DMA transfer, bilo iz memorije računara ka akvizicionom modulu, ili iz
akvizicionog modula ka memoriji računara, koristi DMA bafere. Ovi baferi su
delovi memorije, posebno rezervisani i setovani za prijem podataka sa modula ili
za slanje podataka ka modulu. Obzirom na ograničenja PC-ovog DMA hardvera, ovi
baferi su ograničeni u pogledu veličine i lokacije. DMA transfer koristi jedan
bafer u jednom trenutku. Baferi za DMA se rezervišu i deklarišu pomoću
funkcija koje obezbeđuje ED-Link. Uz pomoć ovih funkcija,
ED-Link
zaobilazi detalje vezane za alokaciju i opsluživanje bafera, što
omogućava da se pažnja koncentriše na samo procesiranje podataka.
Rezervacija
resursa
Svaki akvizicioni modul koji podržava DMA prenos koristi bar jedan DMA kanal.
PC podržava do 7 DMA kanala (neki od njih nisu kompatibilni sa sistemima za
akviziciju). Dva akviziciona modula ne mogu koristiti isti DMA kanal u isto
vreme a samo mali broj modula dopušta upotrebu DMA kanala za drugi modul za vreme dok
ga ne koristi modul koji ga je
prethodno rezervisao. Kada se ED428 koristi za DMA prenos podataka,
mora se selektovati DMA kanal koga ne koristi neki drugi modul u računaru (zvučna
kartica koristi jedan, ili čak dva DMA kanala), a zatim treba konfigurisati
akvizicioni modul za taj DMA kanal. ED428 zahteva DMA kanal sa nižom numeracijom (DMA kanali
1 ili 3).
Ako se greškom selektuje DMA kanal koji već koristi neki drugi modul, najčešće
se DMA transfer ne ostvaruje (podaci ne ulaze ili ne izlaze sa akvizicionog
modula, ili, ako je modul u konfliktu sa zvučnom karticom, neće se čuti zvuk
itd.).
Komponente
operativnog sistema
Kada se koristi DMA transfer podataka sa ili ka akvizicionom modulu,
neophodno je operativnom sistemu dodati neke softverske komponente. Da bi se
ostvario DMA transfer pod operativnim sistemom Windows
95, ED-Link
zahteva da se dodaju dve softverske komponente: vdmad.vxd i mastrlnk.vxd.
Pod operativnim sistemom Windows NT, ED-Link
zahteva instalaciju softverske komponente mastr_nt.sys.
Pod
operativnim sistemom Windows 95, vdmad.vxd obezbeđuje neke funkcije koje omogućavaju ED-Link-u
da programira DMA hardver u PC-u za prenos podataka. Neophodno opsluživanje DMA
hardvera je već obezbeđeno u OS Windows
95, ali neke od softverskih rutina neophodnih za opsluživanje nisu
optimizovane za aplikacije sa akvizicijom podataka i vdmad.vxd otklanja te nedostatke. Komponenta mastrlnk.vxd obezbeđuje funkcije za ED-Link, koje omogućavaju
alokaciju memorijskih bafera, kao i nekih drugih neophodnih rutina korištenih u
ED-Link-u, koje se ne odnose na DMA.
Za
rad pod operativnim sistemom Windows NT,
mastr_nt.sys obezbeđuje mnoge
neophodne rutine za opsluživanje i alokaciju DMA bafera koje ED-Link
koristi za implementaciju DMA transfera.
|
|

Organizacija podataka u
baferu
Kao što je već rečeno, svi transferi podataka koji se vrše pod DMA, koriste
memorijski bafer u PC memoriji. Pri ulaznom DMA procesu, podaci se prenose iz
akvizicionog modula u taj memorijski bafer, a pri izlaznom DMA procesu podaci se
iz memorijskog bafera prenose ka akvizicionom modulu. Pošto CPU PC-a nije uključen
u DMA prenos podataka, podaci se uobičajeno pojavljuju u DMA baferu u neuređenoj
formi. To je obično niz očitanih bajtova ili bajtova spremnih za upisivanje u
različite registre akvizicionog modula. Format podataka, posebno analognih
ulaznih, široko varira od modula do modula (pošto različiti
analogno-digitalni konvertori (A/D)
koriste različite formate za svoje podatke). U opštem slučaju, analogni
ulazni podaci u DMA baferu su predstavljeni u sledećem obliku:
Analogni ulazni kanal 0, 1, 2, ... 0, 1.
Podatak sa svakog analognog ulaznog kanala
se prenosi u bafer jedanput, a zatim se prvi kanal ponavlja, itd. Ovakav format
podataka se koristi pošto se analogni ulazni podaci multipleksiraju, odnosno pošto
jedan A/D konvertor vrši konverziju za sve ulazne kanale. Svaki put kada se
kanal očitava, A/D konvertor dobija podatke sa sledećeg kanala i obavlja
konverziju.
Kada se podaci prenose na analogne izlaze, format podataka u baferu je
komlikovaniji. Pri slanju podataka na jedan izlazni kanal, šalju se dva bajta
za svaki impuls izlaznog rate generatora. Kada se programira izlazni DMA proces
za oba izlazna kanala modula ED428, podaci se za svaki impuls rate
generatora prenose na oba izlazna kanala. Podaci za oba analogna izlazna kanala
moraju biti isprepleteni u istom DMA baferu, pa se za svaki impuls izlaznog
rate generatora šalju četiri bajta podataka. ED-Link
automatski obezbeđuje format i smešta podatke u bafer sa
funkciom BUFEncode.
Zajednički
format podataka (Comon Format )
Pošto svaki tip analognog ulaznog kanala (i, potencijalno, svaki tip analognog
izlaznog kanala, brojačkog ulaznog kanala i sl.) može da ima različit format
podataka, Softverski drajveri ED-Link
obezbeđuju funkcije koje konvertuju informacije smeštene u DMA baferu u
standardan format, zasnovan na izvoru podatka. Sličnim funkcijama se konvertuju
podaci iz standardnog formata izlaznih podataka u specijalno kodirane podatke
koji se smeštaju u DMA bafer za izlazne kanale. BUFDecode funkcija u ED-Link-u konvertuje podatke iz određenog broja grupa podataka (grupa
podataka definiše se funkcijom DMAConfigureList i uključuje po jedno očitanje za svaki
analogni ulazni kanal iz grupe). Funkcija BUFEncode
u ED-Link-u konvertuje iz zajedničkog formata podatke namenjene za analogne
izlazne kanale u ispravan izlazni format za DMA bafer.
Svaki
tip kanala (analogni ulaz, analogni izlaz, digitalni ulaz, digitalni izlaz,
brojački ulaz, itd.) ima određeno predstavljanje u zajedničkom formatu, kakvo
očekuje softverski drajver ED-Link. Ti formati su za pojedine tipove kanala dati u nastavku:
 |
Za analogne bipolarne ulazne opsege (±10 V, ±5 V), podaci se predstavljaju kao 16-bitni single i
nteger, gde 32767 odgovara pozitivnom punom opsegu (+10 V, +5
V), a –32768 odgovara negativnom punom opsegu (-10 V, -5 V). Za
unipolarne ulazne opsege (0-10 V, 0-5 V) podaci se predstavljaju kao 16-bitni unsigned
integer, gde 65535 odgovara punom opsegu (10 V ili 5 V), a 0 odgovara 0 V. |
|
Predstavljanje
podataka za analogne izlazne kanale je isto kao i za analogne ulazne
kanale.
|
|
Digitalni ulazni
podaci su predstavljeni kao 16-bitni unsigned
integer, sa vrednostima rangiranim od 0 do 255.
|
|
Predstavljanje
podataka za digitalne izlazne kanale je isto kao i za digitalne ulazne
kanale.
|
|
Brojački ulazni podaci predstavljeni su kao 32-bitni unsigned
integer. Za 16-bitne brojačke kanale, podaci mogu biti u opsegu od 0-65535. Za 32-bitne
brojačke kanale, podaci mogu biti u opsegu od 0-4294967295.
|
Pejsovanje/trigerovanje pri DMA prenosu podataka
DMA proces kod akvizicije podataka, bilo ulazni, bilo izlazni, zahteva neki događaj
za start prenosa podataka, neki događaj za zaustavljanje transfera, kao i
seriju događaja za svaki sukcesivni transfer. Start i stop događaji se definišu
kao trigerovanje (triggering), dok se
serija događaja pri sukcesivnim transferima naziva pejsovanjem (pacer,
slobodni
prevod takt). Obično se DMA proces startuje ili zaustavlja softverskom
komandom, dok se ostali događaji iniciraju ili softverskim putem, ili
hardverskim signalima sa akvizicionog modula, ili nakon kompletiranja zadatog
broja transfera. Hardverski signali za DMA takt dolazi obično sa tajmera koji
je integrisan na samom akvizicionom modulu.
DMA trigerski događaji mogu doći iz različitih izvora. Kao što je već rečeno,
najčešće je to softverska komanda. ED-Link
funkcije DMAStart
i DMAStop su oblici DMA
trigerskih događaja (pored toga, ove funkcije obavljaju i druge neophodne
zadatke u DMA prenosu). NA akvizicionom modulu ED-Link, hardverski
trigerski signal može da dođe sa digitalnog ulaza (EXTIN).
Svaki akvizicioni modul koji podržava DMA prenos, podržava i odgovarajuće
izvore trigerovanja. Različiti moduli mogu podržavati različite kombinacije
start i stop trigerskih događaja (neki moduli ne podržavaju trigersko
startovanje, dok neki ne podržavaju zaustavljanje hardverskim trigerskim
signalom, ali mogu podržavati zaustavljanje nakon određenog broja transfera
ili putem softverske komande). Višefunkcionalni akvizicioni modul ED428
podržava sledeće načine startovanja i zaustavljanja DMA prenosa:
DMA pejserski događaji mogu takođe
dolaziti iz različitih izvora, ali se softversko pejsovanje obično ne koristi.
Pejserski događaj inicira A/D konverziju i transfer podataka između DMA bafera
i akvizicionog modula. Korišćenje hardverskog pejsera omogućava semplovanje u
pravilnim vremenskim intervalima sa svih kanala i to je jedna od značajnijih
prednosti DMA prenosa u odnosu na CPU kontrolisane transfere. Pošto pejserski
izvor može da radi sa velikom brzinom (u poređenju sa brzinom CPU
kontrolisanog semplovanja), hardversko DMA pejsovanje omogućava semplovanje sa
visokom frekvencijom. Akvizicioni modul
ED428 poseduje odvojene rate
generatorske kanale za pejsovanje analognog ulaznog i analognog izlaznog DMA
prenosa.
|
|
ULAZNI
DMA PROCES
|
| START MODE |
STOP MODE |
| Start on Command |
Stop on Terminal
Count |
| Start on Command |
Stop on Command |
| Start on Trigger |
Stop on Terminal
Count |
| Start on Trigger |
Stop on Command |
|
|
IZLAZNI
DMA PROCES
|
| START MODE |
STOP MODE |
| Start on Command |
Stop on Terminal
Count |
| Start on Command |
Stop on Command |
|
|

DMA Hendl
U ED-Link-u “DMA
Handle” je vrednost koja je pridružena odgovarajućem setu DMA parametara
(odnosno odgovarajućem DMA procesu), na sličan način kao što se “FILE
Handle” u DOS-u, UNIX-u ili Windows-u pridružuje parametrima sa kojima je
fajl otvoren. Većina DMA funkcija u ED-Link-u prihvata DMA hendl i
primenjuje se na onaj DMA proces koji je identifikovan tim hendlom. DMA hendl se
kreira pomoću funkcija DMAGetHandle
i DMAGet-
HugeHandle. DMA hendl se mora
resetovati nakon što se DMA proces završi, odnosno nakon što više nije
potreban za kontrolu i identifikaciju DMA procesa. Ovo se vrši pomoću funkcije DMAFreeHandle.
Nakon
alokacije DMA hendla,
ED-Link
alocira isti memorijski prostor za čuvanje
informacija o DMA procesu, uključujući DMA kanal PC-a koji se koristi, listu
kanala koji će se očitavati (ili upisivati u izlaznom procesu), kao i
informacije o hardverski specifičnom formatu podtaka koji se smeštaju u DMA
bafer (omogućavajući konverziju podataka u/iz common
formata).
Svaki
put kada se pozove neka DMA ili baferska funkcija, kao što su DMAConfigureList, DMASetOptions
ili DMASetPacer, informacije koje su
pridružene DMA hendlu se modifikuju. Kada se pozove DMAStart funkcija, te informacije se koriste da konfigurišu
akvizicioni modul i PC za DMA proces. Dalje, kada se pozovu funkcije DMAStatus
ili DMAStop, informacije se koriste za određivanje statusa procesa.
Kada se pozove funkcija BUFDecode
da bi se prihvatili podaci iz DMA bafera, informacije se koriste za konverziju
nesređenih podatke iz DMA bafera u common
format podataka.
DMA
lista
Akvizicioni moduli koji podržavaju DMA prenos podataka moraju se programirati
sa listom I/O kanala. To su kanali za koje se vrši transfer podataka. Svaki
akvizicioni modul ima različita ograničenja na tipove podataka koji se mogu
prenositi (akvizicioni modul ED428
i podržava analogni ulazni i
analogni izlazni DMA prenos podataka). Lista kanala čiji se podaci prenose se
uspostavlja pomoću funkcije DMAConfigureList
i, ako se prenose ulazni analogni podaci, pomoću funkcije AIConfigureList.
Obe ove funkcije moraju da se koriste kada se prenose analogni ulazni podaci,
tako da se informacije o pojačanju, opsegu i ulaznoj konfiguraciji verifikuju i
programiraju za sve ulazne analogne kanale. Preporučeni redosled poziva ovih
funkcija je AIConfigureList (za
uspostavljanje konfiguracije analognih ulaznih kola), iza koje sledi funkcija DMAConfigureList
(za konfigurisanje DMA hardvera na akvizicionom modulu, za prenošenje podataka
sa svih kanala od interesa).
Kao
što je već rečeno, DMA lista definiše sadržaj DMA bafera. Međutim, u cilju
obezbeđenja ispravnog rasporeda podataka u baferu, redosled analognih ulaznih
kanala u DMA listi i analogna ulazna lista moraju biti potpuno usklađene.
|

Konfiguracija
hardvera
Prvi korak u prikupljanju podataka sa akvizicionog modula putem DMA sa ED-Link-om
(pored inicijalizacije drajvera, koja se mora obaviti u svim ED-Link aplikacijama) je konfiguracija I/O kanala koji će biti očitavani/upisivani
tokom procesa. Ako se očitavaju analogni ulazni kanali, mora biti pozvana i
funkcija AIConfigureList,
kojom se postavlja pojačanje, opseg i ulazna konfiguracija kanala koji se očitavaju.
Nakon
toga, moraju se konfigurisati pejserski i trigerski kanali (ako postoje), koji
će se koristiti za tajming transfera tokom procesa, a zatim se vrši
konfigurisanje startovanja i zaustavljanja DMA procesa. Kada se za ulazni DMA
proces koristi akvizicioni modul ED428, ulazni rate generator se mora
konfigurisati za željenu brzinu prikupljanja podataka upotrebom RGConfigure funkcije.
Povezivanje
signala
Nakon konfigurisanja pejserskog i trigerskog kanala, neophodno je izvršiti
povezivanje njihovih izlaza i hardverskih ulaza koji treba da budu pejsovani ili
trigerovani za DMA akviziciju. Kada se prikupljaju analogni ulazni podaci, izlaz
rate generatora ili nekog drugog izvora pejsing signala mora biti doveden na
ulaz za start konverzije na analognom ulaznom modulu. Na akvizicionom modulu ED428,
izlazi rate-generatora za pejsovanje ulaznog i izlaznog DMA procesa su interno
spojeni na samom modulu na ulaz za start konverzije na A/D, odnosno D/A
konvertoru. Pored toga, za pejsovanje ulaznog DMA procesa se može koristiti i
spoljni izvor signala, koji se povezuje na EXTIN ulaz modula, kao
i izlaz brojača 0 (kada se ne koristi kao preskaler za rate generator). U slučaju
kada se na EXTIN ulaz modula dovodi signal za pejsovanje, ulazni
rate generator mora biti onemogućen prilikom konfigurisanja
pejsing kanala.
Kada
se za startovanje ili zaustavljanje DMA procesa koristi trigerovanje, trigerski
signal mora biti spojen na DMA trigerski ulaz akvizicionog modula. Kada se na
akvizicionom modulu ED428 koristi eksterno trigerovanje, na EXTIN
ulaz modula se dovodi TTL-kompatibilan signal (rastuća ivica).
Alokacija
DMA Hendla
Kada su ulazni kanali, pejser i triger ispravno konfigurisani i spojeni, DMA
hendl mora biti alociran iz ED-Link
pomoću funkcija DMAGetHandle
ili DMAGetHugeHandle. Vrednost hendla
se koristi za sve ostale pozive drugih DMA funkcija. Pored toga, DMA kanal u
PC-u koji se koristi u DMA procesu, treba da se setuje pomoću funkcije DMASetOptions.
Konfiguracija
pejsera/trigera
DMA proces mora biti informisan o pejserskom i trigerskom kanalu koji se koristi
u DMA procesu. To omogućava funkcijama DMAStart
i DMAStop
da startuju i zaustave pejser i omoguće ili onemoguće izvor trigerovanja u
odgovarajućem trenutku. Identifikacija DMA pejsera i trigera se vrši primenom DMASetPacer
i DMASetTrigger funkcija.
Definisanje
liste kanala
Nakon konfigurisanja hardvera, potrebno je setovati DMA listu kanala, kojom se
definiše koji kanali će biti prikupljeni i u kom poretku. Ovaj zadatak se
ostvaruje pomoću funkcije DMAConfigureList.
Kada se prikupljaju analogni ulazni kanali, neophodno je da je poredak mernih
kanala bude usklađen sa specifikacijom datom funkcijama AIConfigureList i DMAConfigureList.
Alokacija
bafera
Alokacija bafera za DMA proces se vrši na osnovu rezultata primene funkcije DMAConfigureList. Ova funkcija izračunava broj bajtova DMA bafera
potrebnih za smeštanje po jednog očitanja sa svakog od mernih kanala iz DMA
liste kanala. Proizvod ove vrednosti i željenog broja očitanja sa svakog od
kanala, daje ukupnu potrebnu veličinu DMA bafera izraženu u bajtovima. Bafer
se alocira pomoću funkcije BUFAllocate.
Kada je alociran, bafer se uključuje u DMA proces pomoću funkcije BUFAttachProcess.
Start
akvizicije
Nakon svih prethodno obavljenih koraka, proces je spreman za startovanje.
Funkcija DMAStart
inicira DMA transfer, omogućavajući pejser i triger, kao i DMA kontroler u
PC-u. Za utvrđivanje da li je DMA proces kompletan (kompletnost se često određuje
i trigerom ili određenim brojem očitanja sa svakog kanala), koristi se DMAStatus
funkcija. Proces se može prekinuti pomoću softverske komande DMAStop.
Dekodovanje
podataka
Kada je proces kompletan, podaci prikupljeni u DMA baferu se preuzimaju i
procesiraju. Ovaj zadatak se vrši primenom funkcije BUFDecode.
|
|

Konfiguracija hardvera
Prvi korak u generisanju izlaznih podataka sa akvizicionog modula putem DMA sa
ED-Link-om
(pored inicijalizacije drajvera, koja se mora obaviti u svim ED-Link aplikacijama) je konfigurisanje izlaznih kanala na koje će biti upisivani
podaci tokom procesa. U tom cilju, mora biti pozvana funkcija AOConfigure,
kojom se postavlja opseg izlaznog napona.
Nakon
toga, moraju se konfigurisati pejserski i trigerski kanali (ako postoje), koji
će se koristiti za tajming transfera tokom procesa, a zatim se vrši
konfigurisanje startovanja i zaustavljanja DMA procesa. Kada se za izlazni DMA
proces koristi akvizicioni modul ED428, izlazni rate generator se mora
konfigurisati za željenu brzinu generisanja podataka upotrebom RGConfigure funkcije.
Povezivanje
signala
Po
konfigurisanju
pejserskog i trigerskog kanala, neophodno je izvršiti povezivanje njihovih
izlaza i hardverskih ulaza koji treba da budu pejsovani ili trigerovani za DMA
proces. Izlaz rate generatora ili nekog drugog izvora pejsing signala mora biti
doveden na ulaz za start konverzije na D/A konvertoru. Na akvizicionom modulu
ED428,
izlaz rate-generatora za pejsovanje izlaznog DMA procesa je interno spojen na
ulaz za start konverzije na D/A konvertoru.
Kada
se za startovanje ili zaustavljanje DMA procesa koristi trigerovanje, trigerski
signal mora biti spojen na DMA trigerski ulaz akvizicionog modula.
Alokacija
DMA hendla
Kada su ulazni kanali, pejser i triger ispravno konfigurisani i spojeni, DMA
hendl mora biti alociran iz ED-Link pomoću funkcija DMAGetHandle
ili DMAGetHugeHandle. Vrednost hendla
se koristi za sve ostale pozive drugih DMA funkcija. Pored toga, DMA kanal u
PC-u koji se koristi u DMA procesu, treba da se setuje pomoću funkcije DMASetOptions.
Konfiguracija
pejsera/trigera
DMA proces mora biti informisan o pejserskom i trigerskom kanalu koji se koristi
u DMA procesu, ako akvizicioni modul poseduje tu mogućnost. To omogućava
funkcijama DMAStart
i DMAStop da startuju i zaustave pejser i omoguće ili onemoguće
izvor trigerovanja u odgovarajućem trenutku. Identifikacija DMA pejsera i
trigera se vrši korištenjem funkcija DMASetPacer
i DMASetTrigger.
Akvizicioni modul ED428
nema mogućnost eksternog pejsovanja i trigerovanja DMA izlaznog
procesa.
Definisanje
liste kanala
Nakon konfigurisanja hardvera, potrebno je setovati DMA listu kanala, kojom se
definiše na koje kanale će biti upisivani podaci i u kom poretku. Ovaj zadatak
se ostvaruje pomoću funkcije DMAConfigureList.
Alokacija
bafera
Alokacija bafera za DMA proces se vrši na osnovu rezultata primene funkcije DMAConfigureList. Ova funkcija izračunava broj bajtova DMA bafera
potrebnih za smeštanje jednog izlaznog podatka za svaki od izlaznih kanala iz
DMA liste kanala. Proizvod ove vrednosti i željenog broja podataka za svaki od
kanala, daje ukupnu potrebnu veličinu DMA bafera izraženu u bajtovima. Bafer
se alocira pomoću funkcije BUFAllocate.
Kada je alociran, bafer se uključuje u DMA proces pomoću funkcije BUFAttachProcess.
Kodovanje
podataka
Kada je bafer alociran, podaci koji treba da budu upisani na izlazne kanale
tokom DMA procesa smeštaju se u bafer. Primenom funkcije BUFEncode
se vrši kodovanje i smeštanje izlaznih podataka u DMA bafer.
Start
akvizicije
Nakon svih prethodno obavljenih koraka, proces je spreman za start. Funkcija DMAStart
inicira DMA transfer, omogućavajući pejser i triger, kao i DMA kontroler u
PC-u. Za utvrđivanje da li je DMA proces kompletan (kompletnost se često određuje
i trigerom ili određenim brojem očitanja sa svakog kanala), koristi se DMAStatus funkcija. Ako se proces prekida pomoću softverske
komande, to se ostvaruje pomoću funkcije DMAStop.
|