Universal Serial Bus (USB) is a technology that enables users to interact with a specific device for a specific function. USB supports a multitude of devices, ranging from simple devices such as keyboards, and mice, to more complicated devices such as game controllers, digital cameras, printers, network adapters, external storage — the list goes on. Use varies from basic functions, such as typing, all the way to transferring large files to/from external storage devices.
Several different USB modes are available today:
- USB Low Speed (1.5 Mbit/s)
- USB Full Speed (12 Mbit/s), also known as USB HID
- USB High Speed (480 Mbit/s), also known as USB 2.0
- USB SuperSpeed (5 Gbit/s), also known as USB 3.0
- USB SuperSpeed+ (10 Gbit/s)
USB is used most commonly for keyboard and mouse input, or alternatively, keyboard and touchscreen input instead of mouse. These devices are classified as Human Interface Devices (HID). USB HID is designed to enable a user to interact with a system by using a USB keyboard and pointing device that use very little bandwidth, typically way less than 12 Mbit/s. On KVM (Keyboard, Video, Mouse) switches you will find that most will have two USB HID ports for a keyboard and mouse, and additional ports for USB High Speed devices to connect other, faster devices like printers or storage.
The USB HID ports found on most KVM switches analyze the incoming data flow from the attached USB keyboard / mouse to look for a sequence of key strokes that prompt the KVM switch to take a particular action (such as bringing up an OSD, switching CPU ports, enabling scanning, etc.). Since this USB HID traffic is being monitored at lower rates, it is nearly impossible to plug a USB High Speed device into the HID port and expect that the high-speed device will function properly. The USB HID ports on a KVM switch only expects to see a USB keyboard and USB mouse — nothing more. Each USB device, including the keyboard / mouse, has properties associated to it that include but are not limited to:
- Device description
- Vendor ID
- Product ID
- Device class
It is very important in a KVM application that these USB device properties are correctly transferred to the host computer. The proper drivers / software need to be loaded upon USB enumeration. USB enumeration is done between the time of plugging the USB device into the target computer / server, and the time that it is recognized; enumeration time can vary between 1 and 16 seconds depending on the OS and USB device. If the device properties are not properly transferred to the computer / server, then the chances of the device working is slim to none.
On Black Box KVM products, we “trick” the computer / server into thinking a generic USB keyboard and a generic USB mouse are always connected whether or not they are plugged into the KVM console. This feature is called USB emulation. USB emulation will ghost the generic keyboard and mouse on the KVM switch so the user can quickly switch computer ports without having to re-enumerate the USB devices every time they establish a new connection. We also have proprietary firmware in our KVM hardware that can properly negotiate the communication between the console keyboard and mouse and the attached computer or server. USB emulation is geared more towards wired devices instead of wireless devices; however, in some cases wireless keyboards and mice will work when connected to the KVM switch.
You may find some wireless keyboards and mice do not work with KVM switches due to a composite wireless transmitter trying to send both keyboard / mouse packets into a single USB HID port on the KVM switch. It depends on the wireless device manufacturer, how they prepare their USB packets before transmission, and the way they follow the USB specification. One thing to keep in mind is that not all USB HID devices will work on a KVM device as it would on a regular computer because of the way the device negotiates with the switch and the usage of the USB device properties (vendor ID, product ID, device class, etc.). The KVM switch does not have all of the supporting drivers like a regular operating system, so with it being pre-coded into the firmware, you will sometimes see compatibility issues with a very small percentage of USB HID devices in the market.
The next most common usage of USB is related to transferring files to and from a computer / server system from a thumb drive or external storage device. This type of application typically uses USB High Speed at 480 Mbit/s, and on newer systems USB SuperSpeed so that the file(s) can be transferred faster. Black Box offers KVM switches that can support these types of devices; however these USB High Speed ports do not monitor the USB data flow for keyboard hotkeys. If you attempt to control the KVM switch functions using keyboard hotkeys while the device is plugged into the USB High Speed port, it will never work. You have to use the USB HID ports for this.