So arbeitet Treiber-Soft- ware für PC-Messkarten - All
Transcription
So arbeitet Treiber-Soft- ware für PC-Messkarten - All
MESSTECHNIK So arbeitet Treiber-Software für PC-Messkarten Ernst Bratz Hersteller von PC-Messkarten müssen dem Anwender einerseits Funktionsbibliotheken bieten, die eine einfache Einbindung in möglichst viele Entwicklungsumgebungen und Betriebssysteme ermöglichen. Andererseits dürfen diese Funktionen den Entwickler jedoch nicht einschränken und sollten die Offenheit der PC-Karte auf Software-Ebene fortführen. P C-Messkarten sollen offen für verschiedene Applikationen sein, viele Funktionen bieten und dennoch auf Hard- und Software-Ebene möglichst einfach integrierbar sein – und zwar über die einfache Plug’n’Play-Installation hinaus. In diesem Bereich sind Standardisierungen ungleich schwieriger als z. B. bei den Messgeräten, wo sie schon früh mit den IEEE488.2 Common Commands, SCPI etc. realisiert wurden. Zwar können natürlich auch Messgeräte sehr komplex sein, doch haben sie meistens einen relativ abgeschlossenen Funktionsumfang für gängige Messvorgänge (z. B. DMMs oder Oszilloskope). Eine Multi-E/A-Karte hingegen kann einfach nur Relais, Ventile oder eine Lampe an-/ausschalten, eine einfache Spannung messen, bis hin zur Steuerung ganzer automatisierter Vorgänge, Regelkreise oder MultikanalMesssysteme. Daher gehört es schon immer zur Philosophie der Firma Meilhaus Electronic, ihre PC Mess- und Schnittstellen-Karten inklusive hochwertiger und flexibler Support-Software auszuliefern. Die Messkarten der MESerie werden inklusive der ME-Power-CD vertrieben, die Software-Treiber für verschiedenen Entwicklungsumgebungen un- ter Windows (darunter C, Agilent VEE und LabVIEW) enthält. Zudem sind je nach Modell Treiber für Linux, QNX und VxWorks im Lieferumfang. Die Spezialisten der ME Software-Abteilung übernehmen bei der Treiber-Entwicklung die Aufgabe der Programmierung auf Register-Ebene. DAQ-Karten-Treiber unter Windows Bild 1 zeigt, wie das ME-Treibersystem in die Windows-Umgebung eingebettet ist. Der im Bild rot hinterlegte Bereich stellt dabei das ME-Treibersystem selbst dar. Der Treiber besteht aus drei Schichten. Die Aufgabe des Treibers auf unterstem Level ist es, eine Verbindung zwischen dem Betriebssystem und der Hardware der Messkarte herzustellen. Dabei sind die 32-bit-Treiber für die Windows Treiber-Architektur WDM (Windows Driver Model) entwickelt. Die WDM-Architektur wurde bisher in Windows 98/Me, 2000 und XP implementiert. Zur Unterstützung der Karte unter Windows NT 4.0 (alle Unterversionen bzw. Service Packs) steht zusätzlich ein herkömmlicher KernelTreiber zur Verfügung. Einige Karten werden zusätzlich noch unter Windows 95 unterstützt. Für diese wird ein VxD-Treiber mitgeliefert. Die Treiber bieten PCI-Karten Multiprozessor-Fähigkeit sowie Shared Interrupt, also die Möglichkeit, mehrere PCIKarten auf einem Interrupt laufen zu lassen. In der Schicht darüber angeordnet befindet sich die DLL, welche die Schnittstelle zu den Hochsprachen bildet. Das METreibersystem bietet hier eine komfortable, hardware-unabhängige Programmier-Schnittstelle (API Application Programming Interface). Zum Programmieren kann der Anwender zwischen Visual C++, Visual Basic, BorBild 1: Die Einbettung des ME-TreiberSystems in die land C/C Builder und DelWindows-Umgebung. phi wählen. Die Funktio- 42 nen der Treiber verwenden eine leicht verständliche und von Kartenmodell zu Kartenmodell weit gehend konsistente Nomenklatur. Die API-Funktionen beginnen mit einem Karten-spezifischen Präfix, z. B. me4000. Die Funktionen selbst hängen natürlich von den Features der PC-Messkarte ab. So bieten die Karten mit Analog-Eingängen z. B. Funktionen für die Konfiguration des A/DTeils (AIConfig) oder Routinen zum Erfassen von Werten in verschiedenen Betriebsarten: AIContinuous zum Erfassung einer unbekannten Anzahl an Messwerten, AIScan zum Erfassung einer bekannten Anzahl an Messwerten, AISingle zur Einzelwert-Messung etc. Praktische Hilfs-Funktionen wie AIDigitToVolt zur Umrechnung des DigitWertes in einen Spannungswert unterstützen den Programmierer über die Grundfunktionen der Karten hinaus. Für Agilent VEE und LabVIEW gibt es eine dritte Treiber-Schicht, die das Einbinden der Hardware in diese Software-EntwicklungsUmgebungen übernimmt. Das ME-TreiberSystem ist z. B. so in die Menü-Struktur der VEE Entwicklungs-Umgebung integriert, dass es als VEE Pull-Down Menü erscheint, wenn das ME-TreiberSystem für VEE installiert wurde. Als erste Menü-Ebene erhält man eine Auswahl der unterstützten MEKarten. Die zweite Menü-Ebene beinhaltet die Funktions-Gruppen Analog Input, Analog Output, Digital I/O sowie kartenspezifische Sonderfunktionen. Die dritte Menü-Ebene schließlich enthält die eigentlichen Messfunktionen wie zum Beispiel me4000AIConfig oder me4000AISingle. Für einige Karten aus dem ME-Spektrum sind zudem Treiber für DASYLab vorhanden oder in Vorbereitung. Die Applikations-Ebene Die oberste Schicht in Bild 1, die Applikations-Ebene, befindet sich weit gehend in der Hand des Anwenders, da Meilhaus sich als Zulieferer von System-Komponenten, jedoch nicht als Systemhaus sieht. Hier steht die konkrete Applikation im Vordergrund, die der System-Integrator mit Hilfe der Treiber individuell, flexibel und vollkommen frei elektronik industrie 03-2004 MESSTECHNIK entwickelt. Meilhaus liefert in dieser Ebene jedoch zahlreiche, sehr praktische Programmier-Beispiele bzw. Projekte, die den Einstieg in die Applikations-Entwicklung erleichtern. Die zusätzlich auf der Support CD-ROM enthaltenen Test-Programme können zum einfachen Funktions-Test der Karten verwendet werden. Für einige KartenModelle ist zudem die Software MEsslabor im Lieferumfang enthalten. Hierbei handelt es sich um abgeschlossene Agilent VEE Runtime-Programme (Runtime-Programme sind ohne die Entwicklungsumgebung lauffähige VEE-Programme, die auch weitergegeben werden dürfen). Die MEsslabor-Software zusammen mit einer ME-Messkarte macht den PC – je nach Karten-Funktionen – zu einer universellen Messstation, z. B. mit AC- und DC-Voltmeter, einem Dtenschreiber, einem einfachen Oszilloskop, automatischer Messprotokoll-Funktion, Schalten und Überwachen von digitalen Ein-/Ausgängen etc. Beim MEsslabor zur Analog-Ausgabe-Karte ME-6100 sogar wird ein virtueller Waveform-Generator realisiert. Treiber RS232 und 485 Bild 2: Die Einbettung des ME-TreiberSystems in die Linux-Umgebung. Mit dem Treiber für die seriellen InterfaceKarten (ME-9300, ME-9100i, ME-9000(i)) können die Ports der Karten vollständig in das Windows-PC-System integriert werden, als ob es sich hier um ganz normale Standard-Schnittstellen des PC-Mainboards handeln würde, jedoch mit den besonderen Eigenschaften der jeweiligen SchnittstellenKarten wie Opto-Isolation, HighspeedBaudraten und großzügigem FIFO für geringe Systembelastung. Wie die RS232Modelle sind auch die RS485-Versionen so in das Windows-Gesamtsystem integriert, dass sie als ganz normale Schnittstelle angesprochen werden können. Es wäre z. B. ein- fach möglich, einen RS485-Port über das Windows-eigene Hyper Terminal oder entsprechende Software-Fremdprodukte anzusprechen. Linux, QNX und VxWorks Für Linux liefert Meilhaus Electronic Treiber und Beispiel-Programme im Quellcode unter der GPL (GNU General Public License) für Kernel 2.0 - 2.4. Der Treiber besteht aus einem Kernel-Modul und einer Funktions-Bibliothek (Bild 2), die über ein Shell-Skript vollautomatisch installiert werden. Die Beispiele demonstrieren den Einsatz der Treiber unter C. Zusätzlich sind Treiber und BeispielProgramme für LabVIEW beigelegt. Für einige Karten werden zudem Treiber und Beispiel-Programme im Quellcode unter der QNX Community License für QNX 6 (für x86-basierende Systeme) mitgeliefert. Unter VxWorks 5.4.2 für x86-basierende Systeme sind weitere Treiber und Beispiel-Programme enthalten. Die Treiber für beide Betriebssystemen werden von ANSI C aus angesprochen.(jj) www.meilhaus.com Meilhaus Electronic 401 200-MHz-DSOs mit serieller Busanalyse Im Bereich der 200-MHzScopes bietet Yokogawa mit der SignalExplorer-Serie DL1600 zwei- und vierkanalige DSOs mit Speichertiefen bis zu 32 M Worte/Kanal an. Die neue Option Serielle-BusAnalyse für die 4-kanaligen Geräte ermöglicht eine komfortable Triggerung und Analyse von seriellen Datenbussen wie I2C, SPI und CAN. Im Gegensatz zu reinen Protokoll-Analysatoren ist hier die Untersuchung der untersten, physikalischen Ebene von seriellen Bussen möglich. Bei der CAN-Bus-Analyse werden Bitraten von 33,3 kbit/s bis 1 Mbit/s unterstützt. Die Trig- elektronik industrie 03-2004 gerung erfolgt auf beliebige Frames (SOF), Identifier, RTR, Error Frame, usw. Darüber hinaus ist auch eine Stuff-Bit-Berechnung möglich. Die I2C-Bus-Analyse ermöglicht Transferraten bis zu 3,4 Mbit/s im 7-Bit-Adressmodus, wobei zwei unabhängige Bussysteme alternativ ausgewertet werden können. Zahlreiche kombinatorische Triggermöglichkeiten und Datensuchfunktionen erleichtern die Busanalyse. Ähnliches gilt für die SPI-Analyse mit umfangreichen Suchfunktionen und Datenanalyse von max. 40 kByte. Die Anzeige erfolgt sowohl grafisch als Kurvenform wie auch im Listenformat, wobei der Zoom-Ausschnitt automatisch an die Daten angepasst wird. (jj) www.yokogawa-mt.de Yokogawa 407 43