[技术问答]

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

[复制链接]
2310|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
不懂你说的这个是啥例子

QQ截图20190603222611.jpg

简单来说,使用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驱动通信,,大大提供传输速度。。

使用特权

评论回复
21mengnan| | 2019-6-3 22:51 | 显示全部楼层
那么这个是不是不需要单片机USB硬件的支持,只要软件上实现就行了?

使用特权

评论回复
XIVN1987|  楼主 | 2019-6-3 22:56 | 显示全部楼层


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

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

QQ截图20190603225059.jpg

使用特权

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

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

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

使用特权

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

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

感谢,我还真感兴趣。

使用特权

评论回复
vsfopen| | 2019-6-4 17:00 | 显示全部楼层
我们的协议栈可以增加描述符。只是增加描述符就行了吗?

使用特权

评论回复
vsfopen| | 2019-6-4 17:01 | 显示全部楼层
https://github.com/vsfteam/vsf/blob/master/source/example/usrapp/aio_demo/usbd_demo.c

使用特权

评论回复
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)

使用特权

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

使用特权

评论回复
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驱动,,它用的是自己编写的驱动程序,,

使用特权

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

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

使用特权

评论回复
linqing171| | 2019-6-6 09:53 | 显示全部楼层
威武,第一次了解WCID. 去年给inf签名费了一番周折。

使用特权

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

使用特权

评论回复
sblpp| | 2020-3-9 10:18 | 显示全部楼层
楼主您好,请问您搞定M484上DAPLink V2的winusb了吗?能分享下吗?非常感谢!

使用特权

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

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

使用特权

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

本版积分规则

46

主题

316

帖子

17

粉丝