EyeBot - Mobile Robot Vision Platform
Downloaden von Programmen
Programm-Beschreibung
Diese Funktion ermöglicht die Übertragung von Anwenderprogrammen
von einem Host-System (PC, Mac oder Unix-Workstation) über ein
serielles Kabel zum EyeBot RAM.
Einstellungen auf Host-System und EyeBot
- Serielle Daten vom Hostrechner
Auf dem Hostrechner muß ein Terminalprogramm (z.B. "Kermit" auf PC
oder "Terminal" auf Mac) installiert und entsprechend den EyeBot-Daten
konfiguriert sein. Das Terminalprogramm sendet ausführbare
Programme im Format "S-Record" zum EyeBot.
- Parameter am EyeBot
Folgende Parameter können am EyeBot eingestellt werden:
- Baudraten: 9600, 19200, 38400, 57600.
- Handshakes: None, RTS/CTS.
- Portnummer: 1 (default), 2, 3
- Protokolleinstellungen für PC/Mac
- Auf Unix-Systemen kann man entweder Kermit verwenden oder
einmalig die Leitungsgeschwindigkeit einstllen (für COM2):
stty speed 57600 crtscts < /dev/ttyS1
die aktuellen Einstellungen kann man testen mit (für COM2):
stty -a < /dev/ttyS1
der Datentransfer unter Unix (für COM2) wird dann sehr einfach:
cat myfile.hex > /dev/ttyS1
für einfaches Download wird auch ein Shell-Script bereitgestellt,
welches speed 57600, RTS/CTS und port COM2 annimmt:
dl myfile.hex
Datenübertragung
Während der Datenübertragung zeigt EyeBot den Namen der
übertragenen Datei, sowie die Anzahl der bislang erhaltenen Bytes an.
Nach der Abschlußmeldung der Übertragung kann das Anwenderprogramm
ausgeführt werden.
Fehlermeldungen
Beim Download wird jede Zeile auf Übertragungsfehler hin untersucht.
Falls ein Fehler aufgetreten ist, wird die Übertragung abgebrochen
und eine entsprechende Fehlermeldung auf dem LCD ausgegeben.
Beschränkungen
- Speicherplatz
EyeBot RAM für Anwenderprogramme beginnt bei 20000 hex
und endet bei 40000 hex (128 KB). Das RAM kann jedoch auf 1MB erweitert werden.
- Baud Rate
The maximxiale Baudrate beträgt 57600.
- Anzeige der übertragenen Datenmenge
Die Anzeige der übertragenen Bytes funktioniert nur in Verbindung
mit der Flußkontrolle RTS/CST. Ansonsten wird nur die Erfolgsmeldung
am Ende der Übertragung ausgegeben.
Befehlsfolge
- Hardware: Download-Kabel zwischen EyeBot und Host-System anschließen
(z.B. serieller Port am PC)
- Compilieren oder Assemblieren des Anwenderprogramms
- Das Anwenderprogramm darf keine Adressen unter 20000 HEX verwenden;
diese sind für das Betriebssystem reserviert
- Verwenden der objcopy Routine um ein S-Record-File (".hex")
zu erzeugen
- Setzen der Übertragungsparameter am EyeBot:
Übertragungsgeschwindigkeit (z.B. 57.600 Baud) und Handshake
Auswahl Set / Ser vom Eyebot-Menü
SerSetup:
Serial Speed: *
9600
Handshake:
RTS/CTS
+ - Nxt END
|
- Auswahl Usr / Ld vom EyeBot-Menü
Ready to
download at
57600, RTS/CTS:
Downloading:
END
|
- Senden des .HEX Files vom Host (PC) mittels
DOS kermit oder Windows Terminal
kermit: transmit myprog.hex
Ready to
download at
57600, RTS/CTS:
Downloading:
myprog.hex
Bytes: 80260
Ld Run Rom END
|
- EyeBot teilt die Beendigung der Übertragung oder eventuelle
Fehler mit.
Anschließend kann das Anwenderprogramm gestartet werden.
User Prog.:
Program loaded:
myprog.hex
Ld Run Rom END
|
- Bei EyeBots mit großem Flash-ROM können Benutzerprogramme
im ROM abgelegt werden. Abhängig von RAM- und ROM-Größe
können bis zu drei Anwenderprogramme im Flash-ROM permanent gespeichert
und wieder geladen werden.
---Flashdrive---
Program in RAM:
myprog.hex
Programs in ROM:
NONE.hex *
NONE.hex
NONE.hex
Sav Ld Nxt END
|
- Bei EyeBots mit großem Flash-ROM kann ein "turn key" system
erzeugt werden, d.h. ein System bei dem automatisch ein Anwenderprogramm
vom ROM geladen und ausgeführt wird, sobald der EyeBot eingeschaltet
wird oder ein Reset erfolgt.
Um dies zu tun, wird das zu ladende Benutzerprogramm startup.hex
genannt und in einem ROM Slot gespeichert. Falls mehrere Programme mit
diesem Namen existieren, wird das mit der kleinsten Slotnummer verwendet.
Thomas Bräunl, Barbara Linn und Klaus Schmitt, 1997