dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1238回复:8

D12+51/52系统如何和上位机联系阿??

楼主#
更多 发布于:2002-12-03 09:33
D12上电后,初始化指令正常,PC机也可以找得到USB设备,可是没有驱动无法正常传输数据阿..我现在打算用PHILIPS的SMART BOARD驱动(自己不会编),但是不知道上电后上位机对D12有什么要求(最好具体的讲一讲),我需要给它什么数据,上位机才能认出它来啊.也就是说设备描述的具体格式应该是什么,应该给它填入什么字符......问题多多,真的希望你们能帮帮我....(又及,我是用汇编编的程序,不是c51的,c51开不太懂....:(....)

最新喜欢:

skyeyeskyeye
CObject
驱动大牛
驱动大牛
  • 注册日期2002-08-18
  • 最后登录2017-07-22
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望106点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-12-03 10:40
D12上电后,初始化指令正常,PC机也可以找得到USB设备,可是没有驱动无法正常传输数据阿..我现在打算用PHILIPS的SMART BOARD驱动(自己不会编),但是不知道上电后上位机对D12有什么要求(最好具体的讲一讲),我需要给它什么数据,上位机才能认出它来啊.也就是说设备描述的具体格式应该是什么,应该给它填入什么字符......问题多多,真的希望你们能帮帮我....(又及,我是用汇编编的程序,不是c51的,c51开不太懂....:(....)


你的设备枚举是否已经成功了,如果成功用USBView可以看到一些信息,如PID和VID等信息,你看到了吗?
[img=501x116]http://www.driverdevelop.com/forum//upload/CObject/2004-01-13_2.jpg[/img]
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-03 13:48
[quote
你的设备枚举是否已经成功了,如果成功用USBView可以看到一些信息,如PID和VID等信息,你看到了吗? [/quote]

我就是想知道如何才能使USBVIEW可以看到我的信息...怎么在程序中实现阿??我应该给它什么数据,如何给阿?
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-03 16:06
我大概的知道要送什么数据了.但是如何实现的那..是不是一上电上位机就向D12要求厂商信息什么的,然后D12就自动产生一个中断,我们就在单片机中断服务程序里把信息传过去啊????

如果是的话如何实现阿..我要把数据传到那里去啊,什么时候传啊?..
zfnuaa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2004-04-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-03 16:26
呵呵,你真走运,我正好这几天在做枚举这部分,并且已经成功了。下面告诉你我的过程:
根集线器检查到设备连接后,激活主机USB总线驱动程序,USBD发出一系列的SETUP包。这过程中并不要用到你自己编的驱动,会由系统的总线驱动来自动处理,所以你要自己还没编主机那的驱动,也能调枚举过程。
主机的第一个命令要求得到设备描述符,此SETUP包为8个字节数据(80,06,00,01,00,00,40,00),其具体含义自己看资料。40表示返回数据长度最大为40H个字节。实际上,你只只返回一个包,即数组DEV_DESC[]中的前8个字节。用于说明设备的描述符的真实长度和设备的类型。
接着是设置设备地址处理事件,主机发送一个含有指定地址的数据包(00,05,02,00,00,00,00,00),设备需返回一个0数据包(这一步一定要做)。在主机只有一个USB设备的时候,这个地址一般会是2。设置地址事件处理结束后,设备进入地址状态,主机会在指定地址处访问设备。
主机再次发送得到设备描述符的数据包(80,06,00,01,00,00,12,00),与上次不同的是,要求的数据的长度是实际的数据长度。因为设备每次只能发送16字节,因此它会分两次(18字节)完成此要求。
接着主机要求得到设备的配置描述符(80,06,00,02,00,00,09,00),包中数据“09”指定设备发送9个字节,这正是设备配置描述符的长度。
接着主机要求得到设备的配置描述符、接口描述符和节点描述符(80,06,00,02,00,00,FF,00),由于不知道设备描述符的真实长度,因此它要求得到256个字节,
以上过程主机都是总线驱动层在处理,你用USBVIEW能看到你发出的东西,下面的一步(最后一步)就需要你的设备驱动来做了:
最后主机发送设置设备配置SETUP包(00,09,01,00,00,00,00,00),设备处理此事件,将允许所有节点进入工作状态。
 如果D12固件没问题,则只收到:
1,get_descriptor;d12发送8字节的设备描述符信息
2.set_address;
3,get_descriptor;获取全部设备描述符
4,get_decriptor:9byte配置描述符
5,get_decriptor:整个配置描述符,包括interface,endpoit
6,找驱动程序->终止,d12灯灭

dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-03 17:25
谢谢楼上的解答..不过不幸的是我现在在做的是固件,不是驱动.(不过驱动是下一步要做的..你的解答对我也很有用)

我现在就是不知道如何实现固件与上位机的联系.就是说固件怎么响应上位机给我的命令阿...我是用汇编编,c51看不太懂,所以那几个函数如何运作的不是很清楚...郁闷中
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-04 15:42
主机的第一个命令要求得到设备描述符,此SETUP包为8个字节数据(80,06,00,01,00,00,40,00),其具体含义自己看资料。
 


要看什么资料阿...
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-12-04 16:10
[quote]主机的第一个命令要求得到设备描述符,此SETUP包为8个字节数据(80,06,00,01,00,00,40,00),其具体含义自己看资料。
 


要看什么资料阿... [/quote]

我知道了...就是USB协议阿..我找到那一章了..不过上面的问题还是没有解决...不吝赐教
dacongtou
驱动中牛
驱动中牛
  • 注册日期2002-11-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-12-05 16:01
http://www.jobs2me.com/forum/html_28602.html?1039075203

问题转移了..但还是没有解决
游客

返回顶部