阅读:1820回复:15
为了送分,只有再发新贴
感谢大家不吝赐教!
没想到usb的东西这么复杂,我要用51通过sl811hs读写优盘, 谁能详细地告诉我到底都要做哪些工作? |
|
沙发#
发布于:2002-08-12 12:06
在usb协议中有关于枚举的详细的描述。
大体是: 设备描述符 分配地址 配置描述符 ... 激活配置 每一个请求都是不同的命令,80060000...什么的 如果需要,我可以帮你详细的写出来,不过得看给多少分了 :D |
|
|
板凳#
发布于:2002-08-12 12:57
填充firmware的内容也不是很复杂,我知道cypress和国半的片子一般都附带firmware,其他的没用过
主机枚举过程setup包如下: 1。80 06 00 01 00 00 12 00得到设备描述字 2。00 05 ** ** 00 00 00 00给设备分配地址 3。80 06 02 00 00 00 2E 00读配置描述子 4。00 09 01 00 00 00 00 00激活设备的一个配置 大体的过程就是这样不同的芯片可能会又不同 比如主机得到设备描述字的前8个字节可能就给设备分配地址了 不过你在固件中都做好了肯定能通过祝你好运! 多交流! :D |
|
|
地板#
发布于:2002-08-12 13:44
你说的这些我能明白,我认为这应该是主机的程序
是在完成了填充firmware后就可以实现吗? |
|
地下室#
发布于:2002-08-12 14:32
很遗憾,刚才都写完了,由于网速的问题吧,没留上 :(
你在firmware中完成了对主机请求的响应,就可以实现了。 比如主机要设备描述符,你检测到中断后,发送设备描述符,就可以了。 你很聪明,相信很快就能掌握了。 good luck! |
|
|
5楼#
发布于:2002-08-12 15:32
设备描述符应该是根据设备的不同而定的,
它不是设备发出的吗? |
|
6楼#
发布于:2002-08-12 15:38
感谢大家不吝赐教! 你是要作为USB Host来读写优盘?还是要作为USB Device实现优盘的功能?Device好做一些。 |
|
7楼#
发布于:2002-08-12 15:47
设备描述符应该是根据设备的不同而定的, 看来你是要作为HOST来读写U盘,我想可能工作无非是 配置sl811hs芯片 检测DEVICE的拔插 查询、获得DEVICE的各种描述符,判断是否为U盘 利用BULK ONLY的协议,发送接收数据 建议看一下USB MASS STORAGE想关的文档,或用工具抓一下U盘与PC工作的流程 |
|
8楼#
发布于:2002-08-12 16:01
过程看上去就是这样,可具体实现太难了!
谁来救救我! |
|
9楼#
发布于:2002-08-12 16:24
那你现在卡在哪里了呢
|
|
10楼#
发布于:2002-08-12 16:43
设备描述符应该是根据设备的不同而定的, 当然是设备发出的呀!而且描述符的内容还是你定的呢! |
|
|
11楼#
发布于:2002-08-12 17:04
[quote]设备描述符应该是根据设备的不同而定的, 当然是设备发出的呀!而且描述符的内容还是你定的呢! [/quote] 老大,他在做USB Host |
|
12楼#
发布于:2002-08-12 17:15
我要昏倒了!:(
你们到底谁能帮我啊! |
|
13楼#
发布于:2002-08-12 17:46
我要昏倒了!:( 你也不用昏倒,做 usb host 的人不是很多。 usb host 也不是很难,大家也只是帮你想办法解决问题,具体的就要有你来试了。 请原谅,我还以为你再做usv device呢,不过大体流程差不多,只是协议和命令不同罢了。 |
|
|
14楼#
发布于:2002-08-12 17:56
不用客气,只要不嫌我烦就好了
真的很感激大家! 希望能在你们的帮助之下完成! |
|
15楼#
发布于:2002-08-13 09:38
虽然没有做过,但想来应该不是很难.
首先在811上面完成枚举的代码,把它调通.如果这部分工作完成,那后面的就好办了.而且这部分代码没有必要实现所有的standard request. 然后就是研究一下BOT的协议.可以去看看98的UMSS.SYS的源代码.其实就是把RBC命令封装在USB协议里面.这时候,如果你的代码能够正确的发出INQUIRY命令,并且得到正确的数据,那就说明你的方向是正确了,其他的RBC命令也按照这样来实现. 总之,一步一步来.虽然没有多少人做过HOST,但这种嵌入式的HOST从原理上来说还是比较简单的.如果USB协议熟悉的话,那重点工作就是SCSI/RBC了. |
|
|