|
Government
Re-hosting ASOS-ACU software from Motorola 68010
based SBC to a PowerPC based SBC
The National Weather Service has deployed several
networks of weather observation stations throughout the United States.
Among them are the Automated Surface Observation Systems (ASOS)
that consists of approximately 888 unmanned clusters of weather
sensors called the ASOS stations. The operation of each station
is supervised by a rack-mounted computer system called the Acquisition
Control Unit (ACU). Sensors can be connected to the ACU either directly
or to remote system called Data Collection package (DCP), which
is then connected back to ACU by a radio link. The configuration
data for the working of the system is stored in a central location
called national AOMC. The configuration data is downloaded from
the AOMC using a dial-up connection. The ASOS system serves as the
nation's primary surface weather observing network. It is designed
to support weather forecast activities and aviation operations and,
at the same time, support the needs of the meteorological, hydrological,
and climatological research communities.
The baseline version of ASOS software runs on a
Motorola 68010 processor based single board computer. The ASOS product
improvement program required re-hosting the baseline ASOS software
from the obsolete Motorola 68010 based single board Computer to
a PowerPC based platform. This effort required a re-host of the
baseline version of ACU software to a VME resident VGMD single board
computer from Synergy Microsystems, Inc. Re-hosting the ACU software
required following activities:
- Implementation of device driver using C language.
- Modifying hardware dependent modules.
- Removal of latent defects.
- Implementation of exception handler.
- Addition of new functionalities.
Implementation of Device Driver
The baseline version of ACU software has device
driver written in assembly language for both synchronous and asynchronous
communications. It is completely re-written using high-label language
(C language) considering following advantages:
- Portability: Being written in C, it is easier to
port the driver to a new hardware. It requires changing portion
of the driver code that is dependent on the underlying hardware.
- Maintainability: Being written in high label language, it is
easier to maintain.
The driver is designed to synchronize reading and
writing the Serial Communication Controller with the super-scalar
execution of PowerPC.
Modifying hardware dependent modules
The baseline version of ACU software had some hardware
dependent modules. Re-hosting this software required changing these
hardware dependent modules to suit the new hardware. The following
issues were involved while modifying these hardware dependent modules:
- Memory map: The bus layout of the VGMD processor board is different
from the XYCOM processor board (used by the baseline version of
the ACU software). The Motorola 68010 processor on XYCOM board
sits on VME-bus and it directly communicates with VME devices
on the system. PowerPC on VGMD board sits on PowerPC bus and it
communicates with VME devices through some intermediate bridge
chips. This required a completely different memory map for the
VGMD processor board.
- Mapping of new components: The VGMD processor board comes with
components like User Flash, Boot Flash, mezzanine card e.t.c and
these devices were not present in XYCOM processor board. This
required modifying the memory map for including these components.
- Removal of VME device: The baseline version of ACU software
uses a memory board (BBRAM) connected to VME bus for storing configuration
and sensor related data to protect them from being lost due to
power failure. As VGMD board comes with a BBRAM (mezzanine card),
there is no need to use the memory board connected to the VME
bus. This required removing this device from the memory map of
the system.
- Different signaling pattern: Because of the presence of intermediate
components between PowerPC processor and VME devices, the signaling
pattern is different than XYCOM processor board. The interrupt
handling by PowerPC in VGMD board is also different from interrupt
handling by XYCOM processor board. These differences required
modification in the ACU software.
Removal of latent defects
Some latent defects were discovered during re-hosting
of ACU software. These latent defects were corrected for proper
operation of the system. Following is a list of some of the latent
defects found in the baseline version of ACU software:
- Pointer to local variable: Some functions were found to exit
after passing a pointer to their local variable through message
queue.
- Accessing hardware directly by-passing the underlying driver:
Some modules were found to be accessing hardware bypassing the
underlying driver.
- Pre-emption disable while accessing critical data: some modules
are found to disable pre-emption during accessing critical data
instead of using semaphores.
- Application layer handling lower label signaling: Timing for
modem signaling for synchronous communications are found to be
handled by application layer instead of the underlying driver.
Addition of new functionalities
New functionalities were added to ACU software
during the re-host to enable efficient use of the available resources,
better control over the running application and better tracking
of the execution flow software. Following is a list of features
added to the re-hosted ACU software:
- ·Watchdog timer: The baseline version of ACU software
does not have the functionality of recovering itself from system
hangs. Watchdog timer is implemented in the re-hosted ACU software
to enable the system (ACU) to warm start when it is non-operational
for more than one minute due to malfunctioning software. This
feature was highly desirable at typical ASOS installation at remote
un-staffed locations.
- Memory Protection: It was desirable to guard the system against
software malfunction and also to have the ability to obtain information
as to the root cause of system hangs so that they can be corrected.
The re-hosted ACU software is provided with a memory protection
functionality that shall guard the system against software malfunction
due to corruption of code space or critical data structure. The
protection mechanism is such that upon attempted modification
of the protected memory space, an appropriate exception shall
be raised and the ACU shall perform a warm start. The mechanism
shall cause the details of the malfunctioning code fragment including
instruction pointer and resister values to be recorded for subsequent
retrieval and analysis.
- Hardware Syslogs: Hardware syslogs implemented in the re-hosted
ACU software shall cause hardware errors to be reported by the
application. These hardware errors shall be detected by Board
Support Package and will be passed to the application for reporting
similar to application error messages.
- Signature block: This feature enables ACU software to verify
the data stored in Battery Backed RAM (BBRAM) before the data
is being used by the application. BBRAM contains configuration
and sensor related data and it was observed that when the battery
voltage goes below specification, the data is not completely retained.
ACU software was unable to detect this condition and tried to
start up with partial data. Signature block enables ACU to detect
invalid BBRAM content and perform a cold start by deleting all
the data from BBRAM.
Performance of the re-hosted ACU software
The Government has installed the re-hosted ACU
software at over 20 fully operational ASOS sites throughout the
United States, in an effort to conduct an Operational Acceptance
Test (OAT). Apart from being largely successful in the OAT, the
re-hosted software also provided the following advantages over the
baseline version of ASOS software.
- Performance boosting: The baseline version of ASOS software
experiences a drift in clock because of over-loading of the CPU
and limited resources in XYCOM processor board. The processor
board was not upgraded since the development of the ASOS system
whereas ASOS software has undergone through lot of enhancement
over the years.
- Faster processing power: PowerPC on VGMD processor board runs
at 400+MHz providing the application with faster processing power
and enough bandwidth for future enhancement of ASOS.
- Upgradeable DRAM: An upgradeable DRAM module in the VGMD processor
board allows from 32 to 256 MB of high performance SDRAM memory.
This shall provide with enough room for future enhancement ASOS
software
|