Problem USB to problem klasy stosu, oraz uniwersalności portu jako takiego i szeregu funkcji PnP, które musisz w swoim procku zaimplementowć.
USB jako port komunikacyjny klasowo podobny jest do komunikacji Ethernetowej

, Może troszkę prostszy.
Pisanie tego typu drivera od podstaw w języku asm lub bascom jest możliwe , ale na pewno czasochłonne.
Sam port USB dzieli się na kilka grup prędkości i klasy urządzeń, więc dobrze trzeba się zastanowić nad zastosowaniami i sposobem realizacji.
Część urządzeń działa synchronicznie , a część asynchornicznie
Polecam
www.usb.org
Uważam że jeśli masz ochotę tylko na "podłączenie" do PC to kabelek USB -RS232 z "gotowymi" sterownikami - na początek wystarczy - urządzenie klasy CDC i oki

, a koszty rzędu 9 zł. a ciągle masz do czynienia z komunikacją szeregową