OHCI (Open Host Controller Interface) is a USB Host Interface specification jointly developed by Compaq, Microsoft, National Semiconductor and other companies. It provides a more abstract Interface for USB data transmission. In OHCI specifications, the most important concepts are EndPoint-ED, transmission Descriptor Transport Descriptor-TD, and host controller Communication zone HCCA ). Among them, ED is responsible for determining the transmission type to control transmission, batch transmission, synchronous transmission, and interrupted transmission ). TD determines the transmission parameters. HCCA is used to determine whether data transmission is complete. The above concepts are described below, mainly to translate the relevant content of the OHCI Specification. for more details, see Open Host Controller Interface Specification for USB.EndpointEDEndpoint Descriptor endpoint Descriptor) contains information about the endpoints used by HC, including the endpoint address, transmission speed, and maximum packet size. In addition, ED is also the anchor of the TD transmission descriptor) linked list. Store the TD linked list header pointer used by the ED to send and receive data in the ED. When HC processes ED and finds a valid TD address, HC completes Data Transmission Based on the endpoint indicated in ED and the TD address. Four data transmission types are defined in USB specifications: control transmission, batch transmission, synchronous transmission, and interrupted transmission. There are four transmission ED lists corresponding to these four transmission types in OHCI, which are mainly controlled by the control register HcControl) and command status register HcCommandStatus. A list of controlled and batch transmitted ED packages. Each ED contains the TD to be processed. The ED contains the maximum packet size allowed by the endpoint, and the Controller Hardware completes the packet splitting. After each transmission, the pointer pointing to the data buffer is updated. When the start and end pointers are equal, TD is released to the Completion queue (done-queue ). Is a typical linked list structure. 650) this. width = 650; "onclick = 'window. open (" http://blog.51cto.com/viewpic.php?refimg= "+ This. src) 'onclick =" window. open (" http://blog.51cto.com/viewpic.php?refimg= "+ This. src)" style = "border: 0px none;" title = "ED-Struct" alt = "ED-Struct" src =" http://www.bkjia.com/uploads/allimg/131228/1RK22Q2-0.jpg "340 =" "border =" 0 "height =" 213 "/> In OHCI, the time of each frame is divided into three parts. First, the batch and Endpoint lists are processed, this period is controlled by the settings of the HcPeriodicStart register, and then the periodic list interruptions and synchronization lists are processed). If the processing is completed, the batch and Endpoint lists are processed, such as: 650) this. width = 650; "onclick = 'window. open (" http://blog.51cto.com/viewpic.php?refimg= "+ This. src) 'onclick =" window. open (" http://blog.51cto.com/viewpic.php?refimg= "+ This. src)" style = "border: 0px none;" title = "Frame" alt = "Frame" src =" http://www.bkjia.com/uploads/allimg/131228/1RK22916-1.jpg "660 =" "border =" 0 "height =" 284 "/> for control and batch transmission, control endpoints have more opportunities for bus processing than batch endpoints. Each time one batch endpoint is processed, N control endpoints need to be processed. The proportion of N: 1 is called the proportion of batch services. HCD uses the HcControl registerControlBulkServiceRatioField to set the ratio. The ratio ranges from. HC forces the processing according to the proportion of the control batch service, regardless of the number of control and batch ED in the corresponding list. If only one controlled ED is in the control list, and the proportion of batch services under control is, the control ED is served four times before the batch ED is served. If no ED exists in the control or Batch List, HC skips the corresponding list and processes other lists immediately and completes the required ED quantity. HC checks the empty list based on the proportion of the batch service. If a new ED is available, the list is processed according to the proportion.
This article is from the "rainman" blog, please be sure to keep this source http://lancelot.blog.51cto.com/393579/236950