WO2011076035A1 - 一种实现多卡槽访问的方法和装置 - Google Patents

一种实现多卡槽访问的方法和装置 Download PDF

Info

Publication number
WO2011076035A1
WO2011076035A1 PCT/CN2010/078052 CN2010078052W WO2011076035A1 WO 2011076035 A1 WO2011076035 A1 WO 2011076035A1 CN 2010078052 W CN2010078052 W CN 2010078052W WO 2011076035 A1 WO2011076035 A1 WO 2011076035A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
ccid
card slot
card
host
Prior art date
Application number
PCT/CN2010/078052
Other languages
English (en)
French (fr)
Inventor
陆舟
于华章
Original Assignee
北京飞天诚信科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京飞天诚信科技有限公司 filed Critical 北京飞天诚信科技有限公司
Priority to US13/125,156 priority Critical patent/US8443120B2/en
Publication of WO2011076035A1 publication Critical patent/WO2011076035A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3804Memory card connected to a computer port directly or by means of a reader/writer

Definitions

  • the multi-card slot CCID device establishes a connection with the host, declaring at least one pair of IN/OUT endpoints used to implement the response pipeline and the command pipeline as BULK-IN and BULK-OUT endpoints, and at least one IN for implementing the event notification pipeline
  • the endpoint is declared as an interrupt endpoint, and declares to the host that it is a device conforming to the CCID interface standard and the number of card slots supported by itself;
  • the descriptor needs to include the following features: In the interface descriptor, byte 0 is the byte length of the descriptor, the value is 09h, and byte 1 is the fixed terminal, the value is 04h, byte 4 Represents the terminal number it supports (except terminal 0), the value is 02h or 03h, byte 5 is the class code, the value is 0Bh, byte 6 is the subclass code, the value is 00h, byte 7 is the protocol code, value Is 00h; in the type descriptor, byte 0 is the byte length of the descriptor, the value is 36h, byte 2 is the version number of the CCID specification, it is a decimal number represented by a binary code, the value is 0100h, byte 52 Is the PIN code support, the value is 00h-03h.
  • Step 112 The CCID device assembles the smart card insertion or extraction event information into a data packet conforming to the CCID interface standard and returns it to the host, and performs step 104;
  • the CCID device establishes a connection with the host through the USB interface.
  • Step 206 The CCID device checks the USB flag to determine whether the USB flag is a flag for receiving the BULK-OUT packet.
  • step 209 is performed;
  • the process of determining the type of the CCID command in the data packet may be: the CCID device parses the command stream conforming to the CCID standard, splits the first byte in the header of the command stream, and obtains the command of the command stream. Types of. For example, the first byte is 6B, indicating the channel extension command; the first byte is 62, indicating the power-on command; the first byte is 61, indicating the parameter setting command; and so on.
  • the sixth byte in the CCID command (ie, the Slot field in the command) displays the number of the multi-card slot CCID device card slot corresponding to the smart card operation command.
  • the 11th and 12th byte 6066 are customized, indicating that the flash is read.
  • the firmware program in the CCID device splits the header of the received channel switching command, and obtains the length of the data packet and its position in the buffer of the CCID device by calculating the data length flag in the command header, and obtains the command.
  • the identifier in the stream packet which is the CCID that can be customized by the manufacturer, and the specific purpose of the channel switching command can be known by the identifier. If the identifier indicates that the channel switching command is used for card slot switching, by viewing the 13th byte of the command, the card slot number to be activated by the command can be obtained, and then the card is controlled by the circuit control program unit of the CCID device. The card slot corresponding to the slot number is activated.
  • the Slot field (the sixth byte) in the channel switching command conforming to the CCID standard is a fixed 00, taking the example of the reader driver using the CCID protocol of Microsoft.
  • the CCID device activates the card slot corresponding to the card slot number (for example, the card slot 1, the card slot 2, and the card slot 3) through the circuit control program unit, and the specific implementation process may be as follows:
  • step 305 is performed (ie, the CCID device enters the interrupt service);
  • Step 314 The CCID device assembles the smart card insertion or extraction event information into a data packet conforming to the CCID interface standard and returns it to the host, and returns to step 316;
  • step 313' is performed
  • the CCID device card slot switching circuit includes a CPU, a plurality of CPU interfaces, and a circuit control program unit; the plurality of CPU interfaces are respectively connected to the respective card slots in the CCID device, and the CCID device analyzes the card slot. After numbering, the circuit control program unit communicates the circuit between the CPU interface and the corresponding card slot.
  • Step 306 the CCID device assembles the smart card insertion or extraction event information into a data packet conforming to the CCID interface standard and returns it to the host;
  • the main control module 402 further includes: a receiving unit, an analyzing unit, a splitting unit, a calculating unit, a response forming unit, a first determining unit, a second determining unit, a first processing unit, a second processing unit, and a sending unit;
  • the splitting unit is configured to split the first byte in the header of the command stream parsed by the parsing unit to obtain a command type of the command stream; wherein, when the first byte is 6B, the channel extension command is displayed;

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Systems (AREA)

Description

一种实现多卡槽访问的方法和装置 技术领域
本发明涉及数据通讯领域,特别涉及一种实现多卡槽访问的方法和装置。
背景技术
CCID(USB Chip/Smart Card Interface Devices-USB,芯片智能卡接口设备)标准是由几大国际级IT企业共同制定的一个标准,它提供了一种智能卡读写设备与主机或其他嵌入式主机之间实现相互通讯的可能。CCID标准规定了CCID设备是一种芯片/智能卡接口设备,设备通过USB接口与主机或其他嵌入式主机连接,进行符合CCID标准的数据通信,同时设备通过符合7816标准协议的接口与智能卡进行通讯。微软公司在其WINDOWS2000及以上的操作***上提供并支持CCID驱动,使设备生产厂商可以轻松的开发使用符合CCID接口标准的设备。同时,CCID接口标准支持PC(Personal Computer 个人计算机)/SC(Smart Card 智能卡)接口调用,使广大开发者可以方便的对智能密钥设备进行开发操作。在其他开源操作***如LINUX的众多版本上,也有许多开源的CCID驱动可供开发者和使用者使用。
在实现本发明的过程中,发明人发现现有技术至少存在以下缺点:
CCID协议是一个单通道协议,支持多卡槽的访问,但微软的CCID驱动在对读卡器操作时,仅可以对一个卡槽进行访问。
发明内容
为了实现CCID协议下的多卡槽访问,本发明实施例提供了一种实现多卡座访问的方法和装置。所述技术方案如下:
一种实现多卡槽访问的方法,其特征在于,所述方法包括:
多卡槽的CCID设备与主机建立连接,将至少一对用来实现应答管道和命令管道的IN/OUT端点声明为BULK-IN和BULK-OUT端点,将至少一个用来实现事件通知管道的IN端点声明为中断端点,并向所述主机声明其自身是符合CCID接口标准的设备以及自身支持的卡槽数;
主机对所述多卡槽的CCID设备进行访问;
所述多卡槽的CCID设备接收BULK-OUT数据包,并根据所述BULK-OUT数据包判断所述主机下发的CCID命令的类型;
当所述CCID命令类型是通道扩展命令时,则判断所述通道扩展命令是否是通道切换命令;如果所述通道扩展命令是通道切换命令时,则解析所述通道切换命令,并激活所述主机欲访问的相应卡槽;如果所述通道扩展命令不是通道切换命令时,则根据所述通道扩展命令的命令类型进行相应的处理;
当所述CCID命令的类型不是通道扩展命令,则根据所述CCID命令类型进行相应的处理。
向所述主机声明其自身支持的卡槽数,具体包括:
所述CCID设备向所述主机发送卡槽描述符,所述卡槽描述符中使用一个字节表示CCID设备自身支持的卡槽数。
根据所述BULK-OUT数据包判断所述主机下发的CCID命令的类型,具体包括:
所述CCID设备解析符合CCID标准的命令流,拆分所述命令流的包头中的第一个字节,得到该命令流的命令类型;
其中,当所述第一个字节为6B时,表示通道扩展命令。
判断所述通道扩展命令是否是通道切换命令,具体包括:
所述CCID设备解析所述通道扩展命令,根据所述通道扩展命令中的标识符字段得到该命令的的命令类型;
其中,所述标识符是自定义标识符。
解析所述通道切换命令,并激活所述主机欲访问的相应卡槽,具体包括:
所述CCID设备中的固件程序拆分所述通道切换命令的包头;
通过计算所述通道切换命令包头中的数据长度标志,获知数据包的长度及所述数据包在所述CCID设备收发缓冲中的位置,得到所述通道切换命令数据包中的标识符,所述标识符用于标识所述通道切换命令的具体用途;
如果所述标识符表示该通道切换命令是用于卡槽切换的,则查看所述通道切换命令的第13个字节,得到本条通道切换命令所要访问的卡槽序号;
通过所述CCID设备的电路控制程序单元将所述卡槽序号所对应的卡槽激活。
所述方法还包括:判断被激活卡槽中是否有智能卡插拔事件信息;
如果有,则向所述主机返回符合CCID标准的智能卡插拔事件信息;
如果没有,则继续执行所述多卡槽的CCID设备接收BULK-OUT数据包的步骤。
所述判断是否有智能卡插拔事件信息,具体包括:
判断所述CCID设备的收发缓冲中是否有所述智能卡插拔事件信息,所述智能卡插拔事件信息由所述CCID设备在接收到有智能卡***或拔出的中断信号时写入到所述收发缓冲中。
一种多卡槽的CCID设备,所述设备包括:接口模块、主控模块、判断模块和卡槽切换电路模块;
所述接口模块,分别与主机和所述主控模块相连接,用于实现所述主机与所述主控模块之间的信息交互;
所述主控模块,分别与所述接口模块和所述判断模块相连接,用于控制所述接口模块接收主机下发的命令流,控制所述判断模块接收智能卡发送的应答,控制所述判断模块发送命令流中的数据包到所述智能卡,控制所述接口模块发送符合CCID标准的应答数据包到所述主机;
所述判断模块,分别与所述主控模块和所述卡槽切换电路模块相连接,用于判断CCID设备中是否有智能卡插拔事件信息,并将所述智能卡插拔事件信息通过所述主控模块返回给所述主机,
所述卡槽切换电路模块,分别与所述判断模块和卡槽相连接,用于接收所述主控模块发送的命令流;如果接收到所述主控模块发送的通道切换命令,则根据卡槽序列号激活相应的卡槽;如果接收到所述主控模块发送的其他命令,则将所述其他命令发送给所述智能卡,并将所述智能卡的应答数据包发送给所述判断模块。
所述接口模块具体包括:描述符设置单元和端点设置单元;
所述描述符设置单元,用于设置符合CCID标准中规定的设备类型描述符及卡槽描述符;所述CCID设备通过所述设备类型描述符向主机声明自身是CCID设备,通过所述卡槽描述符向主机声明自身支持的卡槽数;
所述端点设置单元,用于将至少一对用来实现应答管道和命令管道的IN/OUT端点设置为BULK-IN和BULK-OUT端点,将至少一个用来实现事件通知管道的IN端点声明为中断端点。
所述主控模块具体包括:
接收单元,用于接收所述主机通过所述接口模块发送的命令流,及接收智能卡通过所述判断模块返回的应答;
解析单元,用于解析所述接收单元接收到的所述命令流;
拆分单元,用于拆分所述解析单元解析出来的命令流的包头中的第一个字节,得到该命令流的命令类型,其中,当第一个字节为6B时,表示通道扩展命令;
计算单元,用于根据所述接收单元接收到的命令流中的数据长度标志,确定命令流中的数据包长度和所述数据包在所述CCID设备收发缓冲中的位置;
应答组成单元,用于将应答组成符合CCID标准的应答数据包;
第一判断单元,用于根据所述接收模块接收到的BULK-OUT数据包判断主机下发的CCID命令的类型;
第二判断单元,用于当所述第一判断单元的判断结果为通道扩展命令时,判断所述通道扩展命令是否是通道切换命令;
第一处理单元,用于如果所述第一判断单元的判断结果为不是通道扩展命令时,根据所述CCID命令类型进行相应的处理;
第二处理单元,用于如果所述第二判断单元的判断结果为通道扩展命令不是通道切换命令时,根据所述通道扩展命令的命令类型进行相应的处理;
发送单元,用于发送所述主机下发的命令流给所述智能卡,及发送智能卡返回的应答给所述主机。
所述第二判断单元具体包括:
拆分子单元,用于拆分通道切换命令的包头;
第一获得子单元,用于通过计算通道切换命令包头中的数据长度标志,获知数据包的长度及所述数据包在CCID设备收发缓冲中的位置,得到通道切换命令数据包中的标识符,所述标识符用于标识通道切换命令的具体用途;
第二获得子单元,用于当所述第一获得单元获得的标识符表示该通道切换命令是用于卡槽切换时,查看通道切换命令的第13个字节,得到本条通道切换命令所要访问的卡槽序号。
所述判断模块具体用于:
判断CCID设备的收发缓冲中是否有智能卡插拔事件信息,智能卡插拔事件信息由CCID设备在接收到有智能卡***或拔出的中断信号时写入到收发缓冲中。
本发明实施例提供的技术方案带来的有益效果是:
实现微软windows下的读卡器驱动能够支持多卡槽访问,并且还支持linux下的读卡器驱动的多卡槽访问。
附图说明
图1是本发明实施例1中提供的一种以查询方式实现多卡槽访问的方法流程图;
图2是本发明实施例2中提供的一种以查询方式实现多卡槽访问的方法流程图;
图3是本发明实施例3中提供的一种以中断方式实现多卡槽访问的方法流程图;
图4是本发明实施例4中提供的一种实现多卡槽访问的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在描述本发明具体实施例之前,这里需要说明的是,根据CCID协议,符合CCID接口标准的设备,其端点需要包括如下特征:至少一对IN/OUT端点声明为BULK-IN、BULK-OUT端点,用来实现应答和命令管道;至少一个IN端点声明为中断端点,用来实现事件通知管道。符合CCID接口标准的设备,其描述符需要包括如下特征:在接口描述符中,字节0是描述符的字节长度,值为09h,字节1是固定终端,值为04h,字节4代表其所支持的终端号(除了终端0),值为02h或03h,字节5是类代码,值为0Bh,字节6为子类代码,值为00h,字节7是协议代码,值为00h;在类型描述符中,字节0是描述符的字节长度,值为36h,字节2是CCID规范的版本号,它是用二进制代码表示的小数,值为0100h,字节52是PIN码支持,值为00h-03h。符合CCID接口标准的设备的其它描述符中的字节,如设备描述符、配置描述符中的字节以及上述接口描述符和类型描述符中其它字节仍按照USB协议中的规定设置。
实施例1
本发明实施例1提供了一种实现多卡槽访问的方法,本实施例以多卡槽读卡器这种常见的CCID设备为例,并假设与该多卡槽读卡器连接的主机中安装有微软的CCID协议的读卡器驱动,多卡槽读卡器通过自定义通道切换命令、并配合卡槽切换电路实现了多卡槽读卡器中的多个卡槽共享一条USB总线与主机进行通信。其中需要说明的是,主机与CCID设备之间可以通过两条通信管道进行通信,一条为批量传输管道,用于进行数据的传输,如上电、下电指令、执行APDU(Application Protocol Data Unit应用协议数据单元)、主机与CCID设备按照一应一答的方式通过批量传输管道进行数据的交互;一条为中断传输管道,用于传输异步事件,如插卡、拔卡及卡短路等,CCID设备就会通过中断传输管道向主机发送信号。参见图1,该方法包括:
步骤101:CCID设备与主机建立连接,进行初始化;
在本实施例中,该CCID设备通过USB接口与主机建立连接。
具体的,CCID设备的初始化过程可以包括:初始化中断向量、初始化I/O信号等。其中的中断可以包括USB中断、插拔卡事件中断等。
步骤102:初始化完成后,CCID设备设置至少一对用来实现应答和命令管道的IN/OUT端点声明为BULK-IN和BULK-OUT端点,设置至少一个用来实现事件通知管道的IN端点,并声明为中断端点,并向主机声明其自身是符合CCID接口标准的设备;
其中,可以采用设备类型描述符的形式实现声明其自身是CCID设备,具体包括:CCID设备向与其建立连接的主机发送CCID类型的设备描述符,主机接收到该CCID类型的设备描述符后,根据该CCID类型的设备描述符识别该建立连接的设备为CCID设备。
步骤103:CCID设备向主机声明自身支持的卡槽数;
其中,可以采用设备卡槽描述符的形式实现声明其自身支持的卡槽数,具体包括:CCID设备向与其建立连接的主机发送卡槽描述符,卡槽描述符中用一个字节表示CCID设备自身支持的卡槽数,例如,当卡槽描述符为“00”时,表示CCID设备支持一个卡槽;当卡槽描述符为“01”时,表示CCID设备支持两个卡槽,当卡槽描述符为“02”时,表示CCID设备支持三个卡槽,等等。
主机接收到卡槽描述符后,主机加载的读卡器驱动即为读卡器的卡槽创建物理设备对象。其中,如果主机加载的是微软的CCID协议的读卡器驱动,则主机在接收到卡槽描述符时,为多卡槽读卡器创建一个物理设备对象,即为默认的卡槽创建物理设备对象,与默认卡槽(如1号卡槽)相对应;如果主机加载Linux下的CCID协议的读卡器驱动,则主机在接收到卡槽描述符时,根据卡槽描述符携带的卡槽数,创建相应数目的物理设备对象,分别与读卡器的各个卡槽相对应。
步骤104:CCID设备检查USB标志,判断USB标志是否为接收到BULK-OUT包的标志;
如果是,则执行步骤105;
如果否,则执行步骤113;
其中, USB标志是由CCID设备中的硬件电路设置或清除的。USB标志包括数据包长度标志、数据包类型标志和接收到的数据包标志等。例如,接收到的USB标志是SETUP包的标志、IN包的标志、BULK-OUT包的标志、BULK-OUT包长度标志等。
步骤105:CCID设备接收BULK-OUT包,并判断是否正确接收到BULK-OUT数据包;
如果是,执行步骤106;
如果否,执行步骤104;
其中,判断是否正确接收到BULK-OUT数据包的过程可以为:根据接收到的数据包长度标志及数据包的发送长度标志进行判断,如果接收到的数据包长度与数据包的发送长度标志一致,则认为是正确接收到了BULK-OUT数据包。
步骤106:CCID设备解析BULK-OUT数据包的内容,并判断是何种类型的CCID命令;
如果是通道扩展命令,则执行步骤108;
如果不是通道扩展命令,则执行步骤107。
其中,判断数据包中的内容是何种类型的CCID命令的过程可以为:CCID设备解析符合CCID标准的命令流,拆分命令流的包头中的第一个字节,得到该命令流的命令类型。例如,第一个字节为6B,表示通道扩展命令;第一个字节为62,表示上电命令;第一个字节为61,表示设置参数命令;等等。
其中,通道扩展命令是CCID协议标准留给生产厂家自己定义的扩展命令,通过该扩展命令可以对CCID设备进行区别于其他CCID协议标准的操作,生成厂家可以修改该通道扩展命令的第11、12字节(即标识符字段)的内容,用于实现一些自定义的命令功能,如用于通道切换、对传输通道上的数据进行加解密操作等。
步骤107:CCID设备根据CCID命令类型进行相应的处理,并将处理结果组装成符合CCID接口标准的数据包,且并将所述数据包保存至CCID设备缓冲区中,执行步骤111;
其中,根据CCID命令类型进行相应的处理可以包括:当CCID命令类型为对智能卡进行上电或下电,则CCID设备对其卡槽中的智能卡进行上电或下电处理;当CCID命令类型为对智能卡进行PPS(Protocol and Parameter Select 变频协商),则CCID设备对其卡槽中的智能卡进行变频协商;当CCID命令类型为对智能卡中的数据进行读写等操作,则CCID设备对智能卡中的数据进行读写等操作。
还需要知道的是,CCID命令中的第6个字节(即命令中的Slot字段)表示的是该智能卡操作命令所对应的多卡槽CCID设备卡槽的编号;
另外,还需要知道的是:如果主机加载微软的CCID协议的读卡器驱动,则CCID命令中的第6个字节(即命令中的Slot字段)是固定的00;
如果主机加载Linux下的CCID协议读卡器驱动,则CCID命令中的第6个字节(即命令中的Slot字段)表示的是该智能卡操作命令对应的多卡槽CCID设备卡槽的编号,如:
6f 05 00 00 00 00 10 00 00 00 00 84 00 00 08
表示1号卡座的取随机数指令,第6位字节00表示1号卡槽
62 00 00 00 00 01 21 01 00 00
表示2号卡座的上电指令,第6位字节01表示2号卡槽
当多卡槽CCID设备接收到符合CCID标准的命令后,根据上述卡槽号对相应的卡槽进行操作。
优选的,本实施例中主机中安装的是微软的CCID协议的读卡器驱动。
步骤108:CCID设备判断通道扩展命令是否是通道切换命令;
如果是通道切换命令,则执行步骤110;
如果是其他通道扩展命令,则执行步骤109;
本步骤中所涉及到的判断,具体过程为:CCID设备中的固件程序拆分接收到的通道扩展命令的包头,并通过计算该命令包头中的数据长度标志,获知数据包的长度及其在CCID设备缓冲区中的位置,得到该命令流数据包中的标识符(命令中的第11、12个字节),该标识符是CCID可以是生产厂家自己定制的,可以通过该标识符获知该通道切换命令的具体用途。 如:Ox5aa5表示该通道扩展命令是通道切换命令,用于多卡槽CCID设备卡槽切换,当然该标识符也可以是Oxa55a等,取决于生产厂家的定义。
步骤109:执行其他通道扩展命令相应的操作后,执行步骤111;
例如,该通道扩展命令是用于对传输通道上的数据进行加解密操作、读flash或写flash操作等,则CCID设备执行相应的操作即可。具体的命令例如:
6B 05 00 00 00 00 00 00 00 00 6066 84 00 08
表示对CCID设备进行flash读操作,第11、12位字节6066是自定义的,表示读flash
6B 05 00 00 00 00 00 00 00 00 6660 84 00 08
表示对CCID设备进行flash写操作,第11、12为字节6660是自定义的,表示写flash
步骤110:CCID设备中的固件程序对接收到的通道切换命令进行解析,得到该条命令对应的卡槽,通过卡槽切换电路激活命令中指定的卡槽;
CCID设备中的固件程序查看该通道切换命令的第13个字节,可以得到本条命令所要激活的卡槽序号,然后通过CCID设备的电路控制程序单元将卡槽序号所对应的卡槽激活。
具体在本实施例中,以使用的是微软的CCID协议的读卡器驱动为例,符合CCID标准的通道切换命令中的Slot字段(第6个字节)是固定的00。
假设CCID设备接收到的通道切换命令具体为:
6B 04 00 00 00 00 00 00 00 00 5a a5 00 ff
该通道切换命令表示1号卡槽的随机数指令,该条指令的第13个字节00表示1号卡槽;
6B 04 00 00 00 00 00 00 00 00 5a a5 01 ff
该通道切换命令表示2号卡槽的随机数指令,该条指令的第13个字节01表示2号卡槽。
具体的,CCID设备通过电路控制程序单元将卡槽序号所对应的卡槽激活,具体实现过程可以如下:
一种优选的方式为,CCID设备的卡槽切换电路包括CPU(Central Processing Unit,中央处理单元)、一个CPU接口、多路选择开关和电路控制程序单元;多路选择开关分别与CCID设备中的各个卡槽(例如卡槽1、卡槽2、卡槽3等)相连接;当CCID设备分析得到卡槽的序号后,电路控制程序单元控制多路选择开关将相应的卡槽之间的电路进行连通。
另一种优选的方式,CCID设备卡槽切换电路包括CPU、多个CPU接口和电路控制程序单元;多个CPU接口分别与CCID设备中的各个卡槽(例如卡槽1、卡槽2、卡槽3等)相连接,当CCID设备分析得到卡槽的编号后,电路控制程序单元将CPU接口与相应的卡槽之间的电路进行连通。
步骤111:CCID设备检测缓冲区中是否有智能卡插拔事件信息;
如果有,则执行步骤112;
如果否,则返回步骤104;
其中,智能卡插拔事件信息在CCID设备判断到有智能卡***或拔出时写入到缓冲区中。
在本发明实施例中的卡槽有两种情况,包括有卡和无卡;如果卡槽中没有卡片***或者卡片从卡槽中拔出,卡槽就处于无卡状态,产生无卡的中断信号;如果卡片***卡槽,就处于有卡未上电状态,产生有卡的中断信号;主机下发上电指令,智能卡响应并成功返回ATR(Answer To Reset,复位应答)后,卡槽的状态变为有卡已上电;主机下发下电指令,智能卡的卡槽状态变为有卡未上电状态。
当某一卡槽为激活的卡槽时,如果卡槽中有智能卡的***,则会产生有卡的中断信号0x5003;如果卡槽中有智能卡的拔出,则会产生无卡的中断信号0x5002;当某一卡槽为未激活的卡槽时,发生插拔事件不会产生中断信号。
需要说明的是,如果主机加载微软的CCID协议的读卡器驱动,则多卡槽CCID设备中卡槽中有卡的插拔动作时都将会产生相同的插拔卡中断信息,例如:
1号卡槽***卡 0x5003
2号卡槽***卡 0x5003
3号卡槽***卡 0x5003
1号卡槽拔卡 0x5002
2号卡槽拔卡 0x5002
3号卡槽拔卡 0x5002
如果主机中加载Linux下的CCID协议的读卡器驱动,则多卡槽CCID设备中卡槽中有卡的插拔动作时,不同的卡槽将产生不同的插拔卡中断信息,例如:
1号卡槽***卡 0x5003
2号卡槽***卡 0x500c
3号卡槽***卡 0x5030
1号卡槽拔卡 0x5002
2号卡槽拔卡 0x5008
3号卡槽拔卡 0x5020
步骤112:CCID设备将智能卡***或拔出事件信息组装成符合CCID接口标准的数据包返回给主机,并执行步骤104;
步骤113:CCID设备进行其他操作,并返回步骤104。
本发明实施例提供了一种实现多卡槽访问的方法,实现微软windows下的读卡器驱动能够支持多卡槽访问,并且还支持linux下的读卡器驱动的多卡槽访问。
实施例2
本发明实施例2提供了一种实现多卡槽访问的方法,本实施例以多卡槽读卡器这种常见的CCID设备为例,并假设与该多卡槽读卡器连接的主机中安装有微软的CCID协议的读卡器驱动,多卡槽读卡器通过自定义通道切换命令、并配合卡槽切换电路实现了多卡槽读卡器中的多个卡槽共享一条USB总线与主机进行通信。其中需要说明的是,主机与CCID设备之间可以通过两条通信管道进行通信,一条为批量传输管道,用于进行数据的传输,如上电、下电指令、执行APDU、主机与CCID设备按照一应一答的方式通过批量传输管道进行数据的交互;一条为中断传输管道,用于传输异步事件,如插卡、拔卡及卡短路等,CCID设备就会通过中断传输管道向主机发送信号。参见图2,该方法包括:
步骤201:CCID设备与主机建立连接,进行初始化;
在本实施例中,该CCID设备通过USB接口与主机建立连接。
具体的,CCID设备的初始化过程可以包括:初始化中断向量、初始化I/O信号等。其中的中断可以包括USB中断、插拔卡事件中断等。
步骤202:初始化完成后,CCID设备设置至少一对用来实现应答和命令管道的IN/OUT端点声明为BULK-IN和BULK-OUT端点,设置至少一个用来实现事件通知管道的IN端点声明为中断端点,并向主机声明其自身是符合CCID接口标准的设备;
其中,可以采用设备类型描述符的形式实现声明其自身是CCID设备,具体包括:CCID设备向与其建立连接的主机发送CCID类型的设备描述符,主机接收到该CCID类型的设备描述符后,根据该CCID类型的设备描述符识别该建立连接的设备为CCID设备。
步骤203:CCID设备向主机声明自身支持的卡槽数;
其中,可以采用设备卡槽描述符的形式实现声明其自身支持的卡槽数,具体包括:CCID设备向与其建立连接的主机发送卡槽描述符,卡槽描述符中用一个字节表示CCID设备自身支持的卡槽数,例如,当卡槽描述符为“00”时,表示CCID设备支持一个卡槽;当卡槽描述符为“01”时,表示CCID设备支持两个卡槽。
主机接收到卡槽描述符后,主机加载的读卡器驱动即为读卡器的卡槽创建物理设备对象。其中,如果主机加载的是微软的CCID协议的读卡器驱动,则主机在接收到卡槽描述符时,为多卡槽读卡器创建一个物理设备对象,即为默认的卡槽创建物理设备对象,与默认卡槽(如1号卡槽)相对应;如果主机加载的Linux下的CCID协议的读卡器驱动,则主机在接收到卡槽描述符时,根据卡槽描述符携带的卡槽数,创建相应数目的物理设备对象,分别与读卡器的各个卡槽相对应。
步骤204:CCID设备检测缓冲区中是否有智能卡插拔事件信息;
如果是,执行步骤205;
如果否,执行步骤206;
其中,智能卡插拔事件信息在CCID设备判断到有智能卡***或拔出时写入到缓冲区中。
在本发明实施例中的卡槽有两种情况,包括有卡和无卡;如果卡槽中没有卡片***或者卡片从卡槽中拔出,卡槽就处于无卡状态,产生无卡的中断信号;如果卡片***卡槽,就处于有卡未上电状态,产生有卡的中断信号;主机下发上电指令,智能卡响应并成功返回ATR(Answer To Reset,复位应答)后,卡槽的状态变为有卡已上电;主机下发下电指令,智能卡的卡槽状态变为有卡未上电状态。
当某一卡槽为激活的卡槽时,如果卡槽中有智能卡的***,则会产生有卡的中断信号0x5003;如果卡槽中有智能卡的拔出,则会产生无卡的中断信号0x5002;当某一卡槽为未激活的卡槽时,发生插拔事件不会产生中断信号。
需要说明的是,如果主机加载微软的CCID协议的读卡器驱动,则多卡槽CCID设备中卡槽中有卡的插拔动作时都将会产生相同的插拔卡中断信息,例如:
1号卡槽***卡 0x5003
2号卡槽***卡 0x5003
3号卡槽***卡 0x5003
1号卡槽拔卡 0x5002
2号卡槽拔卡 0x5002
3号卡槽拔卡 0x5002
如果主机中加载Linux下的CCID协议的读卡器驱动,则多卡槽CCID设备中卡槽中有卡的插拔动作时,不同的卡槽将产生不同的插拔卡中断信息,例如:
1号卡槽***卡 0x5003
2号卡槽***卡 0x500c
3号卡槽***卡 0x5030
1号卡槽拔卡 0x5002
2号卡槽拔卡 0x5008
3号卡槽拔卡 0x5020
步骤205:CCID设备将智能卡***或拔出事件信息组装成符合CCID接口标准的数据包返回给主机,并执行步骤204;
步骤206:CCID设备检查USB标志,判断USB标志是否为接收到BULK-OUT包的标志;
如果是,则执行步骤207;
如果否,则执行步骤213。
其中, USB标志是由CCID设备中的硬件电路设置或清除的。USB标志包括长度标志、数据包类型标志和接收到的数据包标志等。例如,接收到的USB标志是SETUP包的标志、IN包的标志、BULK-OUT包的标志、BULK-OUT包长度标志等。
步骤207:CCID设备接收BULK-OUT包,并判断是否正确接收到BULK-OUT数据包;
如果是,执行步骤208;
如果否,执行步骤204;
其中,判断是否正确接收到BULK-OUT数据包的过程可以为:根据接收到的数据包长度标志及数据包的发送长度标志进行判断,如果接收到的数据包长度与数据包的发送长度标志一致,则认为是正确接收到了BULK-OUT数据包。
其中,通道扩展命令是CCID协议标准留给生产厂家自己定义的扩展命令,通过该扩展命令可以对CCID设备进行区别于其他CCID协议标准的操作,生成厂家可以修改该通道扩展命令的第11、12字节的内容,用于实现一些自定义的命令功能,如用于通道切换、对传输通道上的数据进行加解密操作等。
步骤208:CCID设备解析BULK-OUT数据包的内容,并判断是何种类型的CCID命令;
如果是通道扩展命令,则执行步骤210;
如果不是通道扩展命令,则执行步骤209;
其中,判断数据包中的内容是何种类型的CCID命令的过程可以为:CCID设备解析符合CCID标准的命令流,拆分命令流的包头中的第一个字节,得到该命令流的命令类型。例如,第一个字节为6B,表示通道扩展命令;第一个字节为62,表示上电命令;第一个字节为61,表示设置参数命令;等等。
步骤209:CCID设备根据CCID命令类型进行相应的处理,并将处理结果组装成符合CCID接口标准的数据包,且并将所述数据包保存至CCID设备缓冲区,执行步骤204;
其中,根据CCID命令类型进行相应的处理可以包括:当CCID命令类型为对智能卡进行上电或下电,则CCID设备对其卡槽中的智能卡进行上电或下电处理;当CCID命令类型为对智能卡进行变频协商,则CCID设备对其卡槽中的智能卡进行变频协商;当CCID命令类型为对智能卡中的数据进行读写等操作,则CCID设备对智能卡中的数据进行读写等操作。
还需要知道的是,CCID命令中的第6个字节(即命令中的Slot字段)表示的是该智能卡操作命令所对应的多卡槽CCID设备卡槽的编号;
另外,还需要知道的是:如果主机加载微软的CCID协议的读卡器驱动,则CCID命令中的第6个字节(即命令中的Slot字段)是固定的00;
如果主机加载Linux下的CCID协议读卡器驱动,则CCID命令中的第6个字节(即命令中的Slot字段)显示的是该智能卡操作命令对应的多卡槽CCID设备卡槽的编号,如:
6f 05 00 00 00 00 10 00 00 00 00 84 00 00 08
表示1号卡座的取随机数指令,第6位字节00表示1号卡槽
62 00 00 00 00 01 21 01 00 00
表示2号卡座的上电指令,第6位字节01表示2号卡槽
当多卡槽CCID设备接收到上述命令后,根据上述卡槽号对相应的卡槽进行操作。
优选的,本实施例中主机中安装的是微软的CCID协议的读卡器驱动。
步骤210:CCID设备判断通道扩展命令是否是通道切换命令;
如果是通道切换命令,则执行步骤212;
如果其他通道扩展命令,则执行步骤211;
本步骤中所涉及到的判断具体过程为:CCID设备中的固件程序拆分接收到的通道切换命令的包头,并通过计算该命令包头中的数据长度标志,获知数据包的长度及其在CCID设备缓冲区中的位置,得到该命令流数据包中的标识符(命令中的第11、12个字节),该标识符是CCID可以是生产厂家自己定制的,可以通过该标识符获知该通道切换命令的具体用途。 如:Ox5aa5表示该通道扩展命令是通道切换命令,用于多卡槽CCID设备卡槽切换,当然该标识符也可以是Oxa55a等,取决于生产厂家的定义。
步骤211:执行其他通道扩展命令相应的操作,并返回步骤204;
例如,该通道扩展命令是用于对传输通道上的数据进行加解密操作、读flash或写flash操作等,则CCID设备执行相应的操作即可。具体的命令例如:
6B 05 00 00 00 00 00 00 00 00 6066 84 00 08
表示对CCID设备进行flash读操作,第11、12位字节6066是自定义的,表示读flash
6B 05 00 00 00 00 00 00 00 00 6660 84 00 08
表示对CCID设备进行flash写操作,第11、12为字节6660是自定义的,表示写flash
步骤212:CCID设备中的固件程序对接收到的通道切换命令进行解析,得到该条命令对应的卡槽,通过卡槽切换电路激活命令中指定的卡槽,返回步骤204;
其中,CCID设备中的固件程序拆分接收到的通道切换命令的包头,并通过计算该命令包头中的数据长度标志,获知数据包的长度及其在CCID设备缓冲区中的位置,得到该命令流数据包中的标识符,该标识符是CCID可以是生产厂家自己定制的,可以通过该标识符获知该通道切换命令的具体用途。如果该标识符表示该通道切换命令是用于卡槽切换的,通过查看该命令的第13个字节,可以得到本条命令所要激活的卡槽序号,然后通过CCID设备的电路控制程序单元将卡槽序号所对应的卡槽激活。
具体在本实施例中,以使用的是微软的CCID协议的读卡器驱动为例,符合CCID标准的通道切换命令中的Slot字段(第6个字节)是固定的00。
假设CCID设备接收到的通道切换命令具体为:
6B 04 00 00 00 00 00 00 00 00 5a a5 00 ff
该通道切换命令表示1号卡槽的随机数指令,该条指令的第13个字节00表示1号卡槽;
6B 04 00 00 00 00 00 00 00 00 5a a5 01 ff
该通道切换命令表示2号卡槽的随机数指令,该条指令的第13个字节01表示2号卡槽。
具体的,CCID设备通过电路控制程序单元将卡槽序号所对应的卡槽(例如卡槽1、卡槽2、卡槽3)激活,具体实现过程可以如下:
一种优选的方式为,CCID设备的卡槽切换电路包括CPU、一个CPU接口、多路选择开关和电路控制程序单元;多路选择开关分别与CCID设备中的各个卡槽相连接;当CCID设备分析得到卡槽的序号后,电路控制程序单元控制多路选择开关将相应的卡槽之间的电路进行连通。
另一种优选的方式,CCID设备卡槽切换电路包括CPU、多个CPU接口和电路控制程序单元;多个CPU接口分别与CCID设备中的各个卡槽相连接,当CCID设备分析得到卡槽的编号后,电路控制程序单元将CPU接口与相应的卡槽之间的电路进行连通。
步骤213:CCID设备进行其他操作,并返回步骤204。
本发明实施例提供了一种实现多卡槽访问的方法,实现微软windows下的读卡器驱动能够支持多卡槽访问,并且还支持linux下的读卡器驱动的多卡槽访问。
实施例3
本发明实施例3提供了一种实现多卡槽访问的方法,本实施例以多卡槽读卡器这种常见的CCID设备为例,并假设与该多卡槽读卡器连接的主机中安装有微软的CCID协议的读卡器驱动,多卡槽读卡器通过自定义通道切换命令、并配合卡槽切换电路实现了多卡槽读卡器中的多个卡槽共享一条USB总线与主机进行通信。其中需要说明的是,主机与CCID设备之间可以通过两条通信管道进行通信,一条为批量传输管道,用于进行数据的传输,如上电、下电指令、执行APDU、主机与CCID设备按照一应一答的方式通过批量传输管道进行数据的交互;一条为中断传输管道,用于传输异步事件,如插卡、拔卡及卡短路等,CCID设备就会通过中断传输管道向主机发送信号。参见图3,该方法包括:
步骤301:CCID设备与主机建立连接,进行初始化;
在本实施例中,该CCID设备通过USB接口与主机建立连接。
具体的,CCID设备的初始化过程可以包括:初始化中断向量、初始化I/O信号等。其中的中断可以包括USB中断、插拔卡事件中断等。
步骤302:初始化完成后,CCID设备设置至少一对用来实现应答和命令管道的IN/OUT端点声明为BULK-IN和BULK-OUT端点,设置至少一个用来实现事件通知管道的IN端点声明为中断端点,并向主机声明其自身是符合CCID接口标准的设备;
其中,可以采用设备类型描述符的形式实现声明其自身是CCID设备,具体包括:CCID设备向与其建立连接的主机发送CCID类型的设备描述符,主机接收到该CCID类型的设备描述符后,根据该CCID类型的设备描述符识别该建立连接的设备为CCID设备。
步骤303:CCID设备向主机声明自身支持的卡槽数;
其中,可以采用设备卡槽描述符的形式实现声明其自身支持的卡槽数,具体包括:CCID设备向与其建立连接的主机发送卡槽描述符,卡槽描述符中用一个字节表示CCID设备自身支持的卡槽数,例如,当卡槽描述符为“00”时,表示CCID设备支持一个卡槽;当卡槽描述符为“01”时,表示CCID设备支持两个卡槽。
主机接收到卡槽描述符后,主机加载的读卡器驱动即为读卡器的卡槽创建物理设备对象。其中,如果主机加载的是微软的CCID协议的读卡器驱动,则主机在接收到卡槽描述符时,为多卡槽读卡器创建一个物理设备对象,即为默认的卡槽创建物理设备对象,与默认卡槽(如1号卡槽)相对应;如果主机加载的Linux下的CCID协议的读卡器驱动,则主机在接收到卡槽描述符时,根据卡槽描述符携带的卡槽数,创建相应数目的物理设备对象,分别与读卡器的各个卡槽相对应。
步骤304:CCID设备等待中断;
如果有中断出现,则执行步骤305(即,CCID设备进入中断服务);
如果没有中断出现,则继续等待;
其中,优选的,USB中断或者插拔卡事件中断均采用一个中断入口进入中断服务;或者,USB中断和插拔卡事件中断采用不同的中断入口,则USB中断使得CCID设备进入USB中断服务;插拔卡事件中断使得CCID设备进入插拔卡事件中断服务。
步骤305:CCID设备进入中断服务;
步骤306:CCID设备判断出现的中断是否为BULK-OUT中断;
如果是,则执行步骤307;
如果否,则执行步骤313;
步骤307:CCID设备接收BULK-OUT包,并判断是否正确接收到BULK-OUT数据包;
如果是,执行步骤308;
如果否,执行步骤316;
步骤308:CCID设备解析BULK-OUT数据包的内容,并判断是何种类型的CCID命令;
如果是通道扩展命令,则执行步骤310;
如果不是通道扩展命令,则执行步骤309。
其中,通道扩展命令是CCID协议标准留给生产厂家自己定义的扩展命令,通过该扩展命令可以对CCID设备进行区别于其他CCID协议标准的操作,生成厂家可以修改该通道扩展命令的第11、12字节的内容,用于实现一些自定义的命令功能,如用于通道切换、对传输通道上的数据进行加解密操作等。
步骤309:CCID设备根据CCID命令类型进行相应的处理,程序的其他模块将处理结果组装成符合CCID接口标准的数据包,并将数据包保存至缓冲区,执行步骤316;
其中,根据CCID命令类型进行相应的处理可以包括:当CCID命令类型为对智能卡进行上电或下电,则CCID设备对其卡槽中的智能卡进行上电或下电处理;当CCID命令类型为对智能卡进行变频协商,则CCID设备对其卡槽中的智能卡进行变频协商;当CCID命令类型为对智能卡中的数据进行读写等操作,则CCID设备对智能卡中的数据进行读写等操作。
还需要知道的是,CCID命令中的第6个字节(即命令中的Slot字段)表示的是该智能卡操作命令所对应的多卡槽CCID设备卡槽的编号;
另外,还需要知道的是:如果主机加载微软的CCID协议的读卡器驱动,则CCID命令中的第6个字节(即命令中的Slot字段)是固定的00;
如果主机加载Linux下的CCID协议读卡器驱动,则CCID命令中的第6个字节(即命令中的Slot字段)显示的是该智能卡操作命令对应的多卡槽CCID设备卡槽的编号,如:
6f 05 00 00 00 00 10 00 00 00 00 84 00 00 08
表示1号卡座的取随机数指令,第6位字节00表示1号卡槽
62 00 00 00 00 01 21 01 00 00
表示2号卡座的上电指令,第6位字节01表示2号卡槽
当多卡槽CCID设备接收到上述命令后,根据上述卡槽号对相应的卡槽进行操作。
优选的,本实施例中主机中安装的是微软的CCID协议的读卡器驱动。
步骤310:CCID设备判断通道扩展命令是否是通道切换命令;
如果是通道切换命令,则执行步骤312;
如果其他通道扩展命令,则执行步骤311;
本步骤中所涉及到的判断具体过程为:CCID设备中的固件程序拆分接收到的通道切换命令的包头,并通过计算该命令包头中的数据长度标志,获知数据包的长度及其在CCID设备缓冲区中的位置,得到该命令流数据包中的标识符(命令中的第11、12个字节),该标识符是CCID可以是生产厂家自己定制的,可以通过该标识符获知该通道切换命令的具体用途。 如:Ox5aa5表示该通道扩展命令是通道切换命令,用于多卡槽CCID设备卡槽切换,当然该标识符也可以是Oxa55a等,取决于生产厂家的定义。
步骤311:执行其他通道扩展命令相应的操作,执行步骤316;
例如,该通道扩展命令是用于对传输通道上的数据进行加解密操作、读flash或写flash操作等,则CCID设备执行相应的操作即可。具体的命令例如:
6B 05 00 00 00 00 00 00 00 00 6066 84 00 08
表示对CCID设备进行flash读操作,第11、12位字节6066是自定义的,表示读flash
6B 05 00 00 00 00 00 00 00 00 6660 84 00 08
表示对CCID设备进行flash写操作,第11、12为字节6660是自定义的,表示写flash
步骤312:CCID设备中的固件程序对接收到的通道切换命令进行解析,得到该条命令对应的卡槽,通过卡槽切换电路激活命令中指定的卡槽,执行步骤316;
其中,CCID设备中的固件程序拆分接收到的通道切换命令的包头,并通过计算该命令包头中的数据长度标志,获知数据包的长度及其在CCID设备缓冲区中的位置,得到该命令流数据包中的标识符,该标识符是CCID可以是生产厂家自己定制的,可以通过该标识符获知该通道切换命令的具体用途。如果该标识符表示该通道切换命令是用于卡槽切换的,通过查看该命令的第13个字节,可以得到本条命令所要激活的卡槽序号,然后通过CCID设备的电路控制程序单元将卡槽序号所对应的卡槽激活。
具体在本实施例中,以使用的是微软的CCID协议的读卡器驱动为例,符合CCID标准的通道切换命令中的Slot字段(第6个字节)是固定的00。
假设CCID设备接收到的通道切换命令具体为:
6B 04 00 00 00 00 00 00 00 00 5a a5 00 ff
该通道切换命令表示1号卡槽的随机数指令,该条指令的第13个字节00表示1号卡槽;
6B 04 00 00 00 00 00 00 00 00 5a a5 01 ff
该通道切换命令表示2号卡槽的随机数指令,该条指令的第13个字节01表示2号卡槽。
具体的,CCID设备通过电路控制程序单元将卡槽序号所对应的卡槽激活,具体实现过程可以如下:
一种优选的方式为,CCID设备的卡槽切换电路包括CPU、一个CPU接口、多路选择开关和电路控制程序单元;多路选择开关分别与CCID设备中的各个卡槽相连接;当CCID设备分析得到卡槽的序号后,电路控制程序单元控制多路选择开关将相应的卡槽之间的电路进行连通。
另一种优选的方式,CCID设备卡槽切换电路包括CPU、多个CPU接口和电路控制程序单元;多个CPU接口分别与CCID设备中的各个卡槽相连接,当CCID设备分析得到卡槽的编号后,电路控制程序单元将CPU接口与相应的卡槽之间的电路进行连通。
步骤313:CCID设备判断该中断是否是插拔卡中断;
如果是,执行步骤314;
如果否,执行步骤315;
步骤314:CCID设备将智能卡***或拔出事件信息组装成符合CCID接口标准的数据包返回给主机,返回步骤316;
在本发明实施例中的卡槽有两种情况,包括有卡和无卡;如果卡槽中没有卡片***或者卡片从卡槽中拔出,卡槽就处于无卡状态,产生无卡的中断信号;如果卡片***卡槽,就处于有卡未上电状态,产生有卡的中断信号;主机下发上电指令,智能卡响应并成功返回ATR(Answer To Reset,复位应答)后,卡槽的状态变为有卡已上电;主机下发下电指令,智能卡的卡槽状态变为有卡未上电状态。
当某一卡槽为激活的卡槽时,如果卡槽中有智能卡的***,则会产生有卡的中断信号0x5003;如果卡槽中有智能卡的拔出,则会产生无卡的中断信号0x5002;当某一卡槽为未激活的卡槽时,发生插拔事件不会产生中断信号。
步骤315:CCID设备执行其他操作,执行步骤316;
步骤316:中断返回。
对于本实施例需要说明的是,上述步骤301至步骤314是当USB中断或者插拔卡事件中断均采用一个中断入口进入中断服务程序时的处理方法;当USB中断和插拔卡事件中断采用不同的中断入口时,步骤305至步骤314还可以使用如下步骤代替:
步骤305’:当接收到的中断为USB中断时,CCID设备进入USB中断服务;
步骤306’: CCID设备判断出现的中断是否为BULK-OUT中断;
如果是,则执行步骤307’;
如果否,则执行步骤313’;
步骤307’:CCID设备接收BULK-OUT包,并判断是否正确接收到BULK-OUT数据包;
如果是,执行步骤308’;
如果否,执行相应的操作,执行步骤313’。
步骤308’: CCID设备解析BULK-OUT数据包的内容,并判断是何种类型的CCID命令;
如果是通道扩展命令,则执行步骤310’;
如果不是通道扩展命令,则执行步骤309’。
步骤309’: CCID设备根据CCID命令类型进行相应的处理,并将处理结果组装成符合CCID接口标准的数据包,并将数据包保存至缓冲区;
步骤310’:CCID设备判断通道扩展命令是否是通道切换命令;
如果是通道切换命令,则执行步骤312’;
如果其他通道扩展命令,则执行步骤311’;
本步骤中所涉及到的判断具体过程为:CCID设备中的固件程序拆分接收到的通道切换命令的包头,并通过计算该命令包头中的数据长度标志,获知数据包的长度及其在CCID设备缓冲区中的位置,得到该命令流数据包中的标识符(命令中的第11、12个字节),该标识符是CCID可以是生产厂家自己定制的,可以通过该标识符获知该通道切换命令的具体用途。 如:Ox5aa5表示该通道扩展命令是通道切换命令,用于多卡槽CCID设备卡槽切换,当然该标识符也可以是Oxa55a等,取决于生产厂家的定义。
步骤311’:执行其他通道扩展命令相应的操作,执行步骤313’;
例如,该通道扩展命令是用于对传输通道上的数据进行加解密操作、读flash或写flash操作等,则CCID设备执行相应的操作即可。具体的命令例如:
6B 05 00 00 00 00 00 00 00 00 6066 84 00 08
表示对CCID设备进行flash读操作,第11、12位字节6066是自定义的,表示读flash
6B 05 00 00 00 00 00 00 00 00 6660 84 00 08
表示对CCID设备进行flash写操作,第11、12为字节6660是自定义的,表示写flash
步骤312’: CCID设备中的固件程序对接收到的通道切换命令进行解析,得到该条命令对应的卡槽,通过卡槽切换电路激活命令中指定的卡槽,执行步骤313’;
其中,CCID设备中的固件程序拆分接收到的通道切换命令的包头,并通过计算该命令包头中的数据长度标志,获知数据包的长度及其在CCID设备收发缓冲中的位置,得到该命令流数据包中的标识符,该标识符是CCID可以是生产厂家自己定制的,可以通过该标识符获知该通道切换命令的具体用途。如果该标识符表示该通道切换命令是用于卡槽切换的,通过查看该命令的第13个字节,可以得到本条命令所要激活的卡槽序号,然后通过CCID设备的电路控制程序单元将卡槽序号所对应的卡槽激活。
具体在本实施例中,以使用的是微软的CCID协议的读卡器驱动为例,符合CCID标准的通道切换命令中的Slot字段(第6个字节)是固定的00。
假设CCID设备接收到的通道切换命令具体为:
6B 04 00 00 00 00 00 00 00 00 5a a5 00 ff
该通道切换命令表示1号卡槽的随机数指令,该条指令的第13个字节00表示1号卡槽;
6B 04 00 00 00 00 00 00 00 00 5a a5 01 ff
该通道切换命令表示2号卡槽的随机数指令,该条指令的第13个字节01表示2号卡槽。
具体的,CCID设备通过电路控制程序单元将卡槽序号所对应的卡槽激活,具体实现过程可以如下:
一种优选的方式为,CCID设备的卡槽切换电路包括CPU、一个CPU接口、多路选择开关和电路控制程序单元;多路选择开关分别与CCID设备中的各个卡槽相连接;当CCID设备分析得到卡槽的序号后,电路控制程序单元控制多路选择开关将相应的卡槽之间的电路进行连通。
另一种优选的方式,CCID设备卡槽切换电路包括CPU、多个CPU接口和电路控制程序单元;多个CPU接口分别与CCID设备中的各个卡槽相连接,当CCID设备分析得到卡槽的编号后,电路控制程序单元将CPU接口与相应的卡槽之间的电路进行连通。
步骤313’:中断返回。
对于本实施例需要说明的是,当USB中断和插拔卡事件中断采用不同的中断入口时,步骤305至步骤314还可以使用如下步骤代替:
步骤305”:当接收到的中断为插拔卡事件中断时,CCID进入插拔卡事件中断服务;
步骤306”:CCID设备将智能卡***或拔出事件信息组装成符合CCID接口标准的数据包返回给主机;
步骤307”:中断返回。
本发明实施例提供了一种实现多卡槽访问的方法,实现微软windows下的读卡器驱动能够支持多卡槽访问,并且还支持linux下的读卡器驱动的多卡槽访问。
实施例4
本发明实施例提供了一种多卡槽的CCID设备,该设备的具体工作方法可以参见实施例1至3中的具体描述,此处不做详述。参见图4,该设备包括:
接口模块401,分别与主机和主控模块402相连接,用于实现主机与主控模块402之间进行信息交互,本实施例中接口模块401具体可以是USB接口模块;
主控模块402,分别与接口模块401和判断模块403相连接,用于控制接口模块401接收主机下发的命令流,控制判断模块403接收通过卡槽切换电路模块404上传的智能卡发送的应答,控制判断模块403发送命令流中的数据包经过卡槽切换电路模块404到智能卡,控制接口模块401发送符合CCID标准的应答数据包到主机;
判断模块403,分别与主控模块403和卡槽切换电路模块404相连接,用于判断CCID设备中是否有智能卡插拔事件信息,并将智能卡插拔事件信息通过主控模块402返回给主机,
卡槽切换电路模块404,分别与判断模块403和卡槽相连接,用于接收主控模块402发送的命令流,如果接收到主控模块402发送的通道切换命令,根据卡槽序列号激活相应的卡槽,如果接收到主控模块402发送的其他命令,则将所述命令发送给智能卡,并将智能卡的应答发送给判断模块403。
其中,卡槽切换电路模块404与卡槽1、卡槽2、……、卡槽n相连接,而卡槽1、卡槽2、……、卡槽n可以分别与智能卡1、智能卡2、……、智能卡n相连接。
例如,卡槽切换电路模块404分别与多卡槽CCID设备中的卡槽1、卡槽2、卡槽3相连接,当主控模块402获得通道切换命令中所要访问的卡槽序列号时,卡槽切换电路模块404将卡槽序列号对应的卡槽切换连通,进行激活,例如,当主控模块402获知通道切换命令的卡槽序列号是“Ox00”时,卡槽切换电路模块404则将与其相连接的卡槽1激活,当主控模块402获知通道切换命令的卡槽序列号是“Ox02”时,卡槽切换电路模块404则将与其相连接的卡槽3激活等。
其中,接口模块401还具体包括:描述符设置单元和端点设置单元;
描述符设置单元,用于设置符合CCID标准中规定的描述符及其对应的值,本实施例中具体包括设备类型描述符及卡槽描述符;
本实施例中,CCID设备通过设备类型描述符向主机声明自身是CCID设备,通过卡槽描述符向主机声明自身支持的卡槽数;
端点设置单元,用于将至少一对用来实现应答和命令管道的IN/OUT端点设置为BULK-IN和BULK-OUT端点,将至少一个用来实现事件通知管道的IN端点声明为中断端点。
其中,主控模块402还具体包括:接收单元、解析单元、拆分单元、计算单元、应答组成单元、第一判断单元、第二判断单元、第一处理单元、第二处理单元、发送单元;
接收单元,用于接收主机通过接口模块401发送的命令流,及接收智能卡返回的应答;
解析单元,用于解析接收到的命令流的含义;
拆分单元,用于拆分解析单元解析出来的命令流的包头中的第一个字节,得到该命令流的命令类型;其中,第一个字节为6B时,表示通道扩展命令;
计算单元,用于根据接收到的命令流中的数据长度标志,确定命令流中的数据包长度和其在CCID设备收发缓冲中的位置;
应答组成单元,用于将应答组成符合CCID标准的应答数据包;
第一判断单元,用于根据接收模块接收到的BULK-OUT数据包判断主机下发的CCID命令的类型;
第二判断单元,用于当第一判断单元的判断结果为CCID命令类型是通道扩展命令时,判断通道扩展命令是否是通道切换命令;
第一处理单元,用于如果第一判断单元的判断结果为CCID命令的类型不是通道扩展命令,根据CCID命令类型进行相应的处理。
第二处理单元,用于如果第二判断单元的判断结果为通道扩展命令不是通道切换命令时,根据通道扩展命令的命令类型进行相应的处理;
发送单元,用于发送主机下发的命令流给智能卡,及发送智能卡返回的应答给主机;
其中,第二判断单元还具体包括:
拆分子单元,用于拆分通道切换命令的包头;
第一获得子单元,用于通过计算通道切换命令包头中的数据长度标志,获知数据包的长度及其在CCID设备收发缓冲中的位置,得到通道切换命令数据包中的标识符,标识符用于标识通道切换命令的具体用途;
第二获得子单元,用于如果第一获得单元获得的标识符表示该通道切换命令是用于卡槽切换的,查看通道切换命令的第13个字节,得到本条通道切换命令所要访问的卡槽序号。
本发明实施例提供了一种实现多卡槽访CCID设备,实现微软windows下的读卡器驱动能够支持多卡槽访问,并且还支持linux下的读卡器驱动的多卡槽访问。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

  1. 一种实现多卡槽访问的方法,其特征在于,所述方法包括:
    多卡槽的CCID设备与主机建立连接,将至少一对用来实现应答管道和命令管道的IN/OUT端点声明为BULK-IN和BULK-OUT端点,将至少一个用来实现事件通知管道的IN端点声明为中断端点,并向所述主机声明其自身是符合CCID接口标准的设备以及自身支持的卡槽数;
    主机对所述多卡槽的CCID设备进行访问;
    所述多卡槽的CCID设备接收BULK-OUT数据包,并根据所述BULK-OUT数据包判断所述主机下发的CCID命令的类型;
    当所述CCID命令类型是通道扩展命令时,则判断所述通道扩展命令是否是通道切换命令;如果所述通道扩展命令是通道切换命令时,则解析所述通道切换命令,并激活所述主机欲访问的相应卡槽;如果所述通道扩展命令不是通道切换命令时,则根据所述通道扩展命令的命令类型进行相应的处理;
    当所述CCID命令的类型不是通道扩展命令,则根据所述CCID命令类型进行相应的处理。
  2. 如权利要求1所述的实现多卡槽访问的方法,其特征在于,向所述主机声明其自身支持的卡槽数,具体包括:
    所述CCID设备向所述主机发送卡槽描述符,所述卡槽描述符中使用一个字节表示CCID设备自身支持的卡槽数。
  3. 如权利要求1所述的实现多卡槽访问的方法,其特征在于,根据所述BULK-OUT数据包判断所述主机下发的CCID命令的类型,具体包括:
    所述CCID设备解析符合CCID标准的命令流,拆分所述命令流的包头中的第一个字节,得到该命令流的命令类型;
    其中,当所述第一个字节为6B时,表示通道扩展命令。
  4. 如权利要求1所述的实现多卡槽访问的方法,其特征在于,判断所述通道扩展命令是否是通道切换命令,具体包括:
    所述CCID设备解析所述通道扩展命令,根据所述通道扩展命令中的标识符字段得到该命令的的命令类型;
    其中,所述标识符是自定义标识符。
  5. 如权利要求1所述的实现多卡槽访问的方法,其特征在于,解析所述通道切换命令,并激活所述主机欲访问的相应卡槽,具体包括:
    所述CCID设备中的固件程序拆分所述通道切换命令的包头;
    通过计算所述通道切换命令包头中的数据长度标志,获知数据包的长度及所述数据包在所述CCID设备收发缓冲中的位置,得到所述通道切换命令数据包中的标识符,所述标识符用于标识所述通道切换命令的具体用途;
    如果所述标识符表示该通道切换命令是用于卡槽切换的,则查看所述通道切换命令的第13个字节,得到本条通道切换命令所要访问的卡槽序号;
    通过所述CCID设备的电路控制程序单元将所述卡槽序号所对应的卡槽激活。
  6. 如权利要求1所述的实现多卡槽访问的方法,其特征在于,所述方法还包括:判断被激活卡槽中是否有智能卡插拔事件信息;
    如果有,则向所述主机返回符合CCID标准的智能卡插拔事件信息;
    如果没有,则继续执行所述多卡槽的CCID设备接收BULK-OUT数据包的步骤。
  7. 如权利要求6所述的实现多卡槽访问的方法,其特征在于,所述判断是否有智能卡插拔事件信息,具体包括:
    判断所述CCID设备的收发缓冲中是否有所述智能卡插拔事件信息,所述智能卡插拔事件信息由所述CCID设备在接收到有智能卡***或拔出的中断信号时写入到所述收发缓冲中。
  8. 一种多卡槽的CCID设备,其特征在于,所述设备包括:接口模块、主控模块、判断模块和卡槽切换电路模块;
    所述接口模块,分别与主机和所述主控模块相连接,用于实现所述主机与所述主控模块之间的信息交互;
    所述主控模块,分别与所述接口模块和所述判断模块相连接,用于控制所述接口模块接收主机下发的命令流,控制所述判断模块接收智能卡发送的应答,控制所述判断模块发送命令流中的数据包到所述智能卡,控制所述接口模块发送符合CCID标准的应答数据包到所述主机;
    所述判断模块,分别与所述主控模块和所述卡槽切换电路模块相连接,用于判断CCID设备中是否有智能卡插拔事件信息,并将所述智能卡插拔事件信息通过所述主控模块返回给所述主机,
    所述卡槽切换电路模块,分别与所述判断模块和卡槽相连接,用于接收所述主控模块发送的命令流;如果接收到所述主控模块发送的通道切换命令,则根据卡槽序列号激活相应的卡槽;如果接收到所述主控模块发送的其他命令,则将所述其他命令发送给所述智能卡,并将所述智能卡的应答数据包发送给所述判断模块。
  9. 如权利要求8所述的多卡槽的CCID设备,其特征在于,所述接口模块具体包括:描述符设置单元和端点设置单元;
    所述描述符设置单元,用于设置符合CCID标准中规定的设备类型描述符及卡槽描述符;所述CCID设备通过所述设备类型描述符向主机声明自身是CCID设备,通过所述卡槽描述符向主机声明自身支持的卡槽数;
    所述端点设置单元,用于将至少一对用来实现应答管道和命令管道的IN/OUT端点设置为BULK-IN和BULK-OUT端点,将至少一个用来实现事件通知管道的IN端点声明为中断端点。
  10. 如权利要求8所述的多卡槽的CCID设备,其特征在于,所述主控模块具体包括:
    接收单元,用于接收所述主机通过所述接口模块发送的命令流,及接收智能卡通过所述判断模块返回的应答;
    解析单元,用于解析所述接收单元接收到的所述命令流;
    拆分单元,用于拆分所述解析单元解析出来的命令流的包头中的第一个字节,得到该命令流的命令类型,其中,当第一个字节为6B时,表示通道扩展命令;
    计算单元,用于根据所述接收单元接收到的命令流中的数据长度标志,确定命令流中的数据包长度和所述数据包在所述CCID设备收发缓冲中的位置;
    应答组成单元,用于将应答组成符合CCID标准的应答数据包;
    第一判断单元,用于根据所述接收模块接收到的BULK-OUT数据包判断主机下发的CCID命令的类型;
    第二判断单元,用于当所述第一判断单元的判断结果为通道扩展命令时,判断所述通道扩展命令是否是通道切换命令;
    第一处理单元,用于如果所述第一判断单元的判断结果为不是通道扩展命令时,根据所述CCID命令类型进行相应的处理;
    第二处理单元,用于如果所述第二判断单元的判断结果为通道扩展命令不是通道切换命令时,根据所述通道扩展命令的命令类型进行相应的处理;
    发送单元,用于发送所述主机下发的命令流给所述智能卡,及发送智能卡返回的应答给所述主机。
  11. 如权利要求10所述的多卡槽的CCID设备,其特征在于,所述第二判断单元具体包括:
    拆分子单元,用于拆分通道切换命令的包头;
    第一获得子单元,用于通过计算通道切换命令包头中的数据长度标志,获知数据包的长度及所述数据包在CCID设备收发缓冲中的位置,得到通道切换命令数据包中的标识符,所述标识符用于标识通道切换命令的具体用途;
    第二获得子单元,用于当所述第一获得单元获得的标识符表示该通道切换命令是用于卡槽切换时,查看通道切换命令的第13个字节,得到本条通道切换命令所要访问的卡槽序号。
  12. 如权利要求8所述的多卡槽的CCID设备,其特征在于,所述判断模块具体用于:
    判断CCID设备的收发缓冲中是否有智能卡插拔事件信息,智能卡插拔事件信息由CCID设备在接收到有智能卡***或拔出的中断信号时写入到收发缓冲中。
PCT/CN2010/078052 2009-12-24 2010-10-25 一种实现多卡槽访问的方法和装置 WO2011076035A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/125,156 US8443120B2 (en) 2009-12-24 2010-10-25 Method for accessing multiple card slots and apparatus for the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2009102438819A CN101719054B (zh) 2009-12-24 2009-12-24 一种实现多卡槽访问的方法和装置
CN200910243881.9 2009-12-24

Publications (1)

Publication Number Publication Date
WO2011076035A1 true WO2011076035A1 (zh) 2011-06-30

Family

ID=42433634

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/078052 WO2011076035A1 (zh) 2009-12-24 2010-10-25 一种实现多卡槽访问的方法和装置

Country Status (3)

Country Link
US (1) US8443120B2 (zh)
CN (1) CN101719054B (zh)
WO (1) WO2011076035A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014206239A1 (zh) * 2013-06-24 2014-12-31 飞天诚信科技股份有限公司 一种基于标准ccid协议的多卡槽读卡器的工作方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719054B (zh) * 2009-12-24 2011-05-18 北京飞天诚信科技有限公司 一种实现多卡槽访问的方法和装置
CN102141968B (zh) * 2011-03-28 2013-05-15 飞天诚信科技股份有限公司 一种实现多卡槽访问的方法
CN102314405A (zh) * 2011-06-13 2012-01-11 上海哈诚电子科技有限公司 一种ccid协议处理电路
CN102307100B (zh) * 2011-09-08 2013-09-18 飞天诚信科技股份有限公司 一种数据处理装置及其数据处理方法
CN102315940B (zh) * 2011-09-08 2013-09-18 飞天诚信科技股份有限公司 一种数据的传输与处理***及方法
CN102591699B (zh) * 2011-12-29 2014-10-29 飞天诚信科技股份有限公司 一种转换命令模式的方法及装置
CN103516749A (zh) * 2012-06-21 2014-01-15 浙江大华技术股份有限公司 一种采用多卡发送数据的方法以及装置
US9602557B2 (en) 2012-10-15 2017-03-21 Wowza Media Systems, LLC Systems and methods of communication using a message header that includes header flags
CN103544037B (zh) * 2013-10-29 2016-08-17 飞天诚信科技股份有限公司 一种支持OpenSC的软硬件驱动的实现方法
JP2017220022A (ja) * 2016-06-07 2017-12-14 富士通株式会社 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
CN107395398B (zh) * 2017-06-23 2020-07-24 联想(北京)有限公司 一种控制方法及终端
DE102018124106A1 (de) * 2018-09-28 2020-04-02 Rockwell Collins Deutschland Gmbh Datenverarbeitungsvorrichtung mit mehreren Prozessoren und mehreren Schnittstellen
GB2580159B (en) * 2018-12-21 2021-01-06 Graphcore Ltd Scheduling messages

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040211835A1 (en) * 2003-04-22 2004-10-28 Stmicroelectronics, Inc. Smart card device used as mass storage device
CN1952915A (zh) * 2006-11-21 2007-04-25 北京飞天诚信科技有限公司 一种实现ccid设备的方法和装置
CN101000585A (zh) * 2006-12-06 2007-07-18 北京飞天诚信科技有限公司 一种实现ccid设备的方法和装置
CN101719054A (zh) * 2009-12-24 2010-06-02 北京飞天诚信科技有限公司 一种实现多卡槽访问的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7748636B2 (en) * 2004-11-16 2010-07-06 Dpd Patent Trust Ltd. Portable identity card reader system for physical and logical access
US20060214003A1 (en) 2005-03-15 2006-09-28 Neil Morrow Method and apparatus for contactless ICC connectivity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040211835A1 (en) * 2003-04-22 2004-10-28 Stmicroelectronics, Inc. Smart card device used as mass storage device
CN1952915A (zh) * 2006-11-21 2007-04-25 北京飞天诚信科技有限公司 一种实现ccid设备的方法和装置
CN101000585A (zh) * 2006-12-06 2007-07-18 北京飞天诚信科技有限公司 一种实现ccid设备的方法和装置
CN101719054A (zh) * 2009-12-24 2010-06-02 北京飞天诚信科技有限公司 一种实现多卡槽访问的方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014206239A1 (zh) * 2013-06-24 2014-12-31 飞天诚信科技股份有限公司 一种基于标准ccid协议的多卡槽读卡器的工作方法

Also Published As

Publication number Publication date
CN101719054B (zh) 2011-05-18
US8443120B2 (en) 2013-05-14
US20120278508A1 (en) 2012-11-01
CN101719054A (zh) 2010-06-02

Similar Documents

Publication Publication Date Title
WO2011076035A1 (zh) 一种实现多卡槽访问的方法和装置
WO2020153724A1 (en) Electronic device including magnet and magnetic shield
WO2018082482A1 (zh) 一种网络共享方法、接入网络方法及***
WO2018028135A1 (zh) 一种下行数据的信息反馈方法及相关设备
WO2011147116A1 (zh) 一种复合型usub设备及其实现方法
WO2016089009A1 (en) Method and cloud server for managing device
WO2020022578A1 (ko) 무선 충전을 이용하여 통신 채널을 제어하는 전자 장치 및 전자 장치의 동작 방법
WO2015139232A1 (zh) 一种应用的推荐方法、***及服务器
WO2013015571A2 (ko) 전자기기 및 전자기기의 동작 방법
WO2014196724A1 (ko) 벽걸이형 플렉시블 디스플레이
WO2019132344A1 (en) Method for controlling earpiece and electronic device for supporting the same
WO2018062715A1 (en) Apparatus and control method for displaying content of peripheral device
WO2020122593A1 (en) Electronic device for attenuating at least part of signal received by antenna and method for controlling communication signal
WO2015122608A1 (ko) 포스 주변기기 컨트롤러, 모바일 호스트 디바이스 및 그들의 제어방법
WO2019198978A1 (en) Electronic device equipped with flexible display and wireless charging method using the same
WO2021045463A1 (en) Electronic device and authentication method of electronic device
WO2022055291A1 (ko) 전자 장치 및 전자 장치의 업데이트 방법
WO2022164302A1 (ko) 플렉서블 디스플레이용 듀얼 디지타이저
WO2021162320A1 (en) Electronic device and method for operating high speed screen of electronic device
WO2019143081A1 (ko) 데이터 통신을 제어하는 방법 및 전자 장치
WO2017080403A1 (zh) 投影设备控制方法、投影设备及智能终端
WO2021246730A1 (ko) 인터포저를 포함하는 전자 장치
CN107113172A (zh) 无人机认证方法,安全通信方法及对应***
WO2018070669A1 (ko) 다국어 지원 객실용 서비스요청장치를 이용한 서비스요청 시스템 및 서비스요청방법
WO2020105892A1 (ko) 디바이스가 디지털 키를 공유하는 방법

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13125156

Country of ref document: US

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10838598

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10838598

Country of ref document: EP

Kind code of ref document: A1