<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=504731893395981&amp;ev=PageView&amp;noscript=1">

Implementierung eines Massenspeichergerätes

Ein Flash-Laufwerk für Apple-Geräte und PCS

  • iOS
  • Linux
Lösung Ein externes Massenspeicherzubehör für Apple-Geräte und PCs
Branche  Datenspeicherung
Kooperationsmodell T&M (Time and Materials)
Methode Agile
Team
  • Software Engineers
  • Electrical Engineer
  • Projektleiter
1
2
3
4
5
6

Kunde

Problem

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.

Lösung

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:

  • Arbeitet als USB-Flash-Laufwerk, das die Sicherung, gemeinsame Nutzung und Übertragung von Bildern, Filmen und Musik vom MAC oder PC-Speicher auf das iOS-Gerät und umgekehrt ermöglicht
  • Erfasst Fotos direkt auf dem Benutzerlaufwerk und spart so Geräte-Speicherplatz 
  • Ermöglicht Benutzern, Videos, Bilder und Dokumente anzusehen und Audio auf einem an iBridge angeschlossenen Apple-Gerät abzuspielen

iBridge ist konzipiert, um:

  • durch sein schmales Design die umliegenden Anschlüsse nicht zu stören und sich ergonomisch an diese natürliche Lage des kleinen Fingers anzupassen;
  • in die kleinsten, auf dem Markt erhältlichen Zugangslöcher des Gehäuses zu passen;
  • flexibel zu sein und in unterschiedlich dicke Gehäuse zu passen
  • eine einzigartige 180° Kehrtwendung zu ermöglichen, deren Größe auf die variable Größe verschiedener iOS-Geräte und Gehäuse abgestimmt ist;
  • das Risiko einer Beschädigung des Blitzschlag-Ports und/oder des Laufwerks des iOS-Geräts zu minimieren.

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:

  • FAT32-Bibliotheks-Portierung
  • SCSI-Befehlsebene
  • Gerätekommunikationsebene

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.