基于OHCI的USB主机 —— OHCI(基本流程)

简介:
根据上面的介绍可以发现,通过USB端口进行数据收发的主要工作就是构建ED和TD列表。其中ED列表控制数据的传输方向,TD列表完成具体的数据打包和传输。
按照OHCI规范,ED和TD列表都是可以在使用过程中对某个节点进行修改,比如增加和删除。但是为了程序处理简便起见,最好采用顺序处理模式,也就是一个命令执行完毕以后,再重新构建新的ED和TD列表,执行下一个命令。
进行控制/批量传输的主要处理流程如下:
1、 创建控制/批量传输的ED列表;
2、 创建ED下的TD列表;
3、 设置命令到相应寄存器开始数据传输;
4、 在中断处理程序中判断数据传输是否结束;
对于控制传输来说,实际上一次控制传输只需要1个ED即可,而批量传输则需要2个ED,分别用于批量出端口和批量入端口。
控制传输的ED下面需要有3个TD,分别是SETUP、DATA、STATUS(对于没有数据的命令,则不需要DATA,因此不需要相应的TD)。
批量写数据命令Out ED下面有2个TD,分别是CBW、DATA,In ED下面有1个ED,是CSW。
批量读数据命令Out ED下面有1个TD,是CBW,In ED下面有2个TD,分别是DATA和CSW。





本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/239944,如需转载请自行联系原作者
目录
相关文章
|
设计模式 算法 Java
【数据结构和算法】拥有最多糖果的孩子
给你一个数组candies和一个整数extraCandies,其中candies[i]代表第i个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的extraCandies个糖果分配给孩子们之后,此孩子有最多的糖果。注意,允许有多个孩子同时拥有最多的糖果数目。
160 1
|
运维 测试技术 Linux
关于Stress 压力测试工具的介绍与使用
在日益复杂的计算环境中,保证系统的稳定性和性能成为了每个Linux管理员的核心任务。面对不断增长的数据量和业务需求,如何有效评估系统极限和潜在瓶颈? 压力测试工具:stress,成为了不可或缺的助手。这篇记录描述stress工具的使用方法及其在模拟真实负载中的实用性。
关于Stress 压力测试工具的介绍与使用
|
Web App开发 移动开发 JavaScript
面试官:说一下script 标签中 defer(推迟) 和 async(异步) 的区别
面试官:说一下script 标签中 defer(推迟) 和 async(异步) 的区别
537 0
|
供应链 物联网 区块链
新兴技术趋势与应用:探索区块链、物联网和虚拟现实的未来
在科技迅猛发展的今天,区块链、物联网和虚拟现实等新兴技术正逐步改变我们的生活和工作方式。这些技术不仅在各自领域内展现出巨大的潜力,还通过相互交织和融合,为社会带来全新的应用场景和解决方案。本文将深入探讨这些新兴技术的发展趋势,并剖析其在不同领域中的实际应用,从而揭示它们对未来社会的深远影响。
196 28
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow vs PyTorch:深度学习框架的比较研究
TensorFlow vs PyTorch:深度学习框架的比较研究
288 1
|
编解码 Linux API
Linux ALSA驱动之三:PCM创建流程源码分析(基于Linux 5.18)上
Linux ALSA驱动之三:PCM创建流程源码分析(基于Linux 5.18)上
Linux ALSA驱动之三:PCM创建流程源码分析(基于Linux 5.18)上
|
存储 前端开发 关系型数据库
Flask 与 Django 先学哪个呢
Flask 与 Django 先学哪个呢
|
机器人
动态规划之不同路径解决问题
动态规划之不同路径解决问题
267 0
|
存储 Java C语言
【javaSE】 运算符
【javaSE】 运算符
|
存储 Java 索引
【Java】数组定义和访问及数组原理内存图
本期主要介绍数组定义和访问及数组原理内存图
332 0
【Java】数组定义和访问及数组原理内存图