Monitoring peripheral transactions

US10684906B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10684906-B2
Application numberUS-201615183613-A
CountryUS
Kind codeB2
Filing dateJun 15, 2016
Priority dateJun 15, 2016
Publication dateJun 16, 2020
Grant dateJun 16, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A communications link between a computing device and an external device is monitored. A driver for the communications link is executed on the computing device. The driver is configured to monitor data traffic over the communications link. Data indicative of the monitored data traffic is received from the driver. The data is sent to an analysis function configured to identify a condition of the communications link based on accumulated data indicative of the data traffic. Data indicative of an identified condition of the communications link is received from the analytics function. An indication of the identified condition is rendered on a display device of the computing device.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing device comprising: at least one processor; and at least one memory in communication with the at least one processor, the at least one memory having stored thereon computer readable instructions that, when executed by the computing device, cause the computing device to at least: execute a driver for a communications link between the computing device and an external device, wherein the driver is configured to collect error information generated on the communications link comprising counts of handshake packets, wherein each of the handshake packets is associated with one of a plurality of handshake values, wherein the driver includes a counter associated with each of the plurality of handshake values, and wherein the driver collects error information by incrementing a counter that corresponds to a handshake value of a received handshake packet; receive, from the driver, the counts of handshake packets; send the counts of handshake packets to an analytics engine configured to identify a condition of the communications link based at least in part on the counts of handshake packets and historical counts of handshake packets; receive, from the analytics engine, data indicative of an identified condition of the communications link; and in response to receiving the data indicative of the identified condition of the communications link, render, on a display device of the computing device, an indication of the identified condition. 2. The computing device according to claim 1 , wherein the data indicative of an identified condition comprises a predicted cause of a failure associated with the communications link. 3. The computing device according to claim 2 , wherein the predicted cause of a failure is determined based on a failure prediction model. 4. The computing device according to claim 3 , wherein the failure prediction model is based on a Naive Bayes classifier. 5. The computing device according to claim 1 , wherein the communications link is Universal Serial Bus (USB), and wherein the handshake packets comprise an ACK packet, a NAK packet, a STALL packet, and a NYET packet. 6. The computing device according to claim 1 , further comprising computer readable instructions that, when executed by the computing device, cause the computing device to at least send the data indicative of the data traffic to an off-device service via a communications network. 7. A method for monitoring a communications link between a computing device and an external device, the method comprising: executing a driver for the communications link on the computing device, wherein the driver is configured to collect error information generated on the communications link comprising counts of handshake packets, wherein each of the handshake packets is associated with one of a plurality of handshake values, wherein the driver includes a counter associated with each of the plurality of handshake values, and wherein the driver collects error information by incrementing a counter that corresponds to a handshake value of a received handshake packet; receiving, from the driver, the counts of handshake packets; sending the counts of handshake packets to an analysis function configured to identify a condition of the communications link based at least in part on counts of handshake packets and accumulated counts of handshake packets of the data traffic; receiving, from the analysis function, data indicative of an identified condition of the communications link; and rendering, on a display device of the computing device, an indication of the identified condition. 8. The method of claim 7 , wherein the identified condition is an error condition of the communications link. 9. The method of claim 7 , further comprising receiving, from the analysis function, data indicative of a recommended remedial action associated with the identified condition of the communications link. 10. The method of claim 7 , wherein the analysis function is trained using a machine learning function. 11. The method of claim 7 , wherein the analysis function comprises a probabilistic classifier. 12. The method of claim 7 , further comprising sending the counts of handshake packets to an off-device service via a communications network. 13. The method of claim 12 , wherein the off-device service is configured to receive counts of handshake packets from a plurality of computing devices. 14. The method of claim 13 , wherein the off-device service is configured to analyze the counts of handshake packets from the plurality of computing devices to identify the condition based on a probabilistic pattern matching function. 15. The method of claim 14 , wherein the accumulated data comprises one or more handshake packets for a Universal Serial Bus (USB) protocol. 16. The method of claim 14 , wherein the counts of handshake packets are counted in one or more counters implemented as 64 bit counters. 17. A computer-readable storage medium having stored thereon computer readable instructions for a driver for a Universal Serial Bus (USB) communications link on a computing device, the computer-readable instructions comprising instructions that upon execution on a computing device, at least cause: monitoring USB data traffic over the USB communications link, the USB data traffic comprising handshake packets; accumulating error information generated on the communications link comprising counts of handshake values, wherein each of the handshake packets is associated with one of a plurality of handshake values, wherein the driver includes a counter associated with each of the plurality of handshake values, and wherein the driver counts handshake values by incrementing a counter that corresponds to a handshake value of a received handshake packet; receiving, via a programming interface, first electronic messages that encode identifiers indicative of requests for the accumulated counts of handshake values of the monitored USB data traffic; and in response to receiving one of the first electronic messages, sending, via the programming interface, second electronic messages indicative of the accumulated counts of handshake values of the monitored USB data traffic. 18. The computer-readable medium of claim 17 , further comprising computer-readable instructions comprising instructions that upon execution on the computing device, at least cause: receiving a third electronic message that encodes a command to clear the accumulated data; and in response to receiving the third electronic message, clearing the counters associated with each of the plurality of handshake values of the monitored USB data traffic. 19. The computing device according to claim 1 , additionally causing the computing device to: send voltage, current, temperature, temperature changes, vibration, or noise information to the analytics engine, wherein the data indicative of the identified condition of the communications link is based in part on the sent information.

Assignees

Inventors

Classifications

  • G06F11/349Primary

    for interfaces, buses · CPC title

  • where the program performs an interfacing function, e.g. device driver (G06F13/105 takes precedence; contention policies within device drivers G06F9/4881; scheduling within device drivers G06F9/52) · CPC title

  • where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems (testing or monitoring of control systems or parts thereof G05B23/02) · CPC title

  • in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices · CPC title

  • in a remote unit communicating with a single-box computer node experiencing an error/fault (remote testing G06F11/2294) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10684906B2 cover?
A communications link between a computing device and an external device is monitored. A driver for the communications link is executed on the computing device. The driver is configured to monitor data traffic over the communications link. Data indicative of the monitored data traffic is received from the driver. The data is sent to an analysis function configured to identify a condition of the …
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/349. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 16 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).