Witam ponownie!
Zerknąłem do pozycji, które mi zaproponowaliście i mam wrażenie, iż analogię między sygnałami z ISA a PCI odnaleźć mi się udało... podkrślam: "mam wrażenie".
Z tego co wyczytałem w Anatomii, to:
1. Dla sygnału AEN w ISA odpowiednikiem jest ~FRAME w PCI.
Wysoki poziom log. na AEN oznacza, że kontroler DMA przejął kontrolę nad magistralami systemowymi.
Sygnał ~FRAME natomiast wystawiany jest przez inicjator, który przejął kontrolę nad magistralą. Wydaje mi się, że są sobie równoznaczne.
2. Dla sygnałów D7-D0 (danych) oraz sygnałów A0-A9 (adresów) w ISA odpowiednikami będą w PCI sygnały AD00-AD09.
Dlaczego akurat dla 18-stu sygnałów z ISA odpowiada tylko 10 sygnałów w PCI? Otóż - wierząc sobie samemu na słowo (słowo bardzo początkującego elektronika), że można podpiąć do tych linii i sygnały mające wysyłać adresy oraz sygnały mające wysyłać dane, to - jak napisano w Anatomii: sygnały AD mają różne znaczenie, zależnie od fazy transmisji. W fazie adresowej (w pierwszym cyklu zegara po przyznaniu inicjatorowi kontroli nad magistralą - równocześnie z wystawieniem sygnału ~FRAME - wystawiony jest na nich adres urządzenia docelowego. W fazie przekazywania danych służą do przekazywania danych - o sposobie ich przekazywania decydują sygnały C/~BE.
3. Dla ~IOW oraz ~IOR odpowiednikami moim zdaniem są kombinacje bitów właśnie C/~BE.
~IOW (I/O Write) wystawiany jest na żądanie dostępu do przestrzeni adresowej przez procesor lub kontroler DMA w celu zapisu; ~IOR (I/O Read) natomiast (...) w celu odczytu.
C/~BE[3-0] (Command/Byte Enable) z kolei mają różne znaczenie, zależnie od fazy transmisji: w fazie adresowej przekazują komendę PCI określającą typ transmisji (Command) i tak jeśli C/~BE1 jest "1" i C/~BE0 jest również "1", to typem transmisji jest I/O Write, jeśli jednak C/~BE1 jest "1" a C/~BE0 jest "0" to typem transmisji jest I/O Read. W fazie transmisji danych (Byte Enable) ustawienie "0" na C/~BE[3-0] oznacza, że liniami danych kontrolowanymi przez dany C/~BE będzie transmitowany jeden bit danych. C/~BE0 kontroluje AD00-AD07 a C/~BE1 kolejne AD08-AD15.
Wygląda ładnie-pięknie, lecz nasuwa się po raz kolejny pytanie z punktu 2.: Czy można podpiąć pod te same sygnały PCI - sygnały z płytki odpowiedzialne za adresy i sygnału odpowiedzialne za dane?
Z powyższych rozważań wynika, iż sygnały ~IOW oraz ~IOR z ISA podpinane w PCI pod C/~BE[1-0] mogłyby obsługiwać zarówno tryb pracy (I/O Write, I/ORead) oraz wyznaczać z których linii AD[00-15] (w moim przypadku AD[00-09]) mają być transmitowane dane. Czy po dodaniu do tego obowiązkowego sterownika ma prawo to działać? Czy sterownik mógłby się tym zająć?
Czy taka ilość sygnałów wystarczy do obsługi systemu na tej płytce wiedząc, iż w ISA wystarczyły te sygnały, które wymieniłem w pierwszym poście?
Tak jak mówiłem na początku: ja mam tylko zaprojektować płytkę w Protelu, ale przecież jak ją źle zaprojektuję, to i sterownik może sobie z tym nie poradzić... i moja ocena bardzo dychotomiczna ze 100 pktów zamieni się w 0.
Z góry dziękuję za cierpliwe przestudiowanie powyższych wywodów.
Czekam niecierpliwie na Waszą odpowiedź!
P.S. W razie potrzeby dysponuję projektem (shematem ideowym z naniesionymi wszystkimi sygnałami z każdego układu znajdującego się na płytce) z Protela, dokładnym opisem systemu jaki jest na płytce (w wersji ISA oczywiście).