Standards Work Involving the General Input Device Emulating Interface (GIDEI), SerialKeys, and the Universal Serial Bus (USB)
Compiled by:
Mark Novak
Project Engineer
Brad Olsen
Technical Staff
Trace R&D Center
Abstract:
After conducting a series of USB-related tests and evaluating several USB input devices at the Trace Center, we have concluded that the USB can replace the current keyboard and mouse input provided using the GIDEI and SerialKeys emulation model. We base our conclusions on almost 15 years of development experience with the GIDEI and SerialKeys, the changes and requirements we've seen while attempting to provide international GIDEI support, the maturation of the USB across platforms. GIDEI and SerialKeys, however, should remain fully supported as a built-in feature of the operating system for five or more years into the future to maintain support for legacy devices (augmentative and alternative [AAC] devices or older computer models) which only have serial port connections.Background:
To allow individuals to use their assistive technologies as alternate keyboards and mice for computers, the Trace Center first developed the keyboard emulating interface (KEI) concept (Vanderheiden, 1980,1981), standardized a communication format for it (Schauer, J., Rodgers, B. L., Kelso, D. P., Vanderheiden, G. C., & Lee, C. C., 1988) and then expanded it into the General Input Device Emulating Interface (Novak, M., Schauer, J., & Vanderheiden, G. C.,1994). The GIDEI standard, which was built into the IBM- sponsored AccessDOS, built directly into Windows 95 and Windows NT, and freely available for Macintosh OS, allows people with disabilities to use the serial port on the computer to connect their assistive technologies. With the GIDEI, they are able to "type" and use their assistive technologies to emulate the keyboard and mouse on the computer and to operate the standard software.Recently, the USB, pioneered and backed by Digital Equipment Corporation, has seen widespread acceptance and incorporation into almost all of the newer desktop and laptop computers. Further, USB is mandated for inclusion in future computers by the Intel/Microsoft hardware certification process. The question is: Does the USB provide all of the functionality of the GIDEI and SerialKeys functions for newer computers? The purpose of this project is to answer this question by achieving the following objectives.
Objectives:
- To evaluate the USB to determine whether this technology can now completely
subsume the interface functionality of the GIDEI and SerialKeys function
with regard to allowing connectivity by assistive technologies.
- To determine any requirements needed in the standard or method of implementing
this standard to ease the transition of the computer industry and assistive
technology companies to USB.
- To develop any necessary documentation and transition plan to support
the assistive technology industry in the transition to the USB standard.
Methodology:
To investigate some of these questions and to learn about the current Basic Input/Output System (BIOS) and Windows operating system support for USB, we developed a series of tests. These tests were performed using a computer and several USB input devices for each of Windows 98, Windows 98 Second Edition (SE), and Windows 2000 operating system.
Results:
Based on our test results, and reading from the Microsoft web site reference
material1, we were able to conclude the following regarding USB support of
input devices.
- There are differing levels of personal computer support for the USB,
as indicated by different combinations of BIOS and Windows operating systems.
We have categorized these levels of support for our results as follows:
- Full BIOS USB support: Defined as all the USB keyboards
and mice work during boot up and until such time as the operating system
(OS) takes over. For example, with full BIOS USB support, a user can
access Scan Disk which runs when Windows is not shut down properly,
and can access Windows' safe mode, launch into boot time BIOS setting,
etc., all while using the USB keyboard.
- Some BIOS USB support: A "gray area" that
can vary greatly. Typical support may involve the USB keyboard working
during boot/power-on self-test (POST). For example, the keyboard will
beep if the user presses and holds down a key (e.g., simulate a stuck
key) after power-on, but the keyboard will not work, once the user triggers
Windows' safe mode.
- No BIOS USB support: Defined as no USB support at all until the OS takes over control from the BIOS. Devices such as a USB keyboard and mouse will not function until the OS enumerates them. Legacy devices will probably fall into this category.
- Full BIOS USB support: Defined as all the USB keyboards
and mice work during boot up and until such time as the operating system
(OS) takes over. For example, with full BIOS USB support, a user can
access Scan Disk which runs when Windows is not shut down properly,
and can access Windows' safe mode, launch into boot time BIOS setting,
etc., all while using the USB keyboard.
- Unless the user's BIOS offers full support for USB, nothing can be done to work around the problem of lack of full USB keyboard support (i.e., short of flash or upgrade- able BIOS) until the operating system starts up and is able to enumerate the hardware on your system. (Note: Prior to Windows 98 SE, USB enumeration did not occur until the user was on the way to the desktop, which could leave you isolated at a login screen with no way to enter a password or mouse click [in a USB only system]. With Windows 98 SE and Windows 2000, enumeration of USB devices happens earlier in the power-on cycle.) Also, most modern computers now provide full BIOS USB support. (see number 1 above). (Note: SerialKeys does not work until Windows is booted.)
- For augmentative and alternative (AAC) devices to connect to the computer using the USB rather than via a serial connection (e.g., SerialKeys), each AAC device would be required to identify itself as keyboard/mouse; the AAC devices must also define themselves as "boot class" Human Interface Devices (HID)1. Boot class devices are those devices, which must be initialized prior to loading the operating system1.
- Allowing AAC devices to define themselves as "boot class" devices would provide several other clear advantages. For example, an AAC device defined as a "boot class" keyboard would function as any other keyboard connected to the computer, injecting keys and information proper for the locale of the current user. This simplifies many of the problems associated with internationalization and keyboard layout that are more problematic for SerialKeys.
- While Apple Computer was the first general purpose personal computer platform to popularize the USB with the introduction of their iMac computers, we have not thoroughly investigated all the potential issues surrounding using AAC devices connected directly to an iMac using the USB. To date, all testing of USB devices have been performed on PC-based computer hardware running a version of the Windows operating system.
- We do know that several AAC users are connecting their non-USB equipped AAC devices to iMacs using a Keyspan serial-to-USB adapter and running a Macintosh version of SerialKeys (e.g., freeware developed at the Trace Center, available from the Trace Center web site, or Apple's web site) with great success. It is anticipated, however, that when Apple releases their next operating system (e.g., MacOS 10), which is built on a UNIX-like kernel, the current freeware version of Macintosh SerialKeys will no longer run without extensive recoding. Therefore, if AAC devices were to support USB connectors/software, these assistive technology devices will be positioned to interface with the next major Macintosh operating system release and other Macintosh USB hardware as well.
Future Work:
The final step in this project will be to identify and work with an AAC vendor(s) to develop a proof of concept working USB equipped AAC device(s). Any software developed for the computer USB support during this next phase will be offered to other developers via the Trace Center web site.References:
Vanderheiden, G. (1980) "Microcomputer Aids for Individuals with Severe or Multiple Handicaps: Barriers and Approaches," in Proceedings of the IEEE Computer Society of the Application of Personal Computing to Aid the Handicapped, Johns Hopkins University, April 2-3.
Vanderheiden, G. (1981) "Practical Applications of Microcomputers to Aid the Handicapped," in Computer, IEEE Computer Society, January.
Schauer, J., Rodgers, B. L., Kelso, D. P., Vanderheiden, G. C., & Lee, C. C. (1988). Keyboard emulating interface (KEI) compatibility standard. Madison, WI: Trace Reprint Service, Trace R&D Center, University of Wisconsin-Madison.
Novak, M., Schauer, J., & Vanderheiden, G. C. (1994). General input device emulating interface (GIDEI) Version 2.0. Madison, WI: Trace Research and Development Center.