29_33.PDF

(486 KB) Pobierz
Interfejs IDE2LPT - AVT-5069
P R O J E K T Y
Interfejs IDE2LPT
AVT−5069
Wszystkie wspÛ³czesne
dyski twarde s¹ wyposaøone
w†wewnÍtrzne kontrolery,
dziÍki czemu do³¹czenie ich
do komputera jest stosunkowo
³atwe, choÊ zazwyczaj
wymaga rozebrania obudowy
komputera. W†artykule
przedstawiamy ³atwy
w†wykonaniu interfejs, za
pomoc¹ ktÛrego moøna
do³¹czyÊ dysk twardy do
portu drukarkowego Centronics
dowolnego komputera PC.
Tak wiÍc archiwizacja
danych na starym,
nieuøywanym HDD moøe byÊ
nawet taÒsza niø nagrywanie
p³yt CD-R.
Projekt przedstawiony w†arty-
kule powsta³ na podstawie opra-
cowania Leonida Slobodchikova
z†firmy AKA Curvex. UdostÍpni³
on w†Internecie, na stronie http:/
/curvex.hypermart.net/ide2lpt/,
ogÛln¹ dokumentacjÍ interfejsu
IDE2LPT oraz - co najbardziej
istotne - drivery dla DOS-a oraz
Windows 95/98 (obydwa autors-
twa Eugene Kuleshova) wraz z†ich
postaci¹ ürÛd³ow¹. W†oryginalnej
wersji interfejs zbudowano
w†oparciu o†standardowe uk³ady
TTL, ktÛrych - w†zaleønoúci od
wykonania - by³o od 12 do 8†( fot.
1 ). My proponujemy nieco inne,
znacznie bardziej nowoczesne po-
dejúcie do sprzÍtowej czÍúci in-
terfejsu: zaimplementujemy j¹
w†ca³oúci w†jednym uk³adzie PLD
( Programmable Logic Devices ).
Przed dalsz¹ czÍúci¹ opisu mu-
simy zwrÛciÊ uwagÍ CzytelnikÛw
na fakt, øe ³atwoúÊ do³¹czenia
dysku do dowolnego komputera
PC z†interfejsem Centronics jest
okupiona niezbyt duø¹ szybkoúci¹
wymiany danych pomiÍdzy dys-
kiem i†komputerem. Z†powodÛw
konstrukcyjnych maksymalna
szybkoúÊ pracy interfejsu w†trybie
bezpoúredniego dostÍpu do rejes-
trÛw (bez wykorzystania klasycz-
nych mechanizmÛw wymiany da-
nych w†trybie SPP) nie przekracza
200kB/s, a†zazwyczaj wynosi ok.
130...160kB/s. Z†tego powodu nie
ma sensu wykorzystywania jako
zewnÍtrznego dysku obecnie pro-
dukowanych, szybkich dyskÛw
ATA-2/3 - ich moøliwoúci bÍd¹
w†takiej aplikacji marnowane.
Opis uk³adu
Schemat elektryczny interfejsu
wykonanego z uk³adem CPLD fir-
my Altera EPM7064 (US1) poka-
zano na rys. 2 . Poniewaø na
podstawie schematu elektrycznego
interfejsu trudno jest wywniosko-
waÊ jak dzia³a interfejs, pomocny
bÍdzie schemat uk³adu cyfrowego
zrealizowanego wewn¹trz US1,
ktÛry pokazano na rys. 3 . Sche-
mat ten jest dok³adn¹ kopi¹ sche-
matu najnowszej wersji klasyczne-
go interfejsu IDE2LPT, a†naryso-
wano go w†edytorze schematÛw
pakietu projektowego firmy Altera
Max+Plus II ( rys. 4 ). Rysowanie
schematu oddaj¹cego wewnÍtrzn¹
budowÍ uk³adu PLD jest sposo-
bem bardzo czÍsto stosowanym
przez projektantÛw korzystaj¹cych
z†Max+Plus II (takøe innych sys-
Fot. 1. Tak wyglądał protoplasta
projektu prezentowanego
w artykule
Elektronika Praktyczna 6/2002
29
Interfejs IDE2LPT
32261684.036.png 32261684.037.png
Interfejs IDE2LPT
Rys. 2. Schemat elektryczny interfejsu
temÛw EDA dla uk³adÛw PLD),
przede wszystkim ze wzglÍdu na
czytelnoúÊ i†³atwoúÊ interpretacji
takiego sposobu opisu. Nie jest
to jednak jedyny moøliwy sposÛb
opisania struktury tego uk³adu,
co pokaøemy w†dalszej czÍúci
artyku³u.
Numer bitu Nazwa Nazwa
rejestru Base+1 Centronics IDE2LPT
7 Busy LI3
6 Select LI2
5 PE LI1
4 ACK LI0
Transfer danych z†komputera
do dysku odbywa siÍ poprzez
rejestr 8-bitowy (ulokowany pod
adresem base=0x378/0x278 ), ktÛry
w†z³¹czu Centronics s³uøy do
przesy³ania danych do drukarki.
Sterowanie transmisj¹ danych
umoøliwiaj¹ cztery sygna³y po-
mocnicze, ktÛrych przypisanie do
bitÛw rejestru o†adresie base+2
pokazano poniøej:
Numer bitu Nazwa Nazwa
rejestru Base+1 Centronics IDE2LPT
3 Select in RCWR
2 Init RLWR
1 Auto Feed HWR
0 Strobe HRESET
Jak widaÊ na rys. 3, wszystkie
zastosowane rejestry s¹ tego sa-
mego typu (odpowiedniki 74374).
Poniewaø tylko dwa wbudowane
w†US1 rejestry s¹ 8-bitowe,
a†wúrÛd pozosta³ych jeden jest 7-
bitowy i†cztery s¹ 4-bitowe, na-
suwa siÍ pytanie, czy taki projekt
nie zajmie zbyt wiele zasobÛw
uk³adu US1. Jak pokazuje prak-
tyka, w†systemie Max+Plus II za-
stosowano doskona³e mechanizmy
optymalizacyjne, w†zwi¹zku
z†czym nieuøywane w†projekcie
fragmenty blokÛw funkcjonalnych
zdefiniowanych przez uøytkowni-
ka (w tym bufory trÛjstanowe na
wyjúciu rejestru konfiguracji - za-
pisywanego sygna³em RCWR) zo-
stan¹ podczas kompilacji pomi-
niÍte.
Interfejs wyposaøono w†lokalny
stabilizator napiÍcia zasilaj¹cego
US3 z†mostkiem prostowniczym
Graetza M1 na wejúciu, dziÍki
czemu polaryzacja napiÍcia poda-
wanego na Gn1 nie ma znaczenia.
W†modelowym egzemplarzu in-
terfejsu zastosowano uk³ad US1
typu EPM7064S, ktÛry moøna pro-
gramowaÊ w†systemie bez koniecz-
noúci stosowania programatora. Do
programowania jest niezbÍdny tyl-
ko prosty interfejs nazywany przez
firmÍ Altera ByteBlaster, ktÛrego
Realizacja projektów na
układach PLD nie wymaga
praktycznie żadnych
nakładów. Doskonałe
narzędzia projektowe,
w tym kompilatory VHDL
są udostępniane bezpłatnie.
Oznaczenia sygna³Ûw zastoso-
wane w†projekcie uk³adu PLD s¹
identyczne z†oznaczeniami sygna-
³Ûw umieszczonymi na schemacie
elektrycznym. Transfer danych
z†dysku do komputera odbywa siÍ
w†paczkach 4-bitowych poprzez
port LI[3...0]. Linie te s¹ do³¹czo-
ne do nastÍpuj¹cych linii wejúcio-
wych interfejsu Centronics (odpo-
wiednio):
30
Elektronika Praktyczna 6/2002
32261684.038.png 32261684.039.png 32261684.001.png 32261684.002.png 32261684.003.png 32261684.004.png 32261684.005.png 32261684.006.png 32261684.007.png 32261684.008.png 32261684.009.png 32261684.010.png 32261684.011.png 32261684.012.png 32261684.013.png 32261684.014.png 32261684.015.png 32261684.016.png
Interfejs IDE2LPT
WYKAZ ELEMENTÓW
Rezystory
R1...R4: 680
R13...R15: 2,2k
F
Półprzewodniki
M1: dowolny mostek prostowniczy
>200mA/50V
US1: EPM7064SLC84−10(84)
US2: SN74HCT14
US3: 7805 z radiatorem
Różne
Gn1: Gniazdo DC
J1: DB25M
Zl1: IDC40
JP1: ZWS10
wersji ByteBlastera MV) http://
www.altera.com/literature/ds/
dsbyte.pdf (opis klasycznej wer-
sji ByteBlastera) - obydwie s¹
zamienne.
Podczas programowania uk³a-
du US1 ByteBlaster musi byÊ
do³¹czony do z³¹cza JP1.
Rys. 3. Budowa wewnętrzna układu US1 po zaprogramowaniu
Moøna takøe inaczej
Poniewaø praktycznie kaødy
producent uk³adÛw PLD oferuje
swÛj w³asny system projektowy,
wymiana danych ürÛd³owych po-
miÍdzy nimi nie jest moøliwa bez
specjalnych zabiegÛw. Tak wiÍc,
wykonanie podobnego projektu
z†uk³adem innego producenta niø
Altera, zmusza projektanta do po-
nownego ìbudowaniaî opisu
struktury uk³adu, co wi¹øe siÍ
m.in. z†ryzykiem pope³nienia b³Í-
du i†w†zwi¹zku z†tym ponownej
symulacji.
szczegÛ³owe opisy wraz ze sche-
matem moøna znaleüÊ w:
- ksi¹økach ìUk³ady programowal-
ne w†praktyceî (WK£2001/2002)
i†ìUk³ady programowalne - pier-
wsze krokiî (BTC2002) - na
p³ytach CD-ROM do³¹czonych
do ksi¹øek dostÍpne s¹ takøe
wzory p³ytek drukowanych do
programatora ByteBlaster i†By-
teBlasterMV,
- Internecie, pod adresami: http:/
/www.altera.com/literature/ds/
dsbytemv.pdf (opis najnowszej
Rys. 4. Wygląd okna programu Max+Plus II
Rys. 5. Wygląd okna programu WebPack ISE
Elektronika Praktyczna 6/2002
31
R5...R12: 1k
Kondensatory
C1...C5: 100nF
C6: 10
32261684.017.png 32261684.018.png 32261684.019.png 32261684.020.png 32261684.021.png 32261684.022.png 32261684.023.png 32261684.024.png
Interfejs IDE2LPT
List. 1. Opis interfejsu IDE2LPT
w języku VHDL (pominięto w nim
niektóre fragmenty, komplet
plików publikujemy na CD−EP6/
2002B)
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity ide2lpt_main is port (
data: in std_logic_vector(7 downto 0);
hd: buffer std_logic_vector(15 downto 0);
li: out std_logic_vector(3 downto 0);
ha: buffer std_logic_vector(2 downto 0);
hrd, hwr, reset: buffer std_logic;
rlwr, rhwr, hreset, rcwr: in std_logic;
cs3fx, cs1fx, oe_dr: buffer std_logic
);
end ide2lpt_main;
architecture behav of ide2lpt_main is
component rejestr8 port (
data: in std_logic_vector(7 downto 0);
wy: buffer std_logic_vector(7 downto 0);
clk, oe: in std_logic
);
end component rejestr8;
component rejestr4 port (
data: in std_logic_vector(3 downto 0);
wy: buffer std_logic_vector(3 downto 0);
clk: in std_logic
);
end component rejestr4;
component dekoder port (
we: in std_logic_vector(1 downto 0);
oe: out std_logic_vector(3 downto 0)
);
end component dekoder;
signal trw, rcw, csxfx, dummy: std_logic;
signal sel, int0, int1, int2, int3:
std_logic_vector(3 downto 0);
begin
reset <= not hreset;
csxfx <= cs3fx nand cs1fx;
hwr <= trw nand csxfx;
hrd <= rcw nand csxfx;
oe_dr <= hrd nand trw;
dr_low: rejestr8 port map (
data => data,
wy => hd(7 downto 0),
oe => oe_dr,
clk => rlwr
);
dr_high: rejestr8 port map (
data => data,
wy => hd(15 downto 8),
oe => oe_dr,
clk => rhwr
Rys. 6. W ten sposób instaluje się sterownik IDE2LPT w systemie
Windows 98
);
SytuacjÍ uproúci³o upowszech-
nienie siÍ zestandardyzowanych jÍ-
zykÛw opisu sprzÍtu ( HDL - Har-
dware Description Language ), jak
VHDL czy Verilog. Kompilatory,
programy syntezy logicznej i†sy-
mulatory dla tych jÍzykÛw s¹
udostÍpniane bezp³atnie, np.:
- Altera udostÍpnia pakiet
Max+Plus II Baseline + Leo-
nardo Spectrum lub (znacznie
gorsza synteza VHDL)
Max+Plus II Student Edition.
Do kompilacji projektÛw opi-
sanych w†jÍzyku VHDL moøna
takøe wykorzystaÊ pakiet Qu-
artus II, ale w†wersji bezp³at-
nej nie obs³uguje on uk³adÛw
z†rodziny MAX7000S (progra-
mowanych w†systemie).
- Xilinx udostÍpnia pakiet Web-
Pack ISE, w†ramach ktÛrego
dostarczany jest niez³y kom-
pilator VHDL-a oraz symulator
ModelSIM.
Takøe inni producenci uk³a-
dÛw PLD oferuj¹ bezp³atne narzÍ-
dzia, ale ze wzglÍdu na dostÍp-
dek_sel: dekoder port map (
we => data(1 downto 0),
oe => sel
);
conf_reg: rejestr8 port map (
data => data,
wy(2 downto 0) => ha(2 downto 0),
wy(3) => cs3fx,
wy(4) => cs1fx,
wy(5) => rcw,
wy(6) => trw,
wy(7) => dummy,
oe => ‘0’,
clk => rcwr
);
hd_r0: rejestr4 port map (
data => hd(3 downto 0),
wy => int0,
clk => rcw
);
.... - pominieto przypisania dwoch rejestrow!
hd_r3: rejestr4 port map (
data => hd(15 downto 12),
wy => int3,
clk => rcw
);
with sel select
li <= int0 when “0001”,
int1 when “0010”,
int2 when “0100”,
int3 when “1000”,
int0 when others;
Rys. 7. Rozmieszczenie elementów na
płytce drukowanej
end behav;
32
Elektronika Praktyczna 6/2002
32261684.025.png 32261684.026.png 32261684.027.png 32261684.028.png 32261684.029.png 32261684.030.png 32261684.031.png 32261684.032.png 32261684.033.png 32261684.034.png
Interfejs IDE2LPT
noúÊ uk³adÛw skupimy siÍ na
dwÛch wymienionych.
Aby u³atwiÊ implementacjÍ in-
terfejsu IDE2LPT z dowolnymi
uk³adami PLD zosta³ przygotowa-
ny jego hierarchiczny opis w†jÍ-
zyku VHDL. Na list. 1 pokazano
projekt ide2lpt_main , ktÛry zawie-
ra opis interfejsu, przy czym
naleøy zwrÛciÊ uwagÍ na odwo-
³ania do zewnÍtrznych plikÛw, jak
np.:
component rejestr4 port (
data: in std_logic_vector(3
downto 0);
wy: buffer std_logic_vector(3
downto 0);
clk: in std_logic
);
end component rejestr4;
zawieraj¹cych bloki funkcjonalne
po³oøone niøej w†hierarchii. DziÍ-
ki takiemu zapisowi, wielokrotnie
wykorzystywany w†projekcie re-
jestr 4-bitowy zosta³ opisany tylko
raz. Komplet plikÛw ürÛd³owych
opublikowaliúmy na CD-EP6/
2002B oraz na naszej stronie
internetowej w†dziale Download .
Prezentowany projekt by³ kompi-
lowany i†weryfikowany za pomo-
c¹ pakietu WebPack ISE 4.2 WP0
( rys. 5 ) oraz symulatora Model-
Sim XE 4.2. Projekt zmieúci³ siÍ
w†uk³adzie XC9572-LC84.
operacyjny Windows w†jakiejkol-
wiek wersji pochodnej NT.
W†przypadku komputerÛw
z†DOS do pliku config.sys naleøy
dopisaÊ liniÍ:
device=[ścieżka]\i2l4.exe
i†zrestartowaÊ komputer. Program
moøna uruchamiaÊ z†linii poleceÒ
z†dodatkowymi opcjami, np.:
- i2l4.exe / t uruchamia procedurÍ
wykrywania do³¹czenia interfej-
su do z³¹cza Centronics,
- i2l4.exe / l:xxxh umoøliwia
okreúlenie bazowego adresu por-
tu Centronics (np. 378h),
- i2l4.exe / h wyúwietla krÛtk¹
instrukcjÍ do programu,
- i2l4.exe / l powoduje w³¹czenie
obs³ugi duøych dyskÛw LBA,
- i2l4.exe / g:SEC:HEAD umoøli-
wia ustalenie w³asnej geometrii
dysku twardego,
- i2l4.exe / v pozwala odczytaÊ
parametry dysku twardego do³¹-
czonego do interfejsu.
Sterownik moøna uruchamiaÊ
z†wieloma parametrami jednoczeú-
nie.
W†przypadku korzystania
z†komputera z†zainstalowanym
systemem operacyjnym Windows
95/98 naleøy zainstalowaÊ inny
sterownik, napisany specjalnie dla
Windows. Instalacja przebiega
w†typowy sposÛb - w† Panelu Ste-
rowania naleøy wybraÊ Dodaj no-
wy sprzÍt . Kolejne kroki podczas
instalacji pokazano na rys. 6 .
(40-stykowe gniazdo na kabel
ATA) - po³oøenie jego pierwszego
styku wyraünie zaznaczono na
p³ytce drukowanej. Gniazda J1
i†Zl1 s¹ montowane na krawÍdzi
p³ytki, natomiast pozosta³e ele-
menty na jej powierzchni.
Do uruchomienia interfejsu ko-
nieczny jest zasilacz dostarczaj¹cy
dwÛch napiÍÊ: +5 i†+12V, o†wy-
dajnoúci pr¹dowej wystarczaj¹cej
do zasilenia dysku twardego. Za-
silanie na wejúcie interfejsu na-
leøy podaÊ z†linii +12V, jest ono
bowiem stabilizowane przez sta-
bilizator wbudowany w†interfejs.
PobÛr pr¹du przez sam interfejs
nie przekracza 100mA, a†úrednio
wynosi 80...90mA.
Piotr Zbysiñski, AVT
piotr.zbysinski@ep.com.pl
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostÍpne w Internecie
pod adresem: http://www.ep.com.pl/
?pdf/czerwiec02.htm oraz na p³ycie
CD-EP06/2002B w katalogu PCB .
Oprogramowanie interfejsu
Dzia³anie modelowego egzem-
plarza przetestowano na kompu-
terach z†systemem operacyjnym
DOS oraz Windows 95/98. Z†po-
wodu braku odpowiednich ste-
rownikÛw, nie jest obecnie moø-
liwa wspÛ³praca interfejsu z†kom-
puterami wyposaøonymi w†system
Montaø i†uruchomienie
Schemat montaøowy dwustron-
nej p³ytki interfejsu pokazano na
rys. 7 . Podczas montaøu naleøy
zwrÛciÊ szczegÛln¹ uwagÍ na spo-
sÛb przylutowania gniazda Zl1
Elektronika Praktyczna 6/2002
33
32261684.035.png
Zgłoś jeśli naruszono regulamin