Programming Tutorials Browser Tutorials Articles Struts Tutorials Hibernate Tutorials

Search: 

  Tutorial: A promise of easier embedded-systems networking - JavaWorld November 1999

A promise of easier embedded-systems networking - JavaWorld November 1999

Tutorial Details:

A promise of easier embedded-systems networking
A promise of easier embedded-systems networking
By: By Rinaldo Di Giorgio, Don Loomis , Stephen M. Curry
TINI chipset has a multitasking OS and a JVM that supports equipment-control and status-reporting applications
ava-based microcontrollers have tremendous potential as embedded device controllers, providing easy network connectivity to a wide variety of home and industrial equipment. A versatile chipset in development at Dallas Semiconductor can help to realize this potential. The chipset, known as TINI (Tiny InterNet Interface), consists of a microcontroller with a multitasking operating system, a TCP/IP network stack, and a Java Virtual Machine that supports applications for equipment control and status reporting. The three-chip set will include a network controller and a variety of serial and parallel interfaces. By supporting a mini Web server written in Java, it will also allow users to interact with factory equipment over a network through familiar, versatile HTML and Java user interfaces. Work is also under way to reduce the chipset to a single chip and to allow it to host the Jini technology. This article will present methods for designing and deploying low-cost Java-based microcontrollers using TINI technology.
In the beginning
The need for embedded systems to collect and report manufacturing data on the corporate IT network existed at Dallas Semiconductor long before the advent of the TINI chipset. The silicon process equipment used at Dallas often costs in excess of $1 million per unit and must be used continuously -- and efficiently -- to justify the investment. Thus, Dallas required accurate, real-time reporting of its equipment status to avoid buying new equipment when a more efficient use of existing equipment could be made. To this end, we developed an interface-device code named the Natural Bridge, which made it possible to translate, or "bridge," the control and status indicators of many pieces of semiconductor-fabrication equipment to the company-wide network.
The Natural Bridge consisted of a small circuit board with a microcontroller, lithium-backed nonvolatile memory, an Ethernet interface chip, an RS232C interface, and an interface to the Dallas Semiconductor 1-Wire network. We also developed a cooperative, multitasking operating system for the Natural Bridge. The Bridge Operating System (BOS), written in native code, provided entry points that could be called to transfer data to and from equipment by means of the RS232 port and to communicate on the corporate network using User Datagram Protocol, or UDP.
Successful internal deployments of the Natural Bridge led us to consider what it would take to design a new version that we could deploy commercially on a large scale. We knew that the main limitations to widespread use of the original Natural Bridge were the proprietary OS, a limited network stack, and the necessity of developing all code in assembly language. Realizing that any OS that we developed or licensed would probably lack broad acceptance in the marketplace, we moved to a new design that employed an embedded Java programming environment.
That solved our two biggest problems. First, programmers would be able to program in the Java language instead of assembly. Second, they would be isolated from the details of the underlying OS. The new design also included a full TCP/IP stack, expanded I/O capabilities, and a higher-performance microprocessor. Once fully implemented, this approach promises to overcome all the deficiencies in the earlier design and open the door to widespread commercial use.
Java does Dallas
It was obvious that the Java language and the JDK's object-oriented programming environment and strong networking capabilities would remove all the limitations of our original system. However, when we considered using the Java language and runtime in a small, embedded environment, we had to address the troublesome question of performance. Can a small microcontroller run Java applications in an efficient manner? The overhead due to bytecode interpretation is typically high, and common solutions, such as JIT (just in time) compilation, are often impossible in a memory-constrained device.
Thus, this use of Java technology would make computationally intensive applications far too slow to be practical. However, the target applications in this environment are I/O -- and not computationally intensive. Their strength lies in their ability to perform I/O operations efficiently and at a low price point. Since all physical I/O is performed efficiently by native code, applications typical of the space can still achieve a high level of performance.
As a practical example, consider the typical flow of a small Web-server application written in Java. The server usually spends a lot of time blocking in native code, waiting for a connection request from a remote client. After a connection has been established, control is returned very briefly to the Java application to create an input stream from which to read the raw request.
The read request is again serviced by native code. After the caller's buffer has been filled with the raw request data, control returns to the server to parse the request. Let's assume the request was a get -- that it requests data collected over time and stored in a log file. The server would fulfill the request by reading the file in reasonably sized blocks and again leveraging the efficient native code to write the data to the client.
Figure 1. Sample server flow
In this application, parsing the raw request represents the bulk of the work performed with the Java language and JDK. That is typical of many TINI applications that collect data from one or more physical I/O ports, manipulate it using the Java language, and write to another I/O port. The more data manipulation required by the application, the more care one must take to maintain reasonable performance.
One obvious solution to the problem is to create a native library to improve the performance of such tasks. Though a library reduces portability, it is still the correct solution for some applications.
While we make no hard claims about realtime performance, we have made every attempt to avoid long delays in program execution. Also, since most of the I/O is interrupt driven, it usually runs reasonably quickly regardless of other system delays such as task scheduling and garbage collection.
The TINI hardware
The TINI chipset consists of three chips: a microcontroller, a ROM containing the firmware, and an Ethernet controller. At the heart of the TINI platform is the Dallas Semiconductor DS83C390 microprocessor. The DS83C390 has several peripherals integrated on the same chip with the CPU core. These peripherals include serial, parallel, and 1-Wire ports, as well as two onboard CAN (Controller Area Network) controllers and several spare port pins to control miscellaneous devices such as relays and indicator LEDs. The high level of integration drastically reduces the target system's component count and, therefore, its cost. Future versions of TINI will further integrate the network controller and ROM to the TINI microcontroller.
TINI's controller is capable of addressing up to 4 MB of RAM and 512 KB of ROM. During the boot, the I/O manager will detect the memory configuration and CPU clock rate and locate optional hardware interface chips such as the Ethernet controller and CAN bus interface. This offers system-level hardware designers flexibility when they choose memory densities and speeds, as well as the physical I/O they wish to support. For example, the designer of a cost-sensitive system without high memory or performance requirements would most likely choose a lower clock rate and use inexpensive, low density, slow memory.
Figure 2. TINI's hardware architecture
Note that most of TINI's I/O capability is aimed at interfacing with other devices or machines, though a liquid crystal display and perhaps a keypad can be added to the parallel port to provide a minimal local human interface. If a more powerful human interface is needed, a remote computer with a Web browser or other graphical display provides it.
TINI software
TINI's ROM houses both the native code, which implements the OS, the JVM (Java Virtual Machine), and the Java API classes. This section describes the components in more detail.
TINI OS
TINI OS is very small and provides a file system, memory, I/O managers, and basic services such as task scheduling. Unlike most small embedded-controller operating systems, TINI OS is designed to switch heavyweight tasks. Specifically, it can switch between multiple executing instances of a Java bytecode interpreter, thus providing a foundation for running multiple Java applications. The task scheduler is a simple round-robin scheduler that provides constant 4-millisecond time slices. With the exception of the garbage collector, all tasks driven by the OS are Java applications. The OS manages multiple native/kernel processes through cooperative multitasking and is therefore subject to tight execution time requirements.
Figure 3. TINI's software architecture
The Java Virtual Machine and API
TINI's ROM provides support for java.lang , java.net , java.io , java.util and javax.comm . The javax.comm package has been extended to provide access to TINI's additional I/O capabilities. Additional packages contained within the com.dalsemi package provide access to the command shell, the 1-Wire net, and many system parameters. Other packages can of course be downloaded into RAM as a part of an application.
TINI shell (slush)
TINI includes a small command shell (slush) that provides access to remote hosts. This Java application starts during the last phase of system initialization. During construction, slush creates threads that maintain server sockets to listen for and accept client requests for FTP and Telnet connections. When TINI is used


 

Read Tutorial at: Click here to view the tutorial

Rate Tutorial:
A promise of easier embedded-systems networking - JavaWorld November 1999

View Tutorial:
A promise of easier embedded-systems networking - JavaWorld November 1999

Related Tutorials:

Displaying 1 - 50 of about 398 Related Tutorials.

VoIP Data Networking
VoIP Data Networking VoIP Data Networking...;  VoIP Data Networking with Networking Telecommunication... networking lines. It's adapted to a packet-switched network just like your computer
 
Enhancements in Networking Features
Enhancements in Networking Features Enhancements in Networking Features                    
 
GNATbench
for embedded systems running VxWorks. GNATbench for Wind River Workbench is fully... systems, rather than embedded processors, and likewise the debugger supports native... systems creation. AdaCore has also developed a stand-alone version of GNATbench
 
Cute C++ Unit Testing Easier
Cute C++ Unit Testing Easier Cute C++ Unit Testing Easier         ... Easier) and integrated it into Eclipse CDT similar to JUnit. wizard creating
 
Open Source Router
models from big networking equipment makers such as Cisco Systems.   ... the networking equivalent of Linux or Firefox, but taking aim at Cisco instead... networking giant Cisco. This morning it has opened itself to the public. Here
 
VoIP XML
, wireless and voice software platforms to networking and telecom equipment... that with its straightforwardness, XML also fashions easier data manipulation
 
Java vs. C
: Java vs. C Is Java easier or harder than C? Java is harder because... that might cause problems. Java is easier because ... Java checks... that everyone is very enthusiastic about Java is because it is easier (faster, cheaper
 
What is WiFi?
; Introduction WiFi is a globally used wireless networking technology that uses the 802.11... that portable computing and communication systems ushered in. In today’s scenario
 
EZPanel
and difficult to modify. EZPanel makes layout much easier to write initially, and vastly easier to modify. Error checking. This EZPanel convenience layer between
 
VoIP Advantages
on the internet phone (or ip phone) bandwagon and the promise of cheap phone... constrained-more than they know-by the legacy phone systems they've depended on.  
 
Get Your Game on with SuperGamer-1
Your Game on with SuperGamer-1 Gaming in Linux is much easier than it once was... These last days it's become easier to game in Linux than in Windows. Now all..., adware or spyware. PCLinuxOS is safe, secure and stable. Linux systems
 
Programming
easier. Start from an existing, running, program. If you can find a program... different problem, it's much easier to start with that and modify
 
Exception handling in Objective-C
exceptional conditions so that code can be easier to write, easy to detect exceptions in the code and easier to maintain as well. To take support of exception handling
 
Annotations
added the features like annotation to make the development easier and more... the development easier. Annotations behaves like the meta. The literal meaning of meta
 
CubicTest
makes web tests faster and easier to write, as well as making it easier to write
 
VoIP Management Tools
enterprises to solve VoIP networking issues by acting on the advance indications... management tools were designed. Network management systems were built to determine... and monitor its performance. In a statement released on Tuesday, the networking
 
Java 5.0
to make the programming easier.   
 
jACOB Designer
; The latest version of jACOB  is faster, even easier to design with and has... intuitive, and can be done faster and easier.  Read more Workflow can now... it even faster and easier to use: For most of the objects drag and drop is now
 
VoIP Getting Started
) networking comprises many components and network managers might find themselves... With SIP Voice-over-IP (VoIP) networking comprises many components and network...-quality voice in a converged network. Bringing disparate voice and data systems
 
libCopy
WebTools Platform just a little easier. Binaries and source code are distributed under
 
Masters of Java Assignment Plugin
it significantly easier to develop Master of Java Assignments by making use
 
What is Wi-Fi?
networking technology  that is being used within a limited ranges of ... are called Wi-Fi system. This networking system was developed by the Institute... in the market  already equipped with internal wireless networking cards
 
To Create a Frame with Preferences
to use the preferences in frame. The example will make it easier to understand
 
iBatis-Inserting data into database
is it?s simplicity, and that is the only reason of being it easier to use in any
 
Emergence of JavaFX
programming easier in general.  F3 attempted to demonstrate that we're... truly is everywhere. The JavaFX family will make it easier than ever to build
 
Getting a Property value in jsp
, there is an easier way of accessing properties of bean by using getProperty tag which
 
SCADA in Future
of application-specific platforms. The Promise of Wireless Sensor Networking... systems are not enabled to be integrated with wireless networking systems... different RTUs and other systems like embedded sensor networks and mobile users
 
Struts 2 IDE
. The IDE for Struts 2 will actually make the development cycle much easier. Here
 
Export System Preferences
preferences. Here we are going to make it easier to understand the step be step
 
Features of JDBC 4.0
productivity.  JDBC 4's key priority is to make it easier for developers to work
 
Exporting the User Type Preferences in a Subtree of Preference Node
it easier to understand the step be step process by the complete example on this topic
 
Vehicle Tracking in India
the world that is going to make our personal and business life lot easier. As the term
 
Vehicle Tracking in India
the world that is going to make our personal and business life lot easier. As the term
 
Open Source XML Editor
modeling application written to make creating and editing XML files easier. It runs... classes it?s easier to use than a C API, and you can create sub-classes.  
 
What is Linux?
handheld and embedded systems to clusters of hundreds of servers. LNA uses... creates a more reliable system. Systems using protected memory and pre-emptive... installation is easier than other distributions. If you are not in a mood
 
break
like break and continue it is easier to jump out of loops to control other areas
 
The Right Reasons for Change
. As a result it is easier for people to switch to a better job, and job hopping has
 
Lunar Linux 1.6.0 has been released
. It adds better hardware recognition and module loading options, an easier way to setup compilers against kernel sources and headers, and easier compiler... better hardware recognition and module loading options, an easier way to setup
 
VoIP Solution
to packet networking for our DMS customers.      ... that would run natively on the System i. Today, the two have delivered on that promise...-call processing, messaging, and conferencing, for example-presenting systems
 
Open Source Games
with FreeCraft. This open source project began with much promise ? an engine... it was easier to use the Blizzard game's graphics than to create their own, though..., output, networking... you can find Free Software for all of these. Despite
 
J2ME Books
architectures, web application/service systems, computer telephony integration, and embedded... connections-embedded devices, such as cellphones, pagers, PDAs, and smartcards... (or combination of the two) is, the easier it is to get things done when you're out
 
Open Source Business Model
1999, eZ systems has been creating Open Source software and serves its customers... services like systems integration, support, tutorials and documentation... of working collaboratively and from the roots, show great promise as each day passes
 
The Ultima Linux 8 has been released
November 2004, is the latest and greatest yet, featuring the latest versions of all... to fit his needs, and made things considerably easier to set up. He also discovered..., good for server systems (Soon to be) award-winning desktop: The latest
 
The Ultima Linux 8 has been released
November 2004, is the latest and greatest yet, featuring the latest versions of all... to fit his needs, and made things considerably easier to set up. He also discovered..., good for server systems (Soon to be) award-winning desktop: The latest
 
Open Source JVM
a prominent language with a wide application spectrum, from embedded systems to enterprise... embedded systems to enterprise servers. One of the major issues in using Java...) supporting the execution of Java? platform applications in embedded systems. PERC
 
Will WiMAX Replace DSL?
. The contention is that, it is far easier and more cost effective to set up transmission... going on since 1999 to develop technologies that offer broadband services through... solutions to the consumer as well as efficient mutual settlement systems
 
Java & JEE books Page7
the various ?layers? of the networking protocol, and there were a lot of different functions in each different networking library concerned with connecting... on that device. As Mobile Operating Systems and CPUs merge than it becomes
 
Open Source SQL
consultancy and contract engineering service for embedded systems, embedded... stable and efficient systems. The stability and effectiveness of your databases... size open source database that can be embedded into any application and requires
 
Summary: Methods
Copyright 1999 Fred Swartz
 
VoIP Over Cable
benefits for all levels of users, from networking equipment manufacturers... featured, low-cost telephony services by leveraging the corporate data networking infrastructure (LAN). IP-based communications systems must address users across
 
Site navigation
 

 

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2006. All rights reserved.