WLAN-Chip für hohen Datendurchsatz

Texas Instruments hat mehhrere Wireless Module, die sich direkt an einen ARM Prozessor anbinden lassen. Hier wird einer der mehreren wireless Chips erklärt, der für höchstleistungen gedacht ist (Datenblatt  WL1835)
und deshalb oft angeboten wird mit starken Cortex Prozessoren

WLAN Chip WL1835
TI verkauft Beagle Bones (ARM Cortex A8 Prozessor Boards), mit denen sich dieser Chip über ein Zusatz-Cap mit Beagle Bone Prozessor per Stecker verbinden lässt. Eine Alternative sind die TI SimpleLink Module. Diese basieren auf einem ARM Cortes M3.

Sende Fähigkeiten
Nr. 35 sendet WLAN auf  2.4 GHz und Bluetooth  (Projekt Brüt.)
Nr. 37 auf auf 5 GHz, 2.4 GHz und Bluetooth  (Projekt Brüt. 2)
Nr. 31 hat nur Bluetooth v4:  Mit Dual-Mode Bluetooth Low Energy

Der Chip ist explizit stromsparend ausgelegt und kann für low power-Anwendungen gebraucht werden.

Prozessor AM335x
Ist ein Coretex A8 mit Schwerpunkt auf der Ethernet-Kommunkation.
Nordic bindet sein RF-Chip an einen ARM Mx-Prozessor. Die Instruktionen sind dann etwas anders.

 

Android App: Grundprinzip Handlung=Bildschirm

Grundprinzip
Zu jeder Handlung, die der User machen kann, wird ein Screen implementiert. Zu einem Screen gehören zwei Komponenten: sein Erscheinugnsbild (das Layout) und was gemacht werden kann (die Activity).
Layout_Acitivity

Activity
Bezeichnet eine einzelne Handlung, die der User vornehmen kann.
Die Handlung wird in Java geschrieben. Eine Handlung kann eine nächste aufrufen. Durch den Aufruf einer neuen Handlung, erscheint ein neuer Bildschirm.

Layout
Beschreib das Erscheinungsbild, die Userführung, um diese Handlung zu tun. Ein Layout-Wechsel bedeutet, dass man sich in einer anderen Activity befindet.
Das Layout ist in xml geschrieben und befindet sich im Verzeichnis: app/src/main/res/… Wobei im Unterverzeichnis ( ../layout/main.xml) die Hauptdatei für die Bildgestaltung steht. In den drei davorliegenden Unterverzeichnissen werden Bildschrirmauflösungen der verschiedenen Android-Geräten behandelt.

Programmablauf
Das Programm ruft  als erstes die MainActivity auf: das Hauptbild des Programms erscheint. Dann, je nach dem wie der User sich verhält (Klicken auf „Views“), werden andere Aktivitäten ausgelöst und dadurch andere Screens angezeigt.
Es besteht somit eine Hierarchie unter den Handlungen.

 

 

Android App: Projekt erstellen

Jedes Projekt basiert auf der Dualität von Handlung/Bildschirm auf. Ruft eine Benutzerin das Programm auf, so wird die erste Handlung, die MainActivity.java, gestartet und mit ihr, das Programm- Grund-Layout, das in der Datei activity_main.xml abgelegt ist.

Die Namen dieser zwei Hauptdateien werden beim Aufsetzen eines Projektes gefragt:

Android_Projektstart

Alle folgenden Aktivitäten mit ihren Anzeigen werden von der MainActivity (oder einer ihrer Aktivitäten) aufgerufen.

 

Bootloader

Notwendige Dateien zum Booten

  • BSP (Board Support Packet)
  • Buildsystem

Das BSP wird oft vom Hersteller mitgelierfert (oder kann bei FPGAs über Quartus generiert werden.) Wesentliche Dateien im BSP sind der Device Tree, der die Grundeinstellungen der Komponenten beschreibt.

Das Buildsystem fügt die Komponenten

  • BSP
  • Treiber
  • Bibliotheken
  • Software (Kernel und Applikationen)
     

     

zusammen zu einem Image, und definiert  das File System. Zum Buildsystem gehört die Definition des Bootloader, der den ganzen Prozess ausführt.

Aufgabe des Bootloaders
Es ist der Bootloader, der den Startvorgang kennt. Er lädt die Dateien  (als Image) aus einem festen Speicher in das static RAM.

Mit dem Befehlt mkimage -h  kann der Inhalt des u-boot images angesehen werden.

Starten des bootens  boot.script
Das Build-System (z.B. Yocto) erzeugt über ein Build-Programm (z.B.  u-boot) ein boot.script. Das Script liegt an einem nicht flüchtigen Speicher. Beim Booten weiss das System, wo das Skript liegt und startet den Prozess automatisch.

Datenarten
Konzeptionell unterscheidet man zwischen zwei Dateitypen:
– Das Betriebsystem (Image, DeviceTree)
– Die Applikationssoftware

Gestaffeltes Booten
Booten heisst, unter anderem die Startadresse aller Vektoren für die Interrupts setzen.
Detaillierte technische Beschreibung zum Booten in http://stackoverflow.com/questions/31244862/what-is-the-use-of-spl-secondary-program-loader

Primary boot (Programm U-boot)
Der primary boot lädt die notwendigen Betriebsdateien ins RAM.

Secondary Programm loader (SPL)
Wird gebraucht, wenn das RAM nicht das ganze Image speichern kann und ein Teil des Boots, in ein externer Speicher abgelegt wird.

Firmware

Firmware
Bezeichnet spezifische Software für ein Bauteil oder ein System. Da dies Software abgelegt werden muss, braucht das Bauteil einen Speicher (z. B Flash oder SD-Karte) , in dem die Firmware liegt.
Die Firmware ist sehr hardwarenahe bzw. direkt mit ihr verbunden. Firmware kann auch „nur“ der Konfiguration des Gerätes dienen.

Firmware Komponenten

– Alle Bauteile, die angeschlossen werden bzw. deren Software
– Das OS
– Der Bootloader

Flash Speicherung

Funktionsweise
Jedes Bit wird in eine Speicherzelle (FET) gespeichert. Im Gegensatz zum FPGA ist diese Speicherzelle nicht flüchtig.

Ansteuerung
Wie bei RAMs: über eine Matrixordnung. Es wird Zeilenweise oder in ganzen Sektoren gespeichert. Jede Zeile entspricht einem Word einer bestimmten Bit-Länge.
Man spricht FLASH Speicher selten direkt an, sondern nutzt Schnittstellen.

Im Embedded Bereich
Brauchen einen externen Speicherplatz zum Speichern von Daten oder zum Booten des Betriebssystems und der Applikationen. Flash-Speicher werden ROMs vorgezogen, da man diese auswechseln kann. Dadurch ist ein Update der Firmware möglich, was beim ROM nicht der Fall ist. Eine SD-Karte (ebd. ein Flash Speicher) ist eine Alternative zu Flash-ICs.

Spezialitäten
– sind langsam
– können auch als HD-Ersatz genommen werde
– EEPROMs sind die bekanntesten Flash Speicher
– Jeder USB-Stick hat einen Flash-Speicher und einen Microkontroller

SD Karten

Als externer Speicherplatz kann eine SD (Secure Digital Memory) Karte genommen werden. Es gibt die Mini- und Micro-Ausführung.

Spezialitäten
– Ihr Speicherprinzip ist die Flash-Speicherung.
– Speicherbereich kann partitioniert werden:
In einem Teil liegt ein System-Image, im anderen Teil das File Sytem
– besitzt einen internen Controller
– 9 Kommunikationspins
– SD-Karten mit integriertem WLAN oder GPS
– SD-Karte mit USB-Stecker Typ A (normaler Stecker) zum Anschliessen

In Enbedded Systemen
Das Betriebssystem und die Applikatins Software wird meist in Flash Speichern abgelegt und von dort gebootet. Man kann aber auch eine genug grosse SD-Karte zum Booten des Systems nehmen.

Kommunikation
Die Kommunikation basiert auf dem SPI-Prinzip.
SD_Pins– Initialisierungssequenz:
Schützt vor unberechtigtem Zugriff auf die Daten
– Pin 1: Kartenerkennung (Dateinleitung 3)
– Pin 2: Kommandos (Befehl/Antwort)
– Pin 3/6: GND
– Pin 4: VCC
– Pin 5: CLK
– Pin 7/8/9: Data (Datenleitung 0, 1, 2)

wx Hex Editor

Dieser Hex-Editor zeichnet sich über mächtige Speicheroptionen aus:

  • Die Hexwerte können mit Speicheroffset gespeichert werden
  • Hexwerte können mit ASCII-Interpretation gespeichert werden
  • Hexwerte können als C-Array mit einer wählbaren Datengrösse (int8_t, int16_t, int32_t, ..) gespeichert werden

Dies erleichtert die Weiterverarbeitung der eingelesenen Daten.


Debuggen von Speicher

Der Inhalt des Speichers (z.B.) eines Arrays muss in ein File kopiert werden. Das File wird eingelesen.

wxHexEditor

Im Menu können unter VIEW unterschiedliche Fenster (Pannel genannt) aktiviert werden.

Linke Fenster
Zeigt die selektierten Daten in unterschiedlichen Formaten an (Pannel Dateninterpreter) und in der Mitte das Infopannel.

Hauptfenster oben

Mehrere Files  können parallel angezeigt werden.

Hauptfenster unten

Ist die Ascii Interpretation des Inhalts. Das Pannel wird TextControl genannt.