打印

USB虚拟串口中,PC每1ms发送一次SOF,设备就进一次中断?

[复制链接]
4596|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feilusia|  楼主 | 2013-9-26 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为嘛我会一直进USB低优先级中断呢?是不是主机每秒发送的SOF造成的?求大神赐教
沙发
JasonWangFAE| | 2013-9-26 10:04 | 只看该作者
YES.

使用特权

评论回复
板凳
feilusia|  楼主 | 2013-9-26 10:18 | 只看该作者
JasonWangFAE 发表于 2013-9-26 10:04
YES.

原来如此,那这样不是很占CPU么?
还有一个问题我想问一下,我把中断断点放在中断函数里,USB初始化时第一次进入中断函数,这时是因为USB复位。但再取消掉断点,全速运行,发现PC识别不到USB设备,它显示为“UNKNOW DEVICE”。如果我一开始不设置断点,全速运行,它就能识别到USB虚拟的COM口。
是不是说复位中断必须在多少时间内完成?

使用特权

评论回复
地板
JasonWangFAE| | 2013-9-26 11:02 | 只看该作者
you can disable SOF interrupt .

In USB application , you need respond ACK ,NAK or stall in 3ms .

使用特权

评论回复
5
outstanding| | 2013-9-26 11:09 | 只看该作者

使用特权

评论回复
6
feilusia|  楼主 | 2013-9-26 11:30 | 只看该作者
JasonWangFAE 发表于 2013-9-26 11:02
you can disable SOF interrupt .

In USB application , you need respond ACK ,NAK or stall in 3ms .  ...

有人说是枚举过程中不能中断。那请问我会陆续进入复位中断、SOF中断、正常通信中断。是否这三个陆续进入以后才算枚举正常。

使用特权

评论回复
7
feilusia|  楼主 | 2013-9-26 11:31 | 只看该作者
outstanding 发表于 2013-9-26 11:09

使用特权

评论回复
8
KC_CEC| | 2013-9-26 12:24 | 只看该作者
这个也是我的疑问,做个记号

使用特权

评论回复
9
outstanding| | 2013-9-26 12:34 | 只看该作者
feilusia 发表于 2013-9-26 11:31

使用特权

评论回复
10
tergy2012| | 2013-9-26 14:26 | 只看该作者

使用特权

评论回复
11
feilusia|  楼主 | 2013-9-26 14:28 | 只看该作者
tergy2012 发表于 2013-9-26 14:26

我去,要沦为水贴了么

使用特权

评论回复
12
feilusia|  楼主 | 2013-9-27 20:49 | 只看该作者
问题解决了,来个小结
USB枚举过程:
(1)        USB主机检测到USB设备插入后,对设备复位。
(2)        USB主机对设备发送获取设备描述符的标准请求。
(3)        设备收到该请求后,在数据过程将设备描述符返回给主机。
(4)        主机在成功获取到一个数据包的设备描述符后并且确认无错误后,返回一个0长度的状态数据包给设备。
(5)        主机再对设备复位一下,接下来进入到设置地址阶段。
(6)        USB主机发出一个设置地址的请求,地址包含在建立包中。
(7)        USB设备在收到地址后,返回0长度的状态包。
(8)        主机收到0长度的状态包之后,返回一个ACK。
(9)        设备在收到这个ACK之后,就可以启用新的地址了。
USB一直进中断的原因:主机每1ms就给设备发送一个sof,3ms没反应主机就挂起。所以一直进中断属于正常现象。
USB虚拟串口使用时应注意:
(1)        用于上拉的控制位使能时,主机能检测到USB设备。
(2)        设备插入时,地址为0,后由主机分配地址。
(3)        枚举结束前(即设备被识别前),不能中断程序,否则设备不能被识别。
(4)        设备发送usb_SendDataToHost("\r\n$ERRCMD#\r\n", 10)注意数据长度为10,而不为16.
主机发送“WHO’S DEMO”这类有空格的字符串时,空格会被省略,在设备里计算长度时应为9,而不为10.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:1、博客:http://blog.csdn.net/feilusia 2、QQ群:STM8/STM32群(164311667);职场交流群(450154342);CC2640R2F群(557278427) 3、淘宝店:https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i

133

主题

1940

帖子

93

粉丝