Title: Ultrasound information processing system and ultrasound information exchange protocol therefor
Abstract: An ultrasound information processing system comprises a plurality of ultrasound devices coupled to a high-speed serial ultrasound information bus, wherein each ultrasound device comprises a program for communicating with other ultrasound devices according to an ultrasound information exchange protocol (UIEP). The UIEP is a lightweight, connection-oriented protocol adapted to efficiently transfer ultrasound information among different devices on the ultrasound information bus. Each ultrasound device comprises an application layer program for performing an ultrasound function, as well as a lower protocol layer program for receiving and sending data across the ultrasound information bus according to a high-speed serial bus standard that provides both isochronous and asynchronous data delivery. The ultrasound information exchange protocol (UIEP) program is adapted to receive a communication request from the application layer, open a connection-oriented communication session with the requested ultrasound device, and transfer ultrasound information through the lower protocol layer and across the ultrasound information bus to the requested device. Advantageously, any ultrasound device manufacturer provided with the UIEP program may readily generate application layer code capable of communicating with other manufacturers' ultrasound devices across the ultrasound information bus, without requiring specific knowledge of the internal structure of the other manufacturers' devices or of the specific frame/packet structure of the UIEP/lower layer protocols themselves.
Patent Number: 6,839,762 Issued on 01/04/2005 to Yu,   et al.
| Inventors:
|
Yu; Zengpin (Palo Alto, CA);
Lin; Shengtz (Cupertino, CA);
Ye; Eddy (San Jose, CA);
Neff; Thomas P. (Newark, CA)
|
| Assignee:
|
U-Systems, Inc. (Los Altos, CA)
|
| Appl. No.:
|
571197 |
| Filed:
|
May 16, 2000 |
| Current U.S. Class: |
709/230; 709/232 |
| Intern'l Class: |
G06F 015/16 |
| Field of Search: |
709/230-232,203,204
600/437,447,445
345/483,853,564
714/47
367/135
|
References Cited [Referenced By]
U.S. Patent Documents
| 4853875 | Aug., 1989 | Brown.
| |
| 5295485 | Mar., 1994 | Shinomura et al.
| |
| 5353220 | Oct., 1994 | Ito et al. | 600/437.
|
| 5483963 | Jan., 1996 | Butler et al.
| |
| 5492125 | Feb., 1996 | Kim et al.
| |
| 5555534 | Sep., 1996 | Maslak et al. | 367/135.
|
| 5590658 | Jan., 1997 | Chiang et al.
| |
| 5603323 | Feb., 1997 | Pflugrath et al.
| |
| 5609485 | Mar., 1997 | Bergman et al. | 434/262.
|
| 5630101 | May., 1997 | Sieffert.
| |
| 5709206 | Jan., 1998 | Teboul.
| |
| 5709209 | Jan., 1998 | Friemel et al.
| |
| 5715823 | Feb., 1998 | Wood et al.
| |
| 5778177 | Jul., 1998 | Azar.
| |
| 5795297 | Aug., 1998 | Daigle.
| |
| 5838592 | Nov., 1998 | Spratt.
| |
| 5842473 | Dec., 1998 | Fenster et al. | 600/445.
|
| 5851186 | Dec., 1998 | Wood et al. | 600/437.
|
| 5853367 | Dec., 1998 | Chalek et al.
| |
| 5885218 | Mar., 1999 | Teo et al.
| |
| 5920317 | Jul., 1999 | McDonald | 345/853.
|
| 5964708 | Oct., 1999 | Freeman et al. | 600/447.
|
| 5997478 | Dec., 1999 | Jackson et al.
| |
| 6079033 | Jun., 2000 | Jacobson et al. | 714/47.
|
| 6101407 | Aug., 2000 | Groezinger.
| |
| 6159150 | Dec., 2000 | Yale et al. | 600/437.
|
| 6262749 | Jul., 2001 | Finger et al. | 345/564.
|
| 6547730 | Apr., 2003 | Lin et al. | 600/437.
|
Other References
An Object-Oriented Framework for High-Performance Electronic . . .
--Schmidt, Harrison;
sunsite.bcc.bilkent.edu.tr/pub/languages/c++/class-libraries/ACE/
ACE-documentation/SPIE-95.ps.gz.*
Cardiac Wall Tracking Using Doppler Tissue Imaging (DTI).--Cohen, Pajany,
Pellerin . . . ;
www.ceremade.dauphine.fr/.about.cohen/mypapers/icip96dti.ps.gz.*
An Object-Oriented Client-Server System for . . . --Scheinine . . . (1998);
sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-12/./080.ps.*
James A. Zagzebski, Essentials of Ultrasound Physics (1996) (title page and
table of contents).
Texas Instruments, Inc., http://www.ti.com.
Sheldon, The Encyclopedia of Networking, McGraw-Hill (1997).
|
Primary Examiner: Vu; Thong
Attorney, Agent or Firm: Cooper & Dunham LLP
Parent Case Text
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation-in-part of U.S. patent application Ser.
No. 09/449,095, entitled "Scalable Real-Time Ultrasound Information
Processing System," filed Nov. 24, 1999, which is a continuation-in-part
of U.S. patent application Ser. No. 09/224,635, entitled "Ultrasound
Information Processing System," filed Dec. 31, 1998, both assigned to the
assignee of the present invention. The above two disclosures are hereby
incorporated by reference into the present disclosure.
Claims
What is claimed is:
1. A computer program product for use in a plurality of ultrasound devices,
the plurality of ultrasound devices being coupled to an ultrasound
information bus for allowing communications therebetween according to a
high-speed packetized serial bus protocol, each ultrasound device having a
lower protocol layer for receiving and sending packets using said
high-speed packetized serial bus protocol, each ultrasound device having
an application layer for performing an ultrasound application function,
said computer program product comprising:
computer code for receiving a request from the application layer to
communicate with another ultrasound device;
computer code for establishing a connection-oriented communication session
with the other ultrasound device through the lower protocol layer across
the ultrasound information bus; and
computer code for transferring ultrasound information between the
application layer and the other ultrasound device during said
communication session, said ultrasound information comprising bulk image
data requiring real-time transfer, said ultrasound information further
comprising command data, wherein said bulk image data is transferred over
an isochronous channel of said connection-oriented communication session
and said command data is transferred over an asynchronous channel of said
connection-oriented communication session;
whereby any of a variety of different ultrasound devices having application
layers compatible with said computer program product are capable of
communications therebetween when coupled to the ultrasound information
bus.
2. The computer program product of claim 1, further comprising computer
code for terminating said connection-oriented communication session
responsive to a command received from the application layer.
3. The computer program product of claim 2, further comprising:
computer code for forming a bulk image frame responsive to receiving bulk
image data from the application layer;
computer code for encapsulating the bulk image frame into one or more
connection-oriented protocol packets; and
computer code for submitting said connection-oriented protocol packets to
the lower layer protocol for transmission to the other ultrasound device.
4. The computer program product of claim 3, further comprising:
computer code for receiving connection-oriented protocol packets from the
other ultrasound device through the lower layer protocol;
computer code for unpacking bulk image frames from the connection-oriented
protocol packets; and
computer code for transferring the bulk image data to the application
layer.
5. The computer program product of claim 4, further comprising computer
code for forming a bulk image data port, wherein bulk image data is
transferred between the ultrasound devices in connection-oriented
communication sessions between their bulk image data ports.
6. The computer program product of claim 5, wherein said bulk image data is
selected from the group consisting of: B-mode image data, M-mode image
data, Color Doppler image data, spectral Doppler image data, and ECG image
data.
7. The computer program product of claim 2, further comprising:
computer code for forming a command frame responsive to receiving command
data from the application layer;
computer code for encapsulating the command frame into one or more
connection-oriented protocol packets; and
computer code for submitting said connection-oriented protocol packets to
the lower layer protocol for transmission to the other ultrasound device.
8. The computer program product of claim 7, further comprising:
computer code for receiving connection-oriented protocol packets from the
other ultrasound device through the lower layer protocol;
computer code for unpacking command frames from the connection-oriented
protocol packets; and
computer code for transferring the command data to the application layer.
9. The computer program product of claim 8, further comprising computer
code for forming a command port, wherein command data is transferred
between the ultrasound devices in connection-oriented communication
sessions between their command data ports.
10. The computer program product of claim 9, wherein said command data is
selected from the group of command types consisting of: open port, load
code at logical address, run, status request, status request response,
reset, reset acknowledge, stop, and close port.
11. The computer program product of claim 10, said ultrasound devices
including a scanning device and a host device, said scanning device
generating image data in accordance with intrinsic parameters that are
included within each bulk data frame, said scanning device also generating
image data in accordance with extrinsic parameters that are not included
within each bulk data frame, further comprising:
at the scanning device, computer code for attaching an ultrasound state
identifier to each bulk image frame, said ultrasound state identifier
being associated with a corresponding set of extrinsic parameters; and
at the host, computer code for receiving the ultrasound state identifier
from the bulk image frame and transferring it to the application layer for
association with the bulk image data within that frame;
whereby the host device may properly interpret the bulk image data using
(a) the intrinsic parameters included with the bulk image data, and (b)
using extrinsic parameters that may be derived from knowledge of the
ultrasound state identifier;
and whereby the extrinsic parameters themselves are not required to be
included with each bulk image frame.
12. The computer program product of claim 11, wherein changes in the
extrinsic parameters are caused by the host device, and wherein new
extrinsic parameters and corresponding new ultrasound state identifiers
are communicated to the scanning device across the asynchronous command
connection.
13. The computer program product of claim 12, further comprising computer
code for forming a broadcast port, said broadcast port for allowing the
host device to broadcast, upon change in the extrinsic parameters, the new
extrinsic parameters and corresponding new ultrasound state identifier to
broadcast ports of the scanning device and other ultrasound devices
coupled to the ultrasound information bus.
14. The computer program product of claim 13, wherein successive ultrasound
state identifiers form a linear numerical progression.
15. The computer program product of claim 13, wherein successive ultrasound
state identifiers form a random numerical sequence.
16. The computer program product of claim 13, wherein said extrinsic
parameters include parameters selected from the group consisting of: pulse
repetition frequency, magnification factor, and Color Doppler region of
interest.
17. A method for transferring ultrasound information between a first
ultrasound device and a second ultrasound device, the ultrasound
information comprising command data and bulk image data, comprising the
steps of:
forming an asynchronous virtual connection between a command port of said
first ultrasound device and a command port of said second ultrasound
device;
forming an isochronous virtual connection between a bulk image data port of
said first ultrasound device and a bulk image data port of said second
ultrasound device, wherein said asynchronous and isochronous virtual
connections are formed in a common high-speed serial link between said
first and second ultrasound devices according to a high-speed packetized
serial bus protocol;
transmitting command data across said asynchronous virtual connection; and
transmitting bulk image data across said isochronous virtual connection.
18. The method of claim 17, the bulk image data being organized into frames
by the second ultrasound device for transmission to the first ultrasound
device, the second ultrasound device creating the bulk image data in
accordance with (a) intrinsic parameters that are included within each
bulk data frame and (b) extrinsic parameters that are not included within
each bulk image frame, said first ultrasound device requiring both said
intrinsic and extrinsic parameters in order to process the bulk image
data, the method further comprising the steps of:
at the second ultrasound device, attaching an ultrasound state identifier
to each bulk image frame, said ultrasound state identifier being
associated with a corresponding set of extrinsic parameters; and
at the first ultrasound device, using said ultrasound state identifier to
derive the extrinsic parameters associated with each bulk image frame;
whereby the extrinsic parameters themselves are not required to be included
with each bulk image frame.
19. The method of claim 18, wherein changes in the extrinsic parameters are
caused by the first ultrasound device, and wherein new extrinsic
parameters and corresponding new ultrasound state identifiers are
communicated to the second ultrasound device across the asynchronous
virtual connection.
20. The method of claim 19, further comprising the steps of:
at said first ultrasound device, storing the current extrinsic parameters
and corresponding ultrasound state identifier;
upon a change of extrinsic parameters at said first ultrasound device, also
storing the new extrinsic parameters and corresponding new ultrasound
state identifier;
at said first ultrasound device, comparing the ultrasound state identifiers
of the incoming bulk image frames to the stored ultrasound state
identifiers and using the corresponding extrinsic parameters to process
the bulk image data;
whereby any bulk image frames that were pending transmission prior to the
change in extrinsic state are properly associated with the correct
extrinsic parameters at the first ultrasound device, thereby achieving
synchronization of the first and second ultrasound devices.
21. The method of claim 20, wherein successive ultrasound state identifiers
form a linear numerical progression.
22. The method of claim 20, wherein successive ultrasound state identifiers
form a random numerical sequence.
23. The method of claim 20, wherein the extrinsic parameters include
parameters selected from the group consisting of: pulse repetition
frequency, magnification factor, and Color Doppler region of interest.
24. A method for ultrasound information processing in a modular ultrasound
system having a host, a scanner, and an intermediate processor, comprising
the steps of:
forming a first asynchronous virtual connection between a first command
port of the host and a command port of the scanner, said first
asynchronous virtual connection being formed in a first high-speed serial
link connecting said host and said scanner according to a high-speed
packetized serial bus protocol;
forming a second asynchronous virtual connection between a second command
port of the host and a command port of the intermediate processor, said
second asynchronous virtual connection being formed in a second high-speed
serial link connecting said host and the intermediate processor according
to said high-speed packetized serial bus protocol;
forming a first isochronous virtual connection between a bulk image data
port of the scanner and a first bulk image data port of the intermediate
processor, said first isochronous virtual connection being formed in said
first and second high-speed serial links across said host;
forming a second isochronous virtual connection between a second bulk image
data port of the intermediate processor and a bulk image data port of the
host, said second asynchronous virtual connection being formed in said
second high-speed serial link;
transmitting command data across said first and second asynchronous virtual
connections;
transmitting bulk image data from the scanner to the intermediate processor
across said first isochronous virtual connection;
processing said bulk image data at the intermediate processor; and
subsequent to processing said bulk image data, transmitting said bulk image
data from the intermediate processor to the host across said second
isochronous virtual connection.
25. The method of claim 24, said bulk image data being organized into
frames for transmission across said first and second isochronous virtual
connections, the scanner creating bulk image data in accordance with (a)
intrinsic parameters that are included within each bulk data frame and (b)
extrinsic parameters that are not included within each bulk image frame,
said host and said intermediate processor each requiring said intrinsic
and extrinsic parameters in order to process said bulk image data, the
method further comprising the steps of:
at the scanner, attaching an ultrasound state identifier to each bulk image
frame, said ultrasound state identifier being associated with a
corresponding set of extrinsic parameters, and transmitting said bulk
image frame to the intermediate processor;
at the intermediate processor, using said ultrasound state identifier from
each arriving bulk image frame to derive the corresponding extrinsic
parameters for use in processing said bulk image frames;
at the intermediate processor, transmitting the bulk image frames to the
host with their respective ultrasound state identifiers;
at the host, using both (a) the intrinsic parameters in each arriving bulk
data frame and (b) extrinsic parameters derived from the ultrasound state
identifier of each arriving bulk data frame to process said bulk data
frame.
26. The method of claim 25, wherein the extrinsic parameters include
parameters selected from the group consisting of: pulse repetition
frequency, magnification factor, and Color Doppler region of interest.
27. The method of claim 26, the extrinsic parameters being subject to
changes caused by events at the host, wherein upon generation of new
extrinsic parameters at the host, said new extrinsic parameters and a
corresponding new ultrasound state identifier are communicated from the
host to the scanner and to the intermediate processor across said first
and second asynchronous virtual connections, respectively.
28. The method of claim 27, further comprising the steps of:
at the host and the intermediate processor, storing the extrinsic
parameters and corresponding ultrasound state identifier;
upon said change of said extrinsic parameters at the host, storing said new
extrinsic parameters and said corresponding new ultrasound state
identifier at the host and the intermediate processor;
at the host and the intermediate processor, using the ultrasound state
identifiers of arriving bulk image frames to locate the extrinsic
parameters corresponding to that bulk image frame; and
at the host and the intermediate processor, processing that bulk image
frame using said located extrinsic parameters;
whereby any bulk image frames which were pending transmission at the
scanner or the intermediate processor prior to said change in extrinsic
parameters are properly associated with the correct extrinsic parameters
for processing, whereby synchronization of the host, the intermediate
processor, and the scanner is achieved.
29. The method of claim 26, the extrinsic parameters being subject to
changes caused by events at the host, wherein upon generation of new
extrinsic parameters at the host, said new extrinsic parameters and a
corresponding new ultrasound state identifier are communicated from the
host to the scanner across said first asynchronous virtual connection and
said new extrinsic parameters and corresponding new ultrasound state
identifier are communicated from the scanner to the intermediate processor
across a third asynchronous virtual circuit formed between a second
command port of the scanner and a second command port of the intermediate
processor.
30. The method of claim 26, the extrinsic parameters being subject to
changes caused by events at the host, wherein upon generation of new
extrinsic a parameters at the host, said new extrinsic parameters and a
corresponding new ultrasound state identifier are broadcasted from a
broadcast port of the host to broadcast ports on each of said scanner and
said intermediate processor.
31. A medical diagnostic ultrasound system comprising:
two or more ultrasound devices each having a respective application layer
program and a respective lower protocol layer program;
an ultrasound information bus coupled with the ultrasound devices for
transfer of ultrasound information between the devices over the bus;
wherein the application layer programs control operations of the respective
ultrasound devices and the lower protocol layer programs control transfers
of ultrasound information between the respective devices and the bus; and
an ultrasound information exchange protocol program receiving communication
requests from respective application layer programs sent via the bus and,
in response, causing a communication session to commence between a
requesting and requested ones of said ultrasound devices, said
communication session comprising the transfer of ultrasound information
between the requesting and requested devices via the ultrasound
information bus and the lower protocol layer programs of the requesting
and requested devices;
wherein ultrasound devices with respective application layer programs and
lower protocol layer programs can be added to or removed from the system
without requiring modification of the devices that remain coupled with the
information bus,
wherein said ultrasound information comprises bulk image data requiring
real-time transfer that is transferred using an isochronous channel of the
bus; and
wherein said ultrasound information further comprises command data that is
transferred over an asynchronous channel of the bus.
32. A system as in claim 31 in which:
said ultrasound devices include a scanning device and a host device;
said scanning device generating image data in accordance with intrinsic
parameters that are included within bulk data frames and also generating
image data in accordance with extrinsic parameters that are not included
within each of the bulk data frames, said system further comprising:
at the scanning device, computer code for attaching an ultrasound state
identifier to each bulk image frame, said ultrasound state identifier
being associated with a corresponding set of extrinsic parameters; and
at the host, computer code for receiving the ultrasound state identifier
from the bulk image frame and transferring it to the application layer for
association with the bulk image data within that frame;
said host device interpreting the bulk image data using (a) the intrinsic
parameters included with the bulk image data, and (b) extrinsic parameters
that may be derived from knowledge of the ultrasound state identifier.
33. A system as in claim 32 in which changes in the extrinsic parameters
are caused by the host device, and new extrinsic parameters and
corresponding new ultrasound state identifiers are communicated to the
scanning device across an asynchronous command connection.
34. A system as in claim 32 in which said extrinsic parameters include
parameters selected from the group consisting of: pulse repetition
frequency, magnification factor, and Color Doppler region of interest.
35. A medical diagnostic method using ultrasound comprising:
coupling two or more ultrasound devices, each having a respective
application layer program and a respective lower protocol layer program,
with an ultrasound information bus for transfer of ultrasound information
between the devices over the bus;
wherein the application layer programs control operations of the respective
ultrasound devices and the lower protocol layer programs control transfers
of ultrasound information between the respective devices and the bus; and
using an ultrasound information exchange protocol program receiving
communication requests from respective application layer programs sent via
the bus and, in response, causing a communication session to commence
between a requesting and requested ones of said ultrasound devices, said
communication session comprising the transfer of ultrasound information
between the requesting and requested devices via the ultrasound
information bus and the lower protocol layer programs of the requesting
and requested devices;
wherein ultrasound devices with respective application layer programs and
lower protocol layer programs can be added to or removed from the system
without requiring modification of the devices that remain coupled with the
information bus;
wherein said ultrasound information comprises bulk image data requiring
real-time transfer that is transferred using an isochronous channel of the
bus; and
wherein said ultrasound information further comprises command data that is
transferred over an asynchronous channel of the bus.
36. A method as in claim 35 in which:
said ultrasound devices include a scanning device and a host device;
said scanning device generating image data in accordance with intrinsic
parameters that are included within bulk data frames and also generating
image data in accordance with extrinsic parameters that are not included
within each of the bulk data frames, said method further comprising:
at the scanning device, using computer code attaching an ultrasound state
identifier to each bulk image frame, said ultrasound state identifier
being associated with a corresponding set of extrinsic parameters; and
at the host, using computer code receiving the ultrasound state identifier
from the bulk image frame and transferring it to the application layer for
association with the bulk image data within that frame;
said host device interpreting the bulk image data using (a) the intrinsic
parameters included with the bulk image data, and (b) extrinsic parameters
that may be derived from knowledge of the ultrasound state identifier.
37. A system as in claim 36 in which changes in the extrinsic parameters
are caused by the host device, and new extrinsic parameters and
corresponding new ultrasound state identifiers are communicated to the
scanning device across an asynchronous command connection.
38. A system as in claim 36 in which said extrinsic parameters include
parameters selected from the group consisting of: pulse repetition
frequency, magnification factor, and Color Doppler region of interest.
Description
FIELD
This patent specification relates to the field of ultrasound information
processing systems. In particular, the present invention relates to an
architecture for a flexible, high-performance, reduced cost, and
upgradable ultrasound information processing system and a standardized
protocol for allowing ready interoperability of ultrasound devices within
and across such systems.
BACKGROUND
Ultrasound imaging systems are advantageous for use in medical diagnosis as
they are non-invasive, easy-to-use, and do not subject patients to the
dangers of electromagnetic radiation. An ultrasound imaging system
transmits sound waves of very high frequency (e.g., 2 MHz to 10 MHz) into
the patient and processes echoes reflected from structures in the
patient's body to form two dimensional or three dimensional images. Many
ultrasound information processing algorithms are known in the art, for
example, echo mode ("B mode") processing algorithms, motion mode ("M
mode") processing algorithms, Doppler shift echo processing algorithms,
color flow mode processing algorithms, and others.
Present day ultrasound imaging systems typically comprise a host computer
or processor that is responsible for user interface control, image
display, and overall system control. These systems further typically
comprise one or more peripheral devices, such as ultrasound scanner/probe
assemblies and digital signal processors, that perform specific ultrasound
information processing functions. As described in Ser. No. 09/224,635,
supra, prior art ultrasound architectures generally use custom,
proprietary connections and protocols for transferring information among
the different ultrasound system elements. Connections between the
ultrasound system elements are typically implemented using hardware
parallel busses that, while at least partially conforming to an industrial
standard such as the VME standard, are otherwise uniquely adapted for the
specific hosts, scanners, digital signal processors, etc. being provided
by the specific system manufacturer. Ultrasound algorithms, such as those
embodied in the scan sequences of an ultrasound scanner, are typically
stored in custom hardware memory maps within that scanner, and can only be
changed or upgraded if the specific memory map architecture of that
specific scanner is known.
Accordingly, in the case of the prior art architectures supra, it is either
impossible or impractical to substitute a first manufacturer's ultrasound
component (such as a host, scanner, or digital signal processor) into a
second manufacturer's ultrasound processing system. As a result, it is
less feasible for the purchaser of an ultrasound processing system to
easily upgrade to newer, better, and/or less expensive ultrasound
components that are being continually developed in the industry. It is
also less feasible for the purchaser to upgrade to new ultrasound
information processing algorithms or scanning strategies as they are
developed in the industry.
Accordingly, it would be desirable to provide an ultrasound communication
method that, upon being followed by a plurality of ultrasound component
manufacturers, would allow for the construction of an ultrasound
information processing system that can readily use ultrasound components
or algorithms from different manufacturers or different models.
It would be further desirable to provide an ultrasound communication method
in which a first ultrasound device may change internal parameters of a
second ultrasound device without requiring knowledge of the specific
internal memory map of the second ultrasound device.
It would be further desirable to provide an ultrasound communication method
that is based on a serial bus architecture for allowing flexibility,
scaleability, and plug-and-play simplicity in an ultrasound information
processing system.
It would be still further desirable to provide an ultrasound communication
method that properly synchronizes ultrasound devices coupled to the serial
bus.
It would be even further desirable to provide an ultrasound communication
method that permits ready communications between any two devices connected
to the serial bus, without requiring their application layer programs to
contain detailed serial bus communications instructions.
SUMMARY
In accordance with a preferred embodiment, an ultrasound information
processing system is provided comprising a plurality of ultrasound devices
coupled to a high-speed serial ultrasound information bus, each ultrasound
device comprising a program for communicating with other ultrasound
devices according to an ultrasound information exchange protocol. The
ultrasound information exchange protocol represents a standard,
lightweight, connection-oriented protocol adapted for efficient transfer
of ultrasound information among different devices on the ultrasound
information bus.
Each ultrasound device in the ultrasound information processing system
comprises an application layer program for performing an ultrasound
function and a lower protocol layer program for receiving and sending data
across the ultrasound information bus. The lower protocol layer program is
preferably a standard, off-the-shelf program that implements IEEE
1394/1995, USB, Fibre Channel, or other high-speed serial bus protocol
providing both isochronous and asynchronous data delivery. An ultrasound
information exchange protocol (UIEP) program is adapted to receive a
communication request from the application layer, open a
connection-oriented communication session with the requested ultrasound
device, and transfer ultrasound information between the devices during the
communication session. Advantageously, any ultrasound device manufacturer
provided with the UIEP program may readily generate application layer code
capable of communicating with other manufacturers' ultrasound devices
across the ultrasound information bus, without requiring specific
knowledge of the internal structure of the other manufacturers' devices or
of the specific frame/packet structure of the UIEP/lower layer protocols
themselves.
In accordance with a preferred embodiment, the UIEP protocol comprises a
ultrasound transport protocol (UTP) layer for providing a reliable,
connection-oriented data delivery service between ultrasound ports of
different ultrasound devices. The UIEP protocol further comprises an
ultrasound service protocol (USP) for providing an interface between the
UTP layer and the application layer. The UIEP protocol provides for a bulk
image data type whose frames are transmitted isochronously between
ultrasound devices, and an asynchronous command data type whose frames are
transmitted asynchronously between ultrasound devices. Separate ports are
provided on each ultrasound device for handling the bulk image data and
the asynchronous command data.
In a preferred embodiment, ultrasound scanning devices conforming to the
UIEP protocol comprise at least one memory block that may be loaded and
managed by a remote host device, wherein the remote host device is not
required to have knowledge of the specific memory architecture of the
scanning device. In particular, the UIEP provides for communication and
management of memory addresses in a logical address space, wherein
physical memory addresses in the scanning device are derived locally by
combining (e.g. adding) logical address offsets with a corresponding
hardware address.
According to a preferred embodiment, the UIEP compensates for the pipelined
nature of serial bus communications by allowing proper inter-device
synchronization as bulk image data is transferred and processed. An
ultrasound source device, such as a scanner, generates image data in
accordance with (a) intrinsic parameters that are included within each
bulk data frame, together with (b) extrinsic parameters that are not
included within each bulk data frame. However, for each bulk data frame,
the host device requires knowledge of both the intrinsic and extrinsic
parameters to properly process the frame. According to a preferred
embodiment, the scanner attaches an ultrasound state identifier to each
bulk image frame, which is then used by the host device to locate the
correct set of extrinsic parameters for processing that frame. Sets of
extrinsic parameters and their corresponding ultrasound state identifiers
are communicated between the scanner and host using their asynchronous
command ports or broadcast ports as the extrinsic parameters are varied.
Synchronization, i.e. proper matching of the bulk data frames with the
proper set of extrinsic parameters, is thereby preserved as the extrinsic
parameters are varied.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an ultrasound information processing system in accordance with
a preferred embodiment;
FIG. 2 shows an ultrasound information exchange protocol stack in
accordance with a preferred embodiment;
FIG. 3 shows a block diagram of ultrasound ports and connections for a
plurality of ultrasound devices in accordance with a preferred embodiment;
FIG. 4 shows an ultrasound transport protocol packet in accordance with a
preferred embodiment;
FIG. 5 shows an ultrasound service protocol frame carrying one or more
asynchronous commands in accordance with a preferred embodiment;
FIG. 6 shows an ultrasound service protocol frame carrying bulk ultrasound
image data in accordance with a preferred embodiment;
FIG. 7 shows a header of an ultrasound service protocol frame of FIG. 6;
FIG. 8 shows a conceptual diagram of data flow that occurs during
synchronization of two ultrasound devices in accordance with a preferred
embodiment;
FIG. 9 shows steps taken during synchronization of two ultrasound devices
in accordance with a preferred embodiment;
FIG. 10 shows a conceptual diagram of data flow that occurs during
synchronization among four ultrasound devices in accordance with a
preferred embodiment; and
FIG. 11 shows steps taken during synchronization among four ultrasound
devices in accordance with a preferred embodiment.
DETAILED DESCRIPTION
FIG. 1 shows an ultrasound information processing system 100 in accordance
with a preferred embodiment. Ultrasound information processing system 100
comprises an ultrasound information bus 102 and a plurality of ultrasound
devices 104-114 coupled thereto. The ultrasound information bus 102 is a
high-speed serial bus operating in accordance with any of a variety of
high-speed serial bus protocols, such as IEEE 1394/1995 ("Firewire"), USB,
Fibre Channel, or others. In general, the high-speed serial bus protocol
may be any protocol that provides for both isochronous and asynchronous
data transfer, as described in Ser. No. 09/224,635, supra.
The ultrasound devices 104-114 shown in FIG. 1 may be any of a variety of
device combinations for achieving a desired ultrasound information
processing functionality. For example, ultrasound device 104 may be a host
computer for providing overall system control, user display, user input,
and image processing functions. Ultrasound device 106 may be a
scanner/probe assembly for generating raw ultrasound image data.
Ultrasound devices 108-114 may be any of a variety of auxiliary ultrasound
devices. By way of example and not by way of limitation, such auxiliary
ultrasound devices may include: specialized signal processing devices;
ultrasound storage devices; auxiliary displays; hot-swappable backup
devices; auxiliary system control devices, or generally any device
performing a functionality useful to an ultrasound information processing
system.
Although physical coupling between each ultrasound device and the
ultrasound information bus 102 is indicated in FIG. 1, it would be within
the scope of the preferred embodiments for one or more of the ultrasound
devices to wirelessly communicate with the ultrasound information bus 102.
Additionally, although the ultrasound information bus 102 of FIG. 1 is
shown as a local area network, it would be within the scope of the
preferred embodiments for ultrasound information bus 102 to be implemented
as a wide area network coupling a plurality of local area networks using,
for example, ATM or frame relay links. Thus, the physical implementations
of ultrasound information bus 102 may take a variety of forms, provided
that high-speed isochronous data transfer and asynchronous data transfer
is permitted between any two of the ultrasound devices 104-114.
According to a preferred embodiment in which the features and advantages of
the architecture and protocol described infra are used, a system purchaser
may insert upgraded, additional, or replacement ultrasound devices from
any manufacturer into the ultrasound information processing system by
simply "plugging them in" to the ultrasound information bus 102. As an
example, a purchaser may have purchased a "bare bones" system comprising
only a host and a scanner from a first ultrasound manufacturer a while
ago, but may now wish to include a new, specialized, intermediate
processing device that has just been released by a second ultrasound
manufacturer. According to the preferred embodiments, the user may (a)
plug the intermediate processing device into the ultrasound information
bus 102, (b) redirect the output of the scanner to an input of the
intermediate processing device, and (c) redirect the input of the host to
an output of the intermediate processing device. An entire new layer of
ultrasound functionality (e.g., a special kind of real-time filtering or
the like) has thus been added to the overall system, without requiring
substantial costs in modifying or replacing existing system components.
FIG. 2 shows a block diagram of an exemplary ultrasound device 202 and a
protocol stack 208 according to a preferred embodiment. The ultrasound
device 202 comprises a hardware component 204 and a software component 206
for achieving any of the ultrasound functionalities described supra. The
software component 206 comprises a lower protocol layer 210, an ultrasound
information exchange protocol layer (UIEP) 212, and an ultrasound
application layer 214.
The lower protocol layer 210 is adapted to implement communications between
ultrasound devices in accordance with one of the high-speed serial bus
protocols (e.g., IEEE 1394/1995, USB, Fibre Channel, etc.) described
supra. The lower protocol layer 210 is preferably implemented using
off-the-shelf application programming interfaces (APIs) known in the art.
By way of non-limiting example, for a situation in which the ultrasound
device 202 is based on the Microsoft Windows NT.RTM. platform and an IEEE
1394 serial bus is used for ultrasound information bus 102, the lower
protocol layer program may comprise Microsoft's FireWire API for Windows
NT.RTM..
The ultrasound application layer 214 represents the implementation of any
ultrasound application program (e.g., host programs, DSP programs, scanner
programs, storage programs, etc.) as appropriate for the ultrasound device
in question. More generally, ultrasound application layer 214 corresponds
to any program associated directly or indirectly with devices that detect,
process, store, analyze, display, or perform any other activity associated
with ultrasound information.
In accordance with a preferred embodiment, the UIEP 212 lies between the
lower protocol layer 210 and the application layer 214. The UIEP 212 is a
lightweight protocol that provides a standard communications interface
between any two ultrasound applications communicating across any
high-speed packetized serial bus capable of supporting asynchronous and
isochronous data transfer. In addition to being a standardized protocol
for enabling ultrasound device interoperability, the UIEP is specially
adapted for efficient transport and processing of ultrasound information
by its respective source and destination devices and algorithms. As
indicated in FIG. 2, UIEP 212 comprises an Ultrasound Transport Protocol
(UTP) layer 216 and an Ultrasound Service Protocol (USP) layer 218.
Ultrasound Transport Protocol (UTP) layer 216 is adapted to provide a
reliable, connection-oriented data delivery service between ultrasound
ports of different ultrasound applications. The UTP layer establishes
connection-oriented sessions over which data is reliably transmitted
during the period that the session is open. The UTP layer establishes
connections, negotiates session parameters, manages the transfer of data,
and terminates the connection between ultrasound ports. A UTP layer
program running on ultrasound device 202 comprises a set of application
program interface routines (APIs) that are accessible by the application
layer or the USP layer. A set of exemplary UTP APIs are included infra in
a section entitled "Sample Ultrasound Transport Protocol Layer APIs."
Using UTP API routines, an ultrasound application layer program may
instantiate a virtual connection between predetermined ports of respective
ultrasound devices that are created and managed at the UTP layer level.
The predetermined ports may be either bidirectional or unidirectional. In
accordance with the UIEP protocol, the set of predefined ports includes,
by way of example and not by way of limitation: an image data port for
receiving or transmitting bulk ultrasound image data; a hardware status
port for providing a hardware status; a command/control port for receiving
commands or control parameters from another ultrasound application; and
other ports that may be defined in accordance with the UIEP as other needs
may arise.
Table 1 shows an exemplary set of UTP ports according to a preferred
embodiment. Table 2 shows an exemplary set of port status indicators that
may be returned from a UTP API. As will be described infra with respect to
the UTP packet structure, 8 bits are reserved for the ultrasound port ID
in each UTP segment, and therefore up to 256 UTP ports may be defined.
TABLE 1
Ultrasound Transport Layer Ports
PORT
NUMBER PORT NAME DESCRIPTION
0 UTP_RESERVED_PORT Reserved for UTP
communication
1 UTP_RESET_PORT Reset device
2 UTP_RESET_ACK_PORT Reset acknowledgment
3 UTP_COMMAND_PORT Send or receive commands
4 UTP_ACK_PORT Send or receive
acknowledgements
5 UTP_STATUS_PORT Request or receive status
6 UTP_BULK_DATA_PORT Send or receive bulk data
7-255 RESERVED
TABLE 2
Ultrasound Transport Layer Port Status Indicators
PORT STATUS DEFINITION
UTP_OK Operation completed successfully
UTP_INVALID_PARAMETER One or more parameters is invalid
UTP_INIT_TIMEOUT Initialization attempt timed out
UTP_ALREADY_INITIALIZED Initialization attempted more than
once
UTP_LINK_FAILURE Link failure detected during
operation
UTP_INSUFFICIENT_MEMORY Not enough memory for the
operation
UTP_UNKNOWN_PORT_ID Port ID specified is not a
UTP_PORT
UTP_INVALID_HANDLE Handle specified was not for an
open port
UTP_PORT_NOT_OPEN Port had not yet been opened on
the other end
UTP_PORT_ALREADY_OPEN Port already opened for the same
direction
UTP_INVALID_REQUEST Wrong port type for requested
operation
UTP_PORT_BUSY Attempt to send when previous
send still active
UTP_NO_BUFFER No BULK DATA buffer has been
allocated
UTP_BUFFER_TOO_SMALL BULK DATA buffer too small for
data received
UTP_BUFFER_OVERRUN Some un-received BULK DATA in
buffer overwritten
Ultrasound Service Protocol (USP) layer 218 is adapted to provide an
interface between the ultrasound application layer 214 and the UTP layer
216, providing a set of routines that may be invoked in order to transfer
ultrasound information between the application layers of any two
ultrasound devices coupled to the ultrasound information bus. From
ultrasound application programmer's perspective, i.e., from the
perspective of an industry device or algorithm manufacturer, the USP
defines a set of APIs that may be called by a source ultrasound
application in communicating with a destination ultrasound application
provided by the same or different manufacturer. The ultrasound information
being communicated is passed through the source ultrasound port, across
the UTP connection, to the destination ultrasound port at the other end of
the UTP connection, and finally to the destination application. Responsive
to the ultrasound information communicated, the source ultrasound
application may expect the destination ultrasound application at the other
end of the UTP connection to properly interpret, act upon, and/or respond
to that ultrasound information.
In accordance with a preferred embodiment, two major types of USP messages
are defined in the UIEP specification: a bulk image data type, and an
asynchronous message type. The bulk image data type is specially formatted
for transferring in an efficient format bulk ultrasound information such
as B-mode data, Color Doppler data, M-mode data, Spectral Doppler data,
ECG data, or some other ultrasound data type. The asynchronous message
type is flexibly formatted for messages other than bulk image data types,
such as scan identifications, commands, addresses and address offsets,
statuses, timers, hardware identifiers, and the like. A set of exemplary
USP APIs is included infra in a section entitled "Sample Ultrasound
Service Protocol Layer APIs."
FIG. 3 shows a block diagram of an ultrasound information processing system
302 with reference to the UTP ports and connections that may be defined
therein. FIG. 3 shows a first ultrasound device 304 (for example, a host
computer), a second ultrasound device 306 (for example, a scanning
device), and a third ultrasound device 308 (for example, an intermediate
ultrasound processor) each coupled to the ultrasound information bus 102.
The ultrasound devices 304, 306, and 308 comprise UTP port tables 310,
312, and 314, respectively. According to a preferred embodiment, each UTP
port table comprises, for each of the other ultrasound devices with which
a connection-oriented communication session connection has been
established, a complete set of the UTP port types that are indicated in
Table 1, supra. The UTP port tables may be completely pre-established, or
may be incrementally constructed as connection requests are made.
In the example of FIG. 3 in which the first ultrasound device 304 is a host
computer and the second ultrasound device 306 is a scanning device, a
dotted line 316 is drawn representing a virtual connection existing
betw