I'm interested in building what is essentially a USB 2 hub, except that it is programmable and conntrolled by a small embedded system running ARM or Atom under linux/android.
The goal is to have one port always appear as an upstream port and go to any normal computer system which would treat that port as a hub. The downstream ports would be seen by any regular endpoint device as a hub. In normal operation, the functionality would also work exactly as a hub. However, the embedded system could also do some of its "magic" to create some virtual devices which do not really exist, but the connected computer on the upstream port would see these as real devices. At times, one of the real downstream devices could be rerouted or used to change the behavior of the virtual devices. This would essentially marry KVM and HUB functionality without devices seeing anything except an ordinary hub.
I do not want to be stuck working on any of the hardware aspects if I can avoid it. I want to use standard off-the-shelf single board computers or computers on a module. I do not want to deal with my programming having to understand the rules of the hardware, e.g., the transaction translators and clocking should be able to function without designing hardware from scratch. I AM willing to use software to function to do things like pass data between upstream and downstream ports, or to send interrupts and resets.
I am looking at hardware such as this, which appears to contain all of the basics, including transaction translator:
http://www.microchip.com/wwwproducts/De ... ct=USB3315
Combine this with single board computers such as Raspberry Pi or any inexpensive SBC running any variant of Linux.
Does this sound feasible? Practical? Would interface between USB hardware such as listed above and either GPIO or UARTs be all that I need to at least create HUB functionality? I lack enough knowledge to know if simply tacking these USB devices onto a single board computer would succeed without other hardware needs.
USB PICs and the UBW
1 post • Page 1 of 1