免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1214 | 回复: 0
打印 上一主题 下一主题

usb学习总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-06 18:33 |只看该作者 |倒序浏览

本文档是自己以前学习USB规范时的笔记。因为最先是在word里写成,带有一些图片和代码,发到blog上不方便,所以转成了pdf格式上传。放在正文的下载链接里供大伙下载。正文里只是一下摘录。


 usb笔记.rar   



事务:一次完整的传输。一次事务由一个TOKEN包,一个数据包,一个ACK包构成。每个包的大小不能超过端点最大包大小。


伙伴控制器:为了实现上的方便与向前兼容USB1.1EHCI控制器内部集成了EHCI控制器和UHCI/OHCI控制器。这样,EHCI就可以专注于支持USB2.0,而将对UHCI/OHCI的支持效交给内部集成了OHCI/UHCI控制器,这集成的OHCI/UHCI控制器被称为Companion Host Controller,中文可以叫做伙伴控制器,简称CC


。。。。。。。。。。。。。。。。。。。。



EHCI为例。对于EHCI,它是连接在PCI总线上的,所以,很自然的,EHCI HC的注册也应该由一个PCI驱动完成。


。。。。。





我们不必知道经过了多少艰难险阻,只需知道,最终usb_hcd_pci_probe()函数将要被调用。在这个函数中,略去与PCI有关的部分,余下的就只两个函数:usb_create_hcd()和usb_add_hcd(),这正是我们所要关注的。我们是以EHCI的例子进入这两函数的,但实际上,不管是EHCIUHCIOHCI、还是MUSB,对HC的注册都是通过这两函数。


。。。。。。


程序步骤:

1、首先设置该主机控制器可用了:

set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);

2、使用hcd_buffer_createhcd)为HCD创建DMA缓冲池。


。。。。。。。。。。。。。。


同样,先是操作线路规程的引用计数,然后调用do_tty_write,在do_tty_write中,会使用线路规程的write函数(参数传入)

do_tty_write主要是将大量数据分批发送。在设置了TTY_NO_WRITE_SPLIT的情况下,chunk(一次发送的大小)为65536。否则,如果发送数据量count大于2048字节,则每个chunk2048 bytes,否则,就为count 个字节。




您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP