IP Library Granted Patent US 7,212,497
Granted Patent B2
US 7,212,497 · App. 09/741,405 · Granted May 1, 2007

Method and driver for detecting glitches

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,212,497
App. No.
09/741,405
Granted
May 1, 2007
Kind
B2
Abstract

A driver and methods therefore provide automated testing of USB client devices in real-time. The driver may use the layered driver or filter driver feature in Microsoft® Windows® Driver Model (WDM) layered architecture for the Microsoft Windows operating system. The driver may be inserted between the USB bus driver and the USB client driver stack. The driver may intercept, inspect, and modify the requests between the client drivers and the bus driver.

Claims (57)

1. A method of detecting glitches in an isochronous data transfer, comprising:

a filter driver providing real-time access to USB command and packet data traffic between a host and predetermined client device;

determining, by the filter driver, if transferred data in a packet is silence data, wherein silence data comprises rendered data to keep the data transfer full of data when an interval has no audio data, the silence data forming an irregularity in the data transfer, and wherein the filter driver is configured between a USB bus driver and a USB client driver stack;

monitoring, by the filter driver, the transferred data packets, the monitoring including examining a status of each data packet transfer between the host and client device; and

reporting a silence fault for user notification when the transferred data is silence data, wherein the silence fault comprises information to determine a frame number of an expected start frame of a next packet to be sent, and wherein determining the frame number of the expected start frame of the next packet to be sent is calculated from a start frame of the silence data packet causing the silence fault and a number of frames in the silence data packet.

2. The method of claim 1 further comprising:

determining if a data transfer request corresponding to the packet is an isochronous data transfer request;

determining if the data transfer request is being sent to the predetermined client device when the data transfer request is an isochronous data transfer request; and

attaching a callback notification to the data transfer request when the data transfer request is being sent to the predetermined client device, wherein the callback notification is configured to inform the filter driver that a completed data transfer request is to be processed by the filter driver.

3. The method of claim 1 further comprising:

determining a frame number of an expected start frame of the packet;

determining if a data transfer request corresponding to the packet is a first data transfer request;

when the data transfer request is not a first data transfer request,

determining a frame number of an actual start frame of the packet, and

determining if the frame number of the actual start frame is equal to the frame number of the expected start frame; and

reporting a stream fault for user notification when the frame number of the actual start frame is not equal to the frame number of the expected start frame.

4. The method of claim 3 further comprising reporting the expected start frame and the actual start frame.

5. The method of claim 1 further comprising reporting a start frame of the packet and a number of frames in the packet.

6. A filter driver comprising:

a request dispatch module for,

determining if a data transfer request corresponding to a packet is an isochronous data transfer request,

determining if the data transfer request is being sent to a predetermined client device when the data transfer request is an isochronous data transfer request, and

attaching a callback notification to the data transfer request when the data transfer request is being sent to the predetermined client device, wherein the callback notification is configured to inform a filter driver comprising request completion module that a completed data transfer request is to be processed by the request completion module, wherein the filter driver is configured between a USB bus driver and a USB client driver stack; and

the request completion module for,

determining a frame number of an expected start frame of the packet,

determining if a data transfer request corresponding to the packet is a first data transfer request, and

when the data transfer request is not a first data transfer request,

determining a frame number of an actual start frame of the packet, and

determining if the frame number of the actual start frame is equal to the frame number of the expected start frame, and

reporting a stream fault when the frame number of the actual start frame is not equal to the frame number of the expected start frame,

wherein the request completion module further for:

determining if transferred data in the packet is silence data, wherein silence data keeps the data transfer full of data when an interval has no audio data; and

reporting a silence fault for user notification when the transferred data is silence data, wherein the silence fault comprises information to determine a frame number of an expected start frame of a next packet to be sent, and wherein determining the frame number of the expected start frame of the next packet to be sent is calculated from a start frame of the silence data packet causing the silence fault and a number of frames in the silence data packet.

7. A filter driver comprising:

means for determining if transferred data in a packet is silence data, wherein silence data keeps the data transfer full of data when an interval has no audio data; and

means for reporting a silence fault for user notification when the transferred data is silence data, wherein the silence fault comprises information to determine a frame number of an expected start frame of a next packet to be sent, and wherein determining the frame number of the expected start frame of the next packet to be sent is calculated from a start frame of the silence data packet causing the silence fault and a number of frames in the silence data packet.

8. The filter of claim 7 further comprising:

means for determining a frame number of an expected start frame of the packet;

means for determining if a data transfer request corresponding to the packet is a first data transfer request;

means for determining a frame number of an actual stan frame of the packet and for determining if the frame number of the actual start frame is equal to the frame number of the expected start frame when the data transfer request is not a first data transfer request; and

means for reporting a stream fault when the frame number of the actual start frame is not equal to the frame number of the expected start frame.

9. A computer program product embodied on a tangible storage medium, the program comprising executable instructions that enable a computer to:

determine if transferred data in a packet is silence data, wherein silence data keeps the data transfer full of data when an interval has no audio data; and

report a silence fault for user notification when the transferred data is silence data, wherein the silence fault comprises information to determine a frame number of an expected start frame of a next packet to be sent, and wherein determining the frame number of the expected start frame of the next packet to be sent is calculated from a start frame of the silence data packet causing the silence fault and a number of frames in the silence data packet.

10. The computer program product of claim 9 further comprising executable instructions that enable a computer to:

determine if a data transfer request corresponding to the packet is an isochronous data transfer request;

determine if the data transfer request is being sent to a predetermined client device when the data transfer request is an isochronous data transfer request; and

attach a callback notification to the data transfer request when the data transfer request is being sent to the predetermined client device, wherein the callback notification is configured to inform a filter driver that a completed data transfer request is to be processed by the filter driver.

11. The computer program product of claim 9 further comprising executable instructions that enable a computer to:

determine a frame number of an expected start frame of the packet;

determine if a data transfer request corresponding to the packet is a first data transfer request;

when the data transfer request is not a first data transfer request,

determine a frame number of an actual start frame of the packet, and

determine if the frame number of the actual stan frame is equal to the frame number of the expected start frame; and

report a stream fault when the frame number of the actual start frame is not equal to the frame number of the expected start frame.

12. The computer program product of claim 11 further comprising executable instructions that enable a computer to report the expected start frame and the actual start frame.

13. The computer program product of claim 9 further comprising executable instructions that enable a computer to report a start frame of the packet and a number of frames in the packet.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050937/0001 →
RELEASE OF SECURITY INTEREST Recorded Aug 23, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 047243/0001 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jun 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 043079/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 2, 2016
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 038954/0001 →
SECURITY INTEREST Recorded May 12, 2016
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038669/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 4, 2013
From: INTEL CORPORATION
To: MICRON TECHNOLOGY, INC.
Reel/Frame 030747/0001 →