Archiv verlassen und diese Seite im Standarddesign anzeigen : CCD-Sensor - PCI Schnittstelle
CCD Sensor auslesen:
Hallo zusammen,
ich wollte mir irgendein Farb CCD Sensor kaufen.
Nun benötige ich eine Schnittstelle.
Ich dachte da mal an die PCI Sc hnittstelle meines einen PCS.
Die Taktfrequenz ist ja bei dieser PCI Schnittstelle gigantischhoch "66 MHZ".
Nun ist es so, dass ich zum CCD-Sensor "egal was für ein Typ",
einen Binärcode dorhin schreiben muss, damit ich den Code auch wieder einlesen kann.
Und zudem benötigt es dann auch noch einen Takt um den Code vom CCD Sensor zum A/D Wandler zu schicken.
Je nachdem was für einen Wert die Farbe beim A/D Wandler erhält, wird dieser Code dann wieder bei einem Eingang der PCI Schnittstelle geschickt.
Ob 8 Bit, 16 Bit oder 32 Bit lang
Meistens besitzt es auch drei Farbfilter "rot, grün, blau", demnach hat es auch drei A/D Wandler.
Sodelle.....Dieser Code wird dann natürlich auch irgendwo gespeichert.
Nachdem alles ausgelesen wurde "unterschiedlich von den CCD Sensoren", wird dann eine Grafik aus den RAW-Daten angezeigt.
Wenn man will, kann man den RAW-Daten Code noch durch einen Binärcode-Änderungsfilter schicken und es hat dann ein x-beliebiges Datenformat.
Nur ist die Frage, wie ich eine PCI-Karte dafür baue.
Also eine Platine zu erstellen ist für mich nicht so das Problem.
Die Platine wird belichtet, je nachdem wo ich die Bauteile dafür untergebracht werden müssen und anschliessend geäzt.
Nun ist nur noch die Frage, wie ich unter C die Ein-bzw. Ausgänge der PCI-Schnittstelle nutzen kann.
Cu Andy
frank-findus
06.11.2006, 13:39
Vergiss es. PCI ist eine Interface-Spezifikation, die beschreibt, wie PC-Komponenten mit dem Motherboard-Chipsatz kommunizieren - d.h. wie sich z.B. eine Netzwerkkarte zu verhalten hat, um sich dort ohne Probleme "einzuordnen". Schließlich ist es ein Bussystem, bei dem alle Teilnehmer bestimmte Regeln befolgen müssen (Protokoll), um sich nicht gegenseitig zu stören ...
Ein PCI-Interface verlangt einen Microcontroller oder wenigstens ein hochentwickeltes FPGA (z.B. von Altera), allein um diese Kommunikation zu bewerkstelligen.
Für dein Vorhaben wäre evtl. eine (fertige) universelle I/O-PCI-Karte mit A/D-Wandler geeignet, wie sie für Mess- und Laborzwecke angeboten wird. Die sind aber nicht billig (z.B. http://www.visonet.ch/produkte.cfm?ID_n=79&language=1&suchkriterium=27&hauptkat=25).
Vielleicht mal bei Ebay suchen.
Ansonsten empfehle ich, einen Microcontroller zu verwenden, der die Datenverarbeitung weitestgehend "vor Ort" erledigt und nur die Steuerkommandos und Resultate per USB oder LAN zum PC zu senden ...
Frank
Surveyor
06.11.2006, 13:53
PCI Prototypenkarten gibts bei http://www.pci-tools.de/. Wie aber schon gesagt, die Karten kosten einiges.
Naja, ich denke mal, das wenn ich den PCI Dschungel durchforstet habe, mir ein eigenes Layout für die ganzen Bauteile für die PCI Karte anfertigen werde.
Nachdem ich dieses Layout dann auf die Kupferplatte belichtet habe, wird diese Platte selbstverständlich noch geäzt.
Naja und das Programm sollte demnach dann auch auf dieser Karte laufen.
Selbstverständlich werden noch irgendwo ein paar Sockel dran verbaut, so dass ich immer noch andere Ausgänge bzw. Eingänge dieser PCI-Karte nutzen kann.
Jetzt das eigendliche Problem, wo gibt es eine "gute Website", in der mir gesagt wird, wieviele Eingänge und Ausgänge eigendlich die PCI Schnittstelle hat.
Zudem weiss ich noch aus anderen Informatikkurse "ist schon Asbach an Jahre her", dass standartmäßig auf einer PCI Karte Chips verbaut sind, welche Auskunft über Hersteller und Typ der Karte herausspuckt.
Diese Daten werden glaube ich sogar von dem Windows spezifischen Plug & Play heruntergeleiert von der Karte, so dass man dann weiss "aha, ich habe diese Karte verbaut, demnach benötige ich dies und das an Treiber, damit, auch das Produkt läuft.
Ich hoffe ihr könnt mir da weiter helfen.
Aso unter Linux ist es ja auch nicht anderst.
Heisst es da "lsusb" für USB Dinger und lspci für pci Karten.
Naja, die Digitalwelt ist halt einmal
:Haue
Was den Aufwand angeht, hatte frank-findus schon recht. Ich glaube, dass bereits die Treiberentwicklung einen vor kaum lösbare Probleme stellt. Auch die entsprechende Hardware ist sicherlich nicht ganz unkompliziert. Unter http://elm-chan.org/works/pci/report_e.html findest Du vielleicht einige Einstiegspunkte, die den PCI-Bus ein bißchen klarer werden lassen. Wenn Du es wirklich versuchen möchtest, solltest Du Dich nach PCI-Treiberbausteinen oder Controllern mit integriertem PCI-Interface umsehen.
PCI funktioniert nicht etwa wie ein Parallelport, sondern ist eine Schnittstelle zum Mainboard mit sehr genauen Kommunikationsvorgaben. Wenn Du einmal im Internet nach Hobbyprojekten mit PCI-Unterstützung suchst, wird Dir die Schwierigkeit der ganzen Sache vielleicht etwas klarer.
Gruß,
Jörn
Warum hängst du den CCD nicht einfach an einen ganz normalen Mikrocontroller, und den evtl. per USB an den PC?
das ist etwa 100x leichter als die PCI-Variante, und billiger noch dazu.
und wenns nicht so schnell sein muss, kannst du den CCD sogar mit Hilfe einiger Standard-ICs an die parallele Schnittstelle des PCs hängen
(guckst du hier: Audine Project (http://www.astrosurf.com/audine/English/index0.htm)).
peterguy
08.11.2006, 21:19
Hallo Andy_B,
von deiner Idee, eine PCI-Karte KOMPLETT selbst zu bauen kannst Du dich wohl verabschieden. Ohne fertige Prototypenkarten kommst Du da nicht weit. Das fängt schon damit an, daß die PCI-Spezifikation nur für Mitglieder der PCI-SIG (PCI-Special Interest Group) verfügbar ist. Für einen 4 stelligen Jahresmitgliedsbeitrag teilt die Organisation einem eine "Vendor-ID", welche in Verbindung mit einem frei wählbaren Model-Code für eine Erkennung der PCI Karte durch den PnP-Manager benötigt wird.
Für die PCI-Kommunikation nimmt man üblicherweise spezielle Mikrocontroller / ASICs oder IP-Cores, die in FPGAs eingebunden werden.
Einen PC-seitigen Treiber zu schreiben ist noch das geringste Übel. Wenn Du z.B. LabVIEW verwendest, könntest Du (rein theoretisch) nach 10 min Programmierarbeit die ersten Zugriffe auf die Karte machen...
An deiner Stelle würde ich mich mit Ethernet oder USB auseinandersetzen, damit kommst du schneller zum Ziel ;-)
Gruß
Peter
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.