Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Gerätesteuerung USB

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.03.2008
    Beiträge
    50

    Gerätesteuerung USB

    Hallo,

    ich möchte ein Programm neu schreiben, welches mehrere Geräte ansteuert und ausliest. Bisher geschieht das Ganze über COM-Ports und eine spezielle Karte, die bis zu 10V Spannung ausgeben kann. Nun möchte ich auf ein neueres System updaten, da vor allem die COM-Ports nicht gerade stabil laufen (bei Abstürzen muss man bestimmte Parameter wieder neu einstellen). Ich möchte Linux verwenden, und da ich nicht unbedingt noch Treiber für exotische Karten programmieren möchte, war die Idee, alles über USB laufen zu lassen.
    Momentan habe ich von Steuerung irgendwelcher Hardware noch null Ahnung. Daher zunächst einmal die Frage an Leute, die sowas vielleicht schonmal gemacht haben:
    Ist die Steuerung über USB die einfachste Möglichkeit oder sollte ich einen anderen Ausgang verwenden? Und welche Literatur ist zum Einarbeiten in die Materie zu empfehlen? (C++ auf Konsolenbasis kann ich soweit)

  2. #2
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Ohne jetzt genaueres zu Wissen: Wenn du unbedingt die 10V-Outputs als Spannungs-/Stromversorgung brauchst, fällt USB schon mal weg, da gibts nur 5V Spannungsversorgung mit max. 500mA.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  3. #3
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    da Deine Geräte zuvor seriell angesprochen wurden, sollte es zumindest machbar sein ... steht das `S' in `USB' nicht für `serial'?

    BTW: dieses `bis zu 10 V' deutet erstmal auf Analogwertausgbe, da wirst Du imho etwas eigene Hardware einsetzen müssen ... und dem Teil könntest Du auch einen DC/DC-Wandler spendieren, so Du Deine Geräte nicht auf 5V-Pegel anpassen kannst ... wenn es denn bei USB bleibt.

    Was ich mich aber derzeit frage ...
    Momentan habe ich von Steuerung irgendwelcher Hardware noch null Ahnung.
    d. h. Du hast diese Deine `exotische' Karte nicht selbst programmiert -- darfst Du eigentlich tun, was Du da vorhast?
    Um welche Karte handelt es sich genau?
    bzw. was genau sind das für `Geräte', die Du da anzusprechen versuchst?

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  4. #4
    Registrierter Benutzer
    Registriert seit
    16.06.2003
    Beiträge
    73
    Hallo,

    also erstmal haben COM Ports (RS232) und USB überhaupt nichts miteinander zu tun. USB definiert ein komplexes Protokoll zur Steuerung von kompletten Geräten. RS232 definiert nur eine reine Datenübertragung. Auch auf elektrischer Signalebene arbeiten die beiden Schnittstellen vollkommen unterschiedlich.

    Daraus folgt. dass du als Gegenstelle bei USB immer einen USB Device Controller benötigst, um das Gerät überhaupt erst einmal am USB Port deines Rechenrs anschließen zu können.

    Die 5V beziehen nur auf die Versorgungsspannung die durch den USB Port zur Verfügung gestellt wird.. Die Datenleitungen arbeiten mit geringeren Pegeln wie z.B. 3.3V.

    Um dir wirklich helfen zu können, musst du schon etwas mehr Informationen geben. Was macht deine Software bis jetzt über die COM Ports um die Geräte zu steuern? Wie stellts du dir das nun über USB vor?

    Gruß

    almoeli

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.03.2008
    Beiträge
    50
    über die COM-Ports wird ein Lock-in Verstärker und eine Hallsonde gesteuert und ausgelesen. Über die 10V-Karte wird ein Netzteil gesteuert. Die Geräte sind uralt und haben keinen direkten USB Anschluss.
    Für die 10V dachte ich daran, ein USB Signal zu verstärken. Dazu muss man natürlich über USB eine fest definierte Spannung ausgeben können.

    @ almoeli: Die Verwendung von USB ist also nicht möglich, da die Geräte keinen Controller zur Verfügung stellen?

  6. #6
    Registrierter Benutzer
    Registriert seit
    16.06.2003
    Beiträge
    73
    Hallo,

    die einzige feste Spannung die du über USB ausgeben kannst ist die 5V Versorgungsspannung. Und die wird meist vom USB Host Treiber verwaltet, wenn dieser den Kontroller anweißt einen Port zu aktivieren.
    Die Datenleitungen können für ein solches vorhaben nicht herangezogen werden, da man sie nicht direkt in der Hand hat.

    Ohne einen echten USB Anschluss am Gerät selber kannst du dieses nicht an den USB deines Rechners anschließen, da sich jedes USB Gerät an einen festen Mechanismus halten muss, um erkannt zu werden.

    Gruß

    almoeli

  7. #7
    Registrierter Benutzer
    Registriert seit
    23.03.2008
    Beiträge
    50
    Ich habe mal in dem Handbuch vom Verstärker nachgelesen: Die möglichen Schnittstellen sind RS-232C und GP-IB (auch bekannt als IEEE-488), wobei erstere atm verwendet wird. Der Code ist in Visual C++ implementiert, was ich gerne umgehen möchte. Es ist nun die Frage, ob man diese Schnittstellen mit einem modernen PC ohne großen Programmieraufwand mit C++ ansteuern kann. Neue Geräte sind nämlich schweineteuer (und besitzen meist auch nur Treiber für LabView)

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.03.2008
    Beiträge
    50
    noch eine Frage zu der 10V Karte. Ich möchte die jetzt weiterhin verwenden und unter Linux ansteuern. Ein typischer Befehl sieht bislang so aus:

    Code:
    const	adr	= 0xE000;
    ...
    _outp(adr+32,0);
    Wie übertrage ich das nun in mein Programm? Habe schon versucht mich schlau zu lesen, und bin vor allem auf den Treiber parapin gestoßen. Nun habe ich aber 2 Probleme, und zwar

    1) Kann ich parapin für diese Karte benutzen? Sie scheint ja zumindest eine wohldefinierte Hardwareadresse zu besitzen.

    2) Was genau macht das alte Programm? Steuert es einen bestimmten Pin, und wenn ja welchen? Oder wie überträgt man das +32 auf die parapin Syntax?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •