Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
End Users
Pocket PCActiveSyncMultimediaEBooksWirelessSmartPhones
Developers
Windows MobileSmartPhonesWinCE ProgrammingVB for WinCEVC++ for WinCEPlatform BuilderTest Tools
PocketPC DirectoryFree SoftwareWeb Resources
Related Topics
PalmMobile PhonesMore Topics ...

Pocket PC Forum / Developers / Platform Builder / July 2008

Tip: Looking for answers? Try searching our database.

USB 2.0 throughput issue on Windows CE 5.0

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
jameschou - 23 Jul 2008 10:23 GMT
Hi all,
I am developing a driver for our TV receiver chip that connects a Windows CE
5.0 based product.
All related information as below:
Our TV receiver chip: USB client(USB 2.0 interface);
Windows CE 5.0 based product: USB host(EHCI host driver for USB 2.0);
Hardware platform: AMD DB1250 evaluation board with integrated USB 2.0 host
controller;
Software platform: Windows CE 5.0 with all QFEs up to date;
Data transfer mode: Isochronous read, 8 frames per transfer, 3 packets per
frame and packet size is 1KByte;

My problems is: after every transfer(24KBytes) there are about 10ms delay
(from Ellisys USB analyser), which caused a poor throughput. In theory, the
isochronous mode should archieve 24MByte/s(that is, 24KBytes/ms).

I read the EHCI driver code released with DB1250's BSP, but I cannot find
where the delay is. So I will be appreciated if someone gives me some hint.
Or if you have developed USB client driver with USB 2.0 interface, how about
your driver throughtput in the isochronous read mode on the Windows CE based
product.
I suspect maybe that delay is caused by Windows CE interrupt latency beause
it occurs after every transfer completes. But I don't how to measure the
latency.

Any advice is welcome. Thanks!

Code as below:
       for(dwFrameIndex = 0; dwFrameIndex < 8; dwFrameIndex ++)
       {
           dwFrameLength[dwFrameIndex] = 3*1024;
       }   

           dwErr = IssueIsochTransfer (pUsbTLG->UsbFuncs, pUsbTLG->IsochIn.
hPipe,
                                    DefaultTransferComplete, pUsbTLG->hEvent
[dwTotal],
                                    USB_NO_WAIT | USB_IN_TRANSFER |
USB_START_ISOCH_ASAP | USB_SHORT_TRANSFER_OK,
                                    0,                      // Using
USB_START_ISOCH_ASAP precludes the need for a start frame
                                    8,  // Number of frames to read
                                    dwFrameLength,             // Array that
receives the length of each frame
                                    pCurBufOut,              // Pointer to
transfer buffer
                                    0,                      // Specifies the
physical address, which may be NULL, of the data buffer
                                    &(pUsbTLG->dwBytesTransferred[dwTotal]),
// Number of bytes transferred by USB
                                    0,                   // Timeout in msec
                                    (LPDWORD)&(pUsbTLG->hTransfer[dwTotal]))
;              // Returns USB_ERROR or USB_TRANSFER
Silver - 23 Jul 2008 17:11 GMT
Try running the kernel tracker to see where time is spent during those 10mS.

I would also wager that the ISOCH is the least tested part of the USB stack
as it is the least used aspect of USB (versus bulk/interrupt).

Geoff
--
jameschou - 24 Jul 2008 01:15 GMT
>Try running the kernel tracker to see where time is spent during those 10mS.
>
[quoted text clipped - 3 lines]
>Geoff
>--

######################################################
Hi Geoff,
Thanks a lot for your kind reply!
I will try the kernel tracker.
I agree that the ISOCH mode is the least used versus bulk/interrupt because
USB Mass Storage & HID are used by lots of end users.

But I find some many webcam drivers are using ISOCH mode to transfer data
over USB. Could anybody post their testing result in ISOCH mode transfer? I
googled day by day, but I cannot find any information about the ISOCH
throughput on Windows CE platform.

Thanks a lot!
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.