Answered Filter driver for UVC Class

  • 2012년 4월 24일 화요일 오전 11:18
     
     

    I am thinking of developing a UVC device with CY7C68013. But I cannot add UVC headers using that since it has 8051 core. I was thinking of developing a filter driver before UVC driver, which will add the UVC headers for the Payload data.

    1) Does anyone know whether it is feasible? What are its implications in terms of speed and performance? How much complex it would be? I am not very familiar with drivers. I am only a beginner in this. Any help would be greatly appreciated.

    2) What about the certification for the filter driver? Is it needed ?

    3) If I certify, then will other UVC devices (not made of CY7C68013) get bound to filter driver by default, which should not be so ?

    Thanks in advance.

모든 응답

  • 2012년 4월 26일 목요일 오전 4:48
     
     답변됨
    Jaigurudev udupi wrote:
    >
    >I am thinking of developing a UVC device with CY7C68013. But I cannot add
    >UVC headers using that since it has 8051 core.
     
    Right.  That's the key problem.  The 8051 (at 3 MIPS) can handle the
    probe/commit sequence, but it can't touch the pixel stream.
     
    You are going to need some kind of FPGA or CPLD in there to feed pixels in
    to the FIFOs using slave mode.  It would be nice to figure out how to add
    the header using the FPGA.
     
    What sensor would you use?
     
    >I was thinking of developing a filter driver before UVC driver, which
    >will add the UVC headers for the Payload data.
    >
    >1) Does anyone know whether it is feasible?
     
    Sure, it's feasible.  It's a bit of a pain, because the size of the packets
    has to change to make room for the header.  That means rewriting the
    isochronous URB results.
     
    >What are its implications in terms of speed and performance?
     
    You're adding one more copy.  Today's CPUs do memory copies pretty darned
    quickly.
     
    >How much complex it would be? I am not very familiar with drivers. I am
    >only a beginner in this. Any help would be greatly appreciated.
     
    This is probably not a good place to start.  Have you done any reading of
    the USB Video Class specs?  You will be dealing with UVC USB packets, so
    you will have to have a very thorough understanding of UVC.  Further, you
    will be rewriting isochronous USB requests to add the headers (assuming you
    don't have an FPGA do it), so you have to be very familiar with URBs.
     
    Filter drivers are easier now (with KMDF) than they ever were before, but
    you still need to understand USB and UVC very, very well.
     
    >2) What about the certification for the filter driver? Is it needed ?
     
    That's up to you.  Certification is NEVER needed.  If you don't care that
    your users see a dialog asking "Do you trust this publisher?", then you
    don't need to submit to WHQL.
     
    You cannot get the Windows logo for a USB video camera unless that camera
    works with usbvideo.sys by itself.  You could get a WHQL signature as an
    unclassified device, but the value of that is up to you.
     
    >3) If I certify, then will other UVC devices (not made of CY7C68013)
    >get bound to filter driver by default, which should not be so ?
     
    No.  You would create a driver package with an INF and your filter driver.
    The INF identifies your specific device by USB VID and PID.
     
    Note that you are REQUIRED to change the VID and PID before shipping your
    device.  You sign an agreement when you buy FX2 chips that says you will
    not ship with the Cypress identifiers.
    --
    Tim Roberts, timr@probo.com
    Providenza & Boekelheide, Inc.
     

    Tim Roberts, VC++ MVP Providenza & Boekelheide, Inc.