Der Kunde entwirft und entwickelt Unterhaltungselektronik mit Flash-Speicher. Er hatte eine Idee für ein Massenspeichergerät, das an Apple-Geräte angeschlossen werden kann.
T&M (Time and Materials)
Agile
Software Engineers
Electrical Engineer
Projektleiter
Außerdem sollte unser Team die Hardware des Geräts überarbeiten und Treiber entwickeln.
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.
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:
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.
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.