USB 驱动流程

dengchonglin 2010-02-03 04:32:14
各位大哥:
请问一下,USB 驱动是怎么样监测 USB 上的数据,是怎么样和系统通讯?
...全文
200 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
blaneqiu 2012-05-05
  • 打赏
  • 举报
回复
在用户程序中通过deviceiocontrlo()函数中的驱动控制码来与USB设备通信
shanshan811310 2011-09-29
  • 打赏
  • 举报
回复
我也在弄USB驱动,看了上面大侠的介绍先看看USB规范
thunder__god 2011-06-24
  • 打赏
  • 举报
回复
usb协议,也就是第九章 细看,其他过一遍就可以了

弄清楚,插入检测、枚举的细节

枚举完成后,就容易了
lanxinwen2010 2011-04-18
  • 打赏
  • 举报
回复
枚举接口和USB驱动没关系吧
应该 是usb总线在做吧
他上面有两个链表
一个是devices一个drivers
然后根据不同情况match
dengchonglin 2010-02-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 veabol 的回复:]
你改了PUBLIC下的代码?如果是这样的话build后还要sysgen current project一下再make
直接执行build and sysgen current project,再make吧
[/Quote]
非常感谢,确实是这样~!
博说医械研发 2010-02-05
  • 打赏
  • 举报
回复
你改了PUBLIC下的代码?如果是这样的话build后还要sysgen current project一下再make
直接执行build and sysgen current project,再make吧
dengchonglin 2010-02-05
  • 打赏
  • 举报
回复
好的,我查查 OHCI,EHCI,UHCI
另外,为什么我在
extern "C"
DWORD
UFN_Init(
LPCTSTR pszContext
)
加入 RETAILMSG(1, (_T("++++UFN_Init\r\n")));
没有调试信息出来呢??
lllchr88 2010-02-04
  • 打赏
  • 举报
回复
好象协议有点复杂.没研究
lt1995 2010-02-04
  • 打赏
  • 举报
回复
可以重点看看协议里的关键部分,例如几种命令,描述符
skynet000 2010-02-04
  • 打赏
  • 举报
回复
协议看起来的确很复杂,看了好久没看完!看不下去了。
domworldjohn 2010-02-04
  • 打赏
  • 举报
回复
wince中,USB驱动分成上层USB设备驱动和底层的USB驱动。对于底层的USB驱动,又可以分为上层的USB总线驱动和最底层的USB控制器驱动。USB总线驱动主要负责USB外围设备的枚举与加载相应的驱动。
hallowwar 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wolfmvp 的回复:]
引用 1 楼 veabol 的回复:
看一下USB的协议规范,找一些USB的底层代码。
说的很简练,马上就精辟了,哈哈…
[/Quote]

我也觉得USB很神奇的,两根线可以那么告诉的传输,牛的很。
wolfmvp 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 veabol 的回复:]
看一下USB的协议规范,找一些USB的底层代码。
[/Quote]说的很简练,马上就精辟了,哈哈…
toborac 2010-02-04
  • 打赏
  • 举报
回复
很复杂 基本上你所问的检测线上数据属于最低下物理层了 咱们一般不用关心
USB通信有很多术语 USB标准里面就有很多 基本上总线在时间上是划分成一节一节的,谁要用以及要用多少带宽以及怎么用都得去申请 很多事情都被总线控制器的驱动管了
可搜索查看有关USB以及OHCI,EHCI,UHCI等资料
skyler2008 2010-02-04
  • 打赏
  • 举报
回复
帮你顶!
luocan1986 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 veabol 的回复:]
看一下USB的协议规范,找一些USB的底层代码。
[/Quote]

貌似很复杂哦。
博说医械研发 2010-02-03
  • 打赏
  • 举报
回复
看一下USB的协议规范,找一些USB的底层代码。
第一章 走进linux 1.1 GNU与Linux的成长 1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.4 分析Linux内核的意义 1.5 Linux内核结构 1.6 Linux内核源代码 1.7 Linux内核源代码分析工具 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5 Linux中的分页机制 2.6 Linux中的汇编语言 第三章中断机制 3.1 中断基本知识 3.2中断描述符表的初始化 3.3异常处理 3.4 中断处理 3.5中断的后半部分处理机制 第四章 进程描述 4.1 进程和程序(Process and Program) 4.2 Linux中的进程概述 4.3 task_struct结构描述 4.4 task_struct结构在内存中的存放 4.5 进程组织的方式 4.6 内核线程 4.7 进程的权能 4.8 内核同步 第五章进程调度 5.1 Linux时间系统 5.2 时钟中断 5.3 Linux的调度程序-Schedule( ) 5.4 进程切换 第六章 Linux内存管理 6.1 Linux的内存管理概述 6.2 Linux内存管理的初始化 6.3 内存的分配和回收 6.4 地址映射机制 6.5 请页机制 6.6 交换机制 6.7 缓存和刷新机制 6.8 进程的创建和执行 第七章 进程间通信 7.1 管道 7.2 信号(signal) 7.3 System V 的IPC机制 第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.3 高速缓存 8.4 文件系统的注册、安装与拆卸 8.5 限额机制 8.6 具体文件系统举例 8.7 文件系统的系统调用 8 .8 Linux2.4文件系统的移植问题 第九章 Ext2文件系统 9.1 基本概念 9.2 Ext2的磁盘布局和数据结构 9.3 文件的访问权限和安全 9.4 链接文件 9.5 分配策略 第十章 模块机制 10.1 概述 10.2 实现机制 10.3 模块的装入和卸载 10.4 内核版本 10.5 编写内核模块 第十一章 设备驱动程序 11.1 概述 11.2 设备驱动基础 11.3 块设备驱动程序 11.4 字符设备驱动程序 第十二章 网络 12.1 概述 12.2 网络协议 12.3 套接字(socket) 12.4 套接字缓冲区(sk_buff) 12.5 网络设备接口 第十三章 启动系统 13.1 初始化流程 13.2 初始化的任务 13.3 Linux 的Boot Loarder 13.4 进入操作系统 13.5 main.c中的初始化 13.6 建立init进程 附录: 1 Linux 2.4内核API 2.1 驱动程序的基本函数 2.2 双向循环链表的操作 2.3 基本C库函数 2.4 Linux内存管理中Slab缓冲区 2.5 Linux中的VFS 2.6 Linux的连网 2.7 网络设备支持 2.8 模块支持 2.9 硬件接口 2.10 块设备 2.11 USB 设备

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧