Bisher veröffentlichte I2C-Interfaces basieren, wie diese Schaltung auch, meist auf eine Philips
Applikation. Die Idee bei dieser Schaltung war nun, ein I2C
Interface mit einem 8-Bit Interface zu kombinieren. Dazu bietet
sich der Paralellport des PC's grundsätzlich an, da eine 8-Bit
Ausgabe von Anfang an von IBM definiert wurde. Daten einzulesen
ging nicht ohne weiteres, da die Datenleitungen nur für die
Ausgabe bestimmt waren. Frühere Peripheriegeräte wie
Parallelport Netzadapter oder auch Programme zur Kommunikation
zwischen zwei PC's tauschten die Daten zum PC über den
Statusport aus. Da dieser aber nur 5 Bit breit ist, musste dies
Nibbleweise zu je 4 Bits geschehen. Durch die Entwicklung neuer
Modes wie EPP (enhanced paralell port) oder dem ECP (extended
capabilities port) wurde es möglich direkt über den Datenbus 8-Bit
Daten einzulesen. Mit Einführung der erweiterten Modes, wie EPP/ECP
nutzen auch immer mehr Peripheriegeräte, wie z.B. Scanner, die
parallele Schnittstelle um mit dem PC zu kommunizieren, da jetzt
eine entsprechend hohe Übertragunsgrate möglich wurde.
1.0 Schaltungsbeschreibung
Für die I2C Kommunikation sind die Gatter IC3A-IC3D zuständig. Die
Signale SCL / SDA finden sich an der Ausgangsbuchse an den Pin'S
2 und 3. Die Erkennung ob ein Adapter angeschlossen(init_iic)
ist, erfolgt mit Gatter IC2D. Über den ControlPort C2 (nInit)
wird gesteuert, ob das Interface im I2C bzw. parallel Mode
arbeitet. Diese Funktionalität, wird über die Funktionen
io_enable/io_disable gesteuert. Eine genaue Beschreibung der verfügbaren
Funktionen befindet sich weiter unten in diesem Text. Die
parallele Ein- Ausgabe erfolgt über den 8-Bit bidirektionalen
Bus-Transceiver IC1 74LS245. Die Datenrichtung (lesen/schreiben)
wird über die Gatter IC2A-IC2B ausgewählt. Über das Gatter IC2C
wird in Verbindung mit dem RC-Glied R1/C1 der erforderliche übernahmeimpuls
für die Dateneingabe an (S7,nWait) erzeugt.
1.1 DLL
Alle Funktionen befinden sich in der ,,I2CDLL.DLL". Da diese auf den ,,C"-Funktionen ,,outp"
und ,,inp" basieren, die direkt auf die Hardware zugreifen,
funktioniert diese DLL nur unter den Betriebssystemen Windows 95
& Windows 98. Unter Windows NT geht dies nicht, da NT den
direkten Zugriff auf die Hardware verbietet. Die ,,quasi"
Schnittstelle zwischen der DLL und dem Anwendungsprogramm wie z.B.
VisualBasic, befindet sich in der Datei ,,I2CEPP.BAS". Hier
sind die Funktionen sowie die Aufrufparamter beschrieben.
Download Sofware la.zip
2.0 Testprogramm
Um die Funktionalität zu Testen, gibt es das beiligende Programm "8 Kanal mini Logic-Analyzer".
Das Programm ist bewusst sehr einfach gehalten. Hiermit ist es möglich, ohne weiteren Hardwareaufwand,
8 Kanäle (TTL-Pegel) ähnlich einem LogicAnalysator,
darzustellen. Es sind maximal 64000 Messungen einzustellen. (Schieberegler
Counts) Der darzustellende Bereich, wird mit den Reglern
StartShow , EndShow eingestellt. Die gemessenen Werte können
gespeichert und auch wieder eingelesen werden. Während einer
Messung, wird Strobe (Pin 1 der Ausgangsbuchse) auf Low gezogen.
Weiter besteht die Möglichkeit, extern die Messung zu starten.
Dazu muss die CheckBox ,,PE Trigger" gesetzt sein. Die
Messung wird erst dann gestartet wenn Pin 14 der Ausgangsbuchse
auf auf LOW geht.