打印
[技术问答]

M480的USBD外设有么有WCID WINUSB的例程

[复制链接]
2642|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XIVN1987|  楼主 | 2019-6-3 10:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


M480的USBD例程都是HID、MSC、CDC相关的例程,,请问有没有WCID WINUSB相关的例程啊?

使用特权

评论回复
沙发
21mengnan| | 2019-6-3 22:14 | 只看该作者
不懂你说的这个是啥例子

使用特权

评论回复
板凳
21mengnan| | 2019-6-3 22:14 | 只看该作者
你说的这个需要USB专用芯片吧

使用特权

评论回复
地板
XIVN1987|  楼主 | 2019-6-3 22:38 | 只看该作者
21mengnan 发表于 2019-6-3 22:14
不懂你说的这个是啥例子



简单来说,使用WinUSB通用USB驱动之后,就不需要给USB设备专门写驱动了,,也就是免驱。。但是要想使用WinUSB和USB设备通信,USB设备端的代码需要增加一些内容

我想要的就是:M480芯片的能使用WinUSB通信的实例代码

说到开发免驱USB设备,,大家首先想到的是HID协议,,但HID设备有一个缺点:速度太慢。比如全速USB设备上,HID设备的最大传输速度仅为64*1000 = 62.5K,,而使用WinUSB通信的USB设备是专用设备,可以使用块传输,,传输速度能达到USB本身速度的最大带宽,,远远大于HID

比如CMSIS-DAP,,它的第一代就是使用HID协议进行通信的,,而第二代CMSIS-DAP v2就添加了使用WinUSB驱动通信,,大大提供传输速度。。

使用特权

评论回复
5
21mengnan| | 2019-6-3 22:51 | 只看该作者
那么这个是不是不需要单片机USB硬件的支持,只要软件上实现就行了?

使用特权

评论回复
6
XIVN1987|  楼主 | 2019-6-3 22:56 | 只看该作者


新唐的USBD库比较简洁,,但扩展性不太好

比如做WinUSB设备时,,WinUSB驱动会想USB设备查询Microsoft OS String Descriptor,而USBD库中字符串描述符已经被限定为4个了,,要想支持Microsoft OS字符串描述符,,就不得不修改USBD库的源码,,这样感觉不太好


使用特权

评论回复
7
XIVN1987|  楼主 | 2019-6-3 23:00 | 只看该作者
21mengnan 发表于 2019-6-3 22:51
那么这个是不是不需要单片机USB硬件的支持,只要软件上实现就行了?

纯软件的,,只需要添加一个字符串描述符响应和2个特殊描述符响应即可

下面这个连接有非常详细的描述,,感兴趣的可以看下:https://github.com/pbatard/libwdi/wiki/WCID-Devices

使用特权

评论回复
8
21mengnan| | 2019-6-3 23:05 | 只看该作者
XIVN1987 发表于 2019-6-3 23:00
纯软件的,,只需要添加一个字符串描述符响应和2个特殊描述符响应即可

下面这个连接有非常详细的描述, ...

感谢,我还真感兴趣。

使用特权

评论回复
9
vsfopen| | 2019-6-4 17:00 | 只看该作者
我们的协议栈可以增加描述符。只是增加描述符就行了吗?

使用特权

评论回复
10
vsfopen| | 2019-6-4 17:01 | 只看该作者
https://github.com/vsfteam/vsf/blob/master/source/example/usrapp/aio_demo/usbd_demo.c

使用特权

评论回复
11
XIVN1987|  楼主 | 2019-6-4 17:33 | 只看该作者
vsfopen 发表于 2019-6-4 17:00
我们的协议栈可以增加描述符。只是增加描述符就行了吗?



是的,,你看下我上面发的那个连接,,里面有对WCID的详细描述,,

不仅有描述,而且还有一个STM32实现的例程,,代码在这里:https://sourceforge.net/projects/libwdi/files/misc/

我下载下来了,,缩小了下压缩包: STM32F1XX V3.3.0 (WinUSB).rar (1.88 MB)

使用特权

评论回复
12
linqing171| | 2019-6-5 19:46 | 只看该作者
winusb和libusb-win32都不是真正的免驱动。最新的win10 x64上,inf也是需要签名的。
jlink用的第三方的证书自己签的名,安装的时候有个提示。如果你要是土豪,可以申请微软的WHQL认证,安装驱动的时候无提示。
winusb+自定义inf过WHQL很简单。

使用特权

评论回复
13
XIVN1987|  楼主 | 2019-6-5 20:59 | 只看该作者
linqing171 发表于 2019-6-5 19:46
winusb和libusb-win32都不是真正的免驱动。最新的win10 x64上,inf也是需要签名的。
jlink用的第三方的证书 ...


Win10上安装WinUSB WCID设备不需要提供.inf文件,,,有些使用WinUSB的USB设备提供.inf文件可能是为了兼容旧系统

Jlink应该没有使用WinUSB驱动,,它用的是自己编写的驱动程序,,

使用特权

评论回复
14
xtoolbox| | 2019-6-6 09:23 | 只看该作者
linqing171 发表于 2019-6-5 19:46
winusb和libusb-win32都不是真正的免驱动。最新的win10 x64上,inf也是需要签名的。
jlink用的第三方的证书 ...

最新的Win10上面WinUSB可以做到真正免驱动,使用WCID描述符,即插即用,不需要额外的inf文件,就像HID设备一样。

使用特权

评论回复
15
linqing171| | 2019-6-6 09:53 | 只看该作者
威武,第一次了解WCID. 去年给inf签名费了一番周折。

使用特权

评论回复
16
li880wert| | 2019-7-22 11:47 | 只看该作者
WIN7的 WINSUB 是不是要装驱动,下载了你的那个版本一直是unkonwn,
好像CDC设备在WIN10以上也是免驱的,识别是USB I2C

使用特权

评论回复
17
sblpp| | 2020-3-9 10:18 | 只看该作者
楼主您好,请问您搞定M484上DAPLink V2的winusb了吗?能分享下吗?非常感谢!

使用特权

评论回复
18
XIVN1987|  楼主 | 2022-1-13 09:15 | 只看该作者
sblpp 发表于 2020-3-9 10:18
楼主您好,请问您搞定M484上DAPLink V2的winusb了吗?能分享下吗?非常感谢!

搞定了,,分享在这里:https://github.com/XIVN1987/DAPLink

使用特权

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

本版积分规则

49

主题

335

帖子

18

粉丝