User guide
11
Chapter 2. IR Communication using Palm
Introduction
Palm PDAs are the handhelds with the high success on the market today. They are easy
to use, small and affordable.
All Palm devices have a similar architecture, with small differences in term of size,
memory, and other characteristics. They include a LCD touchscreen with a resolution of
160x160, flash ROM, RAM (2/4/8 Mb), Motorola 68328 processor (and newer variants
of it), serial peripheral interface (up to 115200 bps), infrared communication support
(IrDA capability) and simple sound. The small screen size
poses some problems when designing programs for the Palm
(user interface).
The PDAs operate using PalmOS operating system, which is
based on a real-time multitasking kernel (Kadak). However,
only the operating system has access to it, user programs are
single-threaded, with only one program being executed at any
time. This also imposes some restrictions the programmer has
to deal with.
For our implementation we chose Palm IIIxe, one of the
entry-level version. This particular device has a monochrome
screen, 2Mb of flash ROM, 8Mb of RAM and a Motorola
16MHz MC68EZ328 processor. It runs on a pair of AAA
batteries. The low frequency of the processor means that we
should try to optimize our programs so that they do not overwhelm the processor. The
processor also does not have a floating-point unit (floating point operations are done in
software), so floating point computations should be avoided whenever possible.
The operating system running on Palm IIIxe is PalmOS 3.5. Since version 2.0, PalmOS
has brought new features to the Palm compatible devices, like infrared capability, serial
capability of up to 115200kbps, support for up to 16 gray levels on monochrome screens,
etc.)
PalmOS includes a standard TCP/IP stack implementation, which facilitates building
networking applications. Connection to external networks (like Internet) can be done
using serial modems (built-in support) or directly in case of wireless enabled devices
(Palm VII).
Palm IrDA Implementation
The standard IrDA stack comprises a number of protocol layers, of which some are
required and some are optional. The complete stack looks like in the figure below: