Vraag:
PCI- of PCIe-apparaten gebruiken
Kyle Macey
2012-07-16 23:04:04 UTC
view on stackexchange narkive permalink

Is het mogelijk om een ​​soort adapter te gebruiken, of zelfs om een ​​apparaat op het Raspberry Pi-bord te solderen om PCI- of PCI Express-apparaten te ondersteunen? Ik denk aan kleinere apparaten zoals NIC's of geluidskaarten. Ik zou niet denken dat er genoeg spanning zou zijn om zoiets als een tuner of grafische kaart te laten werken.

PCi express is uitgesloten omdat de bussnelheid te hoog is voor de ARM om te verwerken en de te brede (te veel I / O's) PCI kan mogelijk zijn, maar het heeft geen zin
Je zou enorme problemen tegenkomen met bottlenecking, het kan niet worden gedaan.
Welnu, het gebruik van de IO-pinnen zou waarschijnlijk nog steeds sneller zijn dan USB. En hoe zit het met het gebruik van ISA, EISA of misschien VESA? Ik weet dat ze oud zijn, maar ze hebben nog steeds lagere klokfrequenties en er zijn niet veel nieuwe. Of, hoe zit het met het maken van uw eigen interface?
@ppumkin PCIe werkt met hoge bussnelheden wanneer de fysieke laag en apparaten die snelheden ondersteunen, maar het is eigenlijk een behoorlijk veerkrachtig protocol en zal nog steeds werken in tamelijk niet-ideale situaties bij lagere snelheden.
Er is een Raspberry Pi-concurrent met een PCIe m.2-sleuf aan de achterkant: [Rock Pi] (https://rockpi.org/) Het is ontworpen voor gebruik met NVMe-harde schijven, maar het zou mogelijk kunnen zijn om het uit te breiden naar volledige PCIe x4 met een soort breakout-bord.
Zeven antwoorden:
John La Rooy
2012-07-17 02:57:00 UTC
view on stackexchange narkive permalink

Ik betwijfel of dit mogelijk is. Je zou een soort brug nodig hebben en iets om het op aan te sluiten.

Weet niet zeker waarom dat nodig zou zijn, NIC's / geluidskaarten / tuners en meer kunnen op de USB worden aangesloten

Er zijn ook USB-videoadapters als u een tweede scherm wilt toevoegen. Het heeft niet veel zin om een ​​krachtige grafische kaart aan te sluiten voor games enz. De enige reden die ik kan bedenken, is als je de GPU zou gebruiken voor coprocessing.

Er is één overtuigende use case ... implementatie van een Pi-gebaseerde 802.11ac dual-band router die feilloos werkt in de AP-modus (of wat dat betreft, de AP-modus doet het helemaal niet). Er zijn een paar USB 802.11n NIC's waarvan wordt gezegd dat ze semi-werken in AP-modus als je de USB-bus volledig verzadigt, maar als je praktisch wilt, heb je een PCI-e-bus nodig als je de AP-modus echt goed wilt doen. om je bijna realtime toegang tot de chip te geven, of je zult alle AP-gerelateerde logica naar het andere uiteinde van de USB-bus moeten verplaatsen (de 802.11ac-basisbandchips zelf rechtstreeks verbinden met een host Pi).
Boeiend of niet, u wordt beperkt door de I / O-knelpunten in en uit de CPU. Onthoud dat het een vrij oude, kostengeoptimaliseerde chip is.
SileNT
2012-07-17 04:49:00 UTC
view on stackexchange narkive permalink

Nee, het is niet mogelijk. De Raspberry Pi is gebaseerd op een low-budget-arm SoC die alleen een usb-bus heeft, dus het is onmogelijk om er een PCI- of PCIe-kaart op aan te sluiten. Er kon geen adapter worden gemaakt.

Zijn er ook wel PCI-e USB-connectoren genoemd?
@danger89 Sorry, ik kan uw vraag niet beantwoorden.
yogsodoth
2015-08-07 22:41:47 UTC
view on stackexchange narkive permalink

De snelste GPIO-buffer die tot nu toe kan worden geadresseerd, is 5,4 MHz, maar de meeste adresseringsbibliotheken zijn maximaal rond de 70 kHz: http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio -speed /

De PCIe-specificatie werkt op 100 MHz (frequentie instelbaar tot 200 MHz). http://www.ni.com/white-paper/3767/en/

Er kan een manier zijn om een ​​achterwaarts compatibele modus op PCIe te forceren en deze terug te brengen tot de oude PCI-frequentie op 33 MHz, wat betekent dat er enige overlap kan zijn in de frequentiebereiken met uitgebreide buffering. PCIe heeft echter een veel bredere bitbreedte dan GPIO en vereist een enorme hoeveelheid software-infrastructuur om correct te adresseren, wat de GPIO-bus op de Pi eenvoudigweg niet heeft. PCI en PCIe zijn meer dan alleen interfaces, ze bevatten hun eigen (complexe) intermediaire communicatieprotocollen, die je op de een of andere manier zou moeten emuleren.

Zou het kunnen? Zeker, met de juiste software / hardware-interface kan alles worden gedaan. Bibliotheken op kernelniveau kunnen worden geschreven om zo ongeveer alles te overschrijven en zo ongeveer alles te bufferen.

Moet het worden gedaan? Welnu, wat u in wezen probeert te doen, is de snelle draadloze / PCIe-bus verbinden met de langzamere Pi. Dat is wat de USB-bus van de Pi al doet, en het doet het redelijk goed, en het doet het native en op een volledig ondersteunde manier.

Als je probeert om PCI / PCIe op de Pi te laten draaien, zou je in wezen het wiel opnieuw uitvinden , en het zou het heel moeilijk doen. Het kan een interessante leeroefening zijn, als u een paar maanden over heeft - in gedachten houdend dat u waarschijnlijk tegen een muur zult botsen en niet in staat zult zijn om op enig moment vooruit te komen. Klinkt buitengewoon onbetaalbaar voor mij. ;-)

Als je besluit om door te gaan, is er altijd dit: http://pinouts.ru/Slots/pci_express_pinout.shtml Merk op dat je grootste probleem de kloksnelheid is, niet de interfacebreedte. Ja, sommige PCIe / PCIx-kaarten hebben veel pinnen. Nee, niet allemaal, en velen hebben geen enorme pinouts nodig. Er zijn een paar hele kleine 1x-kaarten die er zijn. Omdat de klok op 2,5 Gbps draait, heb je een soort bufferinterface met veel opslagruimte nodig, en ik weet niet zeker of de Pi-processor in staat is om zoveel gegevens in te halen, aangezien je dat niet zult zijn draait in realtime.
Luciano Gabbani
2015-11-29 14:57:32 UTC
view on stackexchange narkive permalink

Het PCIE2RASPI-bord kan een PCIE-bord (mini of standaard) met een CycloneIV GX Fpga verbinden met de IO-signalen van het Raspberry I / O-bord. Door de stroompinnen op de header door te snijden, kan deze met een platte kabel aan een Raspberry-hist worden bevestigd. De Fpga op mini PCIe host een eindpunt met master target-mogelijkheden, waardoor de Raspberry in feite het pc-geheugen kan lezen of schrijven.

Kijk naar: http://www.geb-enterprise.com/PRODUCTS/Mini_PCIe_to_Raspberry.html http://www.geb-enterprise.com/PRODUCTS /PCIe_Standard_PC_CARD.html

Wanneer u een van uw producten voorstelt, moet u dat duidelijk maken in uw antwoord.
Josh2003
2016-08-15 02:39:37 UTC
view on stackexchange narkive permalink

Het is misschien zelfs mogelijk door ALL van de GPIO-pinnen te gebruiken, de helft ervan te multiplexen tot een enkele uitgangslijn (PCIe x1) op 100 MHz en de ingang te demultiplexen lijn in de andere helft. Ik las op dezelfde link (de eerste) vermeld in het antwoord van yogsodoth dat native C-code ongeveer 22 MHz zou kunnen beheren via de -O3-optimizer. (Onthoud gewoon dat logische niveau-shifters een must zijn. ) De software zou echter een nog grotere pijn in de nek zijn om te communiceren, aangezien PCIe niet standaard wordt ondersteund ...

Hellonearthis
2012-10-10 21:27:57 UTC
view on stackexchange narkive permalink

Misschien kunnen de GPIO-pinnen verbinding maken met iets dat de PCIx kan adresseren? Het zou een grote hack betekenen en de vraag is. Hoe snel kunnen gegevens worden ingelezen vanaf de GPIO-pinnen.

Niet snel genoeg.
Akkoord - Niet snel genoeg en het MOET realtime zijn. Linux is niet realtime.
user8226
2013-06-29 01:04:42 UTC
view on stackexchange narkive permalink

Nee, dat is niet mogelijk. GPIO-hardware is niet ontworpen om op PCI-snelheden te werken.



Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...