Embedded Controllers


Many of the designs featured in this site use embedded microcontrollers. Giastar's policy with complex systems is to include a microcontroller within each board or subunit that requires control or monitor functions. Debugging, testing and interwiring are all simplified by transferring control and monitor signals via serial links.

Our preferred microcontroller range is the 8051 family, particularly the high-integration variants available from Silicon Labs. (We also have experience of PICs, 6801, 6805, 8048, 6502 and Z80 controllers.)

The Giastar RCU3 controller board is used to provide an outside-world interface in simple systems. It uses the Silicon Labs C8051F120, has RS232 and RS485 interfaces, and many digital and analogue IO ports.

8051 family microcontrollers are generally programmed in C, using the Keil C51 development system. We also have a comprehensive set of tightly-coded assembler libraries which are used in smaller controllers with limited memory.

Embedded Linux

For more complex control functions, e.g. system controllers, single-board controllers based on 80x86 family processors are used. In the past we have programmed system controllers using embedded Modula 2 without an operating system (example). This is still an option for new systems if requested by a client, however the Linux operating system and actively supported programming languages are now preferred.

Linux has been selected for many reasons, including:

We use our own variant of Linux derived from Debian Linux. We have variants optimised for running from compact flash or USB memory "sticks" to provide diskless controllers suitable for hostile environments.

Our preferred high-level programming languages are Python and Ada 95. We use C where necessary, e.g. for device drivers, or under protest when the client insists!

If a standard single-board controller is inadequate, and the size and power consumption of a standard rackmount server is unacceptable, the Giastar RPC1 1U rackmount controller is used as a system controller in systems requiring a hard disk and versatile interface options.

Embedded OpenBSD

OpenBSD is a BSD Unix variant with an emphasis on security and quality. We have recently started using OpenBSD in preference to Linux on systems connected to the Internet or other untrusted networks. The results have been encouraging, and we are currently migrating other embedded aplications from Linux to OpenBSD. Migration is generally straightforward, except where device drivers for specific hardware required in a system exist for Linux but not OpenBSD.

Giastar Home - Feedback - Enquiry

Copyright © Giastar Ltd, 1999..2007