Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Jaki kontroler LPT na PCI jest najlepszy ?

Jasiex 01 May 2006 17:17 5205 5
  • #1
    Jasiex
    Level 13  
    Witam serdecznie !

    Rzecz dotyczy kart PCI oferujących interfejs LPT oraz faktu że na
    wielu nowych płytach głównych niewyprowadzono takiego interfejsu i niezbędny jest zakup karty.

    Mam pytanie, a właściwie taki mały postulat aby zrobić listę kart
    (bądź chipsetów na tych kartach) które pod kontrolą danego systemu np. Windows XP oferują pracę w typowym dla LPT obszarze np.
    LPT1 0378h
    LPT2 0278h
    LPT3 03BCh



    Trafiłem już raz na kartę która pracowała we własnej przestrzenii adresowej (portów) i na dodatek żadne sterowniki pod WindowsNT i XP nie umożliwiały remapowania do tradycyjnych portów LPT 0378 itp.

    Cóż więc z tego że karta o której piszę mogła remapować porty pod kontrolą np. Windows 98, skoro ten system już nie jest wspierany i na wielu maszynach nie można go wogóle wystartować, a na tych na których można to jest z reguły LPT na płycie głównej i problemu z brakiem LPT nie ma.

    Na razie celowo nie napiszę jaki chipset nie mógłbyć remapowany pod kontrolą NT i XP oraz niepracował w standardowej przestrzenii portów (0378,278,3bc).
    Ponieważ oczekuję na to że napiszecie jakich kart LPT używacie, które bez problemu pracują pod windows XP w w standardowych obszarach LPT (378,278,3bc).

    Dodam że dobrze byłoby fakt remapowania umieć odróżnić od natywnego ulokowania rejestrów portu równoległego LPT gdyż wiadomo że natywne
    osadzenie przez wew. dekoder adresów w strukturze chipsetu na karcie PCI jest korzystniejsze niż remapowanie programowe w sterowniku WDM (systemy NT, XP) czy VxD(Win95,W98).
    Jednak z posiadanej przezemnie wiedzy wynika ze na szynie PCI nie ma dostepu do tak niskich adresow -ktore defacto zawieraja sie w przestrzenii przewidzianej dla tzw. kart prototypowych i rozszerzajacych ISA. I (chyba) tylko dostepnych z ISA.
    Kamery 3D Time of Flight - zastosowania w przemyśle. Darmowe szkolenie 16.12.2021r. g. 10.00 Zarejestruj się
  • #2
    _jta_
    Electronics specialist
    O ile się orientuję, na szynie PCI adres karty jest określany przez komputer, a nie przez kartę
    - to komputer przy bootowaniu przypisuje adres I/O, który jest wybierany tak, by nie było konfliktu.

    Na dodatek przełożenie karty do innego slotu zwykle zmienia jej adres I/O... pytanie, czy można to
    zmienić - być może tak, ten adres jest wpisywany do rejestru, który jest na karcie, i działa on jako
    adres sprzętowy - nie jest tak, że jakiś sterownik przemapowuje odwołania na "prawdziwy".
  • #4
    Jasiex
    Level 13  
    Dlaczego karty nie umożliwiają bezpośredniego adresowania, odpowiem sobie sam:
    Wiem że dzieje się tak NIE dlatego że dekoder adresów na karcie jest taki "uparty" i nie poradny albo autor sterownika miał za dużo alkocholu we krwi... Przyczyną tego jest architektura PC, nie ma fizycznej możłiwości odwzorowania sprzętowego tych adresów które są na szynie ISA na szynie PCI bo po prostu nie występują na PCI odpowiednie sygnały adresowe.
    Dlatego karty PCI wymagają remapowania które JEST MOŻLIWE ! ale tylko w przypadku systemów z architekturą sterowników VxD czyli win95/98 itp a dlaczego ? Dlaczego ? kazdy kto wie czym różni się WDM od VxD nie będzie pytał (chodzi o poziom uprzywilejowania).
    W systemach Linux też nie powinno być z tym problemów.

    Po co zatem produkuje sie te karty?
    Otóż, jeśli urządzenie korzysta z API drukarki czy zip to obsługa drukarki/zipa jest możliwa bo api jest "oderwane" od fizycznych adresów ISA posiłkując się tym co ma w zasobach kontrolerów LPT czyli może korzystać z wysokich adresów poprzez funkcje API zaimplementowane w sterowniku karty LPT danego producenta np. Netmos, Moschip itp. i

    Dlatego nie dziwi że można często spotkać zadowolonych użytkowników przejściówek USB którzy używają ich do drukarek.
    Ale jeśli ktoś będzie chciał tego dziadostwa użyć do programatorów od choćby Willem to srogo będzie zawiedziony !!! gdyż
    ten bezpośrednio (poprzez ostatnio driverlinx dllportio) odwołuje się do np.378 i taki kabelek który realizuje jedynie funkcje api będzie mógł wyżucić do śmietnika.
    Dodam że wypróbowałem i kabelek i karty na chipach:
    -oxford
    -mochip (netmos).

    Dodano po 17 [minuty]:

    Przypomniała mi się podobna kwestia związana z problemami ewolucji standardów z ery ISA.

    Każdy kto miał karty SB, potem SBPRO wie że ich ulubionym adresem bazowym jest 220 albo 240 itp.
    Są to również adres niskiej przestrzenii wprost z linii dostępnych na ISA.

    Podczas ewolucji kart SB gdy pojawiły się wersje PCI, pojawiły się problemy ze steorwnikami.
    Rolą tych sterowników najczęściej było właśnie remapowanie w DOS. Pod windows remapowanie załatwiał również sterownik VxD ale windowsa, który w konsoli DOS już mniej świetnie się sprawował podczas odwołań do np.220.
  • #5
    _jta_
    Electronics specialist
    Na magistrali ISA były problemy z konfliktami adresów - powtarzaniem się tych samych adresów w różnych kartach.
    Żeby tego uniknąć na PCI zrobiono tak, że to komputer przypisuje adres karcie, i jest on zawsze unikalny.
    Dzięki temu nie potrzeba zgadywać, na którym adresie jest karta, tylko odczytuje się to z konfiguracji.

    Do tego jest potrzebny program, który potrafi odczytywać konfigurację z PCI... programy na ISA nie działają.
    Pozostaje otwarte pytanie, czy można ten adres przypisany przez komputer zamienić na jaki się chce?
  • #6
    Jasiex
    Level 13  
    apropo "programu" to widzę żę kolega _jta nie słyszał bądź nie zauważył istnienia DMI w BIOS swojego PC.

    Windows nie korzysta z DMI,ale może -to zalezy od kodu sterownika VxD/WDM.

    Co do ustalenia adresów to jest ono realizowane i tak sprzętowo a nie programowo, bo sprzęt decyduje o możliwości wyboru przez program.
    Elastyczność co do wyboru adresu (bądź grupy adresów) jest realizowana sprzętowo).
    Wygląda to tak że program jedynie steruje np. pracą wewnętrznego przeżutnika który swoim wyjściem włącza jeden driver a wyłącza inny poprzez które doprowadzone są odpowiednie linie adresowe.

    Blok PnP urządzeń na PCI zawiera w ich ROMie między innymi preferowane takie informacje jak adresy urządzenia czy numery przezrwań oraz klase czyli oznaczenie kodowe typu urządzenia.

    Porównując pinout ISA i PCI wynika że nie chodzi tyle o same adresy co o możłiwość odróżnienia korzystania przez procesor z portow od korzystania przez procesor z pamięci.
    Otóż IORW/IORD to zapis/odczyt portow
    natomiast MEMRW/MEMRD to zapis/odczyt pamięci.
    NA PCI sygnały IORW/IORD nie występują, a na ISA tak.

    co o tym sądzicie ?

    Na ISA podobnie jak na PCI też tak było tyle że to był blok informacyjny ale o innej strukturze niż PNP i zawierał on adresy inicjalizacji kodu sterownika po włączeniu, sume kontrolną, klase itp. Ten mechanizm jest po prostu niezbędny w przypadku kart grafiki(które muszą działać po włączeniu, a w końcu program inicjalizacyjny realizujący zapis odpowiednich wartości do rejestrów karty graf. dokonuje CPU komputera na podstawie uruchomionej procedury inicjalizacyjnej z ROMu tejże karty).