A computer program has been developed to serve as the means for setting up, controlling, and receiving information on the status of a forward-link-simulator card in a Digital Equipment Corporation (DEC) Alpha computer that runs the Digital UNIX operating system. The program performs functions of both a device driver and an application-program interface (API).
Some definitions of terms are prerequisite to a meaningful description of this development. "Link" as used here signifies a radio communication link that conveys digital data and command signals between an Earth station and a spacecraft. A forward or a return signal link in this context is an Earth-to-spacecraft or a spacecraft-to-Earth link, respectively. "Card" as used here signifies a printed-circuit board that holds special-purpose electronic circuitry. "Device-driver" as used here signifies software — typically at the lowest level — that communicates directly with the circuitry.
Before this program became available, there was no Digital UNIX driver or API software for the forward-link-simulator card. It was necessary to operate the forward-link-simulator card by use of the Digital UNIX driver software for another card — the return-link processor card (RLPC) that is functionally different, has a different address map, and has no reading or writing interface. The API software used previously was based on Windows NT API calls, which contain Windows-NT-specific code that does not work in UNIX. For transferring data, the Windows NT code does not use direct memory access (DMA) and instead uses slower memory moves. There are no reading- or writing-interface components in either the Windows NT API or the Digital UNIX RLPC-driver software used previously.
The present program is written in the C computing language. The driver portion, called "fwlc.mod," performs the system and low-level functions of an interface to the forward-link-simulator card. In the development of the API portion, Windows NT system code was removed and replaced and reading and writing interface code and a DMA transfer capability were added. Called "apiLib.a," the API portion contains function calls that increase the functionality of the card and implements a threaded DMA transfer.
In comparison with the previous RLPC-driver software, the driver component of the present software implements a simpler and more classical approach. As a result, the present software is more portable and application programs that use the driver component can be executed in user mode rather than in kernel (privileged) mode.
This work was done by David Fisher of Stinger Ghaffarian Technology and Robert Kuntz of RMS for Goddard Space Flight Center. For further information, access the Technical Support Package (TSP) free on-line at www.techbriefs.com under the Electronic Components and Systems category. GSC-14035