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:
  1. The user gains access to a fast simulator without having to install software or hardware.
  2. 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.