7079|20

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

版主主,能否让设备向PC机枚举时产生不同的设备名称? [复制链接]

版主主,你好!
       能否让设备向PC机枚举时产生不同的设备名称?

        我现在用STM32做了一个读卡器,采用CCID协议,读卡器上有三个不同的插糟,因PC端目前的驱动(windows自带的驱动)不能按照CCID协议,采用不同的SLOT向读卡器发命令. 按照你的建议,向PC机枚举多个设备的方法来解决多插糟的问题,现在各设备都能正常工作,但在PC机列举设备时,设备名称都是相同的,只是在最后PC驱动自动加上不同的数据以区分,客户会不明白哪个设备名称对应哪个插糟,我抓了两张图如下,第一张是设备管理器显示的,应该是改不了,我主要是想改第二张的名称, W5181 Contact Reader 0, W5181 Contact Reader 1,W5181 Contact Reader 2,最后的0,1,2,是驱动自动加上去的, 我想让不同的设备显示不同的名称,如W5181 SAM Reader ,W5181 SIM Reader .请问该如何改,我已尝试两天了,也没找到办法,请指点,谢谢!
设备管理器中显示三个READER.JPG
设备列表时三个设备.JPG
此帖出自stm32/stm8论坛

最新回复

我现在也要做类似的设备(枚举多个SLOT) 目前想枚举USB CCID实现2个卡槽,是否是通过多个interface来实现呢? 可是如果是用多个interface实现复合设备 那么在CCID协议中,bMaxSlotIndex这个栏位应该怎么填, 是否在每一个interface中独立只表明是一个(虽然我想实现2个) 然后,在通讯过程中PC如何指定当前是访问哪一个插槽呢? 我现在用的芯片只有4个端点(2个BULK+2个INT) 是不是双向,还得去查查 不知道能不能做复合设备(像楼主一样的方案.2个CCID就行)  详情 回复 发表于 2012-9-25 22:54
点赞 关注
 

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这是关于PC端的问题,牵扯到Windows的驱动,我没有做过,不是很清楚。但我估计改起来比较困难。

看你的第2张图,既然这个"PC/SC smartcard reader demo"是你自己写的,你何不在读出系统提供的名称之后,在显示的时候换一个名字呢?
此帖出自stm32/stm8论坛
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢版主主,
      第二张图是测试组写的demo,我们的读卡器是要卖给不同的客户,不提供驱动.所以客户列举出的设备名称肯定与DEMO列举的是相同的,客户很难区分哪个设备名称对应哪个卡糟,
此帖出自stm32/stm8论坛
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
因为没有做过这方面的东西,我们也不知道如何改这个名字。

但不知道你是否能够通过获得复合设备的序号来区分哪个卡糟?还有一个办法是增加一条自定义的命令,要求设备端报告卡槽编号。
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢版主主,

           现在尝试修改描术符,看看能不能解决.
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 说到修改描述符,如果你使用复合设备的方式,也许能够通过设置Interface描述符中的string描述符来区分,但我不知道在主机端如何获取这个string描述符。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 ,通过设置Interface描述符中的string描述符可以让PC机显示不同设备的名称,谢谢版主主!
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

8
 
设置Interface描述符中的string描述符能够实现你的要求吗?怎么做到的?

我对这个问题的结果很感兴趣,
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

9
 
interface descriptor中有一项是iInterface,(offset为8)
可以指定一个描述此interface的字符串
如果为0则忽略
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 跟设备描述符中的字符串的做法是一样的拉
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
interface descriptor中有一项是iInterface,(offset为8)
可以指定一个描述此interface的字符串
如果为0则忽略
谢谢!我知道怎么设置,这正是我在8楼所建议的,只是不知道这个string描述符在Windows中是否能够被转化成该设备的名称供程序员或终端用户识别?
此帖出自stm32/stm8论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 你设置了什么,它就会显示什么呀...主机会把请求接口字符串描述符的请求发到接口,你返回字符串描述符就可以了
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 哈哈,谢谢圈圈,好久不见了,就这么简单?下次我也试试看,
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

14
 
谢谢!我知道怎么设置,这正是我在8楼所建议的,只是不知道这个string描述符在Windows中是否能够被转化成该设备的名称供程序员或终端用户识别?
不好意思没看明白
1. 如果是写用户程序,我知道Hid设备可以通过HidD_GetIndexedString(可能未公开需要自己声明)来获得字符串描述符。但是不知道怎么能得到interface的描述符

2. 如果设备管理器中能看到这个interface的描述,可以肯定程序能通过某种方法得到这个字符串。因为这个字符串会在注册表的某个位置中。

3. 如果是写驱动程序,通过转发URB什么信息都能得到。
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

15
 
                                 对!HidD_GetIndexedString()可以读到string描述符,但不知道怎么对应到interface?
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 每个接口都有一个(iInterface),将string的编号放在这里即可.
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

17
 
挖坟了~

楼主以复合设备枚举出3个读卡器,一个PICC,一个ICC,一个SIM,按照规范PICC和ICC各需要三个端点,SIM可以只有两个端点,所以总共需要8个端点,但是STM32的非控制端点只有7个,请问楼主是如何以7个端点满足8个端点需求的?难道是使用了控制端点作为数据端点用?
此帖出自stm32/stm8论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

18
 
共需要的8个端点不是同一方向的

STM32有双向8个端点,也就是8个IN端点和8个OUT端点。
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

19
 
                                 楼上误解了,手册说的8个双向端点是指可以配置成IN或者OUT,某个端点配置成了IN就没有OUT了,反之亦然.
此帖出自stm32/stm8论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

20
 
所谓的双向端点,就是即有IN方向的端点也有OUT方向的端点

STM32支持8个双向端点,完全没有配置了IN就没有OUT之类的限制。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表