Introducing HyNetOS™
To run networking applications using TCP/IP and other related
protocols it is just not enough to provide only a set of protocol
functions. You rather need a network operating system if you want to be
able to integrate other hardware extensions being transparent to
protocols and applications. You need independent timer instances in
order to meet the protocol specifications and several abstration layers
that enable you to develop high-level applications without the need to
care about details in implementation. Last but not least you need a
kernel, providing system functions, task management, and a memory
manager as well as a message system for inter-task communication.
Putting all together is what you get as operating software from Smart Network
Devices: the network operating system HyNetOS™.
The network operating system HyNetOS™
has some basic functionality, always needed, and provided in the
so-called HyNetOS Base Version. Additionally we offer different
software extensions featuring special protocols, that can optionally be
linked to the system, depending on the actual application:
- I*Target Client (adds Internet Client functionality)
- I*Target Server (adds Internet Server functionality)
- I*Target Dial Line (adds Internet Dial-in functionality)
- I*Target Router (adds Internet Routing functionality)
- J*Target CLDC (adds Java KVM/CLDC for Mobile Clients)
- W*Target Blue (adds the Wireless Communication Protocol Bluetooth™)
In the following section the basic systems components of HyNetOS Base Version
are explained as well as some definitions referred to elsewhere on this website.
System Kernel
The kernel of HyNetOS is hyRTK, hyperstone's powerfull multitasking real-time kernel with pre-emptive task scheduling. It is specifically designed for use by hyperstone microprocessors in embedded systems or board-level applications. Since hyRTK has been fine-tuned for the hyperstone architecture, interrupt response
times of approx. 0.1..0.2 µs can be achieved with a 100 MHz hyperstone
system. The complete kernel software is only 32 KB in size, including
an integrated debug monitor and a floating-point library. hyRTK
offers all the features of an up-to-date multitasking real-time system
providing time management, task management, synchronization and
interrupt services, a memory manager and basic message system
functionality as well as interfaces for debugging and profiling.
System Tasks
A system task is an independant process with a specific system
priority. The System Kernel can handle up to 32 tasks. Basically we
have 2 different types of tasks. A stack level task is a standard user
process that has its own stack acting in the foreground or in the
background. An interrupt level task is typically a system process
acting in the background e.g. as an interrupt service routine.
Applications
An application is a stack level task, that acts as a foreground
process. It is a user program intended to perform a specific
functionality. The main difference between applications and services
(described below) is that an application always acts on the highest
level speaking in ISO/OSI model terms. Still, most applications act
logically spoken as servers, which means that once they are started and
initial actions have been taken, they react in an appropriate way to
events. Events can be user input over a keyboard or a control panel,
state changes reported by devices, messages coming from a connected
network and many more.
Services
A service is a stack level task, that does not act on its own (like
applications do). One simple example: a service will never initiate a
TCP connection to a remote server unless it is requested by an
application to do so. Therefore the only thing a service does at system
start is to register itself in order to offer its service functions to
other tasks in the system, which can be either applications or other
services. Five services are currently implemented as basic systems
services:
Services are automatically found by calling the corresponding
'connect' function. With 'connect_to_driver' a link is being
established between the Device Manager and an application. With a
TCP/IP protocol related function like 'udp_connect' we initiate a link
between the Protocol Manager and an application, while the Protocol
Manager is linked to The Device Manager by default (more
precisely: automatically at system start).
Drivers
Drivers are basically only sets of functions triggered by the Device
Manager or by interrupt events. A device having a hardware interrupt
line can trigger driver actions by means of an interrupt service
routine called by the system kernel on occurence of a physical
interrupt signal. Such an interrupt service routine is usually
implemented as interrupt level task, which is part of the driver
implementation. Drivers are the only part of the operating system, that
directly access the peripheral hardware interfaces.
The following figure gives a graphical overview of the basic system components described until now.
As you can see, an application can as well directly connect to the
Device Manager as it can connect to the Protocol Manager which can be
considered being an encapsulated access to the Device Manager. The main
difference between both access methods is, that a direct Device Manager
access reserves one device exclusively for one application, whereas
through the Protcol Manager a device can be shared e.g. by different
applications using one network interface concurrently. The Ethernet
Interface is typically shared by serveral applications, but e.g. a
Keyboard Interface would be accessed exclusively by one application
task.
Note that the Basic System Services described above (Device,
Protocol, File Manager etc.) are a fixed part of the network operating
system HyNetOS and can not be removed, while you can add and remove as
many applications and device drivers as you want.
From the point of view of the operating system the Java K Virtual
Machine (KVM) is an optional native C application on top of which
platform independent Java applications can run. This enables the system
to execute 3rd party application software not explicitely written for
HyNetOS.
Summary of HyNetOS Base Version features:
The I*Target Client
is a HyNetOS software extension, that offers additional functionality
to operate the system as a Network or Internet Client. An Email client
is provided, which enables the system to send email messages as part of
a regular reporting cycle or to signal an alarm condition. Also the
system could receive commands by email. HTTP clients and FTP clients
are possible as well. The additional client protocols are offered by
the Protocol Manager.
Summary of features:
The I*Target Server
is a HyNetOS software extension, that offers additional functionality
to operate the system as a Network or Internet Server. The I*Target
Server covers among others the HTTP 1.1 protocol for embedded webserver
applications. This additional module enables the system to be remote
controlled by a common PC with web browser and even by WAP-enabled
cell-phones. Furthermore an FTP-Server is supplied in order to send or
receive files from the system. Also an in-the-field OS update is
possible when running an FTP server. The additional server protocols
are offered by the Protocol Manager.
Summary of features:
The I*Target Dial Line
extension offers the opportunity, to control any type of modem having
an AT command interface. Modems (analog, digital ISDN or GSM) are
connected over a RS232 port and allow a stand-alone log-in of the
system to the Internet by using the PPP protocol. In exactly the same
way the system can be called upon from a remote station by a telephone
line to check the current status or operating conditions. The PPP
protocol is offered by the Protocol Manager both as client and as
server version in order to add access security. The AT-command dialer
and the modem drivers are offered by the Device Manager.
Summary of features:
Coming soon:
The I*Target Router extension
offers basic routing capabilities as predefined applications. Some of
the routing examples are: Ethernet-to-serial, Bluetooth-to-serial,
Ethernet-to-Bluetooth and Ethernet-to-Modem to mention just a few.
Basically within all available interfaces any [Interface
X]-to-[Interface Y]-routing is possible.
Summary of features:
The J*Target CLDC
extension contains the so called Java™ K Virtual Machine (official
name: Java 2 Micro Edition CLDC), Sun Microsystem's newest Java runtime
environment, which has been developed especially for devices with low
memory capacity and low computing power typically found in embedded
systems. Network applications can now comfortably be developed on a PC
in Java and fullfill - transfered on the embedded system - exactly the
same functionality there. Through Java the idea of portable software is
perfectly realized. You can even run your Java application software on
the operating system of a different manufacturer, should you be not
satisfied with our HyNetOS some time. For full exploitation of the
Java-API as defined by the KVM/CLDC specification the J*Target CLDC
Extension the I*Target Client Extension is recommended.
Summary of features:
The W*Target Blue extension adds all necessary
Bluetooth™ protocols to the Protocol Manager. To run this extension a
Micro BlueTaget board is necessary in order to have access to the
onboard Bluetooth interface currently based on the BlueCore01b chipset
from Cambridge Silicon Radio (CSR). Note that BCSP is a BlueCore/CSR
specific protocol that adds enhanced capabilities like in-the-field
firmware updates even of the baseband part of the Bluetooth interface.
Summary of features:
|