System and method for providing a serial bus interface using...

Electrical computers and digital data processing systems: input/ – Intrasystem connection – Bus interface architecture

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C709S241000

Reexamination Certificate

active

06681284

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to data communications and data delivery over communication media between a host computer and a device, such as in host computer-based measurement systems.
2. Description of the Related Art
In many applications it is necessary or desirable for a host computer system to communicate data with an external device. Various transmission media and protocols exist for enabling communication between a host computer system and an external device. Examples of these types of external transmission media include the Universal Serial Bus (USB), IEEE 1394, and other serial or parallel buses which enable communication, e.g., packet-based communication. Typically, the host computer system includes communication logic for interfacing with the external communication line. For example, in a computer system which includes USB communication capabilities, the computer system typically includes a USB host controller for communication with the USB. The computer system also typically includes various layers of driver software which allow an application to interface with and use the external communication media for communicating with the external device.
In some systems serial interface hardware may be used to facilitate communication between the host computer and the external device. As one example, USB systems may include a remote USB hub for coupling to various USB devices. As another example, the host computer may communicate over the USB with a serial interface, wherein the serial interface in turn communicates with the external device according to a different interface or bus standard. For example, the host computer may communicate over the USB with a serial interface, which in turn may communicate with a GPIB device over a General Purpose Interface Bus (GPIB).
One problem that often arises with host computer driver software which is used to interface to an external communication medium is that the driver software requires numerous context switches between user mode and kernel mode. As is well known in the art, a user mode/kernel mode transition requires a context switch by the CPU, which generally requires a large amount of CPU resources or cycles. Therefore, it would be desirable to provide a driver implementation which is operable to communicate with an external communication medium that minimizes user mode/kernel mode transitions.
Additionally, communication of commands to the device may involve significant overhead. For example, in a typical USB system the transfer of a single low level command may take as long as 3 ms. If a high level command involves 20 low level commands transferred over the bus, an overhead of 60 ms may accrue. Therefore, it would be desirable to provide a driver implementation which minimizes transfer overhead.
FIG.
1
: Remote Interface—Driver Executes Completely on the Host Computer
FIG. 1
illustrates the software architecture of prior art systems referred to as the GPIB-USB and the GPIB-1284CT from National Instruments Corporation. This software architecture operates in a system that includes a serial bus interface
110
A (or parallel port in the case of the 1284CT) for communicating with an external device. The software architecture of
FIG. 1
presumes a host computer
108
A communicating with the external serial bus interface device
110
A. The software architecture includes application software
602
A and a software driver. As shown, the software driver is implemented in multiple software layers for modularity. The driver software layers include driver entry layer
604
A, driver manager/class layers
606
A, driver algorithms layer
608
A and hardware access routines layer
610
A. The block labeled “Register Accesses
612
A” represents the hardware registers on the serial bus interface
110
A, i.e., the accesses that are performed on the serial bus interface
110
A by the hardware access routines layer
610
A.
As
FIG. 1
shows, host
108
A stores and executes application software
602
A, driver entry layer
604
A, driver manager/class layer
606
A, driver algorithms layer
608
A, and driver hardware access routines
610
A. The driver hardware access routines
610
A perform individual low level register accesses across the serial bus to the serial interface
110
A, as represented by driver register accesses
612
A. In this approach, the entire driver comprising blocks,
604
,
606
,
608
and
610
executes on the host computer
108
A, and the host system communicates with the serial bus interface
110
A using low level register accesses, i.e., register reads and writes.
In the prior art GPIB-USB system, the application software
602
and the driver software operate as follows. Application software
602
A may communicate with a driver entry layer
604
A, such as National Instruments NM-488.2 Entry layer, which provides an entry point for application communication with the device. The entry layer presents an Application Programming Interface (API) to the application for interacting with the interface driver and serializing calls to the driver. The entry layer
604
A in turn communicates with manager/class driver software
606
A, such as National Instruments NI-488.2 Manager/Class layers, which determines to which hardware to send the communications, and which is responsible for reading configuration information for a board/device from persistent storage and passing these settings down the driver stack. The Class layer has GPIB board and device software objects with methods that correspond to most of the user callable NI-488.2 functions. These objects are initialized with the board/device settings passed down from the Manager layer.
The manager/class driver software communicates with a driver algorithm layer
608
A, such as National Instruments NI-488.2 Algorithms layer, which provides higher level control structures, such as looping, for controlling the device. The algorithms layer
608
A communicates with hardware access routines layer
610
A, which in turn, performs individual low level register accesses
612
A across the serial bus to the interface
110
A. As can be seen, the entire driver functionality is located on the host computer
108
A. Thus, the interface device
110
A is a “dumb” device, and hence a less expensive device. The host computer
108
A was required to send each individual register access command over the bus one at a time and make sure the command completed successfully before sending the next one. This approach to the driver implementation results in low performance, in that each individual register access by the driver software must be transmitted over the bus one at a time, and thus the overhead associated with the transfers accumulates rapidly.
In this prior art GPIB-USB system, the driver software and/or the USB device included various novel features to improve the speed and efficiency of transfers. For example, the GPIB-USB system implemented read pre-fetching/caching and write posting techniques to improve performance. For more information on these techniques, please see U.S. Pat. Nos. 5,987,530 and 6,073,025.
FIG.
2
: Driver Executes Completely on the Remote Interface
FIG. 2
illustrates an alternate software architecture according to the prior art. The software architecture of the system of
FIG. 2
attempts to address the above problems of bus transaction overhead by locating and executing a large portion of the driver (essentially the entire driver) in the remote interface
110
B.
FIG. 2
illustrates the software architecture of a prior art system, referred to as the GPIB-ENET product from National Instruments. The GPIB-ENET product is an Ethernet to GPIB converter interface for converting between Ethernet packets and GPIB packets. In the software architecture of
FIG. 2
, substantially all of the GPIB driver executes in the remote interface
110
B.
As
FIG. 2
shows, host
108
A stores and executes application software
602
A, driver entry layer
604
A, and driver manager/class layer
606
A. The remote bus interface
110
B stores and executes driver algo

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for providing a serial bus interface using... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for providing a serial bus interface using..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for providing a serial bus interface using... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3257635

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.