1.一種USB設(shè)備識別MacOS系統(tǒng)的方法,其特征在于,包括:
步驟A1、USB設(shè)備上電;
步驟A2、所述USB設(shè)備等待接收主機(jī)下發(fā)的命令;
當(dāng)接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),向主機(jī)發(fā)送相應(yīng)的字符串描述符;
當(dāng)接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符;
所述方法還包括在所述USB設(shè)備接收到APDU命令之前:
若所述USB設(shè)備先接收到主機(jī)下發(fā)的獲取字符串描述符命令,后接收到主機(jī)下發(fā)的獲取配置描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng);
若所述USB設(shè)備先接收到主機(jī)下發(fā)的獲取配置描述符命令,后接收到主機(jī)下發(fā)的獲取字符串描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
2.如權(quán)利要求1所述的方法,其特征在于,還包括:所述標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后,若所述USB設(shè)備上電后接收到主機(jī)下發(fā)的第一條命令為設(shè)置地址命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本,若所述USB設(shè)備上電后接收到主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
3.如權(quán)利要求1所述的方法,其特征在于:
所述步驟A1中還包括:所述USB設(shè)備標(biāo)識主機(jī)操作系統(tǒng)的類型為未知;
所述若所述USB設(shè)備先接收到主機(jī)下發(fā)的獲取字符串描述符命令,后接收到主機(jī)下發(fā)的獲取配置描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),具體包括:當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),判斷主機(jī)操作系統(tǒng)的類型是否為未知,是則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),向主機(jī)發(fā)送相應(yīng)的字符串描述符,否則向主機(jī)發(fā)送相應(yīng)的字符串描述符;
所述若所述USB設(shè)備先接收到主機(jī)下發(fā)的獲取配置描述符命令,后接收到主機(jī)下發(fā)的獲取字符串描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng),具體包括:當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),檢查主機(jī)操作系統(tǒng)的類型是否為未知,是則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng),向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符,否則向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符。
4.如權(quán)利要求3所述的方法,其特征在于,還包括:
當(dāng)所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為設(shè)置地址命令時(shí),設(shè)置版本標(biāo)識為第一預(yù)設(shè)值;
當(dāng)所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令時(shí),設(shè)置版本標(biāo)識為第二預(yù)設(shè)值;
所述標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后還包括:所述USB設(shè)備檢查所述版本標(biāo)識,若所述版本標(biāo)識為所述第一預(yù)設(shè)值則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本,若所述版本標(biāo)識為所述第二預(yù)設(shè)值則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
5.如權(quán)利要求1所述的方法,其特征在于:
所述步驟A1中還包括:所述USB設(shè)備復(fù)位第一接收標(biāo)志和第二接收標(biāo)志;
所述若所述USB設(shè)備先接收到主機(jī)下發(fā)的獲取字符串描述符命令,后接收到主機(jī)下發(fā)的獲取配置描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),具體包括:當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),置位所述第一接收標(biāo)志,判斷所述第二接收標(biāo)志是否被置位,是則向主機(jī)發(fā)送相應(yīng)的字符串描述符,否則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),向主機(jī)發(fā)送相應(yīng)的字符串描述符;
所述若所述USB設(shè)備先接收到主機(jī)下發(fā)的獲取配置描述符命令,后接收到主機(jī)下發(fā)的獲取字符串描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng),具體包括:當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),置位所述第二接收標(biāo)志,判斷所述第一接收標(biāo)志是否被置位,是則向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符,否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng),向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符。
6.如權(quán)利要求1所述的方法,其特征在于,所述向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符,具體包括:判斷主機(jī)操作系統(tǒng)的類型,若為MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第一預(yù)設(shè)接口描述符,若為非MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第二預(yù)設(shè)接口描述符,所述第一預(yù)設(shè)接口描述符不同于所述第二接口描述符。
7.如權(quán)利要求1所述的方法,其特征在于,所述向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符,具體包括:所述USB設(shè)備向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第三預(yù)設(shè)接口描述符。
8.如權(quán)利要求7所述的方法,其特征在于,所述步驟A2還包括:當(dāng)所述USB設(shè)備接收主機(jī)下發(fā)的APDU命令時(shí),執(zhí)行所述APDU命令,并根據(jù)執(zhí)行結(jié)果組織應(yīng)答數(shù)據(jù),判斷所述應(yīng)答數(shù)據(jù)的長度是否超過與主機(jī)操作系統(tǒng)的類型對應(yīng)的預(yù)設(shè)最大包長度,是則將所述應(yīng)答數(shù)據(jù)按照所述預(yù)設(shè)最大包長度分包發(fā)送到主機(jī),否則將所述應(yīng)答數(shù)據(jù)發(fā)送到主機(jī)。
9.一種USB設(shè)備,其特征在于,包括:
接收模塊,用于所述USB設(shè)備上電后,接收主機(jī)下發(fā)的命令;
發(fā)送模塊,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),向主機(jī)發(fā)送相應(yīng)的字符串描述符,當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符;
第一標(biāo)識模塊,用于當(dāng)所述接收模塊接收到APDU命令之前,先接收到主機(jī)下發(fā)的獲取字符串描述符命令,后接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng);
第二標(biāo)識模塊,用于當(dāng)所述接收模塊接收到APDU命令之前,先接收到主機(jī)下發(fā)的獲取配置描述符命令,后接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
10.如權(quán)利要求9所述的USB設(shè)備,其特征在于,還包括:
第三標(biāo)識模塊,用于所述第一標(biāo)識模塊標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后,若所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為設(shè)置地址命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本;
第四標(biāo)識模塊,用于所述第一標(biāo)識模塊標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后,若所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
11.如權(quán)利要求9所述的USB設(shè)備,其特征在于,還包括:第五標(biāo)識模塊,用于所述USB設(shè)備上電后,標(biāo)識主機(jī)操作系統(tǒng)的類型為未知;
所述第一標(biāo)識模塊具體包括:
第一判斷單元,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),判斷主機(jī)操作系統(tǒng)的類型是否為未知;
第一標(biāo)識單元,用于當(dāng)所述第一判斷單元判斷主機(jī)操作系統(tǒng)的類型為未知時(shí),標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng);
所述第二標(biāo)識模塊具體包括:
第二判斷單元,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),判斷主機(jī)操作系統(tǒng)的類型是否為未知;
第二標(biāo)識單元,用于當(dāng)所述第二判斷單元判斷主機(jī)操作系統(tǒng)的類型為未知時(shí),標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
12.如權(quán)利要求11所述的USB設(shè)備,其特征在于,還包括:
設(shè)置模塊,用于當(dāng)所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為設(shè)置地址命令時(shí),設(shè)置版本標(biāo)識為第一預(yù)設(shè)值;當(dāng)所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令時(shí),設(shè)置版本標(biāo)識為第二預(yù)設(shè)值;
所述第一標(biāo)識單元還用于:檢查版本標(biāo)識,若所述版本標(biāo)識為所述第一預(yù)設(shè)值,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本,若所述版本標(biāo)識為所述第二預(yù)設(shè)值,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
13.如權(quán)利要求9所述的USB設(shè)備,其特征在于,還包括:復(fù)位模塊,用于所述USB設(shè)備上電后,復(fù)位第一接收標(biāo)志和第二接收標(biāo)志;
所述第一標(biāo)識模塊具體包括:
第一判斷單元,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),置位所述第一接收標(biāo)志,判斷所述第二接收標(biāo)志是否被置位;
第一標(biāo)識單元,用于當(dāng)所述第一判斷單元判斷所述第二接收標(biāo)志未被置位時(shí),標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng);
所述第二標(biāo)識模塊具體包括:
第二判斷單元,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),置位所述第二接收標(biāo)志,判斷所述第一接收標(biāo)志是否被置位;
第二標(biāo)識單元,用于當(dāng)所述第二判斷單元判斷所述第一接收標(biāo)志未被置位時(shí),標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
14.如權(quán)利要求9所述的USB設(shè)備,其特征在于,所述發(fā)送模塊具體用于:當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),判斷主機(jī)操作系統(tǒng)的類型,若為MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第一預(yù)設(shè)接口描述符,若為非MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和不同于所述第一預(yù)設(shè)描述符的第二預(yù)設(shè)接口描述符。
15.如權(quán)利要求9所述的USB設(shè)備,其特征在于,所述發(fā)送模塊具體用于:當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第三預(yù)設(shè)接口描述符。
16.如權(quán)利要求15所述的USB設(shè)備,其特征在于:
所述接收模塊還用于:接收主機(jī)下發(fā)的APDU命令;
所述USB設(shè)備還包括:執(zhí)行模塊,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的APDU命令時(shí),執(zhí)行所述接收模塊接收到的APDU命令,根據(jù)執(zhí)行結(jié)果組織應(yīng)答數(shù)據(jù),判斷所述應(yīng)答數(shù)據(jù)的長度是否超過與主機(jī)操作系統(tǒng)的類型對應(yīng)的預(yù)設(shè)最大包長度,是則將所述應(yīng)答數(shù)據(jù)按照所述預(yù)設(shè)最大包長度分包發(fā)送到主機(jī),否則將所述應(yīng)答數(shù)據(jù)發(fā)送到主機(jī)。
17.一種USB設(shè)備識別MacOS系統(tǒng)的方法,其特征在于,包括:
步驟B1、USB設(shè)備上電;
步驟B2、所述USB設(shè)備等待接收主機(jī)下發(fā)的命令;
當(dāng)接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),向主機(jī)發(fā)送相應(yīng)的字符串描述符;
所述方法還包括:當(dāng)所述USB設(shè)備上電后首次接收到獲取字符串描述符命令時(shí),若所述獲取字符串描述符命令中的獲取長度為預(yù)設(shè)字節(jié)數(shù)則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
18.如權(quán)利要求17所述的方法,其特征在于,還包括:所述標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后,若所述USB設(shè)備上電后接收到主機(jī)下發(fā)的第一條命令為設(shè)置地址命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本,若所述USB設(shè)備上電后接收到主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
19.如權(quán)利要求17所述的方法,其特征在于:
所述步驟B1中還包括:所述USB設(shè)備標(biāo)識主機(jī)操作系統(tǒng)的類型為未知;
所述當(dāng)所述USB設(shè)備上電后首次接收到獲取字符串描述符命令時(shí),若所述獲取字符串描述符命令中的獲取長度為預(yù)設(shè)字節(jié)數(shù)則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng),具體包括:
步驟1-1、當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),檢查主機(jī)操作系統(tǒng)的類型是否為未知,是則執(zhí)行步驟1-2,否則向主機(jī)發(fā)送相應(yīng)的字符串描述符;
步驟1-2、所述USB設(shè)備判斷獲取字符串描述符命令中的獲取長度是否為預(yù)設(shè)字節(jié)數(shù),是則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
20.如權(quán)利要求19所述的方法,其特征在于,還包括:
當(dāng)所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為設(shè)置地址命令時(shí),設(shè)置版本標(biāo)識為第一預(yù)設(shè)值;
當(dāng)所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令時(shí),設(shè)置版本標(biāo)識為第二預(yù)設(shè)值;
所述標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后還包括:所述USB設(shè)備檢查所述版本標(biāo)識,若所述版本標(biāo)識為所述第一預(yù)設(shè)值則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本,若所述版本標(biāo)識為所述第二預(yù)設(shè)值則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
21.如權(quán)利要求17所述的方法,其特征在于:
所述步驟B1中還包括:所述USB設(shè)備復(fù)位接收標(biāo)志;
所述當(dāng)所述USB設(shè)備上電后首次接收到獲取字符串描述符命令時(shí),若所述獲取字符串描述符命令中的獲取長度為預(yù)設(shè)字節(jié)數(shù)則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng),具體包括:
步驟2-1、當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),檢查所述接收標(biāo)志是否已被置位,是則向主機(jī)發(fā)送相應(yīng)的字符串描述符,否則執(zhí)行步驟2-2;
步驟2-2、所述USB設(shè)備判斷獲取字符串描述符命令中的獲取長度是否為預(yù)設(shè)字節(jié)數(shù),是則標(biāo)識主機(jī)操作系統(tǒng)為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
22.如權(quán)利要求17所述的方法,其特征在于,所述步驟B2中還包括:當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符。
23.如權(quán)利要求22所述的方法,其特征在于,所述向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符,具體包括:判斷主機(jī)操作系統(tǒng)的類型,若為MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第一預(yù)設(shè)接口描述符,若為非MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第二預(yù)設(shè)接口描述符;所述第一預(yù)設(shè)接口描述符不同于所述第二預(yù)設(shè)接口描述符。
24.如權(quán)利要求22所述的方法,其特征在于,所述向主機(jī)返回相應(yīng)的配置描述符和接口描述符,具體包括:向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第三預(yù)設(shè)接口描述符。
25.如權(quán)利要求24所述的方法,其特征在于,所述步驟B2中還包括:當(dāng)所述USB設(shè)備接收到主機(jī)下發(fā)的APDU命令時(shí),執(zhí)行所述APDU命令,根據(jù)執(zhí)行結(jié)果組織應(yīng)答數(shù)據(jù),判斷所述應(yīng)答數(shù)據(jù)的長度是否超過與主機(jī)操作系統(tǒng)的類型對應(yīng)的預(yù)設(shè)最大包長度,是則將所述應(yīng)答數(shù)據(jù)按照所述預(yù)設(shè)最大包長度分包發(fā)送到主機(jī),否則將所述應(yīng)答數(shù)據(jù)發(fā)送到主機(jī)。
26.一種USB設(shè)備,其特征在于,包括:
接收模塊,用于所述USB設(shè)備上電后,接收主機(jī)下發(fā)的獲取字符串描述符命令;
發(fā)送模塊,用于所述接收模塊接收到主機(jī)下發(fā)的獲取字符串描述符命令后,向主機(jī)發(fā)送相應(yīng)的字符串描述符;
第一標(biāo)識模塊,用于當(dāng)所述接收模塊在所述USB設(shè)備上電后首次接收到獲取字符串描述符命令時(shí),若所述獲取字符串描述符命令中的獲取長度為預(yù)設(shè)字節(jié)數(shù)則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
27.如權(quán)利要求26所述的USB設(shè)備,其特征在于,還包括:
第二標(biāo)識模塊,用于所述第一標(biāo)識模塊標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后,若所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為設(shè)置地址命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本;
第三標(biāo)識模塊,用于所述第一標(biāo)識模塊標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng)之后,若所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
28.如權(quán)利要求26所述的USB設(shè)備,其特征在于,還包括:第四標(biāo)識模塊,用于所述USB設(shè)備上電后,標(biāo)識主機(jī)操作系統(tǒng)的類型為未知;
所述第一標(biāo)識模塊具體包括:
判斷單元,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),判斷主機(jī)操作系統(tǒng)的類型是否為未知;
標(biāo)識單元,用于當(dāng)所述判斷單元判斷主機(jī)操作系統(tǒng)的類型為未知時(shí),判斷所述接收模塊接收到的獲取字符串描述符命令中的獲取長度是否為預(yù)設(shè)字節(jié)數(shù),是則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
29.如權(quán)利要求28所述的USB設(shè)備,其特征在于,還包括:
設(shè)置模塊,用于當(dāng)所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為設(shè)置地址命令時(shí),設(shè)置版本標(biāo)識為第一預(yù)設(shè)值;當(dāng)所述接收模塊在所述USB設(shè)備上電后接收到的主機(jī)下發(fā)的第一條命令為獲取設(shè)備描述符命令時(shí),設(shè)置版本標(biāo)識為第二預(yù)設(shè)值;
所述標(biāo)識單元還用于:檢查版本標(biāo)識,若所述版本標(biāo)識為所述第一預(yù)設(shè)值,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第一預(yù)設(shè)版本,若所述版本標(biāo)識為所述第二預(yù)設(shè)值,則標(biāo)識主機(jī)操作系統(tǒng)的版本為第二預(yù)設(shè)版本。
30.如權(quán)利要求26所述的USB設(shè)備,其特征在于,還包括:復(fù)位模塊,用于所述USB設(shè)備上電后,復(fù)位接收標(biāo)志;
所述第一標(biāo)識模塊具體包括:
判斷單元,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取字符串描述符命令時(shí),判斷所述接收標(biāo)志是否被置位;
標(biāo)識單元,用于當(dāng)所述判斷單元判斷所述接收標(biāo)志未被置位時(shí),判斷所述接收模塊接收到的獲取字符串描述符命令中的獲取長度是否為預(yù)設(shè)字節(jié)數(shù),是則標(biāo)識主機(jī)操作系統(tǒng)的類型為MacOS系統(tǒng),否則標(biāo)識主機(jī)操作系統(tǒng)的類型為非MacOS系統(tǒng)。
31.如權(quán)利要求26所述的USB設(shè)備,其特征在于:
所述接收模塊還用于:接收主機(jī)下發(fā)的獲取配置描述符命令;
所述發(fā)送模塊還用于:當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),向主機(jī)發(fā)送相應(yīng)的配置描述符和接口描述符。
32.如權(quán)利要求31所述的USB設(shè)備,其特征在于,所述發(fā)送模塊具體用于:當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),判斷主機(jī)操作系統(tǒng)的類型,若為MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第一預(yù)設(shè)接口描述符,若為非MacOS系統(tǒng)則向主機(jī)發(fā)送預(yù)設(shè)配置描述符和不同于所述第一預(yù)設(shè)描述符的第二預(yù)設(shè)接口描述符。
33.如權(quán)利要求31所述的USB設(shè)備,其特征在于,所述發(fā)送模塊具體用于:當(dāng)所述接收模塊接收到主機(jī)下發(fā)的獲取配置描述符命令時(shí),向主機(jī)發(fā)送預(yù)設(shè)配置描述符和第三預(yù)設(shè)接口描述符。
34.如權(quán)利要求33所述的USB設(shè)備,其特征在于:
所述接收模塊還用于:接收主機(jī)下發(fā)的APDU命令;
所述USB設(shè)備還包括:執(zhí)行模塊,用于當(dāng)所述接收模塊接收到主機(jī)下發(fā)的APDU命令時(shí),執(zhí)行所述接收模塊接收到的APDU命令,根據(jù)執(zhí)行結(jié)果組織應(yīng)答數(shù)據(jù),判斷所述應(yīng)答數(shù)據(jù)的長度是否超過與主機(jī)操作系統(tǒng)的類型對應(yīng)的預(yù)設(shè)最大包長度,是則將所述應(yīng)答數(shù)據(jù)按照所述預(yù)設(shè)最大包長度分包發(fā)送到主機(jī),否則將所述應(yīng)答數(shù)據(jù)發(fā)送到主機(jī)。