Electronic – Building a USB 3.0 host device

usbusb-host

Two of my friends and I want to build a device that helps one to transfer data from one USB mass storage device to another using a a touch screen interface. We have worked on embedded projects before but they were much simpler and not related to USB. Therefore , we have started reading relevant material on USB. (Jan Axelson usb complete and USB mass Storage if it helps.)However, I feel this is really slowing us down.

We've only figured out a rough schematic of the project. We know that 2 hosts will be required for each mass storage device connected our device.Each of the host controllers will be connected to an MCU and a 3rd MCU will be required for the touch screen interface. However we can't move forward and tell what needs to be done next. We plan to use the TUSB7320 as the host controller. My question has a few parts:

  • How much time will this project take given our knowledge about USBs and our current approach?Can it be completed by March next year?
  • Is there any other relevant(or better) literature or tutorial we ought to look into apart from what was mentioned?
  • Are we right about the rough schematic that I described earlier in this question?
  • How should we divide work in order to optimize manpower?

I understand these questions (especially the last one) may be not be in accordance with the policy of the website. But we are only students and really want to make this work. We haven't found a suitable guide even after a long search and some guidance from experts such as yourselves will be a blessing! I earnestly request you to provide us with advice or at least point us in the right direction.

******* UPDATE *******

Thanks guys for all the help! We've made some progress and decided the main components for our device. Also, we'll be making it for the USB 2.0 now!

We've decided to use ARM9. This is because we came by a person who introduced us to friendly ARM and told us it could work for us.

We'll be dumping the TUSB7320 and instead use the DS Vinculum 2 dual host controller IC.

Also, we are going to use an operating system to ease our work. We're torn between Linux,windows CE and Android. I personally think we should go with linux because that'll help us protect the device from viruses(I hope I'm right?) and its free. However my partners think android will be a better option because there are many people who are into android and might know a thing or two that could help us out.

Are there other things we should consider or crucial details that we're missing out on?Which OS suits this device best and how should we go about the software especially the end user GUI on the touch screen?

Best Answer

For the software, I definitely think that Linux would be the way to go. The reasons I would choose it over android are threefold:

  1. Linux has a much easier way of handling file systems than Android. It was built as a server operating system, as opposed to android which was built to run on phones and tablets, so is less file-oriented, despite essentially being a Linux distro at its core.
  2. There are many platforms running Linux that you could use for a base. Embedded Linux devices are everywhere, whereas android devices are few and far between. I would heartily recommend starting with one of these platforms, as they will help get this off the ground much faster.
  3. Yes, you are correct about Linux being less prone to viruses.

The GUI problem is a major consideration. However, you are in luck. If you (or someone in your team) is familiar with C, writing a GUI in GTK+ would be the easy way out. This requires installing a bit more software (X, GNOME) than is ideal for an embedded platform, but all things considered I think it is the best way.

Hope this helps!