单片机
返回首页

基于OHCI协议的S3C2440 USB Host Driver之协议介绍(二)

2022-05-24 来源:eefocus

<一>HCD的职责:


1.HCD负责HC的操作。


HCD可以直接与HC的可操作寄存器通信,且在HCCA中建立中断ED表头指针。HCD维护HC的状态,表处理指针,表处理使能,中断使能。


2.带宽分配。


HCD负责对USB访问进行调度。HCD给每一个周期端点分配一定可用的带宽。如果没有足够的带宽可用,一个新连接的周期端点不允许访问总线。


一部分带宽分给非周期传输。这会确保在每帧里一定量的批量和控制传输会发生。每帧是1ms。

每帧的开始,HC发起SOF给USB总线。HC紧接着服务非周期列表。然后服务周期列表。还有剩余时间的话,再次服务非周期列表。


3列表管理。


USB传输机制以通过连接ED表上的TD。HCD建立这些结构,HC会处理。HCD负责ED的入表和出表。出表时,HCD需要禁止HC处理正在要被删除的ED的所属的整个表,以确保HC不访问该ED。


HCD也负责TD的入表。正常完成的话,HC负责TD的出表。但是,来自客户软件或者特定错误的请求导致TD正在被取消,HCD负责对TD的出表。


4Root Hub


HC集成了Root Hub。根集线器的寄存器是可以被HCD访问的。HCD负责用USB Driver和合适的Root Hub的协议提供给合适的Hub-class协议。



<二>HC的职责


1.USB的状态


2.帧的管理


HC追踪当前帧计数以及帧周期。每帧开始,HC产生一个SOF且在系统内存中更新帧计数值。HC也决定在帧中是否有足够多得时间发起下一个数据包。


3.表处理


HC在ED上操作,且HCD负责TD的入表。


对于中断和同步传输,HC在当前帧开始于中断ED头指针。该表持续遍历,直到调度来自第一个TD上的一个数据包进行传输尝试。


对于控制和批量,HC分别在各自的表开始。当HC到达表尾,它载入头指针的值接着从头开始。HCD设置控制批量传输比n,HC处理n个控制传输才处理1个批量传输。


当一个TD完成,成功或者产生错误,HC将其移到完成队列中。将最近完成的TD加入到队列的头中。通过HCCA,完成队列周期性地从HC传输到HCD中。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章