Ports benutzen (GCC)
Einleitung
Über die Ansteuerung der Schnittstellen unter Linux findet man im Internet überall etwas anderes, die einen sagen man soll die Schnittstellen über ihre I/O-Adresse (0x378,...) ansteuern.
Hier bleiben zwei Fragen offen:
- Kann ich USB-RS232 Adapter benutzen? -- Nein, USB-RS232 Adapter werden nicht über I/O-Adressen angesteuert. - Brauche ich root Berechtigung? -- Ja, ohne root Berechtigung kann man nicht auf I/O-Adressen zugreifen.
Die hier vorgestellte Methode ermöglicht folgendes:
- zugriff auf Schnittstellen ohne root Berechtigung - zugriff auf alle parallelen oder seriellen Schnittstellen, egal ob USB oder nicht
Allgemein
Bevor man auf irgendeinen IO-Port vom Userspace zugreifen kann, muss man ioperm(2) aufrufen. Dazu benötigt das Programm allerdings root- oder SUID-Root-Privilegien.
Serielle Schnittstelle
Die Serielle Schnittstelle besitzt 3 Ausgangspins (TX,RTS,CTS) und 4 Eingangspins (RX,DTR,DSR,RI).
Jetzt kann man diese Pins einzeln setzen und abfragen, oder sie als RS232 Schnittstelle benutzen.
Pins einzeln verwenden:
...
Als RS232 verwenden:
...
Parallele Schnittstelle
Die Parallele Schnittstelle besitzt 8 Datenleitungen und 9 Steuerleitungen, sowie 8 Massepins.
Die Datenleitungen können Bidirektional verwendet werden, die Steuerleitungen haben aber eine festgelegte Richtung.
...