1.一种USB设备识别MacOS系统的方法,其特征在于,包括:
步骤A1、USB设备上电;
步骤A2、所述USB设备等待接收主机下发的命令;
当接收到主机下发的获取字符串描述符命令时,向主机发送相应的字符串描述符;
当接收到主机下发的获取配置描述符命令时,向主机发送相应的配置描述符和接口描述符;
所述方法还包括在所述USB设备接收到APDU命令之前:
若所述USB设备先接收到主机下发的获取字符串描述符命令,后接收到主机下发的获取配置描述符命令,则标识主机操作系统的类型为MacOS系统;
若所述USB设备先接收到主机下发的获取配置描述符命令,后接收到主机下发的获取字符串描述符命令,则标识主机操作系统的类型为非MacOS系统。
2.如权利要求1所述的方法,其特征在于,还包括:所述标识主机操作系统的类型为MacOS系统之后,若所述USB设备上电后接收到主机下发的第一条命令为设置地址命令,则标识主机操作系统的版本为第一预设版本,若所述USB设备上电后接收到主机下发的第一条命令为获取设备描述符命令,则标识主机操作系统的版本为第二预设版本。
3.如权利要求1所述的方法,其特征在于:
所述步骤A1中还包括:所述USB设备标识主机操作系统的类型为未知;
所述若所述USB设备先接收到主机下发的获取字符串描述符命令,后接收到主机下发的获取配置描述符命令,则标识主机操作系统的类型为MacOS系统,具体包括:当所述USB设备接收到主机下发的获取字符串描述符命令时,判断主机操作系统的类型是否为未知,是则标识主机操作系统的类型为MacOS系统,向主机发送相应的字符串描述符,否则向主机发送相应的字符串描述符;
所述若所述USB设备先接收到主机下发的获取配置描述符命令,后接收到主机下发的获取字符串描述符命令,则标识主机操作系统的类型为非MacOS系统,具体包括:当所述USB设备接收到主机下发的获取配置描述符命令时,检查主机操作系统的类型是否为未知,是则标识主机操作系统的类型为非MacOS系统,向主机发送相应的配置描述符和接口描述符,否则向主机发送相应的配置描述符和接口描述符。
4.如权利要求3所述的方法,其特征在于,还包括:
当所述USB设备上电后接收到的主机下发的第一条命令为设置地址命令时,设置版本标识为第一预设值;
当所述USB设备上电后接收到的主机下发的第一条命令为获取设备描述符命令时,设置版本标识为第二预设值;
所述标识主机操作系统的类型为MacOS系统之后还包括:所述USB设备检查所述版本标识,若所述版本标识为所述第一预设值则标识主机操作系统的版本为第一预设版本,若所述版本标识为所述第二预设值则标识主机操作系统的版本为第二预设版本。
5.如权利要求1所述的方法,其特征在于:
所述步骤A1中还包括:所述USB设备复位第一接收标志和第二接收标志;
所述若所述USB设备先接收到主机下发的获取字符串描述符命令,后接收到主机下发的获取配置描述符命令,则标识主机操作系统的类型为MacOS系统,具体包括:当所述USB设备接收到主机下发的获取字符串描述符命令时,置位所述第一接收标志,判断所述第二接收标志是否被置位,是则向主机发送相应的字符串描述符,否则标识主机操作系统的类型为MacOS系统,向主机发送相应的字符串描述符;
所述若所述USB设备先接收到主机下发的获取配置描述符命令,后接收到主机下发的获取字符串描述符命令,则标识主机操作系统的类型为非MacOS系统,具体包括:当所述USB设备接收到主机下发的获取配置描述符命令时,置位所述第二接收标志,判断所述第一接收标志是否被置位,是则向主机发送相应的配置描述符和接口描述符,否则标识主机操作系统的类型为非MacOS系统,向主机发送相应的配置描述符和接口描述符。
6.如权利要求1所述的方法,其特征在于,所述向主机发送相应的配置描述符和接口描述符,具体包括:判断主机操作系统的类型,若为MacOS系统则向主机发送预设配置描述符和第一预设接口描述符,若为非MacOS系统则向主机发送预设配置描述符和第二预设接口描述符,所述第一预设接口描述符不同于所述第二接口描述符。
7.如权利要求1所述的方法,其特征在于,所述向主机发送相应的配置描述符和接口描述符,具体包括:所述USB设备向主机发送预设配置描述符和第三预设接口描述符。
8.如权利要求7所述的方法,其特征在于,所述步骤A2还包括:当所述USB设备接收主机下发的APDU命令时,执行所述APDU命令,并根据执行结果组织应答数据,判断所述应答数据的长度是否超过与主机操作系统的类型对应的预设最大包长度,是则将所述应答数据按照所述预设最大包长度分包发送到主机,否则将所述应答数据发送到主机。
9.一种USB设备,其特征在于,包括:
接收模块,用于所述USB设备上电后,接收主机下发的命令;
发送模块,用于当所述接收模块接收到主机下发的获取字符串描述符命令时,向主机发送相应的字符串描述符,当所述接收模块接收到主机下发的获取配置描述符命令时,向主机发送相应的配置描述符和接口描述符;
第一标识模块,用于当所述接收模块接收到APDU命令之前,先接收到主机下发的获取字符串描述符命令,后接收到主机下发的获取配置描述符命令时,标识主机操作系统的类型为MacOS系统;
第二标识模块,用于当所述接收模块接收到APDU命令之前,先接收到主机下发的获取配置描述符命令,后接收到主机下发的获取字符串描述符命令时,标识主机操作系统的类型为非MacOS系统。
10.如权利要求9所述的USB设备,其特征在于,还包括:
第三标识模块,用于所述第一标识模块标识主机操作系统的类型为MacOS系统之后,若所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为设置地址命令,则标识主机操作系统的版本为第一预设版本;
第四标识模块,用于所述第一标识模块标识主机操作系统的类型为MacOS系统之后,若所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为获取设备描述符命令,则标识主机操作系统的版本为第二预设版本。
11.如权利要求9所述的USB设备,其特征在于,还包括:第五标识模块,用于所述USB设备上电后,标识主机操作系统的类型为未知;
所述第一标识模块具体包括:
第一判断单元,用于当所述接收模块接收到主机下发的获取字符串描述符命令时,判断主机操作系统的类型是否为未知;
第一标识单元,用于当所述第一判断单元判断主机操作系统的类型为未知时,标识主机操作系统的类型为MacOS系统;
所述第二标识模块具体包括:
第二判断单元,用于当所述接收模块接收到主机下发的获取配置描述符命令时,判断主机操作系统的类型是否为未知;
第二标识单元,用于当所述第二判断单元判断主机操作系统的类型为未知时,标识主机操作系统的类型为非MacOS系统。
12.如权利要求11所述的USB设备,其特征在于,还包括:
设置模块,用于当所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为设置地址命令时,设置版本标识为第一预设值;当所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为获取设备描述符命令时,设置版本标识为第二预设值;
所述第一标识单元还用于:检查版本标识,若所述版本标识为所述第一预设值,则标识主机操作系统的版本为第一预设版本,若所述版本标识为所述第二预设值,则标识主机操作系统的版本为第二预设版本。
13.如权利要求9所述的USB设备,其特征在于,还包括:复位模块,用于所述USB设备上电后,复位第一接收标志和第二接收标志;
所述第一标识模块具体包括:
第一判断单元,用于当所述接收模块接收到主机下发的获取字符串描述符命令时,置位所述第一接收标志,判断所述第二接收标志是否被置位;
第一标识单元,用于当所述第一判断单元判断所述第二接收标志未被置位时,标识主机操作系统的类型为MacOS系统;
所述第二标识模块具体包括:
第二判断单元,用于当所述接收模块接收到主机下发的获取配置描述符命令时,置位所述第二接收标志,判断所述第一接收标志是否被置位;
第二标识单元,用于当所述第二判断单元判断所述第一接收标志未被置位时,标识主机操作系统的类型为非MacOS系统。
14.如权利要求9所述的USB设备,其特征在于,所述发送模块具体用于:当所述接收模块接收到主机下发的获取配置描述符命令时,判断主机操作系统的类型,若为MacOS系统则向主机发送预设配置描述符和第一预设接口描述符,若为非MacOS系统则向主机发送预设配置描述符和不同于所述第一预设描述符的第二预设接口描述符。
15.如权利要求9所述的USB设备,其特征在于,所述发送模块具体用于:当所述接收模块接收到主机下发的获取配置描述符命令时,向主机发送预设配置描述符和第三预设接口描述符。
16.如权利要求15所述的USB设备,其特征在于:
所述接收模块还用于:接收主机下发的APDU命令;
所述USB设备还包括:执行模块,用于当所述接收模块接收到主机下发的APDU命令时,执行所述接收模块接收到的APDU命令,根据执行结果组织应答数据,判断所述应答数据的长度是否超过与主机操作系统的类型对应的预设最大包长度,是则将所述应答数据按照所述预设最大包长度分包发送到主机,否则将所述应答数据发送到主机。
17.一种USB设备识别MacOS系统的方法,其特征在于,包括:
步骤B1、USB设备上电;
步骤B2、所述USB设备等待接收主机下发的命令;
当接收到主机下发的获取字符串描述符命令时,向主机发送相应的字符串描述符;
所述方法还包括:当所述USB设备上电后首次接收到获取字符串描述符命令时,若所述获取字符串描述符命令中的获取长度为预设字节数则标识主机操作系统的类型为MacOS系统,否则标识主机操作系统的类型为非MacOS系统。
18.如权利要求17所述的方法,其特征在于,还包括:所述标识主机操作系统的类型为MacOS系统之后,若所述USB设备上电后接收到主机下发的第一条命令为设置地址命令,则标识主机操作系统的版本为第一预设版本,若所述USB设备上电后接收到主机下发的第一条命令为获取设备描述符命令,则标识主机操作系统的版本为第二预设版本。
19.如权利要求17所述的方法,其特征在于:
所述步骤B1中还包括:所述USB设备标识主机操作系统的类型为未知;
所述当所述USB设备上电后首次接收到获取字符串描述符命令时,若所述获取字符串描述符命令中的获取长度为预设字节数则标识主机操作系统的类型为MacOS系统,否则标识主机操作系统的类型为非MacOS系统,具体包括:
步骤1-1、当所述USB设备接收到主机下发的获取字符串描述符命令时,检查主机操作系统的类型是否为未知,是则执行步骤1-2,否则向主机发送相应的字符串描述符;
步骤1-2、所述USB设备判断获取字符串描述符命令中的获取长度是否为预设字节数,是则标识主机操作系统的类型为MacOS系统,否则标识主机操作系统的类型为非MacOS系统。
20.如权利要求19所述的方法,其特征在于,还包括:
当所述USB设备上电后接收到的主机下发的第一条命令为设置地址命令时,设置版本标识为第一预设值;
当所述USB设备上电后接收到的主机下发的第一条命令为获取设备描述符命令时,设置版本标识为第二预设值;
所述标识主机操作系统的类型为MacOS系统之后还包括:所述USB设备检查所述版本标识,若所述版本标识为所述第一预设值则标识主机操作系统的版本为第一预设版本,若所述版本标识为所述第二预设值则标识主机操作系统的版本为第二预设版本。
21.如权利要求17所述的方法,其特征在于:
所述步骤B1中还包括:所述USB设备复位接收标志;
所述当所述USB设备上电后首次接收到获取字符串描述符命令时,若所述获取字符串描述符命令中的获取长度为预设字节数则标识主机操作系统的类型为MacOS系统,否则标识主机操作系统的类型为非MacOS系统,具体包括:
步骤2-1、当所述USB设备接收到主机下发的获取字符串描述符命令时,检查所述接收标志是否已被置位,是则向主机发送相应的字符串描述符,否则执行步骤2-2;
步骤2-2、所述USB设备判断获取字符串描述符命令中的获取长度是否为预设字节数,是则标识主机操作系统为MacOS系统,否则标识主机操作系统的类型为非MacOS系统。
22.如权利要求17所述的方法,其特征在于,所述步骤B2中还包括:当所述USB设备接收到主机下发的获取配置描述符命令时,向主机发送相应的配置描述符和接口描述符。
23.如权利要求22所述的方法,其特征在于,所述向主机发送相应的配置描述符和接口描述符,具体包括:判断主机操作系统的类型,若为MacOS系统则向主机发送预设配置描述符和第一预设接口描述符,若为非MacOS系统则向主机发送预设配置描述符和第二预设接口描述符;所述第一预设接口描述符不同于所述第二预设接口描述符。
24.如权利要求22所述的方法,其特征在于,所述向主机返回相应的配置描述符和接口描述符,具体包括:向主机发送预设配置描述符和第三预设接口描述符。
25.如权利要求24所述的方法,其特征在于,所述步骤B2中还包括:当所述USB设备接收到主机下发的APDU命令时,执行所述APDU命令,根据执行结果组织应答数据,判断所述应答数据的长度是否超过与主机操作系统的类型对应的预设最大包长度,是则将所述应答数据按照所述预设最大包长度分包发送到主机,否则将所述应答数据发送到主机。
26.一种USB设备,其特征在于,包括:
接收模块,用于所述USB设备上电后,接收主机下发的获取字符串描述符命令;
发送模块,用于所述接收模块接收到主机下发的获取字符串描述符命令后,向主机发送相应的字符串描述符;
第一标识模块,用于当所述接收模块在所述USB设备上电后首次接收到获取字符串描述符命令时,若所述获取字符串描述符命令中的获取长度为预设字节数则标识主机操作系统的类型为MacOS系统,否则标识主机操作系统的类型为非MacOS系统。
27.如权利要求26所述的USB设备,其特征在于,还包括:
第二标识模块,用于所述第一标识模块标识主机操作系统的类型为MacOS系统之后,若所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为设置地址命令,则标识主机操作系统的版本为第一预设版本;
第三标识模块,用于所述第一标识模块标识主机操作系统的类型为MacOS系统之后,若所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为获取设备描述符命令,则标识主机操作系统的版本为第二预设版本。
28.如权利要求26所述的USB设备,其特征在于,还包括:第四标识模块,用于所述USB设备上电后,标识主机操作系统的类型为未知;
所述第一标识模块具体包括:
判断单元,用于当所述接收模块接收到主机下发的获取字符串描述符命令时,判断主机操作系统的类型是否为未知;
标识单元,用于当所述判断单元判断主机操作系统的类型为未知时,判断所述接收模块接收到的获取字符串描述符命令中的获取长度是否为预设字节数,是则标识主机操作系统的类型为MacOS系统,否则标识主机操作系统的类型为非MacOS系统。
29.如权利要求28所述的USB设备,其特征在于,还包括:
设置模块,用于当所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为设置地址命令时,设置版本标识为第一预设值;当所述接收模块在所述USB设备上电后接收到的主机下发的第一条命令为获取设备描述符命令时,设置版本标识为第二预设值;
所述标识单元还用于:检查版本标识,若所述版本标识为所述第一预设值,则标识主机操作系统的版本为第一预设版本,若所述版本标识为所述第二预设值,则标识主机操作系统的版本为第二预设版本。
30.如权利要求26所述的USB设备,其特征在于,还包括:复位模块,用于所述USB设备上电后,复位接收标志;
所述第一标识模块具体包括:
判断单元,用于当所述接收模块接收到主机下发的获取字符串描述符命令时,判断所述接收标志是否被置位;
标识单元,用于当所述判断单元判断所述接收标志未被置位时,判断所述接收模块接收到的获取字符串描述符命令中的获取长度是否为预设字节数,是则标识主机操作系统的类型为MacOS系统,否则标识主机操作系统的类型为非MacOS系统。
31.如权利要求26所述的USB设备,其特征在于:
所述接收模块还用于:接收主机下发的获取配置描述符命令;
所述发送模块还用于:当所述接收模块接收到主机下发的获取配置描述符命令时,向主机发送相应的配置描述符和接口描述符。
32.如权利要求31所述的USB设备,其特征在于,所述发送模块具体用于:当所述接收模块接收到主机下发的获取配置描述符命令时,判断主机操作系统的类型,若为MacOS系统则向主机发送预设配置描述符和第一预设接口描述符,若为非MacOS系统则向主机发送预设配置描述符和不同于所述第一预设描述符的第二预设接口描述符。
33.如权利要求31所述的USB设备,其特征在于,所述发送模块具体用于:当所述接收模块接收到主机下发的获取配置描述符命令时,向主机发送预设配置描述符和第三预设接口描述符。
34.如权利要求33所述的USB设备,其特征在于:
所述接收模块还用于:接收主机下发的APDU命令;
所述USB设备还包括:执行模块,用于当所述接收模块接收到主机下发的APDU命令时,执行所述接收模块接收到的APDU命令,根据执行结果组织应答数据,判断所述应答数据的长度是否超过与主机操作系统的类型对应的预设最大包长度,是则将所述应答数据按照所述预设最大包长度分包发送到主机,否则将所述应答数据发送到主机。