Architecture

This section will give an introduction to the components included in the reference design software and where the sources for each component is located in the source tree.

The image below shows the oWL Pico API and the surrounding components included in the reference design software. All components are described below.

Directory Structure

toolkit/owl/             | Application development toolkit.
toolkit/owl/core/        | Core toolkit components such as shell and timer support.  
toolkit/owl/drivers/     | Hardware interface layer for uarts, rtc etc.
toolkit/owl/components/  | Drivers for external components
toolkit/owl/util/        | Utilities that uses the owl core interfaces
                         |
toolkit/pico             | Utilities that uses the wlp_api interface
toolkit/pico/wlp_shell.c | Shell commands for reference design.
toolkit/pico/wlp_ttcp.c  | TTCP implementation for reference design.
toolkit/pico/wlp_ntp.c   | NTP client implementation for reference design.
toolkit/pico/wlp_ping.c  | ICMP echo implementatio for reference design.
toolkit/pico/wlp_httpd.c | HTTP server implementation for reference design.
                         |
platform/                | Platform-specific code
platform/xmega/          | XMEGA-specific code
platform/xmega/owl/      | Hardware interface layer implementation for XMEGA hosts. 
platform/xmega/util/     | Utilities for XMEGA hosts
platform/linux           | Linux-specific code
platform/linux/owl/      | Hardware layer implementation for linux hosts. 
platform/linux/util/     | Utilities for linux hosts
                         |
wlp_api/                 | oWL Pico API source code and includes.
                         |
os/                      | OS abstraction layer implementation
                         |
apps/pico_client/        | Reference design application
apps/webconfig/          | Configuration application example
                         |
LICENSE                  | License information.

Directory Structure (<= 1.2.2)

owl/             | Application development toolkit.
owl/core/        | Core toolkit components such as shell and timer support.  
owl/drivers/     | Hardware interface layer for uarts, rtc etc.
owl/ports/avr8/  | Hardware interface layer implementation for XPLAIN hosts.
owl/ports/linux/ | Hardware layer implementation for linux hosts. 
                 |
wlp_api/         | oWL Pico API source code and includes.
                 |
main.c           | Reference design main file.
wlp_shell.c      | Shell commands for reference design.
wlp_ttcp.c       | TTCP implementation for reference design.
wlp_ntp.c        | NTP client implementation for reference design.
wlp_ping.c       | ICMP echo implementatio for reference design.
httpd/           | HTTP server implementation for reference design.
ports/avr8       | Makefile for XPLAIN host.
ports/linux      | Makefile for linux host.
LICENSE          | License information.

oWL Pico API

This is the core component that provides the oWL Pico API. Complete sources for oWL Pico API can be found in the wlp_api/ directory of the reference design code. The complete API documentation can be found in the file wlp_api/wlp_api.h.

The oWL Pico API is logically divided into three sections, the Link API, the Network API and the Socket API. The different sections controls different layers of the communication protocols.

The oWL Pico API component is platform- and application-independent. For a quick tutorial on how to use the oWL Pico API, see PicoTutorial.

Link API

The link layer API enables access and operations to link layer functions.

Network API

The network layer API allows the client to control IP address configuration.

Socket API

The socket layer API allows operations on different kinds of network sockets.

Reference Design Application

The reference design is a complete example application which can be used to evaluate some functions of the oWL Pico API. As the reference design software can be compiled for many different platform, Makefiles for different platforms are available in the build/ directory.

TTCP

The TTCP component is a part ot the reference design and is an example implementation of the TTCP protocol used to test throughput performance. Sources for the TTCP component can be found in the wlp_ttcp.c and wlp_ttcp.h files.

HTTP Server

The TTCP component is a part ot the reference design and is an example implementation of an HTTP server. Sources for the HTTP component can be found in the wlp_httpd.c and wlp_httpd.h files.

NTP Client

The NTP Client is a part ot the reference design and is an example implementation of a NTP Client. The NTP client is a simple example on how to get the current time by using UDP sockets for communication. Sources for the NTP component can be found in the wlp_ntp.c and wlp_ntp.h files.

ICMP

The PING command is part ot the reference design and is an example implementation of ping. The ping command is a simple example on how to use RAW sockets to implement ICMP messaging. Sources for the ping component can be found in the wlp_ping.c and wlp_ping.h files.

Pico Commands

The pico commands component is a part ot the reference design and provides a number of shell commands that maps directly to functions in the oWL Pico API; allowing a user to test and experiment with different network scenarios without first having to develop new code. Sources for the pico commands component can be found in the wlp_shell.c and wlp_shell.h files.

oWL Toolkit

The oWL Toolkit is a collection of some generic utilities that can be used an application, if desired. The reference design application uses the shell and timer component of the oWL Toolkit.

The code in the oWL Toolkit is divided into core, drivers, components and util:

  • Core components are platform-independent and provides features such as shell, traces and timers.
  • Drivers are components, or interfaces, to hardware features of platform, e.g. RTC, UARTs and LEDs.
  • Components are drivers for peripheral components such as the SPB800P device, flash memories etc. These components only accesses the hardware through the owl driver interfaces.
  • Utils are miscellaneous platform-independent utils that are not considered core components.
The driver interfaces are implemented for each supported platform in the platform/<platform>/owl directory.

Note that the oWL Toolkit is not part of the oWL Pico API, it is rather a set of utlility code that can be used by an application if desired.

Sources for the oWL Toolkit can be found in the owl/ directory.

Host UART0/pico

This is the physical UART port that connects the host platform to the SPB800.

Host UART1/shell

This is the physical UART port or console that provides the command input and output.

SPB800 Device

This is the SPB800 hardware device.

Topic attachments
I Attachment Action Size Date Who Comment
GIFgif arch.gif manage 27.7 K 2011-02-04 - 09:43 AndersGrahn  
Topic revision: r9 - 2015-08-26 - 13:35:22 - AndersGrahn
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback