发明内容
为克服现有技术中的上述缺陷,本发明提出一种USB外设处理装置及USB外设的处理方法。
根据本发明的一个方面,提出了一种USB外设处理装置,包括:处理器、上游USB接口、下游USB接口、状态识别单元、数据选择器、文件管理控制芯片和总线转换芯片,其特征在于,上游USB接口用于连接主机;下游USB接口用于连接USB外设;状态识别单元用于侦测下游USB接口所连接的外设的插入或移除,并将外设插入或移除信息发送给处理器;数据选择器用于在处理器控制下,使上游USB接口与下游USB接口导通或断开;文件管理控制芯片用于在经由内部总线发送的指令控制下对下游USB接口在连接USB大容量存储设备时对其中文件系统进行操作;总线转换芯片用于将上游USB接口的USB总线转换为内部总线。
根据本发明的另一个方面,提出了一种对外接USB设备的处理方法,包括:
步骤1,将USB外设处理装置的上游接口与主机的USB接口相连接;
步骤2,USB外设处理装置检测下游接口连接设备状态及类型;
步骤3,USB外设处理装置选择对USB设备的处理方式;
步骤4,USB外设处理装置检测下游接口连接设备的分离。
本发明的USB外设处理装置可以判断USB外设的类型并且采取预先定义的处理方式。由于本发明的USB外设处理装置可以应用于计算机上特定的USB接口而不对计算机的其他USB接口产生影响,因此可以满足在特定的USB接口上,判断USB外设的类型并且采取预先定义的处理方式的要求。由于本发明中不同类型的USB外设与不同处理方式之间的逻辑关系是在单片机的程序中定义的,因此可以根据实际情况进行灵活的修改,使本发明具有很强的适应性。
具体实施方式
下面结合附图和具体实施例对本发明提供的一种USB外设处理装置进行详细描述。
在以下的描述中,将描述本发明的多个不同的方面,然而,对于本领域内的普通技术人员而言,可以仅仅利用本发明的一些或者全部结构或者流程来实施本发明。为了解释的明确性而言,阐述了特定的数目、配置和顺序,但是很明显,在没有这些特定细节的情况下也可以实施本发明。在其他情况下,为了不混淆本发明,对于一些众所周知的特征将不再进行详细阐述。
图1示出根据本发明的USB外设处理装置的结构,如图1所示,该外设处理装置包括:处理器(图1中示例为单片机)101、上游USB接口102、下游USB接口103、状态识别单元104、数据选择器105、文件管理控制芯片106和总线转换芯片107。
其中,处理器101是嵌入式微控制器。上游USB接口102采用USB传输协议,用于连接主机。下游USB接口103采用USB传输协议,用于连接USB外设。状态识别单元104用于侦测下游USB接口103所连接的外设的插入或移除,并将外设插入或移除信息发送给单片机101。数据选择器105是逻辑控制单元,可在单片机101控制下,使上游接口102与下游接口103导通或断开。文件管理控制芯片106用于在经由内部总线发送的指令的控制下对下游接口103连接的USB大容量存储设备中的文件系统进行操作。总线转换芯片107用于将上游接口102的USB总线转换为内部总线,例如串行外围设备接口(Serial PeripheralInterface,SPI)总线。
具体地,下游USB接口103用于连接外部USB设备;状态识别单元分别和下游USB接口和处理器相连接,用于检测下游USB接口所容纳的USB设备的插拔和类型;数据选择器接入下游USB接口和上游USB接口之间的USB电缆,用于通断下游USB接口和上游USB接口之间的连接。文件管理控制芯片连接在下游USB接口和数据选择器之间的USB电缆上,并且文件管理控制芯片通过内部总线和总线转换芯片相连接,文件管理控制芯片和总线转换芯片之间的内部总线连接到处理器上,由内部总线发送的指令的控制下对下游接口103连接的USB大容量存储设备中的文件系统进行操作。指令经总线转换芯片转换后通过内部总线发送给文件管理控制芯片,由文件管理控制芯片对USB设备进行操作,操作结果经内部总线和总线转换芯片转换后,通过上游USB接口返回给主机。
总线转换芯片通过内部总线连接到上游USB接口和数据选择器之间的USB电缆上,用于将上游接口102的USB总线转换为内部总线。处理器和数据选择器相连接,根据状态识别单元的识别结果来通断上游USB接口和下游USB接口之间的连接。处理器分别单独与总线转换芯片和文件管理控制芯片相连接,用于控制总线转换芯片和文件管理控制芯片的启动和操作。
USB外设处理装置通过上游USB接口102连接到主机的一个USB接口,USB外设处理装置通过状态识别单元判断连接到其下游USB接口的USB外设的类型,并且根据USB外设的类型选择不同的处理方式,包括:将USB外设连接到主机,或将USB外设连接到USB外设处理装置上的文件管理控制芯片,或关闭到USB外设的数据通道。
进一步,如图1所示,上游USB接口102与主机的一个USB接口相连接。USB外设处理装置通过上游USB接口的USB总线获得电源并开始工作。处理器101、数据选择器、文件管理控制芯片、总线转换芯片在获得电源的初始进入上电复位状态。
下游USB接口插入USB设备后,和下游USB接口相连的状态识别单元用于检测下游USB接口所连接的设备的状态及类型,状态识别单元对下游USB接口的USB总线进行检测,当有USB设备插入下游接口时,状态识别单元向单片机发出信号。
此外,状态识别单元还可检测下游接口连接设备的分离,状态识别单元持续对下游接口的USB总线进行检测,任何类型的USB设备的分离动作都会被状态识别单元发现。状态识别单元实时把USB设备的分离动作通知单片机,单片机接收到USB设备分离信息后,关闭上、下游接口之间的数据通道,并使文件管理控制芯片复位并保持复位状态。由上面的说明可知,一旦将USB设备拔出,连接到下游接口的所有数据通道就都断开,从而能够有效防止非法设备通过已建立的USB通道对USB外设处理装置或主机进行攻击。
单片机接收到状态识别单元所发的设备接入信号后,停止文件管理控制芯片的复位状态,使得文件管理控制芯片进入正常工作状态。单片机在获知接入外设USB设备后向文件管理控制芯片发送设备类型查询指令,获取接入的USB设备的类型信息。
单片机获取USB设备类型信息后,执行逻辑判断,根据USB设备的类型选择一种处理方式。一般的,对智能卡或芯片类的USB设备选择第一种处理方式,对大容量存储类的USB设备选择第二种处理方式,对其他类型的USB设备选择第三种处理方式,其中,本领域内普通技术人员应该理解,该设定方式仅用于说明本发明的实施方案,而并非对特定设备的设定产生限制。
在第一种处理方式中,单片机向文件管理控制芯片发送复位指令,使其复位并保持复位状态;然后向数据选择器发送指令,使上游接口与下游接口之间的USB线缆直接接通。上述处理等效于将USB设备直接连接到主机的USB接口,USB外设处理装置对主机、USB设备是透明。由上面的说明可知,当用户把USB-Key插入USB外设处理装置的下游接口,USB-Key将等效于直接连接到主机的USB接口,从而能够被主机上的软件识别和使用。
在第二种处理方式中,单片机向文件管理控制芯片发送复位指令,然后,同时停止总线转换芯片和文件管理控制芯片的复位状态,使得二者开始正常工作。上述操作,模拟了一个USB外设处理装置在主机上的接入动作,同时也模拟了一个USB设备在USB外设处理装置下游接口上的接入动作。前者触发主机向USB外设处理装置发送初始化指令,后者触发文件管理控制芯片向USB设备发送复位信号和初始化指令。USB外设处理装置和USB设备都完成了初始化工作后,主机可通过上游USB接口向USB外设处理装置发送各种操作指令,包括:文件名枚举、目录的建立、删除、文件的删除、重命名、读取、写入等。上述操作指令经总线转换芯片转换后通过内部总线发送给文件管理控制芯片,由文件管理控制芯片对USB设备进行操作,操作结果经内部总线和总线转换芯片转换后,通过上游接口返回给主机。由上面的说明可知,当用户把USB大容量存储设备(如U盘)插入下游接口,主机将识别出USB外设处理装置,通过USB外设处理装置主机可主动发起对USB设备的文件系统的常规操作;但主机不能发起除上述常规操作外的其他操作;同时,USB设备不能主动发起任何动作。与把U盘直接插到主机的USB接口上进行操作相比,通过USB外设处理装置操作能够更可靠保证所有操作都是在主机的主导下进行的,并且能够限定主机能够执行的操作。
在第三种处理方式中,单片机向文件管理控制芯片发送复位指令,使其复位并保持复位状态。这样,连接到USB设备的所有数据通道都断开,能够有效的防止通过下游USB接口对USB外设处理装置或主机进行攻击。由上面的说明可知,如果用户把不允许使用的USB设备插入下游接口,这些USB设备实际上不能工作。
在根据本发明的实施例中,图2提供一种对外接USB设备的处理方法,如图2所示,该方法包括:步骤201,USB外设处理装置初始化,将USB外设处理装置的上游接口与主机的USB接口相连接;步骤202,USB外设处理装置检测下游接口连接设备状态及类型;步骤203,USB外设处理装置选择对USB设备的处理方式;步骤204,单片机向文件管理控制芯片发送复位指令,使其复位并保持复位状态;然后向数据选择器发送指令,使上游接口与下游接口之间的USB线缆直接接通;步骤205,单片机向文件管理控制芯片发送复位指令,然后同时停止总线转换芯片和文件管理控制芯片的复位状态,使它们开始正常工作;步骤206,单片机向文件管理控制芯片发送复位指令,使其复位并保持复位状态;步骤207,USB外设处理装置检测下游接口连接设备的分离。在步骤207完成后,USB外设处理装置回到初始化完成时的状态,等待新的USB设备连接动作。
进一步,具体地如图2所示,步骤201中,USB外设处理装置初始化,将USB外设处理装置的上游接口与主机的一个USB接口相连接。USB外设处理装置通过上游接口的USB总线获得电源并开始工作。单片机、数据选择器、文件管理控制芯片、总线转换芯片进入上电复位状态。单片机完成复位操作后直到进入正常工作状态,而数据选择器、文件管理控制芯片和总线转换芯片保持其复位状态并等候单片机的指令。在复位状态,数据选择器、文件管理控制芯片和总线转换芯片的数据端口处于高阻态,对数据线不产生任何影响。即,在初始化步骤201中,USB外设处理装置的接入仅仅从主机获取电源,主机无法探测其存在;同时,USB外设处理装置也不对下游接口接入的USB设备或USB设备的接入/断开动作做出任何反应。
步骤202中,USB外设处理装置检测下游接口连接设备状态及类型。具体地,USB外设处理装置初始化后,状态识别单元对下游接口的USB总线进行检测,当有USB设备插入下游接口时,状态识别单元向单片机发出信号。单片机接收到设备接入信号后,停止文件管理控制芯片的复位状态,文件管理控制芯片进入正常工作状态。然后,单片机向文件管理控制芯片发送设备类型查询指令,获取接入的USB设备的类型信息。
步骤203中,USB外设处理装置选择对USB设备的处理方式。单片机获取USB设备类型信息后,执行逻辑判断,根据USB设备的类型选择一种处理方式。一般的,对智能卡或芯片类的USB设备选择处理步骤204,对大容量存储类的USB设备选择处理步骤205,对其他类型的USB设备选择处理步骤206。其中,本领域内普通技术人员应该理解,该设定的处理步骤仅用于说明本发明的实施流程,而并非对特定设备的设定产生限制。
步骤204中,单片机向文件管理控制芯片发送复位指令,使其复位并保持复位状态;然后向数据选择器发送指令,使上游接口与下游接口之间的USB线缆直接接通。上述处理等效于将USB设备直接连接到主机的USB接口,USB外设处理装置对主机和USB设备是透明的。由上面的说明可知,当用户把USB-Key插入USB外设处理装置的下游接口,USB-Key将直接连接到主机的USB接口,从而能够被主机上的软件识别和使用。
步骤205中,单片机向文件管理控制芯片发送复位指令,然后同时停止总线转换芯片和文件管理控制芯片的复位状态,使它们开始正常工作。上述操作,模拟了一个USB外设处理装置在主机上的接入动作,同时也模拟了一个USB设备在USB外设处理装置下游接口上的接入动作。前者触发主机向USB外设处理装置发送初始化指令,后者触发文件管理控制芯片向USB设备发送复位信号和初始化指令。USB外设处理装置和USB设备都完成了初始化工作后,主机可通过上游接口向USB外设处理装置发送各种操作指令,包括:文件名枚举、目录的建立、删除、文件的删除、重命名、读取、写入等。上述操作指令经总线转换芯片转换后通过内部总线发送给文件管理控制芯片,由文件管理控制芯片对USB设备进行操作,操作结果经内部总线和总线转换芯片转换后,通过上游接口返回给主机。由上面的说明可知,当用户把USB大容量存储设备(如U盘)插入下游接口,主机将识别出USB外设处理装置,通过USB外设处理装置主机可主动发起对USB设备的文件系统的常规操作;但主机不能发起除上述常规操作外的其他操作;同时,USB设备不能主动发起任何动作。与把U盘直接插到主机的USB接口上进行操作相比,通过USB外设处理装置操作能够更可靠的保证所有操作都是在主机的主导下进行的,并且能够限定主机能够执行的操作。
步骤206中,单片机向文件管理控制芯片发送复位指令,使其复位并保持复位状态。这样,连接到USB设备的所有数据通道都断开,能够有效防止通过下游接口对USB外设处理装置或主机进行攻击。由上面的说明可知,如果用户把不允许使用的USB设备插入下游接口,这些USB设备实际上不能运行。
步骤207中,检测下游接口连接设备的分离。USB外设处理装置的状态识别单元持续对下游接口的USB总线进行检测,任何类型的USB设备的分离动作都会被状态识别单元发现。状态识别单元实时的把USB设备的分离动作通知单片机,单片机接收到USB设备分离信息后,关闭上、下游接口之间的数据通道,并使文件管理控制芯片复位并保持复位状态。由上面的说明可知,一旦将USB设备拔出,连接到下游接口的所有数据通道就都断开,能够有效的防止非法设备通过已建立的USB通道对USB外设处理装置或主机进行攻击。
最后,USB外设处理装置回到初始化完成时的状态,等待新的USB设备连接动作。
图3示出根据本发明的一个实施例的数据选择器的电路原理图,其中,通过使能和地址选择线确定不同线路的通断。其中,如图3所示,该数据选择器是多通道的二选一数据开关,在使能信号无效时,所有开关通道处于禁止状态;在使能信号有效时,根据地址线的状态,总会有一个开关通路是导通的。图3中示出共享使能和地址信号的两个通道。
图4是根据本发明的状态识别单元的原理图,如图4所示,该电路包括USB接口、并连接地的两个电阻器,分别和两个电阻器相连的放大器,该两个放大器并联接入一个加法器,该加法器的输出连接到处理器。其中,USB设备接入之前,两根数据线UD+和UD-分别被下拉电阻R1和R2拉低,其电平为零;USB设备接入之后,其中一个数据线被所接入的USB设备上拉至某一电平,放大器1和放大器2分别监视数据线的电平变化,并且将变化信号放大后发送给加法电路。这样,当数据线路的电平发生变化时,加法器就会输出响应信号,该响应信号发送给处理器的控制电路进行处理,从而可以判断外部USB设备的接入和拨出。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。