Hallo,
mit den neuen Intel Atom Boards die mittlerweile auf den Markt kommen,
wird es ja immer interessanter einen Bildsensor mit PCI Express zu
verbinden. Das dürfe die einzige Schnittstelle sein, die relativ frei
von Latenzzeiten ist. Außerdem gibt es ja mittlerweile schon einige
Sensoren, die schneller als USB sind.
Ich habe schon ein wenig herumgesucht und befürchte, dass PCIe doch
recht kompliziert ist.
Ich hatte gehofft, dass es schon günstige Dev Boards PCIe Karten mit
einem einzigen FPGA gibt, mit denen sich ein einfaches Interface basteln
lässt. Allerdings sind auf diesen Boards immernoch jede Menge andere
Chips. Unter Einfach hatte ich etwas anderes erhofft.
Kennt jemand eine verhältnismassig einfache und kompakte Lösung einen
Sensor mit den neuen Intel Atom Modulen zu verbinden? Eine fertige
Framegrabberkarte finde ich zu groß und zu teuer.
Ich freue mich schon auf Eure Antworten.
Gruß
Christian
Hallo Christian,
PCIe auf einem FPGA ist alles andere als trivial!
Es gibt mehrere Lösungsansätze:
1) HIGHEND FPGA (Virtex oder Stratix) mit Highspeedschnittstelle und Ip
in FPGA-Fabric
- sehr aufwendig, timingkritisch oder Teuer (Lizenskosten > $10000),
relativ hoher Bauteilpreis ( High-END FPGA )
2) HIGHEND FPGA mit Highspeedschnittstelle und IP in Hardmakro
- trotzdem noch mässig aufwendig, hoher Bauteilpreis
3) LOW Cost FPGA ( Cyclone, Spartan) mit Companion Chip ( NXP oder TI )
- Aufwand ähnlich wie Lösung 1 da alle IP und Protokoll im FPGA
notwendig ist, aber Verlagerung der Highspeedschnittstelle in externen (
ser/par ) Wandler
4) Das wäre die Lösung welche ich Dir mal ans Herz legen würde und bei
kleinen Stückzahlen oder im Musterbereich die günstigste und
konvortabelste Lösung darstellt:
Schau dich mal bei Gennum um, dort gibt es zwei Chips:
GN4124 ( 4 Lanes ) oder GN4121 ( 1 Lane ).
Bei denen läuft ein Grossteil des Protokolls in deren Chips, für den im
FPGA notwendigen Teil gibt es kostenlose IP. Der FPGA kann von den Chips
via PCIe gleich gebootet werden ( nett fürs entwickeln ) und es gibt ein
Windriver basiertes Treiberframework.
Bei dem Teil war ich auch schon mal interessiert ein Low-Cost Evalboard
zubauen und anzubieten, liess sich zeitlich aber bisher nicht
realisieren.
Falls da Interesse besteht...
Gruss
Andreas
Es gibt auch Low-cost FPGAs mit SerDes. Das sind die Lattice ECP2/M und
der neue ECP3.
Der ECP2/M ist ein sehr guter Chip! Und um einiges günstiger als Stratix
oder Virtex.
Es gibt ein extra PCI-Express Eval Board für den ECP2/M. Kostet
allerdings fast 900$.
Stimmt die Lattice habe ich ausser Acht gelassen.
Bei den von Dir erwähnten Familien musst Du aber ebenfalls IP entwickeln
oder kostenpflichtig lizensieren.
als Alternative bei Lattice käme dann wiederum der SCP/M in Frage der
ebenfalls PCIE-IP im Hardmakro enthällt.
Dieser ist im Vergleich zu den Stratix und Virtex vergleichweise
preiswert. Es fehlen dem SCP leider Hardwaremultiplier welche man
schmerzlich vermisst, wenn man mit dem Kamerabild noch etwas anstellen
muss ( Gain, Gamma, colorspace conversion...).
Am meisten stört bei Lattice, das keine wirklich billigen Evalboards am
Markt sind...
Gruss
Andreas
> Stimmt die Lattice habe ich ausser Acht gelassen.> Bei den von Dir erwähnten Familien musst Du aber ebenfalls IP entwickeln> oder kostenpflichtig lizensieren.
Die braucht man die auch bei A und X.
Siehe Deine Lösung Nummer 1:
>> 1) HIGHEND FPGA (Virtex oder Stratix) mit Highspeedschnittstelle und Ip>> in FPGA-Fabric> als Alternative bei Lattice käme dann wiederum der SCP/M in Frage der> ebenfalls PCIE-IP im Hardmakro enthällt.> Dieser ist im Vergleich zu den Stratix und Virtex vergleichweise> preiswert. Es fehlen dem SCP leider Hardwaremultiplier welche man> schmerzlich vermisst, wenn man mit dem Kamerabild noch etwas anstellen> muss ( Gain, Gamma, colorspace conversion...).
Der SC/M ist auch nicht für die digitale Signalverarbeitung gedacht.
Sondern als Connectivity-Lösung.
> Am meisten stört bei Lattice, das keine wirklich billigen Evalboards am> Markt sind...
Wenn Du damit Boards wie die Spartan 3 oder Cyclone Boards meinst, dann
gebe ich Dir recht. Aber das ECP2/M PCI-Express Board ist mindestens
300$ günstiger als das Xilinx board.
Zu den ECP Bausteinen noch:
Die haben nicht nur einfache Multiplizierer, sondern komplexe
DSP-Blöcke. Sowas findet man nicht bei den anderen zum gleichen Preis.
Natürlich gibt es auch Nachteile bei den Bausteinen. Aber, meiner
Meinung nach, überwiegen die Vorteile.
Ist aber - wie vieles - auch "glaubenssache" ;)
>Natürlich gibt es auch Nachteile bei den Bausteinen. Aber, meiner>Meinung nach, überwiegen die Vorteile.
Welche Nachteile meinst Du ? ;O)
@Christian
Wie groß ist denn dein Budget ?
Gruß,
SuperWilly
@SuperWilly:
die Signalintegrität der SerDes ist nicht so gut wie bei A und X.
Aber dafür haben die ECPs doch eingies zu einem guten Preis zu bieten ;)
@Mathi
Ja, da gebe ich Dir Recht. Dafür gibts ja jetzt die ECP3-Bausteine.
Leider sind momentan nur die beiden größeren Bausteine verfügbar!
Aber der Abstand zwischen Ankündigung und Verfügbarkeit ist bei
Lattice deutlich geringer als bei Alternativ und Xtravagant. Dürfen uns
also freuen.
Gruß,
SuperWilly
Hallo,
immer wieder toll wie viele qualifizierte Antworten man hier bekommt.
Vielen Dank!
1) Das Lattice Board schaut recht interessant aus. So wie ich das
verstanden habe braucht es später nur den FPGA und ein bisschen
Vogelfutter außenrum. 1000$ fürs DevBoard tun weh, wäre ich aber schon
bereit zu investieren. Die Frage ist, welche anderen zusätzlichen
Lizenzkosten noch hinzukommen. Das konnte ich der Homepage nicht
entnehmen. Das Ansprechen des Bildsensors sollte der FPGA zusätzlich zum
PCIe Interface ja locker schaffen.
2) Der GN4121 gefällt mir auch sehr gut. Im Prinzip könnte ich hierbei
doch komplett auf einen FPGA verzichten und alles über den Localbus
realisieren. Vielleicht ist eine CPLD dazwischen noch hilfreich. Kennt
jemand hierfür ein DEMO Board? Gerne auch mit FPGA. Man muss sich das
Leben ja nicht schwerer machen. Mich würde interessieren wieviel ich
außen herum noch brauche. Typischerweise braucht es z.B. bei Bridges
noch mindestens ein Config Eeprom.
3) Gibt es noch einen anderen Weg als PCIe? Was ist mit SATA. Könnte man
nicht ein SATA kompatiblen Speicher simulieren und die Kommunikation
über "Speicherzellenzugriffe" realisieren. Die Frage ist was das Bios zu
einem solchen Gerät sagt und ob es überhaupt schon Erfahrungen in dieser
Richtung gibt. Ich meine auf der Vision Messe 2007 einen asiatischen
Hersteller gesehen zu haben, der eine einfache CMOS Kamera mit SATA
Interface angeboten hat. Leider konnte er mir mangels englich recht
wenig darüber erzählen. Heute finde ich den Hersteller leider nicht
mehr.
Gruß Christian
Hmm, das hört sich alles recht teuer und kompliziert an.
Hat sich jemand schon mal die PCIe Local Bus bridges von Gennum (GN4124
und GN4121) angeschaut.
Schaut recht interessant aus. Damit lässt sich z.B. ein Spartan3 direkt
verbinden und sogar über pcie booten. Die Bridge ist dabei so
selbständig, dass der PC auch bootet, wenn noch keine Firmware auf dem
FPGA ist.
Devkit gibt es auch von Gennum, allerdings suche ich vergeblich nach
jemanden, der diese Löschon schon erfolgreich einsetzt.
Gruß Christian
Hallo Läubi,
Du kannst die Konfiguration des FPGA über den Gennum Chip einspielen (
soviel ich weiss, ist entsprechender Democode und Treiber seitens Gennum
verfügbar).
Das hat den unbeschreiblichen Charme das Du die FPGA-Konfiguration
on-the-fly wechseln kannst, etwas was nicht funktioniert wenn der FPGA
selbst das PCIe Interface bedient (jedenfalls nicht in einem Standard-PC
welcher nicht Hotplug fähigen PCIe kennt).
Gruss
Andreas
Hallo Andreas,
an einem Low Cost GN4124 Board hätte ich interesse. Eventuell könnten
wir hier zusammenarbeiten.
Schreib mir mal wie ich Dich erreichen könnte.
Danke
Gruß Christian
Hm, naja, ob der Spartan dann schnell genug für den Gennum ist? Ich hab
mir mal die ganzen Unterlagen da gezogen, soweit ich es auf die Schnelle
überblickt hab, hat der ein 200MHz DDR Interface für In und Out. Das
könnte auf dem Spartan etwas haarig werden. Geht aber vielleicht auch
langsamer zu fahren. Auf jeden Fall ein interessanter Chip, mir schwebt
da auch schon ein Projekt vor. Allerdings mit Virtex 4 dann dran.
Hallo Christian,
der Spartan3 sollte schnell genug sein. Zielsetzung waren die Low-Cost
Serien.
Du kannst mit Spartan3 bis zu sechshundert und ein paar zerquetschte auf
den IOs fahren. Da ist dann allerdings einiges an Erfahrung,
Designdisziplin etc. notwendig.
Im Zusammenspiel mit dem Gennumm bekommst du die notwendige IP und
Designrichtlinien für Taktsystem, Pin-Constraints geliefert.
ich werd mal schauen, ob ich heute abend an meine Userdaten hier im
Forum rankomme, dann schreibe ich einen Beitrag und Du kannst mich dann
übers Board erreichen.
Wäre schön, wenn Du dich als Early-Adopter zur Verfügung stellen
würdest.
Ich würde bei Interesse tatkräftig mithelfen,das Boarddesign und Layout
vorantreiben...
Das mit dem Standardevalboard wird schwierig:
EVAL Boards mit wirklich gut layouteten LVDS Channels sind rar und teils
teuer.
Die Stecker, Positionen sind nicht normiert.
Die mechanische Anbindung von PCI-Einsteckkarte und EVAL-Board wird
schwierig.
Aber ich würd da gerne drüber bei Bedarf chatten...
Gruß
Andreas
Hallo Andreas,
ja ein Chat macht sicher Sinn. Zwischen dem GN4124 und dem Spartan habe
ich doch keine LVDS Leitungen, oder? Das mit dem Evalboard war ja auch
nur ein Traum.
Bis Bald,
Gruß Christian
Hallo Christian,
hatte gestern abend nicht mehr wie versprochen antworten können.
Christian wrote:
>Zwischen dem GN4124 und dem Spartan habde ich doch keine LVDS Leitungen
Das wär aber der einzige praktikable Weg zum Anschluß an ein
Xilinx-Evalboard, die unidirektionalen Signale sind zumeist nicht
längenmäßig aufeinander abgeglichen und die Verbindung müsste dann noch
von einem Board zum Anderen geschlagen werden.
Ich befürchte, an einem Evalboard inkl. FPGA wird man nicht drumrum
kommen. So teuer wie das RDK selbst muss es dann allerdings nicht
werden.
Gruß
Andreas