Kunde
Die Software- und Low-Level-Programming Engineers von Softeq implementieren die Gerätefunktionalität und entwickeln eine iOS-App für das Gerätemanagement.
Der Kunde plant die Entwicklung eines Massenspeichergerätes - eines externen Flash-Laufwerks, das sich mit Apple-Geräten und PCs verbindet. Softeq implementiert die Gerätefunktionalität und eine mobile Anwendung für das Gerätemanagement.
iBridge, das erste Massenspeichergerät, das mit Mobiltelefonen, Tablets und Computern verbunden werden kann, verfügt über 16 - 256 GB Speicherkapazität und bietet folgende Funktionen:
iBridge ist konzipiert, um:
Der größte Teil des Zubehörcodes ist in C geschrieben, der Rest der Funktionalität wird durch Assembler für 8051 Microcontroller abgedeckt. Das Team hat auch mehrere Utilities in Python erstellt.
Aus Architektursicht ist die Lösung Teil einer Firmware, die Apples proprietäres iAP2-Protokoll über USB nutzt. Die Lösung basiert auf der Firmware eines vorhandenen USB-Massenspeichers.
iOS Anwendungsentwicklung
Das Team von Softeq nutzte das External Accessory Framework, um eine Komponente zu entwickeln, durch die die App mit iBridge kommunizieren kann. Das Team implementiert auch eine Bibliothek, die SCSI-Befehle verwendet, um mit der Firmware-Ebene zu interagieren, und portiert eine Drittanbieterbibliothek, um mit dem FAT32-Dateisystem zu arbeiten.
Aus der Sicht der App werden neben der Benutzerfunktionalität (Dateiansicht und -navigation, Videowiedergabe usw.) und der Dateisystemabstraktionsschicht (Datei öffnen, schreiben, lesen usw.), die vor dem Einstieg von Softeq in das Projekt entwickelt worden sind, folgende Ebenen implementiert:
Hardwaredesign
Das Team entwirft ein PCB, das die Verwendung von iBridge als USB-Flash-Laufwerk mit dem auf der gegenüberliegenden Seite integrierten Lightning-Anschluss von Apple ermöglicht. Die Leiterplatte erkennt automatisch den Steckertyp und schaltet die Stromversorgungs- und USB-Leitungen um. Das Board verfügt auch über alle notwendigen Schutzmechanismen, um die gleichzeitige Verbindung von iPhone (iPad, iPod) zu iBridge und PC zu unterstützen.
Prototyping
Das iAP2-Protokoll wird unter Linux mit dem USB-Massenspeicher-Gadget – g_mass_storage – eingeführt. Das Team entwickelt auch einen I2C-Treiber für den Apple-Authentifizierungs-Coprozessor, der für die iBridge-zu-iPhone-Verbindung entscheidend ist. Als Hardware-Plattform wird PandaBoard ES eingesetzt.
Außerdem entwickeln die Engineers von Softeq eine iOS POC-App mit der grundlegenden Kommunikationsebene und dem Dateisystem.