LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Navigation: All forums > Usb > Message List > Message Post

    Message

    Reply | Reply all
    Date Prev | Date Next | Thread Prev | Thread Next Date Index | Thread Index

    From: "Peter Teng" <peter_teng@e...>
    Date: Wed, 10 Jan 2001 10:27:57 -0800
    Subject: RE: [usb] Endpoint Numbers
    Top

    Rudolf,
    
    	There are four types of endpoints (or transactions), namely, control,
    interrupt, isochronous and bulk. For control endpoints, they can be either
    In or Out. As for the rest, they are only In or Out. And within control
    transaction, there may be control, in, out, and status packets. As for the
    rest, there are in, out or status packets.
    	You can implement two different schemes. One is fixed by synthesis, which
    mostly implemented to save gates. And other one is register set. So instead
    of linked list, where the hardware has to fetch, read, compare and move on
    next, a finite number of comparators can be used to check the endpoint
    configuration.
    	I am not familiar with all the classes. But so far from the cases that I
    have dealt with is that the endpoints are either control, in or out only at
    one time. But they could be changed during run time due to different
    configurations, interfaces or alternative interfaces.
    
    best regards,
    Peter
    
    -----Original Message-----
    From: owner-usb@o... [mailto:owner-usb@o...]On Behalf
    Of Rudolf Usselmann
    Sent: Tuesday, January 09, 2001 8:54 PM
    To: USB Mailing List
    Subject: [usb] Endpoint Numbers
    
    
    
    Looks like I'm dropping the idea of a linked list in memory to define
    endpoints. I will instead allow at compile (synthesis) time to define
    how many endpoints an implementation has.
    
    Now, I'm thinking that any given endpoint that is instantiated at
    compile time, can perform only one of CONTROL, IN or OUT functions,
    which can be selected by the software of the function. This will
    make the design very simple.
    
    Now I have two questions:
    
    1) Since the endpoints are instantiated at synthesis time, I can
    set the endpoint numbers at that time. However, this would then
    make it impossible to have an endpoint 3 (for example) that has CONTROL,
    IN and OUT operations at the same time. So what I can do, is to make
    the actual USB endpoint number programmable by the functions controller.
    So one could set up 3 endpoint 5s, one for each operation.
    
    What do you guys think ?
    
    2) Considering the above scheme, how many (maximum) endpoints should I
     support ?
    
    Thanks for your help guys and gals !
    
    
    rudi
    
    
    
    

    ReferenceAuthor
    [usb] Endpoint NumbersRudolf Usselmann

    Follow upAuthor
    Re: [usb] Endpoint NumbersRudolf Usselmann

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.