Claims
- 1. A gaming machine comprising:
a master gaming controller adapted for i) generating a game of chance played on the gaming machine by executing a plurality of gaming software modules and ii) communicate with one or more USB (Universal Serial Bus) gaming peripherals using USB-compatible communications including a USB vendor-specific class protocol; the one or more of the USB gaming peripherals coupled to the gaming machine and in communication with the master gaming controller wherein a first USB-compatible peripheral device on the USB gaming peripherals is capable of communicating with the master gaming controller using the USB vendor-specific class protocol; a gaming operating system on the master gaming controller designed for loading gaming software modules into a Random Access Memory (RAM) for execution from the storage device and for unloading gaming software modules from the RAM; one or more host processes loaded by the gaming operating system designed for communicating with the USB-compatible peripheral device using the USB vendor-specific class protocol wherein using the USB vendor-specific class protocol the gaming machine is capable of determining a USB class of the first USB-compatible peripheral device without using a vendor identification, a product identification or a serial number in a descriptor set conveyed to the one or more host processes by the first USB-compatible peripheral device.
- 2. The gaming machine of claim 1, wherein the USB class of the first USB-compatible peripheral device is conveyed using class identification information.
- 3. The gaming machine of claim 2, wherein the class identification information is stored in one or more string identifiers.
- 4. The gaming machine of claim 2, wherein the class identification information is conveyed to the one or more host processes in a USB interface descriptor set.
- 5. The gaming machine of claim 4, wherein the class identification information is conveyed in an iInterface field of the USB interface descriptor set.
- 6. The gaming machine of claim 5, wherein the interface field provides an index to a string descriptor.
- 7. The gaming machine of claim 2, wherein the USB vendor-specific class protocol specifies a format and information in the class identification information.
- 8. The gaming machine of claim 2, wherein the class identification information allows for two USB peripheral devices with different product identification information and different vendor identification information to indicate that they are capable of communicating using the USB vendor-specific class protocol.
- 9. The gaming machine of claim 1, USB-compatible peripheral using the USB vendor-specific class protocol further comprises:
two or more USB features.
- 10. The gaming machine of claim 9, wherein one of the USB features is designed to handle commands and messages common to all of the USB features.
- 11. The gaming machine of claim 9, wherein at least one of the USB features is designed to handle commands and messages specific to itself.
- 12. The gaming machine of claim 9, wherein each of USB features use a separate interface.
- 13. The gaming machine of claim 9, wherein each of the USB features is assigned a unique feature number.
- 14. The gaming machine of claim 1, further comprising:
a second USB-compatible peripheral device designed to communicate with the master gaming controller using the USB vendor-specific class protocol wherein one or more of the USB features, the vendor identification, the product identification and the serial number are different between the first USB-compatible peripheral device and the second USB-compatible peripheral device.
- 15. The gaming machine of claim 1, further comprising:
one or more USB-compatible peripheral devices designed to communicate with the master gaming controller using a standard USB class protocol.
- 16. The gaming machine of claim 1, wherein the standard USB class protocol is selected from the group consisting of an audio class, a printer class, a mass storage class, a DFU (Device Firmware Upgrade) class and a HID class (Human Interface Device).
- 17. The gaming machine of claim 1, wherein at least one of the USB gaming peripherals is capable of performing a CRC check on a portion of firmware executed by the USB gaming peripherals.
- 18. The gaming machine of claim 1, wherein the master gaming controller is capable of generating a request for a CRC check of a portion of firmware on the USB gaming peripherals.
- 19. The gaming machine of claim 18, wherein the request for the CRC check comprises one or more of a starting address in the firmware and an ending address in the firmware.
- 20. The gaming machine of claim 19, wherein one or more of the starting address and the ending address are generated randomly by the master gaming controller.
- 21. The gaming machine of claim 18, wherein a value of the CRC check returned in response to the CRC request is used to authenticate a peripheral device.
- 22. The gaming machine of claim 1, wherein the master gaming controller is further designed to generate and to send a message to the First USB-compatible peripheral device for one or more of the following commands 1) requesting a status, 2) resetting a USB feature, 3) clearing a status, 4) requesting a self-test and 5) requesting a specific function of the USB feature.
- 23. The gaming machine of claim 1, wherein the USB gaming peripherals are capable of rejecting a command received from the master gaming controller.
- 24. The gaming machine of claim 1, wherein the command is rejected for one or more of the following: 1) an invalid request type, 2) an invalid request, 3) an invalid interface number, 4) a length mismatch, 5) an unknown command, 6) invalid data, 7) message too long, 8) a USB feature addressed in the command is busy, 9) the USB feature addressed is in a tilt and 10) the USB feature is in a self-test.
- 25. The gaming machine of claim 1, wherein the USB gaming peripherals are capable of sending one or more of the following status messages to the master gaming controller 1) normal status, 2) self-test in progress, 3) self-test complete and 4) tilt.
- 26. The gaming machine of claim 1, wherein the USB gaming peripherals are capable of sending one of more of the following status messages to the master gaming controller 1) data RAM hardware failure, 2) code memory hardware failure, 3)I2C hardware failure, 4) program CRC error during initialization and 5) program CRC error outside of initialization.
- 27. The gaming machine of claim 1, wherein the USB gaming peripherals are capable of clearing a status.
- 28. The gaming machine of claim 1, wherein the USB vendor-specific class protocol further comprises:
a base protocol for defining message handling relating to peripheral device functionality common to a plurality of peripheral devices; and one or more feature-specific protocol extensions for defining message handling specific to a USB feature.
- 29. The gaming machine of claim 28, wherein each feature-specific protocol extension defines feature-specific messages.
- 30. The gaming machine of claim 29, wherein when one of the feature-specific messages is modified, the base protocol does not change.
- 31. The gaming machine of claim 28, wherein the base protocol defines that each USB feature is mapped to a single USB interface.
- 32. The gaming machine of claim 28, wherein the base protocol defines that each peripheral device supporting the base protocol include:
a first USB feature and a corresponding first USB interface for communicating common messages defined by the base protocol; and at least a second USB feature and a corresponding second USB interface for communicating messages defined by one of the feature-specific protocol extensions.
- 33. The gaming machine of claim 28, wherein the base protocol allows a peripheral device to communicate using a standard USB class protocol.
- 34. The gaming machine of claim 33, wherein the standard USB class protocol is selected from the group consisting of an audio class, a printer class, mass storage class, DFU (Device Firmware Upgrade) class and a HID class (Human Interface Device).
- 35. The gaming machine of claim 28, wherein the base protocol defines that each USB feature is assigned a unique feature number.
- 36. The gaming machine of claim 28, wherein the base protocol defines information format and content for one or more of a device descriptor set, a configuration descriptor set, an interface descriptor set, a functional descriptor set and a feature descriptor set.
- 37. The gaming machine of claim 1, wherein at least one of the USB gaming peripherals includes a USB DFU-compatible peripheral device.
- 38. The gaming machine of claim 37, wherein the USB DFU-compatible peripheral device is designed to self-initialize without a portion of its run-time descriptor set.
- 39. The gaming machine of claim 37, wherein the USB DFU-compatible peripheral device is designed to self-initialize without a portion of firmware required to operate the at least one USB DFU-compatible peripheral device.
- 40. The gaming machine of claim 37, wherein the at least one USB DFU-compatible peripheral device is designed to self-initialize in a DFU mode.
- 41. The gaming machine of claim 37, wherein the portion of firmware required to operate the at least one USB DFU-compatible peripheral device includes a run-time descriptor set.
- 42. The gaming machine of claim 37, wherein the gaming machine is capable of determining the firmware to download to the USB DFU-compatible peripheral device without using a vendor identification, a product identification or a serial number in a descriptor set conveyed to the one or more host processes by the USB DFU-compatible peripheral device.
- 43. The gaming machine of claim 37, wherein the one or more host processes is further designed to enumerate the USB DFU-compatible peripheral device.
- 44. The gaming machine claim 1, further comprising:
at least one USB DFU-compatible peripheral device designed to self-initialize in a USB DFU-mode without entering a USB run-time mode.
- 45. The gaming machine of claim 1, wherein the master gaming controller is further designed to enumerate peripheral devices located on the one or more USB gaming peripherals.
- 46. The gaming machine of claim 1, further comprising:
a firmware database.
- 47. The gaming machine of claim 46, wherein the firmware database includes at least a mapping of a firmware identifier to a particular instantiation of firmware.
- 48. The gaming machine of claim 1, wherein the one or more host processes are further designed to perform a CRC on firmware in the firmware database and to compare the CRC with a CRC value received from the First USB-compatible peripheral device.
- 49. The gaming machine of claim 1, further comprising:
one or more non-USB peripheral devices.
- 50. The gaming machine of claim 1, further comprising:
a USB stack loaded by the gaming operating system designed for providing a USB communication connection for each of the USB gaming peripherals.
- 51. The gaming machine of claim 1, wherein the gaming machine is capable of determining the gaming jurisdiction in which it is located.
- 52. The gaming machine of claim 1, wherein the gaming operating system is further designed to load USB drivers capable of communicating with USB features on the USB gaming peripherals.
- 53. The gaming machine of claim 1, wherein the gaming operating system is further designed to determine an identity of the First USB-compatible peripheral device and to verify that the First USB-compatible peripheral device is approved to operate on the gaming machine.
- 54. The gaming machine of claim 1, further comprising:
a USB-compatible host controller.
- 55. The gaming machine of claim 1, wherein the master gaming controller is further adapted for running one of feature client processes and USB driver processes that communicate with one of the USB features of the First USB-compatible peripheral device.
- 56. The gaming machine of claim 1, wherein the gaming machine is capable of enumerating each USB gaming peripheral to determine the capabilities of each of the USB gaming peripherals.
- 57. The gaming machine of claim 1, wherein the gaming machine is a mechanical slot machine, a video slot machine, a keno gaming machine, a lottery gaming machine, or a video poker gaming machine.
- 58. The gaming machine of claim 1, wherein the master gaming controller includes a memory storing software for encrypting, decrypting, or encrypting and decrypting the USB-compatible communications between the master gaming controller and at least one of the USB gaming peripherals.
- 59. The gaming machine of claim 1, wherein each USB gaming peripheral comprises:
a USB-compatible communication connection, one or more peripheral devices specific to each USB gaming peripheral wherein each peripheral device supports one or more USB features, and a USB peripheral controller designed or configured i) to control the one or more peripheral devices and ii) to communicate with the master gaming controller and peripheral devices using the USB-compatible communications.
- 60. The gaming machine of claim 59, wherein the USB peripheral controller includes a non-volatile memory arranged to store at least one of a) configuration parameters specific to the individual USB gaming peripheral and b) state history information for the USB game peripheral.
- 61. The gaming machine of claim 1, wherein each USB gaming peripherals includes one or more peripheral devices that are selected from a group consisting of lights, printers, coin hoppers, coin dispensers, bill validators, ticket readers, card readers, key-pads, button panels, display screens, speakers, information panels, motors, mass storage devices, reels, wheels, bonus devices, wireless communication devices, bar-code readers, microphones, biometric input devices, touch screens, arcade sticks, thumbsticks, trackballs, touchpads and solenoids.
- 62. The gaming machine of claim 1, wherein one or more of the USB gaming peripherals further comprise:
a USB-compatible device controller.
- 63. The gaming machine of claim 1, wherein one or more of the USB gaming peripherals further comprise:
a USB-compatible hub.
- 64. The gaming machine of claim 1, further comprising:
a storage device for storing the plurality of gaming software modules.
- 65. The gaming machine of claim 1, wherein the game of chance is selected from the group consisting of traditional slot games, video slot games, poker games, pachinko games, multiple hand poker games, pai-gow poker games, black-jack games, keno games, bingo games, roulette games, craps games, checkers, board games and card games.
- 66. The gaming machine of claim 1, wherein the first USB-compatible peripheral device is adapted for entering a tilt state when it does not receive a communication from the master gaming controller within a specified time period.
- 67. The gaming machine of claim 1, further comprising:
a second USB-compatible peripheral device; and a third USB-compatible peripheral device with a hardware configuration different from the second USB-compatible peripheral device wherein the second USB-compatible peripheral device and the third USB-compatible peripheral device both support a first feature-specific extension protocol.
- 68. The gaming machine of claim 1, wherein the USB vendor-specific class protocol is used by a plurality of different vendors that manufacture a plurality of different USB-compatible peripheral devices.
- 69. The gaming machine of claim 1, wherein the gaming machine is capable of performing hardware diagnostics and error resolution for one or more of the USB gaming peripherals using the USB vendor-specific class protocol.
RELATED APPLICATION DATA
[0001] A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
[0002] The present application claims priority under U.S.C. 120 from U.S. Pat. No. 10/246,367, filed on Sep. 16, 2002, and entitled, “USB DEVICE PROTOCOL FOR A GAMING MACHINE,” which is a continuation-in-part from U.S. patent application Ser. No. 10/214,255, filed on Aug. 6, 2002, titled “STANDARD PERIPHERAL COMMUNICATION”, which is a continuation of U.S. patent application Ser. No. 09/635,987, titled “STANDARD PERIPHERAL COMMUNICATION” filed on Aug. 9, 2000, which is a divisional application from U.S. patent application Ser. No. 09/414,659, titled “STANDARD PERIPHERAL COMMUNICATION” filed on Oct. 6, 1999, which is now U.S. Pat. No. 6,251,014; each of which is incorporated herein by reference.