Zvuková karta COVOX na LPT port.



Similar documents
Sledovanie čiary Projekt MRBT

WLA-5000AP. Quick Setup Guide. English. Slovensky. Česky a/b/g Multi-function Wireless Access Point

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

LV5WDR Wireless Display Receiver Rýchla príručka

Postup pre zistenie adries MAC a vytvorenie pripojenia. v OS Windows

Môže sa to stať aj Vám - sofistikované cielené hrozby Ján Kvasnička

Kozmické poasie a energetické astice v kozme

: Architectural Lighting : Interiérové svietidlá

Návod k použití: Boxovací stojan DUVLAN s pytlem a hruškou kód: DVLB1003

Prestige 660HN-T3A Príručka k rýchlej inštalácii splittra a smerovača (routra)

Rychlý průvodce instalací Rýchly sprievodca inštaláciou

AVR V JAZYKU C PROGRAMUJEME. Zoznámte sa s MCU rady Atmel AVR. Bc. Ondrej Závodský

OSOBNOSTNÉ ASPEKTY ZVLÁDANIA ZÁŤAŽE

Installation manual Wireless Keypad

PORUCHY A OBNOVA OBALOVÝCH KONŠTRUKCIÍ BUDOV - Podbanské 2012

MĚNIČ NAPĚTÍ 12 V / 230 V PRO POUŽITÍ V AUTOMOBILECH

ING (L) Société d Investissement à Capital Variable 3, rue Jean Piret, L-2350 Luxembourg R.C.S.: Luxembourg B č (ďalej ako spoločnosť )

IBM Security Framework: Identity & Access management, potreby a riešenia.

Pracovná skupina 1 Energetický management a tvorba energetických plánov mesta

Medzinárodná Študentská vedecká konferencia v odboroch špeciálna a liečebná pedagogika ŠTUDENT NA CESTE K PRAXI IV,

!T =!Mobile=== Nastavenia dátových a multimediálnych služieb pre multifunkčné zariadenia s operačným systémom Windows Mobile 5.0 NASTAVENIE MMS 1 /18

JEDNOFÁZOVÝ STATICKÝ ELEKTROMER NA VIACSADZBOVÉ MERANIE ČINNEJ ENERGIE

aneb Perfekt perfektně.

How to program a MapReduce cluster

TL 3x TL 3xP. RozmÏry (mm) Dimensions Obr zek Drawing Typ ñ Type D max. RozmÏry (mm) Dimensions Obr zek Drawing TL 35P TL 36P , ,3 24,8

YOUTUBE 4.0. Postup upgrade Youtube z Youtube 3.1 na Youtube 4.0 pro produkty EAGET X5R, M6, M7 a M9:

Wireless Audio with Dock

PC ZOSTAVA WCOMP OFFICE

Upozorňujeme,že můžete formáty pro čtečky převádět ON-LINE na internetu do formátu PDF apod.

MODULE CAN R/S MODULE CAN BUS MAGICAR MODUL CAN R/S MODUL CAN BUS MAGICAR

CENOVÁ NABÍDKA. jednatc~ Krmivo pro laboratorní zvířata" k veřejné soutěži. Krnov, Ing. Jiří Bauer. Předmět zakázky:

Ada. Randki (spotkania) w Adzie. Model. U Ady. Zasady. task Buffer is entry Append (I: in integer); entry Take (I: out integer); end Buffer;

KONTAKT CHEMIE Kontakt PCC

MODULE CAN R/S MODULE CAN BUS MAGICAR MODUL CAN R/S MODUL CAN BUS MAGICAR

Original brief explanation


POKUS O ENERGETICKO-INFORMAÈNÚ INTERPRETÁCIU NIEKTORÝCH MAGICKÝCH LIEÈEBNÝCH PRAKTÍK V TRADIÈNEJ ¼UDOVEJ KULTÚRE SLOVENSKA

Kľúčové porovnateľné ukazovatele Poľsko (PL) Slovensko (SK)

LEG BANDAGE Bandáž dolných končatín


MICROSOFT WORD Mgr. Krejčí Jan (ZSJP) MICROSOFT WORD září / 21

VMR6512 Hi-Fi Audio FM Transmitter Module

WK29B / WK29W. Bluetooth Wireless Slim Keyboard. User manual ( 2 5 ) Uživatelský manuál ( 6 10) Užívateľský manuál (11 15)

Ekonomické listy. Odborný vědecký časopis Vysoké školy ekonomie a managementu. 3 Financing of tertiary education: the Czech Republic and Europe

miditech Audiolink II

MP3/WMA Player + Digital Voice Recorder + USB Flash Drive

Úvod do metód spracovania zvuku v súčasnom multimediálnom prostredí

1.- L a m e j o r o p c ió n e s c l o na r e l d i s co ( s e e x p li c a r á d es p u é s ).

Technical Data Sheet UM-005. UM005-doc In reference to UM005-c-01.04

NÁVOD K POUŽITÍ NÁVOD NA POUŽITIE INSTRUCTION MANUAL


Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A

The Universal Boot Loader ( Das U-Boot )

EN User manual for Solight 1T04 Breath Analyzer

TR 314 2R2 / J TR 311 Ö TR 313 TR 314 Ö TR 319 TR 331 Ö TR 336 TRA 25 Ö TRA 100 TR 323, TR

Digitizing Sound Files

My Passport Ultra Metal Edition

CX SERIES CUTTING EDGE DIGITAL AUDIO CXN NETWORK PLAYER

Sborník vědeckých prací Vysoké školy báňské - Technické univerzity Ostrava číslo 1, rok 2008, ročník LIV, řada strojní článek č.

English Česky Slovensky... 36

Introduction the Serial Communications Huang Sections 9.2, 10.2 SCI Block User Guide SPI Block User Guide

Put the human back in Human Resources.

D-Link DIR-600 inštalačná príručka 1

NEURAL NETWORKS IN INTRUSION DETECTION SYSTEMS NEURONOVÉ SÍTĚ V SYSTÉMECH PRO DETEKCI NAPADENÍ

USB 2.0 Flash Drive User Manual

Ústav radioelektroniky. Pomocné obvody a základní periférie

Chapter 11: Input/Output Organisation. Lesson 06: Programmed IO

aneb Perfektní minulost.

IP Office - Job Aid Music on Hold

Getting Graphic: Defining Custom LCD Characters

IPS 620SD INSTRUCTION MANUAL. IPS 620SD CD/MP3/WMA PLAYER 4x60WATTS

Impact of Songs and Jingles Used in Advertising on Brand and Product Awareness

Viega Visign Cenník 2014

Ústav radioelektroniky. 14. listopadu 2007

Installing Your POS Hardware

PRÍSPEVOK K APLIKÁCII SYSTÉMU NI LABVIEW VO VYŠETROVANÍ KONTAKTU PNEUMATIKY A TERÉNU

Pripojenie k internetu v pevnej sieti

Welcome to the tutorial for the MPLAB Starter Kit for dspic DSCs

CAN REMOTE I/O module. base device GEL 89100

6/08. a KARTOGRAFICKÝ GEODETICKÝ. Český úřad zeměměřický a katastrální Úrad geodézie, kartografie a katastra Slovenskej republiky

B A S I C S C I E N C E S

Luk aˇ s R uˇ ziˇ cka Pomocn a slovesa

Multi Channel AV Receiver (Viackanálový prijímač AV)

Studentská tvůrčí a odborná činnost STOČ Control of laboratory model 3D Printer. Martin JUREK

KATALOG JARO LÉTO 2008

Fakulta elektrotechnická. Fan-Coil systémy

CSTA- Oracle Academy 2014 U.S. High School CS Survey: The State of Computer Science in U.S. High Schools: an Administrator s Perspective.

Matematika tekutin v pohybu

Hama GmbH & Co KG D Monheim/Germany /10.09

PCI 2 Port Fast Serial Communication Adapter Card User Manual

GP webpay System Administration Role: MerchantAdmin

Univerzita Karlova v Praze Matematicko-fyzikální fakulta BAKALÁRSKA PRÁCA. Lucia Quittnerová. Katedra didaktiky matematiky

ONLINE SOCIAL NETWORKS AND THEIR IMPACT ON THE LIVES OF STUDENTS OF MEDICINE-RELATED STUDIES

Prevádzková príručka NWZ-A844 / A845 / A846 / A847. Obsah. Ponuka. Home Register. Kliknite! Môžete priamo preskočiť. Prenos hudby

E-puck knihovna pro Python

Trestná politika štátu a zodpovednosť právnických osôb. Penal Policy of the State and Liability of Legal Entities

Príklady riadenia kvality z vybraných krajín

4-1-4 Serial ATA SATA. A. Intel ICH8R (1) SATA (1) SATA (2) BIOS SATA (3) RAID BIOS RAID (4) SATA (5) SATA

BURZA CENNÝCH PAPIEROV PRAHA. Prague Stock Exchange

Transcription:

Zvuková karta COVOX na LPT port. Dr. MM Ladislav Bačo, Dr. MM Petr Pecha 20. marca 2008 Abstrakt Na nasledujúcich stránkach nájdete popis konštrukcie a vysvetlenie činnosti zvukovej karty na LPT port PC, ako aj jej stručnú históriu. Obsah 1 Trocha histórie 2 2 Digitalizácia zvuku 2 3 Paralelný port 3 4 Konštrukcia zvukovej karty 4 5 Poďakovanie 5 6 Prílohy 6 6.1 Fotky hotovej karty........................ 6 6.2 Zdrojové kódy prehrávačov pre MS-DOS............ 7 6.2.1 Jednoduchý prehrávač od Ladislava Baču........ 7 6.2.2 Optimalizovaný prehrávač od Zlého Martina...... 8 1

1 Trocha histórie V 80. rokoch 20. stor. mali už počítače Commodor a Amiga pomerne dobré zvukové karty. Pre PC však stále neexistovalo dostatočne kvalitné zariadenie umožnujúce prehrávať digitálny zvuk okrem SoundBlasteru, ktorý stál okolo 10 000. V roku 1986 prišla na trh firma COVOX so zvukovou kartou pripojenou do paralelného portu iba za 70$. Šlo o vcelku jednoduchý DA (digitálno-analógový) prevodník s niekoľkými odpormi (prípadne ešte 1-2 kondenzátory), ktorý si každý amatérsky elektrotechnik mohol vyrobiť za oveľa nižšiu cenu. Táto zvková karta sa mohla pripojiť k HI-FI súprave, čím sa dosiahlo kvalitné zosilnenie zvuku. Neskôr sa objavili aj karty umožňujúce prehrávať stereo, vyžadovali však 2 LPT porty alebo komplikovanejší obvod, ktorý veľmi rýchlo prepínal zvukový výstup medzi dvoma kanálmi. 2 Digitalizácia zvuku Pretože zvuk sa šíri ako analógový signál (spojité vlny), tak pre jeho spracovanie v počítači ho musíme najprv previesť do digitálnej podoby. Tento proces sa nazýva samplovanie. princíp spočíva pomocou pravidelného odčítania hodnoty signálu pomocou A/D prevodníku a zaznamenaní tejto hodnoty v digitálnej podobe (v binárnej sústave). Ako často sa odčítava táto hodnota, určuje vzorkovacia frekvencia (pri Audio CD 44,1 khz), čím väčšia, tým kvalitnejší záznam, nízka vzorkovacia frekvencia môže záznam znehodnotiť (obrázok). 2

Dôležité je aj rozlíšenie, s akým sa odčítava hodnota signálu, pri malom rozlíšení vzniká počiteľný šum v dôsledku zaokrúhľovania hodnôt signálu. Pri Audio CD sa používa 16 bitové rozlíšenie (naša zvuková karta je prispôsobená 8 bitovému). Nakoniec sa tieto nekomprimované údaje uložia do zvukového súboru, najčastejšie do formátu wav. Tieto súbory obsahujú v hlavičke okrem iného záznam o vzorkovacej frekvencii, počte bitov prehrávaných za sekundu, veľkosť súboru... 3 Paralelný port Paralelný alebo LPT port je 25 pinový, na počítači je konektor s dierkami. Najčastejšie sa používa na pripojenie tlačiarne, na čo bol aj navrhnutý. Piny C0 až C3 sú kontrolné, S0 až S4 prenášajú status tlačiarne (napr. že tlačí, v zásobníku už nemá papier), piny D0 až D7 prenášajú 8 bitové údaje, pričom D0 je nultý bit, D7 siedmy bit, a piny 18 až 25 sú uzemnenie. Keď je na niektorom z dátových pinov logická 1, tak napätie medzi ním a zemou je zhruba 5V, čo postačuje pre činnosť zvukovej karty bez prídavného napájania. 3

4 Konštrukcia zvukovej karty Táto zvuková karta prehráva 8 bitový zvukový záznam pomocou všetkých 8 dátových pinov na LPT porte. Pretože logická 1 na pine D0 (1/255 maximálnej hodnoty) má inú váhu ako na pine D2 (4/255 maximálnej hodnoty), je potrebné zabezpečiť, aby jednotlivé piny prispievali k výslednej hodnote napätia na výstupe v rovnakom pomore, v akom sú ich hodnoty, resp. váhy. Teda nultý bit by mal prispieť 1/255.5V, prvý 2/255.5V, druhý 4/255.5V,... siedmy 128/255.5V. To sa dá dosiahnuť pripojením jedného rezistora s vhodným odporom medzi každý pin a výstup. Lenže v tomto prípade by hodnoty odporov boli dosť nepraktcké a ťažko by sa zháňali. Zapojenie by vyzeralo približne takto: Existuje však aj zapojenie, pri ktorom sa použijú bežne dostupné rezistory (10 a 20 kω). Rezistory v ňom vytvárajú odporový rebrík. 4

Pre skvalitnenie zvuku však ešte môžme pridať kondenzátory, ktoré vyhladia výslednú zvukovú vlnu a tiež orežú vysoké frekencie. 5 Poďakovanie Zlému Martinovi Dekarovi za výraznú pomoc pri stavbe a vysvetlenie princípu zvukovej karty COVOX a tiež za prehrávač. Martinovi Marblovi Beránkovi za pomoc pri rozbiehaní COVOXu pod Linuxom a pri pokuse prepojiť starý notebook s novým cez sériový kábel. 5

6 Prílohy 6.1 Fotky hotovej karty 6

6.2 Zdrojové kódy prehrávačov pre MS-DOS 6.2.1 Jednoduchý prehrávač od Ladislava Baču program WAV_player; uses dos, crt; var b: byte; path,s: string; f: file of byte; position, size: longint; c: char; function exist(s0: string): boolean; var dirinfo: SearchRec; findfirst(s0, anyfile, Dirinfo); if DosError=0 then exist:=true else exist:=false; getdir(0,path); writeln( WAV player pre MS-DOS a zvukovu kartu na LPT ); writeln; if paramcount>0 then s:=paramstr(1); if length(path)>3 then path:=concat(path, \,s) else path:=concat(path,s); if exist(path)=true then assign(f,path); reset(f); size:=filesize(f); writeln( playing:,s); position:=0; write( pozicia:,position, B z:,size, B ); while not eof(f) do inc(position); 7

if position mod 1024 =0 then if keypressed then c:=readkey; if c=#0 then c:=readkey; if c=#27 then halt; gotoxy(1,wherey); write( pozicia:,position, B z:,size, B ); read(f,b); port[$378]:=b; gotoxy(1,wherey); write( pozicia:,position, B z:,size, B ); close(f); end else write( Subor,s, nenajdeny! ); writeln; end else writeln( usage: play <filename> ); end. 6.2.2 Optimalizovaný prehrávač od Zlého Martina uses dos, crt; const defrychlost = 4; maxpole = 64000; defkoef = 100; prirkoef = 25; maxzaznam = 10; {pocet 64K supliku} type trec = array [0..maxPole] of byte; {struktura 65K} tprec = ^trec; {odkaz na 1 strukturu 64k} tzvuk = array[0..maxzaznam] of tprec; { pole odkazu na 64k struktury = cela WAV} var b,rychlost: byte; path,s: string; f: file of byte; a: trec; delka,koef: word; 8

ss : char; {stisknuty Symbol} velikost : longint; {velikost nactenych dat} zvuk : tzvuk; indexzaznamu : 0..maxZaznam; {pocet supliku} procedure prehraj(rychlost:byte);forward; procedure zkontrolujklavesy; if (keypressed) then ss:=readkey; case ss of #0 : ss:=readkey; case ss of #80 :;inc(rychlost); if rychlost = 255 then rychlost:= defrychlost; gotoxy(1,7); writeln( Rychlost:,rychlost); #72 :;dec(rychlost); if rychlost = 255 then rychlost:= defrychlost;gotoxy(1,7); writeln( Rychlost:,rychlost); #75 :;inc(koef,prirkoef); gotoxy(1,8);writeln( Koeficient:,koef); #77 :;dec(koef,prirkoef); gotoxy(1,8);writeln( Koeficient:,koef); #32: ; gotoxy(1,10);clreol; write( [ ] );gotoxy(2,wherey);prehraj(rychlost); {case} {ifu keypressed} procedure prehraj(rychlost:byte); var I: word; K: longint; {index bytu, ktery prehravam} for K:=0 to velikost do zkontrolujklavesy; 9

port[$378]:=zvuk[(k div maxpole)]^[k mod maxpole]; {posli data ze spravneho supliku na port} if (K~mod (velikost div 20)) = 0 then ;gotoxy(wherex,10);write(#2223); for I:= 1 to rychlost*koef do; procedure nactisouborzkonzole; getdir(0,path); if paramcount>0 then s:=paramstr(1) else writeln( Hod mi do parametru.wav soubor );halt; if length(path)>3 then s:=concat(path, \,s) else s:=concat(path,s); writeln( Oteviram soubor:,s); assign(f,s); reset(f); delka:=0; rychlost:=defrychlost; koef:=defkoef; velikost:=filesize(f); writeln( velikost souboru je:,velikost:10, B ); writeln( do pameti se vejde:,maxavail:10, B ); if maxavail < maxpole then writeln( sorry nemam ani 64K volnych ); halt; new(zvuk[indexzaznamu]); {mame volno > 64K alokujeme prvni suplik} write( [ );gotoxy(wherex+60,wherey);write( ] ); gotoxy(2,wherey); while (not(eof(f))) do read(f,b); {nacti byte} zvuk[indexzaznamu]^[delka]:=b; {uloz byte do struktury do spravneho supliku} 10

inc(delka); if delka > maxpole then {suplik je plny} if (indexzaznamu < maxzaznam) and (maxavail>maxpole) then {ale cela struktura jeste ne} inc(indexzaznamu); {budeme ukladat do dalsiho supliku} delka:=0; {od prvniho indexu} new(zvuk[indexzaznamu]); end else writeln( vleze se mi do pameti pouze:,maxpole*indexzaznamu+delka); break; {grafika} if (delka mod (velikost div 60)) = 0 then write(#254); writeln( ] ); {velikost:= longint( (indexzaznamu+1)*maxpole)+delka; } clrscr; nactisouborzkonzole; writeln( Nacteno do pameti:, velikost, bytu ); ss:=#250; {init mimo rozsah} write( spusten rezim prehravani - mezernik hraje, ); writeln( sipka nahoru/dolu meni rychlost ); writeln( Rychlost :,rychlost); writeln( Koeficient:,koef); writeln( Delta koeficientu :,prirkoef); while ss<>#27 do {do stisku ESC} ss:=#250; zkontrolujklavesy; {while} close(f); port[$378]:=0; {bud ticho} end. 11