Final Report on
Web-based Interactive Graphical User Interface for Freely Distributed
Digital Signal Processor and Microcontroller Simulators
Saleem Marwat
EE464H Senior Honors Design Project
The University of Texas at Austin
August 14, 1997
Supervising Professor:
Dr. Brian L. Evans
Abstract
The Web-Enabled Distributed Simulators (WEDS) enable users to work
with Digital Signal Processor (DSP) and Microcontroller simulators
interactively. The programming language used in implementing the project
is Java. The project consisted of several parts: an applet, a server, and
command-line simulators. Applets are Java programs designed to be easily
transported over the Internet and executed in browsers like Netscape
Navigator. The applet provided an easy-to-use graphical user interface
to the simulators. By using a server, I provided a way to enable
communication between the simulators and the graphical user interface.
I successfully completed and tested the project on various platforms,
such as Windows 95, Windows 3.1, MacIntosh, and X Windows.
INTRODUCTION
In this project, I developed an easy-to-use Web-based Graphical User
Interface (GUI) that enables users to work with freely distributed
simulators interactively. I also extended the Web-Enabled Texas
Instruments C30 Simulator (WETICS) developed by Dogu Arifler [1] and
Chris Moy [2] for their earlier EE464H projects. My software is easily
accessible by users running a Java-enabled Web-browser such as Netscape
2.0 or higher. By having access to simulators on the Web, the user has
the following advantages:
- The user gains access to a fast simulator without having
to install software or hardware.
- The user can evaluate a variety of processors for the task at hand.
THEORY
The graphical user interface is an applet embedded in a Web page.
The applet runs on the user's machine. The user interacts with the
simulator through graphical and textual commands via the interface program.
The commands are sent to the simulator over the Internet and the simulator
executes the given command and responds to the interface. The interface,
upon receiving the response, displays the effect of the given command.
The interface also provides graphical icons for commonly used commands
and keeps a history of user commands so that the commands can be saved
as a script.
LAYERS OF DESIGN
The design strategy in the WEDS project was to use layering, a common
approach to solve problems in complex systems (Figure 1). The command-line
simulators (Layer 1) are freely available from the Web. The higher layers
of the system provided the functionality to communicate with the lower
layers. Users interacted with Layer 4 and Layer 3, which constituted the
graphical user interface of the system. The server (Layer 2) established
the communication between the user interface and the simulators. All user
commands given in the form of menu selections and button clicks went to
the server which passed those commands to the simulators.
_______________________________________________________
| Layer 4: Applet residing in a Web page |
|_______________________________________________________|
| Layer 3: GUI Frame for simulators (written in Java) |
|_______________________________________________________|
| Layer 2: Server (written in Java) |
|_______________________________________________________|
| Layer 1: Command-line simulators (written in C/C++) |
|_______________________________________________________|
Figure 1. Layering strategy used in the WEDS Project.
MULTI-THREADING OF THE SERVER
I familiarized myself with the networking facilities provided by Java
by studying a Java server that interfaces to WETICS. The original WETICS
server supported only one user running one simulator, as shown in Figure 2.
I extended the server to be threaded and to support multiple external
connections to multiple simulators. The WETICS server was designed so that
it would run continuously on our host computer. The server would start a
C30 simulator as a child process (a process that is initiated by an
already running process) upon client's request. Any further requests for
simulator connections would not produce an extra child process, rather a
client would connect to an already running simulator. I modified the server
code so that any new requests for the connection would produce a new child
simulator process. I used "Java in a Nutshell" [3] to understand the
threading facilities provided by Java. I faced many problems while debugging
the threaded software. I was finally able to run the program successfully.
This new design is shown in Figure 3.
interface 1
\
\
interface 2 -- Server --- simulator
/
/
interface 3
:
:
Figure 2. Client-Server Architecture (before threading)
interface 1 simualator 1
\ /
\ /
interface 2 --- Server --- simulator 2
/ \
/ \
interface 3 simulator 3
: :
: :
Figure 3. Client-Server Architecture (after threading)
INTERFACE
The original interface for the my project was designed by Dogu Arifler
and Dr. Brian Evans for their WETICS project. I made use of the
configurable interface code to connect Motorola's 68HC11 simulator to
the Web. The graphical user interface for the s mulators is written in Java.
Java is currently the most suitable graphical user interface and
Internet applications development language because of its portability on
all commonly used PCs and workstations.
Throughout the development of my software, I used object-oriented methods
to design custom user interface components, such as menus, buttons, and
dialog boxes. I also used the Graphic Java Toolkit provided by the Sunsoft
Press [4]. The Graphic Java Toolkit is a set of libraries that extend the
Java Abstract Window Toolkit (AWT). The Graphic Java Toolkit makes
graphical user interface design simple by providing a lot of custom
components. The GUI has the capability to adapt itself to changes in the
command set of the simulator.
RESULTS
My supervising professor Dr. Brian Evans made significant contributions
to the project, especially in revising and debugging the programs. The
user interface was tested extensively for robustness and reliability.
Although I used Windows 95 and X Windows platforms to develop my software,
I also tested the program on Windows 3.1 and Macintosh platforms. The
program ran successfully on every platform I used. The interface was able
to download assembled programs for the simulators and enable users to step
through the instructions in the program. The register set of the processors
was displayed correctly. In addition, the interface was able to display error
messages sent by the simulator.
CONCLUSION
The WEDS project produced a Web-based interactive user interface to the
freely available simulators. System designers will be able to use the
interface via a suitable Web-browser to test their designs without having
to purchase the digital signal processor board. The WEDS Project was a
tremendous success. All of the project specifications were met. By the end
of August 1997, Dr. Brian Evans and I will release the code for the applets
and the server under the terms of the GNU General Public License as published
by the Free Software Foundation.
The Web-based graphical user interface for distributed simulators is the
first Web-based tool for interactive simulations. The user interface and
the server are designed in a flexible way so that they can be easily used
with other DSP simulators.
REFERENCES
[1] Dogu Arifler, "Final Report on Design of a Web-based Interactive User-Interface for
the Texas Instruments TMS320C30 Simulator (WETICS)," University of Texas at Austin,
Department of Electrical and Computer Engineering, EE464H Final Report, May 1, 1997.
[2] Chris Moy, "Completion report on my Texas Instruments TMS320C30 simulator," University
of Texas at Austin, Department of Electrical and Computer Engineering, EE 464H Final
Report, Dec. 5, 1996.
[3] D. Flanagan, Java in a Nutshell. Sebastopol: O’Reilly and Associates, February 199
[4] D. M. Geary and A. L. McClellan, Graphic Java: Mastering the AWT, SunSoft Press, A
Prentice Hall Title, ISBN 0-13-565847-0, 1997.