Achizitii de date cu ajutorul unei interfete SOUNDBLASTER
 
Intoducere
In acest document este descris un program in C/C++ de achizitii de date cu ajutorul unei interfete SOUNDBLASTER, si prelucrarea semnalelor care permit:
.	calculul functiilor de autocorelatie
.	calculul functiilor de intercorelatie
Principiul functionarii
Programul foloseste o placa SOUNDLBLASTER pentru achizitionarea semnalelor, semnalul analogic (continuu) este convertat in semnal digital (discret), care este prelucrat de program care realizeaza functiile cerute. 
Cerinte
Calculator >386
OS: DOS >6.20 (Win9x,Win XP,NT,2000)
Placa SOUNDBLASTER
Monitor VGA 
Programul a fost testat pe un sistem cu OS: Win98, SVGA, placa de sunet C-Media Inc.8330 (compatibil SB16), pe acest sistem programul functioneaza stabil.
Descriere program
Programul principal 123.exe,utilizeaza biblioteca grafica egavga.bgi.Are ca argument 0,1,2:
.	0 - doar osciloscop
.	1 - osciloscop + fct. de autocorelatie
.	2 - osciloscop +fct. de intercorelatie
In program sunt utilizate:
IRQ,DMA,VGAPAGEFLIP.etc
Programul foloseste o placa SOUNDBLASTER pentru achizitionarea semnalelor
Semnalul analogic este aplicat la intrarea de microfon a placii SOUNDBLASTER.
Semnalul analogic (continuu) este convertat in semnal digital (discret) de CAN din placa SOUNDBLASTER. Structura principial este reprezentat in Figura 1:
Programul foloseste acest convertor analog-digital pe 8 biti.(In cazul SB16 acest convertor este pe 16 biti dar se poate folosi si pe 8 biti)
Transferul de date se face prin DMA.
Pentru a functiona corect pentru placa SOUNDBLASTER trebuie sa fie setat urmatorii parametrii: 
.	Adresa de baza 0x220
.	IRQ 5
.	DMA 1
Programul nu detecteaza automat setarile, daca placa SOUNDBLASTER are alte parametrii trebuie modificat fisierul sbaster.h,dma_mem.c
Programarea unitatii DSP (Digital Signal Processor) din placa SOUNDBLASTER,se face prin porturi.
 
 
Porturile placii SOUDBLASTER
Tabel 1:
 
 02x00h         C/MS 1-6 - Data Port                    Write       SB Only
 02x00h         FM Music - Left Status Port             Read        SBPro
 02x00h         FM Music - Left Register Port           Write       SBPro
 02x01h         C/MS 1-6 - Register Port                Write       SB Only
 02x01h         FM Music - Left Data Register           Write       SBPro
 
 02x02h         C/MS7-12 - Data Port                    Write       SB Only
 02x02h         FM Music - Right Status Port            Read        SBPro
 02x02h         FM Music - Right Register Port          Write       SBPro
 02x03h         C/MS7-12 - Register Port                Write       SB Only
 02x03h         FM Music - Right Data Register          Write       SBPro 
 02x04h         Mixer - Register Port                   Write       SBPro
 02x05h         Mixer - Data Register                   Read/Write  SBPro
 02x06h         DSP - Reset                             Write       SB
 02x08h         FM Music - Compatible Status Port       Read        SB
 02x08h         FM Music - Compatible Register Port     Write       SB
 02x09h         FM Music - Compatible Data Register     Write       SB
 02x0Ah         DSP - Read Data                         Read        SB
 02x0Ch         DSP - Write Data or Command             Write       SB
 02x0Ch         DSP - Write Buffer Status               Read        SB
 02x0Dh         DSP - Timer Interrupt Clear             Read        SB16???
 02x0Eh         DSP - Data Available Status             Read        SB
 02x0Eh         DSP - IRQ Acknowledge, 8-bit            Read        SB
 02x0Fh         DSP - IRQ Acknowledge, 16-bit           Read        SB16
 02x10h         CD-ROM - Data Register                  Read        SBPro
 02x10h         CD-ROM - Command Port                   Write       SBPro
 02x11h         CD-ROM - Status Port                    Read        SBPro
 02x12h         CD-ROM - Reset                          Write       SBPro
 02x13h         CD-ROM - Enable                         Write       SBPro
 0388h          AdLib - Status Port                     Read        SB
 0388h          AdLib - Register Port                   Write       SB
 0389h          AdLib - Data Register                   Write       SB
 038Ah          Advanced AdLib - Status Port            Read        SB16
 038Ah          Advanced AdLib - Register Port          Write       SB16
 038Bh          Advanced AdLib - Data Register          Write       SB16
 03x00h         MPU-401 - Data Port                     Read/Write  SB16???
 03x01h         MPU-401 - Status Port                   Read        SB16???
 03x01h         MPU-401 - Command Port                  Write       SB16???
 0200h-0207h    Joystick                                Varies      SB