Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++

High Speed USB 2.0 Hosting

Altera_Forum
Honored Contributor II
1,112 Views

Hi, 

 

We are interested in implementing a High Speed (HS) USB 2.0 host that will be running under uClinux and I would be interested to know if anyone has implemented one in their design. I also would be interested in knowing what the maximum sustained transfer speeds were achieved.  

 

So far, the only HS USB 2.0 host component I can find information on is the ISP1761; Hi-Speed Universal Serial Bus On-The-Go controller, from Phillips. The Phillips website currently shows that the certification for the ISP1761 is pending and availbility of this component is unknown. Also, this part comes in a 128-pin package and contains two (2) USB Host ports and one (1) controller port instead of the just one (1) host port that we need. That's a little overkill for our application. 

 

However, I understand that the uCLinux kernel currently supports Full Speed (FS) USB 1.1 Hosts (e.g. SL811HS, UHC124, etc.). Can anyone share their experiences in implementing a FS USB 1.1 host and the maximum sustained transfer speeds that can be achieved with that type of host. 

 

Brad S.
0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
276 Views

Hi Brad, in the v1.4 release of Nios II Linux, we've included support for the ISP1161A1. I'm a little hazy on the specs, but I believe its a USB 2.0 compliant device that supports full and low speed devices. Like the ISP1761, it provides support for 2 host ports and 1 slave port. 

 

-- begin shameless plug -- 

 

Microtronix is currently selling a dev kit called the Product Starter Kit. The kit is modular by design. The main Kit is a baseboard with a Firefly module, 1 full santa cruz header, and 1 reduced santa cruz header. 

 

Along with the main Kit, you can purchase our Ethernet USB Expansion Kit. The kit contains a santa cruz expansion board with the Phillips isp1161a1 chip and the Davicom DM9000 chip. Both of which are supported under Linux. 

 

product starter kit (http://www.microtronix.com/product_firefly_dev.htm

 

-- end shameless plug -- 

 

As for benchmarks, we haven't performed any at this time... so I don't have that information available. 

 

Hope this helps
0 Kudos
Altera_Forum
Honored Contributor II
276 Views

Hi Ken, 

 

Thanks for the information (even if it came in the form of a shamless plug ;-). 

 

Can you tell me what other USB host components (besides the ISP1161A1) are supported with v1.4 release? 

 

We really need a High Speed (HS) USB 2.0 host controller but it would still be helpful if you could provide benchmarks for the Firefly with the USB expansion kit when they become available. 

 

Our current goal is to support a sustained transfer 20 MBytes/sec through a HS USB 2.0 host port. When the HS USB 2.0 host components become readily available, and are supported by a future release of uClinux, is it conceivable that, under the Nios II platform, a sustained 20 MBytes/sec transfer rate could be achieved?  

 

Given the assumptions that there are no transfer bottlenecks in the HS USB 2.0 host component or the associated HS USB 2.0 device (e.g. USB Hard Disk), I'm also trying to determine if uClinux would be the best OS choice for this type of application or if one of the RTOS's are perhaps a better fit (e.g. MicroC/OS-II, Nucleus, etc.). I would appreciate any input you could provide on this subject. 

 

Brad S.
0 Kudos
Altera_Forum
Honored Contributor II
276 Views

Currently, the only USB controllers that we support are the Cypress SL811HS and the Phillips ISP1161A1. I don't think we have any immediate plans to support any other USB controller chips. 

 

Off the top of my head, I think you would be hard pressed to get 20MB/s throughput but I haven't done any research and my hardware background is a little spotty. Heck, I think I'd be hardpressed to sustain 20MB/s throughput on my 1GHz Athlon desktop right now. 

 

If you'd like benchmarks for the ISP1161A1 performed, I think you'll need to put in an official request to our support e-mail account support@microtronix.com 

 

I hope this information helped.
0 Kudos
Altera_Forum
Honored Contributor II
276 Views

USB 2.0 High Speed should be capable of transfering at 480Mb/s or about 60MB/s, but some of that is packet overhead. I'm curious if there are issues sustaining this rate with a NIOS II? We are planning on two: a host running full spead in bursts, and a peripheral running contunious at about 1/3 speed. 

 

The ISP1161A1 is USB 2.0 but does not support High Speed. 

 

For our project, we are in a similar situation, and are using USB 2.0 OTG High Speed, which will be implemented in an FPGA (IP). We are going point to point, not requiring a HUB, but an OTG Host will support a HUB.  

 

Anyone know of a USB 2.0 OTG uClinux driver?
0 Kudos
Altera_Forum
Honored Contributor II
276 Views

<div class='quotetop'>QUOTE </div> 

--- Quote Start ---  

USB 2.0 High Speed should be capable of transferring at 480Mb/s or about 60MB/s, but some of that is packet overhead. I&#39;m curious if there are issues sustaining this rate with a NIOS II? We are planning on two: a host running full speed in bursts, and a peripheral running continuous at about 1/3 speed.[/b] 

--- Quote End ---  

 

The theoretical maximum transfer rate bulk packets under USB 2.0 is about 53 MBytes/sec (Thirteen, 512-byte packets per microframe [125 uS] = 53.248 MBytes/sec). However, so far, I have never been able to transfer more than ten, 512-byte packets per microframe (40.96 MBytes/sec) when transferring a very short data burst of 64 KBytes. This measurement was done on a 3 GHz Pentium 4 PC running Windows 2000 as the host and a Cypress USB development kit as the USB 2.0 device that counts the number of packets that were passed every microframe. It&#39;s possible that the measurement might have gone up slightly (11 packets per microframe) when using a slightly faster PC running under Windows XP. 

 

However, transferring a small burst of 64 KBytes is one thing, but maintaining a sustained transfer rate of ten packets per microframe is something else entirely. I don&#39;t have a good way of measuring the maximum sustained transfer rate over USB 2.0 for a particular host PC. If anyone knows of a good USB 2.0-enabled device (e.g. disk drive) that has a high sustained bulk data transfer speed, I would like to hear about it. 

 

<div class='quotetop'>QUOTE </div> 

--- Quote Start ---  

For our project, we are in a similar situation, and are using USB 2.0 OTG High Speed, which will be implemented in an FPGA (IP). We are going point to point, not requiring a HUB, but an OTG Host will support a HUB.[/b] 

--- Quote End ---  

 

 

We are considering purchasing some FPGA IP for implementing a USB 2.0 OTG capability. Can you tell me which IP vendor you are using and why you chose that vendor? One of the reasons we have typically stayed away from IP of this magnitude is cost. Can you give me an idea what the cost was for your IP? Which PHY interface are you planning on using with your IP? 

 

<div class='quotetop'>QUOTE </div> 

--- Quote Start ---  

Anyone know of a USB 2.0 OTG uClinux driver?[/b] 

--- Quote End ---  

 

 

I wish I did. If you find one, let me know. ;-) 

 

Sincerely, 

Brad S.
0 Kudos
Reply