interrupt-driven USB