' schrieb:Ich weiß das man einen Treiber benötigt. Jedoch muss man das Rad nicht jedes mal neu erfinden, denn die PCI-Express-Bus ist eine Standardinterface, das weltweit benutzt wird, und die Daten werden in einem vorgegebenen einheitlich Vormat übertragen. Ich suche nur eine Standardbibliothek, die ich in LabVIEW einbinden kann.
Nur weil der PCIe Bus ein Standard ist heisst das noch lange nicht dass auch alle Controllerchips für PCIe boards das genau gleiche Registerinterface implementieren. Soweit geht die Standardisierung dann wirklich nicht!
Und wenn Du dann noch ein FPGA als Businterface benützen willst kannst Du da völlig verschiedene Registeranordnungen, Anzahl Datenkanäle, mögliche Interrupts etc. etc. haben. Ein anders FPGA image laden et voila der Interface Chip ist komplet anders strukturiert und der Treiber X der gerade noch so gut mit diesem Board funktionierte greift brutal in die Leere.
Zitat:Ich denke wir brauchen hier nicht Seitenweise über Kerneltreiberprogrammierung lange zu diskutieren, denn wir sind ein kleines Unternehmen, wo nach einer absehbaren Zeit Ergebnisse vorzeugbar sein müssen, damit man auch immer den Zeitfaktor im Auge behält. Ich muss immerhin die Digitalisierung, Datenverarbeitung, Datenübertragung auf dem FPGA realisieren. Zudem schreibe ich auch die Anwendersoftware auf dem PC. Damit dies alles in wenigen Wochen funktioniert, muss man auf Standardfunktionen, die schon vorhanden sind zurückgreifen, da hat man keine Zeit Wochen am Kerneltreiber zu programmieren.
Dann kaufe ein Hardware Developerkit das eine fixfertigen PCIe Chip enthält und normalerweise auch mit einem Developerdevicetreiber kommt und meist auch mit den Sources zu diesem Devicetreiber enthält, so dass Du sie selber an die Gegebenheiten vom Rest Deines Boards anpassen kannst.
Intel X38 oder AMD 780G chipsets sind eine Möglichkeit. Aber auch TI hat da sicher was und Freescale und NS wohl auch.
Und wenn Du ein fixfertiges Prototypboard mit FPGA PCIe Interface gefunden hast wird das hoffenltich auch mit einem Devicetreiber verfügbar sein. Sonst macht das ganze Board keinen Sinn.
Mögliche Boards so auf die Schnelle:
http://www.eurekatech.com/products/pci/pcie_board.htm mit sources für Treiber und so
http://www.enterpoint.co.uk/moelbryn/broaddown4.html
http://www.twinind.com/catalog.php?id=14#sc54 ebenfalls mit SDK verfügbar
Man könnte das auch mit Open Source und Open Hardware (z.B.
http://www.opencores.org/) tun aber dafür muss man schon ziemlich viel verstehen und das kostet auch immer sehr viel Zeit. Ein komplettes Entwicklersystem von Firmen wie TI, NS, Freescale oder dergleichen mit allen benötigten Files und hoffentlich auch source Code ist da schon wesentlich schneller.
Zitat:Um wieder zurück zum Thema zu kommen. Ich suche eine Library, mit der ich dann auf den PCI-Express-Bus zugreifen kann. Soetwas muss es doch geben. Vielleicht kennt jemand ja ein Softwareschiede, wo man soetwas kaufen kann. Ich bin für jeden Tip dankbar.
Ich denke halt nicht, dass es da eine Library gibt die einfach so für PCIe allgemein funktioniert sondern höchstens für bestimmte PCIe Controllerbausteine. Die Zeit wo nicht nur der physikalische Bus sondern auch das logische Registerinterface zu einem Bus standardisiert ist, wird wohl noch lange nicht kommen.
Rolf Kalbermatter