Hallo, kennt jemand einen einfachen PCIe Baustein (möglichst wenig Pins, billig und einfach zu bedienen), mit dem ich über mindestens einen Pin über die PCIe Schnittstelle kommunizieren kann ? Vielleicht soetwas wie ein RS232/PCIe Translator. Habe ich bislang noch nicht gefunden. Mein Wissen über PCI und PCIe ist sehr begrenzt und ich versuche es zu vermeiden, mich damit näher beschäftigen zu müssen, wenn das überhaupt möglich ist. Ich möchte auch vermeiden, einen FPGA oder eine PCI/PCIe Bridge zu nutzen. Soweit ich informiert bin, hat jedes PCI Device eine Vendor und Device ID, die bei jedem Systemstart eines PCs ausgelesen wird und dann eine neue Adresse zugewiesen bekommt. Der Baustein, nach dem ich suche, sollte demzufolge auch diese IDs haben und somit vom System als PCI Device erkannt werden. Prinzipiell würde es schon reichen, wenn dieses Device vom PCIe Bus nur Daten empfängt und keine senden braucht. Grüße und Danke schonmal im Vorraus. Shorsh
> Mein Wissen über PCI und PCIe ist sehr begrenzt...
Grundwissen musst Du dir trotzdem zulegen. Ein IC wird Dir nicht den
kompletten PCIe verbergen. Die Konfiguration musst Du auf jeden Fall dem
IC mitteilen. D.h. Du musst wissen wie die abläuft...
Was genial währe, währe ein Chip der aus einem PCIe Slot quasi 16-bit ISA zaubert.
@Der freundliche Bastler von Nebenan: Hmmm... Obs sowas gibt? Im Zweifelsfall ein FPGA nehmen und basteln ;) Nur ist da irgendwie der Sinn eines Datenbusses mit extrem hoher Bandbreite nicht mehr gegeben ;) Übrigens bietet Pericom PCIe nach UART Chips an.
Das lässt sich inkrementell lösen: Mit einer PCIe-zu-PCI-Bridge wird erstmal ein "normaler" PCI-Bus aus PCIe erzeugt, und aus diesem wird mit einer PCI-zu-ISA-Bridge ein einfacher zu handhabender ISA-Bus gebastelt. Ein grundlegendes Problem hierbei ist, daß sämtliche verfügbaren PCIe-zu-PCI-Bridges nur im BGA-Gehäuse verfügbar sind, was die Platinenherstellung erheblich verkompliziert. Was ist die Zielanwendung "vonn't janze"?
> Mit einer PCIe-zu-PCI-Bridge wird erstmal ein "normaler" PCI-Bus aus > PCIe erzeugt, und aus diesem wird mit einer PCI-zu-ISA-Bridge ein > einfacher zu handhabender ISA-Bus gebastelt. Wer sich das antut ist selber schuld :-P Klassisch macht man das so... Stichwort Southbridge. Aber für ein einfaches Design ist das garnix. Die Bausteine haben ihre Tücken und die mit vernünftigen Aufwand alle miteinander sprechen lassen, ist als Hobby nicht machbar. FPGA, PCI/e- und ISA-Core...
Unbestritten. Interessant ist dennoch, was der Threadstarter so vorhaben mag.
Nachdem du die PCIe Datenrate scheinbar garnicht brauchst, Vorschlag: Mach an die Platine nen blinden PCIe Stecker dran (OHNE Kontakte) und leg ein kleines Kabel bei mit dem man die Platine an einen USB-Port am Motherboard anschliessen kann...
Moin, in der aktuellen c't oder in der davor wurde ein USB zu ISA 'Adapter' vorgestellt. Ist zwar nicht PCIe, macht aber vielleicht bei dem Projekt etwas weniger Kopfschmerzen. :-) Johannes
Danke für die Beiträge ! Der Tip von Mathi mit dem Pericom Chip ist genau das, was ich brauche. Die Sales Kontakte von Pericom konnte ich leider noch nicht erreichen und sonst hab ich den IC noch bei keiner anderen Distribution gefunden. Bei Oxford Semiconductor wird auch noch so ein Chip angeboten, allerdings hab ich da das gleiche Problem...ich kann ihn nirgends kaufen. Hab jetzt mal eine email geschickt und hoffe auf Antwort. Der Vorschlag von Ernst Bachmann klingt auch recht frei und genau solche Vorschläge finde ich interessant, auch wenns bei mir mit Problemen verbunden ist. Genaueres zum Projekt: Ich muß unter DOS auf einen Mikrocontroller zugreifen können und die Schnittstelle muß auf den neuesten Motherboards verfügbar sein. Eine Idee von vielen war, dass ich den SMBUS des PCIe verwende, allerdings ist nach ein paar Tests klar geworden, dass viele Motherboard Hersteller den SMBUS nicht zum pcie verdrahten :-( USB wäre möglich, aber das ist meines Wissens unter DOS etwas problematisch und wird anscheinend auch nicht auf allen Motherboards unterstützt. Wenn jemand besser Bescheid weiß, bitte melden. Eine andere Idee war noch über den Port80h (PostCodes) zu kommunizieren, aber das ist etwas riskant, weil man vrmtl. nie genau weiß, wie das System auf bestimmte Postcodes reagiert. Die Postcodes könnte man über einen kleinen CPLD abfangen. Hab ich schon probiert und funktioniert wunderbar, zumindest auf PCI. Könnte man dann über eine PCI/PCIe Bridge verbinden. Bin trotz guter Beiträge noch offen für weitere Vorschläge, falls jemand nen Geistesblitz hat. Grüße, shorsh
@ Georg Schilling: Also die Idee mit Port80h-Kodes hinter einer PCIe-PCI-Bridge halte ich für gewagt. Da sollte man die Dokumentation der Bridge schon sehr genau lesen ob sie diese Zugriffe auch durchreicht. Da wäre ich mir derzeit nicht mal bei allen Chipsätzen sicher ob da auf den PCIe-Slots die Port80h-Zugriffe sichtbar sind. Generell halte ich die Zielsetzung 'Zugriff unter DOS' und das auf neuesten Boards für sportlich. PCI wäre noch halbwegs tauglich und bis jetzt habe ich auch noch kein Board gesehen wo kein PCI drauf war. Ansonsten fällt mir jetzt auf Anhieb keine geeignete Schnittstelle auf neuen Boards ein, die über Standardports angesprochen wird. Evtl. gibt es im VGA-Bios einige Calls zum Ansprechen der DDC-Signale? Oder man verwendet einen USB nach PS/2 Adapter und verläßt sich auf die Keyboard-Emulation von Chipsatz und BIOS. Aber ob das immer wie gewünscht funktioniert? Jens
> Genaueres zum Projekt: Ich muß unter DOS auf einen Mikrocontroller > zugreifen können und die Schnittstelle muß auf den neuesten > Motherboards verfügbar sein. Das klingt etwas merkwürdig; warum muss ein steinzeitliches "Betriebssystem" auf neuester Hardware verwendet werden? Alternativvorschlag: Nutze das Netzwerkinterface. Das hat jedes auch nur mäßig neue Motherboard (alles, was so in den letzten 10 Jahren hergestellt wurde) und es gibt/sollte geben dafür fertige DOS-Treiber in Form von sogenannten "packet drivers". Das ist ein TCP/IP-Stack für DOS, und darüber könntest Du Deine Kommunikation mit Deinem µC abwickeln. Vorteil: Keine Hardwareabhängigkeiten, kein aufwendiges PCIe/PCI-Hardwaredesign. Was soll denn das DOS-Programm mit dem µC anstellen? Was für Datenmengen sollen mit welcher Geschwindigkeit übertragen werden? Warum DOS? (ja, die Frage habe ich schon mal gestellt)
PCI ist doch auf den aktuellen Mainboards auch immer noch mindestens 1 mal drauf. Das einfachste wäre eine PCI-UART Karte, für die es DOS-Treiber gibt, oder die ihre Adressen so mapped, dass es wie ein normaler I/O angesprochen werden kann. Selbst eine PCI(e) Karte zu entwickeln ist...naja, extrem aufwerndig, vor allem bei Deinem Kenntnisstand. Unter DOS wird´s eventuell mit aktuellen PCI(e) Bridges auch schwer. Mir fallen da spontan die Bridges von PLX ein. Da gibts auch eine PCIe auf local-Bus, also quasi ein universeller paralleler Bus, wo du halt FPGAs, DSPs usw anschließen kannst. Allerdings ist das selbst für Hardware-Entwickler mit mehrjähriger Erfahrung viel Arbeit. Dazu kommt die Treiberentwicklung. Uiuiui....aufwendiges Projekt.
> Dazu kommt die Treiberentwicklung.
Die übrigens auch bei DOS erforderlich ist; warum sollte die PCIe-Karte
so nett sein und ihre I/O-Adressen in einen von einem DOS-Programm
ansprechbaren Adressraum mappen?
Wie wäre es zB. die Parallel Karte von Exsys EX-41011 zu nehmen. (PCI <-> parallel Port) Und dann freundlich bei oxsemi fragen, ob sie ein paar Details zu der Ansteuerung rausrücken, eventuell haben sie sogar Treiber für Dos im Keller. (von alten Chips, aber die ähnlich angesteuert wurden) Auf der Webseite haben sie Treiber von W95 bis Wxp oder Vista. Und das es nicht ganz trivial ist, ist deutlich. Aber die (chiphersteller) kochen auch nur mit Wasser. Gruß Sven
Ergänzung: www.mmui.com. cn/Product.aspx?id=31 Unter dem Download ist sogar ein Treiber für Dos dabei. Yeah! Gruß Sven
Und warum nicht einfach COM1 oder LPT1 sollte doch auf fast jedem Board vorhanden sein, ist unter DOS erreichbar und von der µC Seite ist das denke ich auich der beste Weg. Gibt es nicht sogar unter FreeDOS Treiber für USB? Ich meine mal etwas darüber gelesen zu haben. Bin mir allerdings nicht sicher Gruß, Tubie
Ich weiß ja nicht welches Einsatzgebiet die Hardware haben soll. Wir haben z.B. in der Firma einen ziemlich aktuellen Rechner stehen, der ein Board eingebaut hat, welches über ISA Slots verfügt. Soll sündhaft Teuer sein, allerdings günstiger als die ISA-Karten für die Meßmaschine neu zu entwickeln. Von einer PCI - Centronics Karte kann ich berichten, das diese nicht unter DOS erkannt wird. Der Port wird auch nicht im BIOS angezeigt. Gruß, Tubie
> Von einer PCI - Centronics Karte kann ich berichten, das diese nicht > unter DOS erkannt wird. Der Port wird auch nicht im BIOS angezeigt. Aus genau diesme Grund habe ich ja diesen Link gepostet. Man muss den Treiber in der Autoexec.bat oder config.sys halt laden..... Beitrag "Re: Suche einfachen PCIe/PCI Express IC" Gruß Sven
Übrigens gibts das Teil auch als serielle Version (www.mmui.com.cn /Product.aspx?id=26) und z.B. von Conrad auch als PCIe (974958 - 62 bzw 974956 - 62) mit den selben Netmos Chips (anscheinend via PCIe-PCI Bridge) CU
Hallo, danke nochmals für die zahlreichen Beiträge. @Jens + Christian R.: PCI fehlt auf vielen neuen Motherboards und wird komplett durch PCIe ersetzt. @Chrisitan R: PLX benötigt aber auch wieder einen FPGA oder vergleichbares, da es ja mit 66MHz arbeitet. Ist zu schnell und zu aufwendig. @Rufus: Die Datenmenge ist wirklich sehr gering. Eigentlich muß ich nur ein Bit übertragen. Eine True/Falls Abfrage sozusagen. Ich will sehen, ob das System mit dem Boot Vorgang abgeschlossen hat und es bis DOS geschafft hat. Dann möchte ich mit dem Mikrocontroller weitermachen. Die Idee mit dem Netzwerk Interface könnte auch passen. Muß ich mal genauer recherchieren. Das mit dem von DOS ansprrechbaren Adressraum ist auch ein guter Input. Muß ich auch mal überprüfen. Danke ! @Sven: Danke. Exsys werd ich mir nochmals genauer anschauen. Habe aber bislang noch keine PCIe Karten mit DOS Treiber gefunden. Entweder PCI/ISA + DOS oder PCIe, aber ohne DOS Treiber. Werd dort mal anrufen. @Tubie: COM und LPT sind auch nicht mehr vorhanden auf den neuesten Boards. Von den USB DOS Treibern hatte ich auch schon gehört. Allerdings auch schon, dass es nicht immer 100%ig funktioniert. Wäre aber vielleicht mal ein Versuch wert. Momentan sind meine Favoriten PCIe/232 Bridge und USB Treiber unter DOS.
Also ich weiß ja nicht, was du für Mainboards gesehen hast, aber auf aktuellen ernst zu nehmenden Mainboards seh ich immer noch überall mindestens einen PCI-Steckplatz. Naja, auf reinen Gamer-Boards vielleicht nicht. COM Port ist fast überall per Pfostenleiste mit drauf, rausgeführt nur noch selten. Auf Industrie-Mainbaords sind die noch nicht mal überall bei PCIe angekommen. Eine industrielle Anwendung kann sich also noch über jahre auf PCI verlassen. PCIe Serialkarte, die dann noch Treiber für DOS hat, wird schwierig. Als PCIe kam, war DOS schon sehr sehr lange tot. DOS Treiber für USB genauso schwierig, soll sehr instabil sein. Dazu musst du ja auch die passende Gegen-Hardware haben. Netzwerk wäre noch das sinnvollste, vielleicht so ein Lantronics Teil. ich hab unter DOS 6.22 mal einen TCP/IP Server und Samba-Server eingerichtet, das ging zwar, war aber krank, wegen himem usw. Nie wieder! Was genau ist denn überhaupt die Anwendung? Wozu DOS? Ganz alte sehr sehr spezielle Software?
Wenns nur ein paar Bit für "Boot OK / nicht OK" sind: Greif die Tastatur-LEDs dafür ab, z.B. die sonst eh selten genutzte Scroll-Lock LED. Die unter DOS zu setzten ist fast trivial, und mit der entsprechenden BIOS-Simulation auch bei USB-Keyboards möglich. Beim Hochfahren schaltet das BIOS die zwar mal kurz an und ab, aber wenn du eh nen µC danach hast, ist das ja einfach zu filtern. z.B. System läuft => Blinkt im Sekunden-Takt...
Jepp.. Tastaturleds sind ganz praktisch. Mann könnte damit sogar ne kleine Datenübertragung machen :D
Ja das hört sich ja auch mal wieder interessant an. Ich würde dann zwischen Tastatur und Motherboard eine Platine dazwischenklemmen und das Pattern für die Scroll-Lock LED abfangen. Wenn es trivial ist, kannst Du mir sagen, wie genau ? Sprich, wie sende ich von DOS ein Kommando und wie sieht es dann am PS2 aus ?
Falls die Verwendung einer PCI-Karte immer noch eine Option darstellt, gibt es unter http://www.fpga4fun.com/PCI.html eine sehr ausfuehrliche und verstaendliche Anleitung, wie man mittels eines FPGAs eine PCI-Karte realisiert und die ggf. erforderlichen Treiber erstellt.
Du kannst die Tastur mit CON Ansprechen http://www.tu-chemnitz.de/informatik/RA/news/stack/kompendium/vortraege_97/boot/boot4.html Du kannst das device "CON:" z.B. als Datei öffnen, ich weiß aber nicht ob man damit Befehle zur Tastatur senden kann, oder ob die nur auf den Bildschirm ausgegeben werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.