Project AKO


Main Controller


Project AKO Overview

AKO utilizes a network of distributed microcontrollers to accomplish tasks relating to control and data acquisition.  Microcontroller based components are used to perform tasks such as digital I/O, analog data sampling, and motor control.  These components are coordinated by a more powerful central controller.  The controller and components communicate with each other via a small area network (SAN), namely the AKONET.  The end user programs the controller using a high level API, which shields her from the details of the AKONET and components.

Although a fully functioning prototype has already been developed, AKO is currently in a redesign phase.  The AKONET design, AKONET protocol stack for the components, the components, and an AKONET hardware interface for a PC are usable.  However, the PC side AKONET protocol stack and the programming API are still in their infancy.

The current AKO implementation utilizes Microchip PIC16F87x MCU's for the components.  I2C (a.k.a. two-wire bus) is used for the physical and datalink layers of the AKONET.  The AKONET defines additional datalink, network, and application layers on top of I2C.  For the central controller, an I/O coprocessor known as the AKOI2C has been developed, that allows any computer to interface an I2C bus, such as AKONET.  A PC adapter based on an AKOI2C chip, known as the PC-AKO, can allow any PC to act as the controller.  An AKOI2C device driver currently exists for Linux 2.2/2.4.  Alternatively, we have built and designed a small, low power unit which can act as the central controller.  It is based on a uCsimm and an AKOI2C, and is contained in a Eurocard enclosure.  It runs uClinux.  Note that while Linux/uClinux device drivers exist for the AKOI2C, no AKONET network device driver currently exists.  This doesn't stop you from using them as a central controller, it just makes it harder ^_^

For more information on any of the subsystems, click on the links in the sidebar.