Forum: Mikrocontroller und Digitale Elektronik Suche einfachen PCIe/PCI Express IC


von Georg S. (tschotschl)


Lesenswert?

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

von Mathi (Gast)


Lesenswert?

> 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...

von Der freundliche Bastler von Nebenan (Gast)


Lesenswert?

Was genial währe, währe ein Chip der aus einem PCIe Slot quasi 16-bit 
ISA zaubert.

von Mathi (Gast)


Lesenswert?

@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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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"?

von Mathi (Gast)


Lesenswert?

> 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...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Unbestritten. Interessant ist dennoch, was der Threadstarter so vorhaben 
mag.

von Εrnst B. (ernst)


Lesenswert?

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...

von jojansen (Gast)


Lesenswert?

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

von Georg S. (tschotschl)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

@ 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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> 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)

von Christian R. (supachris)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> 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?

von Sven (Gast)


Lesenswert?

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

von Sven (Gast)


Lesenswert?

Ergänzung:

www.mmui.com. cn/Product.aspx?id=31

Unter dem Download ist sogar ein Treiber für Dos dabei.

Yeah!

Gruß Sven

von Tubie (Gast)


Lesenswert?

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

von Tubie (Gast)


Lesenswert?

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 Sven (Gast)


Lesenswert?

> 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

von ... (Gast)


Lesenswert?

Ü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

von Georg S. (tschotschl)


Lesenswert?

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.

von Christian R. (supachris)


Lesenswert?

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?

von Εrnst B. (ernst)


Lesenswert?

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...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Jepp.. Tastaturleds sind ganz praktisch.
Mann könnte damit sogar ne kleine Datenübertragung machen :D

von Georg S. (tschotschl)


Lesenswert?

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 ?

von Carsten Kappenberger (Gast)


Lesenswert?

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.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.