Der Lan I2C Adapter VM ist ein programmierbarer Ethernet zu I2C Adapter mit einer einstellbaren I2C-Frequenz von bis zu 400 kHz. Der Adapter bietet Systemdesignern eine schnelle, einfache Möglichkeit an, eine Ethernet-Anschlußfunktionalität zu I2C-Geräten oder den I2C-Bus zu Geräten mit einer Ethernet-Schnittstelle hizuzufügen. Die Internet-Konnektivität und -verarbeitung von Standardprotokollen werden dadurch vom System vollständig ausgeladen. Dadurch verringert sich der Aufwand für Softwareentwicklung erheblich.
Das Herzstück des Adapters ist ein Dual-Core ARM 32 Bit Mikrocontroller. Jeder Core hat eine unabhängige I2C-Schnittstelle, jedoch sind beide Schnittstellen mit demselben I2C-Bus verbunden. Während die I2C-Schnittstelle in Core 1 I2C-Master oder -Slave sein kann, ist die I2C-Schnittstelle in Core 2 nur I2C-Master.
Core 1 dient als klassischer Ethernet zu I2C Adapter mit I2C-Master- und Slave-Funktionalität. Die offengelegte Schnittstellendokumentation ermöglicht es, den Adapter unabhängig vom Betriebssystem in Zielanwendungen zu implementieren. Ob Windows, Linux, Echtzeitbetriebssysteme oder andere, der Adapter ist völlig unabhängig vom Betriebssystem und benötigt keine Treiber. Eine Windows-DLL (Dynamic Link Library) ist verfügbar, um die Implementierung des Adapters in Anwendungen, die unter Windows ausgeführt werden, zu beschleunigen.
In Core 2 ist eine virtuelle Maschine implementiert, die einen 8051-Mikrocontroller emuliert. In der VM8051 können Echtzeit-, zeitkritische und sich wiederholende Prozesse ausgeführt werden. Dies reduziert neben vielen anderen Vorteilen auch den Netzwerkverkehr. Ein einfaches Fallbeispiel, wenn es darum geht, eine große Anzahl von I2C-Geräten (z. B. Durchfluss-, Temperatur- und Drucksensoren) zu überwachen, dann ist es wichtig, die Werte in Echtzeit auszulesen und schnellstmöglich darauf zu reagieren. Bei Bedarf können Statusmeldungen an den PC weitergeleitet werden.
Einige I2C-Geräte erfordern, dass bestimmte Register ständig in kurzen Intervallen aktualisiert werden, selbst wenn sich die Werte nicht ändern. Solche kurzen Zeiten sind von einem Remote-PC aus nur schwer oder gar nicht einzuhalten. Und solche sich wiederholenden Prozesse verursachen viel unnötigen Netzwerkverkehr. Das Ausführen solcher Prozesse in der virtuellen Maschine reduziert den Netzwerkverkehr auf ein Minimum.
Jeder Core hat einen zusätzlichen Interrupt-Eingang, der benötigt wird, um auf externe Ereignisse zu reagieren, ohne ständig angeschlossene I2C-Geräte abzufragen. Beispielsweise nutzt ein IO-Expander einen Interrupt-Ausgang, um den Master zu informieren, sobald sich der Status der IOs geändert hat. Der Interrupt-Eingang kann per Software aktiviert (steigende oder fallende Flanke) oder deaktiviert werden. Im I2C-Slave Modus wird der Interrupt-Ausgang verwendet. In diesem Fall wird ein externer I2C-Master benachrichtigt, sobald der Ausgangspuffer des I2C-Slaves mit neuen Daten gefüllt ist. Die Umschaltung zwischen Master- und Slave-Modus erfolgt per Software. Da die I2C-Schnittstelle im Core 2 nur im I2C-Master Modus betrieben werden kann, steht kein Interrupt-Ausgang zur Verfügung.
4,7k Pullup-Widerstände sind bereits vorhanden. Diese können jedoch deaktiviert werden, um externe Widerstände zu verwenden. Die Pull-up-Spannung kann entweder an die internen 3,3 V oder an eine externe Spannung im Bereich von 2,5 V bis 15 V angeschlossen werden.
Die niedrigsten 256 Bytes des integrierten 32K Byte EEPROM sind zum Speichern interner Einstellungen reserviert. Der verbleibende Speicher steht dem Benutzer zur Verfügung. Dieser Speicherbereich kann verwendet werden, um beliebige benutzerspezifische Informationen und/oder VM 8051-Anwendungscode zu speichern.
Die Software „IIC Device Control“ unterstützt alle I2C-Geräte, die der I2C-Spezifikation entsprechen. Ready-to-use GUI für eine Vielzahl verschiedener I2C-Geräte, wie Temperatur, Druck, Durchfluss, ADC, DAC, IO-Expander, PWM, Audio, Digitalpotentiometer, Lüfter, LED-Blinker / Dimmer, Magnetometer, Multiplexer, Umschalter RTC / Kalender, Schrittmotor, Beschleunigungsmesser und Gyroskop. Die Software unterstützt EEPROMS von 1 Kbit (128 Byte) bis 1 Mbit (128 K Byte).
Weitere Informationen zur Softwareschnittstelle finden Sie im „TCP/UDP I2C Interface Manual“. Bei Verwendung der Windows Dynamic Link Library (DLL) verwenden Sie bitte das „Interface Manual LANIICVM.DLL“