Möglicherweise müssen Sie Ihren Kernel noch neu erstellen und möglicherweise die gemeinsam genutzte Bibliothek für Ihre Umgebung neu kompilieren. Aber das sollte Ihnen den Einstieg erleichtern.
Wie oben erwähnt, müssen Sie Gerätetreiber für jedes beliebige USB<->serielle Gerät erstellen. Viele dieser Geräte verwenden den Prolific PL2303-Chip:
die der Standard-Linux-Kernel unterstützt, und das schon seit langer Zeit. Ich habe dies verwendet und es funktioniert gut, daher würde ich Ihnen empfehlen, mit USB<->seriellen Geräten zu arbeiten, die diesen Chip verwenden.
Darüber hinaus werden diese Geräte bei udev normalerweise als /dev/ttyUSB# angezeigt. Wie das mit Android passiert, weiß ich nicht, also musst du das herausfinden.
Schließlich müssen Sie den nativen RxTx-Code erstellen. Dieser Code ist ziemlich schmuddelig – ich hatte Probleme, ihn auf einem ziemlich modernen Angstrom zu erstellen, und ich habe überhaupt nicht versucht, zu kompilieren.
Im Gegensatz zu den regulären PCs werden die meisten Standard-Kernel für die Android-Geräte mit einem Minimum an kompilierten Modulen geliefert. Sie müssen den Kernel mit aktivierten Treibern für USB-Seriell-Konverter neu kompilieren. Ihr Glück hängt von dem spezifischen Gerät ab, das Sie verwenden. Viele Hersteller verletzen die GPL, indem sie den Kernel-Quellcode nicht bereitstellen. Einige Hersteller wie Motorola mit dem Droid 2 benötigen einen signierten Kernel. Dies macht es unmöglich, einen benutzerdefinierten Kernel auf das Gerät zu laden.
Auch wenn viele Geräte über einen USB-Host-Modus verfügen, müssen Sie durch die Reifen springen, um den Gerätemodus zu wechseln. Zum Beispiel erfordert Motrola Droid, dass ein spezieller Dongle in den USB-Port eingesteckt wird, bevor er eingeschaltet wird, um in den Host-Modus zu wechseln.
Hier sind einige Links für Sie, die erklären, was Sie tun müssen:
danke, ich habe das Droid-Ding gesehen, aber zumindest liefern Archos und Acer die Kernel-Quelle
– Rami
8. Januar ’11 um 18:51
auch der Droide, das Original. Mit Droid2 haben Sie kein Glück. Es sei denn, Sie bekommen Motorolla, um Ihnen die Schlüssel zu geben. 🙁
– Vlad
3. März ’11 um 4:04
Ja, es ist definitiv eine Katastrophe, die seriellen Geräte von der Telefonseite auf dem Android zu verwenden. Das Problem ist, dass die verschiedenen auf dem AOS vorhandenen Geräte nicht dokumentiert sind und selten mit Standard-Linux-Geräten übereinstimmen. Daher sind Sie sich nie sicher, mit wem/mit wem Sie tatsächlich sprechen, ein Gerät, eine Abstraktionsschicht (HAL, UART, PCI usw.). Hier ist eine Anleitung, wie Sie von einem extern über USB angeschlossenen PC mit einem seriellen Gerät (dem Modem) kommunizieren.
In jedem Fall, wenn Ihr Telefon den USB-Host-Modus unterstützt, muss es eine andere Möglichkeit geben, Ihren seriellen Anschluss / Ihre seriellen Geräte damit zu erreichen. Schließlich gewährleistet die Abwärtskompatibilität oft eine Art von FAX-, Telefonie- oder externer Modem-Unterstützung von Ihrem USB-Kabel. Außerdem gibt es Tethering, das auch ein virtuelles serielles Gerät enthalten kann …
PS. Das Hauptproblem solcher Programme (wie dem von Vlad) und Anwendungen (wie Serial-Api) besteht darin, dass sie zu starke Annahmen über die Geräte-/Portnamen und die Berechtigungen machen, die zum Erreichen (Lesen/Schreiben) dieser …
Wahrscheinlich nicht genau das, was Sie suchen, aber dieses anweisbare könnte dich in die richtige Richtung weisen
Plaisthos
Das größte Problem ist wohl der USB->Serial Adapter:
Sie benötigen entweder einen Gerätetreiber für den USB Serial Driver, der wahrscheinlich nicht im Android-Kernel enthalten ist.
Die andere Möglichkeit besteht darin, etwas wie libusb (das möglicherweise auch auf Android portiert werden muss) und einen auf libusb basierenden User-Space-Treiber zu verwenden.
Ovidiu Latcu
Zuerst müssen Sie das Tablet rooten, um Lese-/Schreibzugriff auf die seriellen Ports zu erhalten.
Nachdem Sie dies getan haben, sehen Sie sich an API für serielle Android-Ports. Sie können den Quellcode herunterladen und sehen, wie er implementiert wird.
Es hat eine native Lib, die einen Dateideskriptor für die seriellen Ports abruft und dann können Sie die Ports lesen und schreiben. Normalerweise listet die App möglicherweise nicht alle verfügbaren Ports auf dem Tablet auf. Um zu sehen, wo Ihr Gerät angeschlossen ist, stecken Sie es mit HostMode in den USB und in einen Emulator geben Sie “dmesg | tail” ein. Es sollte Ihnen Details über das Gerät und den angeschlossenen Port geben.
Ich habe auch ein Archos Tablet verwendet, mein Gerät war mit “/dev/ttyACM0” verbunden.
Viel Glück!
.
2120700cookie-checkVerwenden der seriellen Schnittstelle RS-232 in Android?yes