Ovaj članak je važan za korisnike koji žele da se informišu o radu sa DMA i ako rade sa sledećim sistema za akviziciju podataka: 

 ED428 sistem za akviziciju podataka
 ED428-DAS A/D modul za R2-D2, PC kontroler
 A2-28-AD, A/D modul za A2, PC kontroler i
 A2 data loger, mobilni PC merni sistem 

Direktan memorijski pristup (Direct Memory Access - DMA) je način prenosa podataka, pri kojem procesor (CPU) računara ne izvršava instrukcije za prenos podataka. Na primer, kada PC koristi DMA da prikupi analogne ulazne podatke sa sistema za akviziciju, procesor istovremeno može da izvršava neku drugu aplikaciju, kao što je procesiranje slike ili sl. DMA ostvaruje ovu funkciju tako što koristi “mrtvo vreme” na ISA basu (na koji je uključen akvizicioni modul) da bi izvršio transfer podataka. Drugim rečima, kada procesor ne pristupa akvizicionom modulu, bas može da prenosi podatke sa kartice direktno u memoriju računara. Naravno, na hardverskom nivou je potrebno uraditi mnogo više nego što je sadržano u ovom pojednostavljenom opisu, ali važna osobina DMA prenosa podataka je da procesor nije angažovan tokom prenosa podataka – računar i akvizicioni modul komuniciraju bez posredovanja procesora. 


  
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.

 

Spacer

    © Copyright 1982-2004  Electronic Design

 

   
 

Spacer

  Electronic Design
  Makenzijeva b.b.- Pejton, Beograd
Tel:
Fax:
011/  308-50-30
011/  308-50-31
 email: edesign@eunet.yu
 http://www.ed.co.yu

Spacer