Dieser Artikel ist noch lange nicht vollständig. Der Auto/Initiator hofft das sich weitere User am Ausbau des Artikels beteiligen.
Das Ergänzen ist also ausdrücklich gewünscht! Besonders folgende Dinge würden noch fehlen: Vorteile/Nachteile gegenüber AVRs, Hersteller, Bezugsquellen... |
ARM ist die Bezeichnung für eine schnelle 32-bit-Mikrocontroller-RISC-Architektur.
Namensgebend ist die englische Firma ARM Limited. Diese Firma produziert selbst keine Mikrocontroller, vertreibt aber Lizenzen an Lizenznehmer, die ARM-basierte Mikrocontroller entwickeln, fertigen und vermarkten. Die Controller werden daher von vielen Herstellern produziert, auch von dem Hersteller Atmel, der im Roboternetz durch die AVR Controller recht bekannt ist. Verbreiteter sind jedoch Philips (NXP) ARM7 Controller als LPC2xxx in verschiedenen Ausstattungen sowie PXA CPU's von Intel.
Als verschiedene Leistungsklassen gibt es ARM7, ARM9 und neuer Cortex M0 und M3. ARM7 und Cortex M3 Mikrocontroller bieten beachtliche Leistungsmerkmale zu einen günstigen Preis, weshalb sich diese Leistungsklasse sehr rasant z.B. in MP3-Playern verbreitet hat. ARM9 Mikrocontroller bilden das Herz vieler eingebetteter Systeme (Embedded Systems) und bieten meist komplexe Funktionen und werden in WLAN-Router oder PDAs eingesetzt, sind aber für den Bastler auf Grund der hohen Packungsdichte (PQFP,BGA) kaum selbst zu verarbeiten. Die kleine Cortex M0 sind immer noch deutlich leistungsfähiger als z.B. ein AVR.
Kleine Schwierigkeiten für den Bastler entstehen auch bei den kleineren ARM's: Die µC sind nur als SMD zu bekommen und viele (vor allem ARM7) benötigen 2 Versorgungsspannungen (z.B. 1,8 V und 3,3 V). Entsprechend, sind diese bislang bei Bastlern bisher weniger verbreitet. Es gibt jedoch auch diverse Ausführungen als "Stamp" oder komplette Experimentalboards incl. SD/MMC-Kartenleser, Bluetooth und USB, Ethernet und was das Herz sonst noch erfreut.
Dank des Bootloaders in der CPU sind die Prozessoren mit normalen RS232 Schnittstellen programmierbar. Als Toolchain kann man einen dem WinAVR ähnlichen WinARM mit GNU gcc Compiler und Betriebssystemen von z.B. von FreeRTOS, UTOS, tn-Kernel oder bei ARM9-Systemen ucLinux bis hin zu Windows CE nutzen. Als einfache Plattform für erste Experimente kann z.B. ein ausrangierter WLAN-Access point oder PDA dienen, zu dem es Docu und ein System wie DD-WRT im Netz gibt. Wie man die diversen Geräte hackt, ist im Web einschlägig beschrieben. Für einfache Aufgaben wie Linien folgen/Schalter abfragen ist so ein ARM9 System etwas "oversized" aber wenn man dem Bot etwas mehr Intelligenz gönnen möchte (USBCam, WLAN, Ethernet, GPS, oder Dienste wie Webserver/SSH, eigenständige räumliche Orientierung), kommt man an diesen komplexeren Systemen kaum vorbei. Ein denkbares Szenario wäre z.B. die Kopplung eines oder mehrerer ARM7 (als ausführende, zeitkritische Einheiten) und einem ARM 9 Prozessors (als "denkende" Einheit) mittels I2C, CAN, RS423 oder RS485. (Was natürlich statt des ARM7 auch mit kleinen AVR CPUs geht). Aber auch ein ARM7 System mit 512KB Flash und 32KB Ram wie bei diversen LPC2138 Stamps (LPC2148 mit USB+8KRam DMA) kann schon einiges.
Der Einstieg in die ARM-Architektur ist mit C Kenntnissen nicht schwieriger als bei jeder anderen CPU und die Leistungsmerkmale von 30 (ARM7) bis weit über 200 (ARM9) MIPS oder Speicherverwaltung bis in den Megabyte Bereich (ARM9) sprechen für sich.