Pci programering?

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Pci programering?

Inlägg av Virror »

Någon som vet en bra sida som tar upp hur man programerar pci porten?
Någon som har gjort det tidigare med bra resultat?
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Vad är det du vill göra exakt?

PCI är ingen port på samma sätt som t.ex. serieporten, det är en buss. Och själva bussen är mer eller mindre transparent så det man eventuellt "programmerar" är de kort/chip som sitter på bussen.

Det närmaste jag kommit är att programmera om PCI-ISA bryggan på ett PC104-kort för att få lite mer fart på den bussen... Men det är förmodligen inte till någon större nytta för dig. :)
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Det sista jag jorde och kopplade

Inlägg av bengt-re »

in på en buss i datorn var ett a/d kort av ISA-standard som satt i en burk som hade mindre hårddisk än vad jag har i ram på den bureken jag har nu.... Verkar sundare att lära sig USB2 och interface den vägen... Lättare om inte annat och farten på USB duger ju oftast.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Inlägg av Virror »

Jo, jag vet att det igentligen är en buss, skulle bara vara lite tufft att göra ett eget pci kort till datorn, men man måste ju ändå ha ett program som tar hand om datan som kommer från bussen.
henkebenke
Inlägg: 515
Blev medlem: 31 maj 2003, 10:42:37
Ort: Helsingborg

Inlägg av henkebenke »

Själva bussen är ju minnesmappad så kommunikationen med kortet består i att skriva och läsa på rätt adresser. Hur sedan kortet berättar för datorn vilka adresser den använder det vet jag inte.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Ett fusktips...

Inlägg av bengt-re »

Gör ett pcikort, men sno bara ström ifrån bussen och använd en intern usb-kontakt, sätt kortet i en pci-plats så ser det hela ärkeporffsigt ut ändå.... Jag menar, man behöver ju inte ansluta något bara för att man trycker ner det i den platsen och så får du din proffsiga gavelplåt och slipper få gråa hår när du skall lära dig den (förmodligen) bökiga pci-bussen ! USB-kontroller finns det som är väl dokumenterade idag och troligen den lättaste vägen att gå för att skapa egen hårdvara om man inte räknar rs-232 som ändå snart är borta
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Inlägg av Virror »

Så sant så, får se hur jag gör, skulle vara ett enormt framsteg bara att få en led att lysa eller nått. USB är ju iaf väldigt kraftfullt och mer användbart eftersom den är extern.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Att lära sig programmera för PCI-bussen handlar nog i första hand om att lära sig skriva drivrutiner för det operativsystem man vill köra under.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Ja troligen...

Inlägg av bengt-re »

Känns lite motbjudande att ge sig in i det träsket... Till USB.kontroller man kan köpa så finns själva drivrutinen, så hela operativsystembiten kan man slippa och bara få API´t direkt framför näsan... Känns lite lättare att hantera om man inte är väldigt envis och duktig programerare...
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

kolla upp I/ portarna 0xcf8 0ch 0xcf9 (på alla x86 system i alla fall). Det man gör är att man skriver in addressen på port 0xcf8 och läser 32 bitar från data porten 0xcf9. Det du får ut efter att ha hämtat 512 byte (alltså 128 läsningar) är vad som kallas "PCI COnfiguration Space" det är det huvud där det står vilken typ av enhet det är, vem som har gjort den, samt en massa status och kontroll bitar.

Att hålla på med PCI bussen är egentligen väldigt enkelt, om du skulle göra ett eget kort så behöver du bara räkna upp i address (kommer inte ihåg om det är byte/word eller dword) till du kommer till ditt kort, därefter så aktiverar du kortet (sätter vissa flaggor om det behövs) och *vips* så funkar det.

Det jag har beskrivit här är hur ALLA operativsystem måste göra men eftersom du inte skriver ditt eget OS utan istället ska skriva en drivrutin så måste du göra det den hårda vägen: lära dig mål operativsystemets drivrutinsfunktion (det finns böcker i bibel format för detta ämne).

Ta en titt på PLX PCI kretsar om du planerar att göra ett eget PCI kort
Skriv svar