CN109189705B - 一种usb扩展方法、装置、设备、存储介质及系统 - Google Patents
一种usb扩展方法、装置、设备、存储介质及系统 Download PDFInfo
- Publication number
- CN109189705B CN109189705B CN201810904516.7A CN201810904516A CN109189705B CN 109189705 B CN109189705 B CN 109189705B CN 201810904516 A CN201810904516 A CN 201810904516A CN 109189705 B CN109189705 B CN 109189705B
- Authority
- CN
- China
- Prior art keywords
- usb
- peripheral interface
- serial peripheral
- controller
- chip
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
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)
- Information Transfer Systems (AREA)
Abstract
本发明实施例公开了一种USB扩展方法、装置、设备、存储介质及系统。所述方法包括:待USB扩展设备通过片选方式选择串行外设接口到USB的控制器进行通信;所述待USB扩展设备初始化USB子系统,并使能中断;当接收到串行外设接口到USB的控制器产生的USB插入中断信号时,所述待USB扩展设备唤醒匹配的USB服务线程,通过内置的串行外设接口控制器与USB设备进行数据交互,其中,所述串行外设接口控制器内置于待USB扩展设备中,所述串行外设接口到USB的控制器内置于串行外设接口到USB的芯片中。本发明实施例可以实现在不具有USB控制功能的芯片上快速集成USB功能,降低集成USB功能的实现成本。
Description
技术领域
本发明实施例涉及信息处理技术,尤其涉及一种USB扩展方法、装置、设备、存储介质及系统。
背景技术
USB是一种应用在计算机领域的接口技术,具有热插拔、易携带、传输速度快等优点。由于USB的各种优点,各种操作系统如windows系列、linux系列均支持这种接口技术,这使得USB技术应用更为广泛。
但在现有的中低端交换机芯片中没有集成USB控制器,例如市面上的microSemi公司VSC7449、Marvel的98DX3135芯片,而且由于芯片本身的限制,无法直接集成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插入中断信号时,唤醒匹配的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功能,仅仅在现有端口上外接一个串行外设接口到USB的芯片实现间接集成USB功能,迅速实现USB功能,解决了现有技术中中低端交换机芯片无法直接集成USB功能的问题,而且避免通过投入大量研发来实现USB功能,减少在中低端交换机芯片上集成USB功能的实现成本,节约人力和财力。
附图说明
图1a是本发明实施例一提供的一种USB扩展方法的流程图;
图1b是本发明实施例一提供的一种软件系统架构的示意图;
图1c是本发明实施例一提供的一种USB扩展方法的流程图;
图2是本发明实施例二提供的一种USB扩展装置的结构示意图;
图3是本发明实施例三提供的一种设备的结构示意图;
图4是本发明实施例四提供的一种USB扩展系统的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1a为本发明实施例一提供的一种USB扩展方法的流程图,本实施例可适用于不具备USB功能的芯片(尤其是中低端交换机芯片)扩展USB功能的情况,该方法可以由本发明实施例提供的USB扩展装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在待USB扩展设备中,如中低端交换机芯片。如图1a所示,本实施例的方法具体包括:
S110,待USB扩展设备通过片选方式选择串行外设接口到USB的控制器进行通信。
在传统交换机方案中,一般来说,芯片未集成USB控制器,但一般芯片均具有通用端口,例如通用输入输出(General Purpose Input Output,GPIO)端口、串行外设接口(Serial Peripheral Interface,SPI)控制器端口、中断(Interrupt,INT)端口等端口,其中,一般SPI控制器端口包括四根信号线,具体的,包括串行数据输入信号线、串行数据输出信号线、时钟信号线和片选信号线,从而,SPI控制器端口又被称作SPI控制器总线。
需要说明的是,在本发明的任一实施例中,SPI控制器端口是指除片选信号线连接的端口以外的SPI控制器端口,也即SPI控制器端口中不包括芯片选择端口。
在本实施例中,待扩展USB功能的芯片可以通过这些通用端口与用于直接控制USB设备的控制器连接,从而实现间接控制USB设备。可选的,待扩展USB功能的芯片可以是中低端交换机芯片。其中,控制USB设备可以通过串行外设接口到USB(SPI to USB)的芯片实现,具体可以通过待扩展USB功能的芯片上的SPI控制器端口实现SPI to USB芯片与待扩展USB功能的芯片的通信连接,同时该芯片中内置SPI to USB控制器,并提供USB的相关协议,待扩展USB功能的芯片通过SPI控制器端口控制SPI to USB芯片对数据进行搬运工作,例如将待扩展USB功能的芯片中的数据传送到USB设备中,或者将USB设备中的数据传送到待扩展USB功能的芯片中,从而实现待扩展USB功能的芯片间接与USB设备进行通信连接。
对于交换机芯片来说,一般需要外接一个闪存(Nor Flash),闪存作为交换机芯片的存储器,存储有该交换机芯片实现运行的各项数据和参数。从而在交换机芯片已经外接一个闪存的基础上,再外接一个芯片作为USB设备的控制器,此时,交换机芯片需要选择闪存或者SPI to USB芯片进行通信连接。具体的,可以通过片选方式实现,由于SPI控制器端口一般只有一个芯片选择(chipselect)端口,需要额外增加一个芯片选择端口来选择SPIto USB芯片进行通信连接,此时可以将一个通用输入输出端口作为第二芯片选择端口使用,可选的,芯片选择端口的数目为2个,两个芯片选择端口输出的片选信号互斥,第一芯片选择端口用于连接闪存,第二芯片选择端口用于连接一个芯片,该芯片可以为交换机芯片提供USB扩展功能。其中,信号互斥可以是指当一个信号为高电平时,另外一个信号为低电平,也就是说,通过互斥信号控制选择闪存和控制器芯片,使得闪存和控制器芯片不能同时与交换机芯片通信连接。
S120,所述待USB扩展设备初始化USB子系统,并使能中断。
在本实施例中,USB子系统包括与USB设备配置相关的内容,具体包括为USB的各种类型USB设备创建目录、注册USB总线、注册USB总线通知链、注册USB驱动等,其中,USB总线通知链用于在添加/删除USB设备时发起通知,USB驱动用于识别USB设备。可以理解的是,识别USB设备以及接收USB设备传送的数据等均是通过SPI to USB控制器生成的中断信号触发交换机芯片中的中央处理器执行匹配的中断服务程序来唤起USB服务线程完成,从而,需要使能中断,使中断程序进入工作状态,即中断服务可以被触发。
S130,当接收到串行外设接口到USB的控制器产生的USB插入中断信号时,所述待USB扩展设备唤醒匹配的USB服务线程,通过内置的串行外设接口控制器与USB设备进行数据交互,其中,所述串行外设接口控制器内置于待USB扩展设备中,所述串行外设接口到USB的控制器内置于串行外设接口到USB的芯片中。
在本实施例中,待扩展USB功能的芯片也即交换机芯片可以外接SPI toUSB芯片,其中,待扩展USB功能的芯片内置串行外设接口(SPI)控制器,用于控制SPI控制器端口功能,从而,待扩展USB功能的芯片中的SPI控制器与SPI to USB芯片中的SPI to USB控制器实现通信连接,实现待扩展USB功能的芯片间接与USB设备进行通信连接。当SPI to USB控制器被接入一个USB设备时,会产生对应的USB插入中断信号,并传送到待扩展USB功能的芯片中。此时待扩展USB功能的芯片根据接收到的中断信号,唤醒USB服务线程,并运行线程实现与USB设备之间的数据交互。
一般来说,与USB设备的数据交互可以分为向USB设备传输数据和接收USB设备传输的数据。可选的,所述待USB扩展设备唤醒匹配的USB服务线程,通过内置的串行外设接口控制器与USB设备进行数据交互,包括:所述待USB扩展设备将对USB设备的操作信息加入串行外设接口消息队列,并唤醒用于数据发送的USB服务线程完成数据发送操作;当接收到USB设备发送数据引起的中断信号时,所述待USB扩展设备唤醒用于数据接收的USB服务线程完成数据接收操作。
具体的,对USB设备的操作信息可以是指对USB设备中的数据进行的添加、移动、删除等操作信息,也可以是指禁用、移除USB设备等操作信息。待扩展USB功能的芯片通过SPI控制器端口与SPI to USB芯片进行通信连接,SPI控制器可以将对USB设备的操作信息加入SPI消息队列,同时唤醒相应的服务线程,根据优先级对SPI消息队列中的信息进行处理。SPI to USB芯片获取该操作信息以及传送数据后,将该传送数据发送至USB设备中。
USB设备向SPI to USB芯片发送数据时,SPI to USB芯片在接收到该数据时会通过INT端口向待扩展USB功能的芯片发送中断信号,此时待扩展USB功能的芯片根据该中断信号的内容唤醒对应的服务线程,接收SPI to USB芯片发送由USB设备传送过来的数据。
由此,通过SPI to USB芯片可以实现待扩展USB功能的芯片与USB设备的数据交互功能。
可选的,所述待USB扩展设备唤醒用于数据发送的USB服务线程完成数据发送操作,包括:所述待USB扩展设备通过串行外设接口控制器端口将USB数据发送到串行外设接口到USB的控制器;所述待USB扩展设备通过串行外设接口到USB的控制器将所述USB数据发送到USB设备。
具体的,SPI控制器通过SPI控制器端口将USB数据传送到SPI to USB控制器,再由SPI to USB控制器向USB设备发送数据,实现间接将待扩展USB功能的芯片中的数据发送至USB设备。
在上述实施例的基础上,可选的,在所述待USB扩展设备初始化USB子系统,并使能中断之后,还包括:所述待USB扩展设备在设定时间内未接收到任务请求,进入休眠状态。
为了节省资源,可以在长时间内未接收到任务请求时,使SPI to USB控制器进入休眠状态。
在上述实施例的基础上,可选的,在所述待USB扩展设备通过片选方式选择串行外设接口到USB的控制器进行通信之前,还包括:所述待USB扩展设备将通用输入输出端口设置为芯片选择端口,其中,所述芯片选择端口用于输出片选信号选择通信连接的芯片。
本发明实施例通过额外外接一个SPI to USB芯片,由SPI to USB芯片内置的SPIto USB控制器实现控制USB功能,仅仅在现有端口上外接一个SPI toUSB芯片实现间接集成USB功能,迅速实现USB功能,解决了现有技术中中低端交换机芯片无法直接集成USB功能的问题,而且避免通过投入大量研发来实现USB功能,减少在中低端交换机芯片上集成USB功能的实现成本,节约人力和财力。
上述方法可以由如图1b所示的软件系统构架图实现,如图1b所示,在本实施例中,将USB驱动置于硬件抽象层,该硬件抽象层是指位于操作系统的内核与硬件(电路)之间的接口层,其目的在于将硬件抽象化。它隐藏了硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性。由于USB设备并没有直接与待扩展USB功能的芯片连接,将USB驱动置于硬件抽象层,可以在该芯片没有与USB设备直接连接的情况下,间接通过SPI to USB芯片来识别USB设备。
在一个具体的应用场景中,如图1c所示,USB扩展方法应用在交换机芯片中,具体包括:
S151,初始化硬件模块。
具体的,初始化所需要的参数以及数据均从与芯片通信连接的存储器中获取。
S152,初始化串行外设接口控制器驱动。
交换机芯片初始化串行外设接口控制器,用于后续控制串行外设接口。
S153,初始化文件系统。
文件系统可以是指操作系统用于明确存储设备(常见的是磁盘,也有基于闪存技术的固态硬盘)或分区上的文件的方法和数据结构,其用于对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。初始化文件系统用于为后续与USB设备交互的数据分配存储空间等。
S154,初始化软件系统USB子系统。
软件系统是由多个子系统构成,例如包括USB子系统、网络系统、文件系统等。其中,USB子系统包括与USB设备配置相关的内容,具体包括为USB的各种类型USB设备创建目录、注册USB总线、注册USB总线通知链、注册USB驱动等。
S155,初始化串行外设接口到USB的控制器配置,创建内核线程,并注册申请中断服务。
在交换机芯片中初始化串行外设接口到USB的控制器配置参数,并在内核中相应创建USB设备的相关服务线程,同时针对一些服务线程注册申请中断服务,例如,USB设备向交换机芯片发送数据时会产生相应的中断信号,根据该中断信号可以唤醒相应的服务线程运行。
S156,注册USB子系统并使能中断。
调用USB子系统的相关函数,注册USB总线、注册USB总线通知链、注册USB驱动等,使软件系统可以具有获取添加或删除USB设备的通知,能够识别USB设备等功能。
S157,进入服务状态。
当进入服务状态后,可以根据不同指令唤醒对应的服务线程,如对串行外设接口到USB的控制器的中断处理,向USB发送数据,接收USB发送的数据等,从而实现对USB设备的输入输出操作,其中,向USB发送数据操作和接收USB发送的数据的操作均需要通过串行外设接口控制器端口实现。此外,当无USB任务需要执行时,系统可以进入休眠状态。
S158,当USB插入时,串行外设接口到USB的控制器产生中断,唤醒相应的USB服务线程对USB设备进行枚举、分配资源。
具体的,在接收到串行外设接口到USB的控制器产生的中断信号后,可以通过USB中断服务函数实现唤醒USB服务线程,同时关闭该中断服务。
S159,当对USB设备进行操作时,将操作信息添加到串行外设接口消息队列,并唤醒用于发送数据的USB服务线程实现数据的发送。
将USB请求块信息添加到串行外设接口消息队列,并按照优先级对串行外设接口消息队列中的信息进行处理。后续通过串行外设接口控制器端口将USB数据发送到串行外设接口到USB的控制器,再由串行外设接口到USB的控制器发送到USB设备。
S160,当USB设备发送数据时,会生成中断信号,触发中断服务函数唤醒USB服务线程,由USB服务线程执行数据的接收操作。
实施例二
图2为本发明实施例二提供的一种USB扩展装置的结构示意图。如图2所示,所述装置,内置于待USB扩展设备中,具体包括:
控制器片选模块210,用于通过片选方式选择串行外设接口到USB的控制器进行通信;
USB配置模块220,用于初始化USB子系统,并使能中断;
数据交互模块230,用于当接收到串行外设接口到USB的控制器产生的USB插入中断信号时,唤醒匹配的USB服务线程,通过内置的串行外设接口控制器与USB设备进行数据交互,其中,所述串行外设接口控制器内置于所述待USB扩展设备中,所述串行外设接口到USB的控制器内置于串行外设接口到USB的芯片中。
本发明实施例通过额外外接一个SPI to USB芯片,由SPI to USB芯片内置的SPIto USB控制器实现控制USB功能,仅仅在现有端口上外接一个SPI toUSB芯片实现间接集成USB功能,迅速实现USB功能,解决了现有技术中中低端交换机芯片无法直接集成USB功能的问题,而且避免通过投入大量研发来实现USB功能,减少在中低端交换机芯片上集成USB功能的实现成本,节约人力和财力。
进一步的,所述数据交互模块230还用于:将对USB设备的操作信息加入串行外设接口消息队列,并唤醒用于数据发送的USB服务线程完成数据发送操作;当接收到USB设备发送数据引起的中断信号时,唤醒用于数据接收的USB服务线程完成数据接收操作。
进一步的,所述数据交互模块230还用于:通过串行外设接口控制器端口将USB数据发送到串行外设接口到USB的控制器;通过串行外设接口到USB的控制器将所述USB数据发送到USB设备。
进一步的,所述装置还用于:在设定时间内未接收到任务请求,进入休眠状态。
进一步的,所述装置还用于:将通用输入输出端口设置为芯片选择端口,其中,所述芯片选择端口用于输出片选信号选择通信连接的芯片。
进一步的,所述装置还包括:芯片选择端口的数目为2个,两个芯片选择端口输出的片选信号互斥。
上述USB扩展装置可执行本发明任意实施例所提供的USB扩展方法,具备执行的USB扩展方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三提供的一种设备的结构示意图,如图3所示,该设备包括处理器310、存储器320和串行外设接口到USB的控制器330;设备中处理器310的数量可以是一个或多个,图3中以一个处理器310为例,其中处理器310可以是交换机芯片;设备中的处理器310、存储器320和串行外设接口到USB的控制器330可以通过总线或其他方式连接,具体的,存储器320可以是非易失性闪存(Nor Flash),处理器310分别与存储器320和串行外设接口到USB的控制器330通过SPI控制器端口连接,同时通过第一芯片选择端口选择存储器320通信,以及通过第二芯片选择端口选择串行外设接口到USB的控制器330通信,具体是芯片选择端口输出高/低电平的片选信号时,该芯片选择端口对应的线路导通/截止,而且第一芯片选择端口和第二芯片选择端口输出的片选信号互斥,例如第一芯片选择端口输出的片选信号为高电平时,相应的,第二芯片选择端口输出的片选信号为低电平,此时,存储器320与处理器310通信连接,串行外设接口到USB的控制器330和处理器310连接断开。此外处理器310和串行外设接口到USB的控制器330还通过中断端口进行连接,串行外设接口到USB的控制器330可以基于中断端口产生中断信号发送给处理器310。
存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的USB扩展方法对应的程序指令/模块(例如,USB扩展装置中的控制器片选模块210、USB配置模块220和数据交互模块230)。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述USB扩展方法。
存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
串行外设接口到USB的控制器330可用于接收外接的USB设备输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。
实施例四
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的USB扩展方法:
也即,该程序被处理器执行时实现:待USB扩展设备通过片选方式选择串行外设接口到USB的控制器进行通信;所述待USB扩展设备初始化USB子系统,并使能中断;当接收到串行外设接口到USB的控制器产生的USB插入中断信号时,所述待USB扩展设备唤醒匹配的USB服务线程,通过内置的串行外设接口控制器与USB设备进行数据交互,其中,所述串行外设接口控制器内置于待USB扩展设备中,所述串行外设接口到USB的控制器内置于串行外设接口到USB的芯片中。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
实施例五
本发明实施例五提供了一种USB扩展系统的结构示意图。如图4所示,USB扩展系统410包括:
USB设备420、待USB扩展设备430和串行外设接口到USB的控制器440,其中,所述待USB扩展设备430内置上述实施例所述的USB扩展装置;
所述待USB扩展设备430通过第二芯片选择端口与所述串行外设接口到USB的控制器440连接,同时通过串行外设接口控制器端口与所述串行外设接口到USB的控制器440通信连接;
所述串行外设接口到USB的控制器440与所述USB设备420通信连接;
其中,所述串行外设接口到USB的控制器440用于为所述待USB扩展设备430提供USB设备控制功能。
此外,待USB扩展设备430通过串行外设接口控制器端口与存储器450通信连接,并通过芯片选择端口选择是否导通存储器450。
可选的,待USB扩展设备430为交换机芯片,USB设备420为U盘,串行外设接口到USB的控制器440为MAX3421E芯片。
本发明实施例通过集成SPI to USB芯片形成的USB扩展系统实现控制USB功能,解决了现有技术中中低端交换机芯片无法直接集成USB功能的问题,而且仅仅通过集成一个SPI to USB芯片实现,使中低端交换机芯片上集成USB功能易于实现,便于普及。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (5)
1.一种USB扩展方法,其特征在于,包括:
待USB扩展设备初始化硬件模块、串行外设接口控制器驱动、文件系统、USB子系统和串行外设接口到USB的控制器;
所述待USB扩展设备创建内核线程,并注册申请中断服务;
所述待USB扩展设备将SPI控制端口中芯片选择端口设置为第一芯片选择端口,并将通用输入输出端口设置为第二芯片选择端口,其中,所述待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设备的操作信息加入串行外设接口消息队列,并唤醒用于数据发送的USB服务线程完成数据发送操作;
当接收到USB设备发送数据引起的中断信号时,所述待USB扩展设备唤醒用于数据接收的USB服务线程完成数据接收操作;
所述待USB扩展设备唤醒用于数据发送的USB服务线程完成数据发送操作,包括:
所述待USB扩展设备通过串行外设接口控制器端口将USB数据发送到串行外设接口到USB的控制器;
所述待USB扩展设备通过串行外设接口到USB的控制器将所述USB数据发送到USB设备;
在所述待USB扩展设备初始化USB子系统,并使能中断之后,还包括:
所述待USB扩展设备在设定时间内未接收到任务请求,使串行外设接口到USB的控制器,进入休眠状态。
2.一种USB扩展装置,其特征在于,内置于待USB扩展设备中,包括:
控制器片选模块,用于初始化硬件模块、串行外设接口控制器驱动、文件系统、USB子系统和串行外设接口到USB的控制器;创建内核线程,并注册申请中断服务;将SPI控制端口中芯片选择端口设置为第一芯片选择端口,并将通用输入输出端口设置为第二芯片选择端口,其中,所述待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的控制器将所述USB数据发送到USB设备;
所述装置还用于:在设定时间内未接收到任务请求,使串行外设接口到USB的控制器进入休眠状态。
3.一种设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,还包括:
所述存储器,通过第一芯片选择端口连接至所述处理器;
串行外设接口到USB的控制器,通过第二芯片选择端口连接至所述处理器,且通过串行外设接口控制器端口与所述处理器通信连接,用于提供USB设备控制功能;
所述处理器执行所述程序时实现如权利要求1所述的USB扩展方法。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1所述的USB扩展方法。
5.一种USB扩展系统,其特征在于,包括:待USB扩展设备、串行外设接口到USB的控制器和USB设备,其中,所述待USB扩展设备内置如权利要求2所述的USB扩展装置;
所述待USB扩展设备通过第二芯片选择端口与所述串行外设接口到USB的控制器连接,同时通过串行外设接口控制器端口与所述串行外设接口到USB的控制器通信连接;
所述串行外设接口到USB的控制器与所述USB设备通信连接;
其中,所述串行外设接口到USB的控制器用于为所述待USB扩展设备提供USB设备控制功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810904516.7A CN109189705B (zh) | 2018-08-09 | 2018-08-09 | 一种usb扩展方法、装置、设备、存储介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810904516.7A CN109189705B (zh) | 2018-08-09 | 2018-08-09 | 一种usb扩展方法、装置、设备、存储介质及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189705A CN109189705A (zh) | 2019-01-11 |
CN109189705B true CN109189705B (zh) | 2021-01-01 |
Family
ID=64921389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810904516.7A Active CN109189705B (zh) | 2018-08-09 | 2018-08-09 | 一种usb扩展方法、装置、设备、存储介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189705B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070995A (zh) * | 2020-09-04 | 2020-12-11 | 广东工贸职业技术学院 | 实现智能设备主从usb并行模式的方法、装置及系统 |
CN112395242B (zh) * | 2020-11-30 | 2024-01-30 | 重庆紫光华山智安科技有限公司 | 多芯片控制方法、装置、电子设备和计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751364A (zh) * | 2010-01-25 | 2010-06-23 | 成都优博创技术有限公司 | 一种spi总线接口的固件isp烧录器和烧录方法 |
CN102608942A (zh) * | 2012-03-21 | 2012-07-25 | 西北工业大学 | 一种伺服电机控制系统的实时监测信号转换装置及其方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2270672A1 (en) * | 2009-07-02 | 2011-01-05 | Giga-Byte Technology Co., Ltd. | Flash memory control device |
CN102063400B (zh) * | 2011-01-06 | 2013-03-13 | 天地融科技股份有限公司 | 一种通用串行总线设备转接装置 |
TWM411681U (en) * | 2011-03-22 | 2011-09-11 | Tuton Technology Co Ltd | USB connector expansion module implemented through PCI-E bus |
CN104866452B (zh) * | 2015-05-19 | 2017-09-26 | 哈尔滨工业大学(鞍山)工业技术研究院 | 基于fpga和tl16c554a的多串口扩展方法 |
CN108241546B (zh) * | 2017-12-04 | 2021-02-02 | 北京东土科技股份有限公司 | 一种bdi调试器共享使用的方法、装置及系统 |
-
2018
- 2018-08-09 CN CN201810904516.7A patent/CN109189705B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751364A (zh) * | 2010-01-25 | 2010-06-23 | 成都优博创技术有限公司 | 一种spi总线接口的固件isp烧录器和烧录方法 |
CN102608942A (zh) * | 2012-03-21 | 2012-07-25 | 西北工业大学 | 一种伺服电机控制系统的实时监测信号转换装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109189705A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3570175B1 (en) | Method for implementing nvme over fabrics, terminal, server, and system | |
US8521929B2 (en) | Virtual serial port management system and method | |
CN107305534B (zh) | 同时进行内核模式访问和用户模式访问的方法 | |
US20070067506A1 (en) | Multimedia program download control system and method of apparatus equipped with multimedia processor | |
US9881680B2 (en) | Multi-host power controller (MHPC) of a flash-memory-based storage device | |
US7467308B2 (en) | Method for transmitting the system command of a computer system | |
CN211376201U (zh) | 一种命令读写装置、存储器 | |
US10949307B2 (en) | Executing computer instruction including asynchronous operation | |
US20100095044A1 (en) | Motherboard system, storage device for booting up thereof and connector | |
CN109189705B (zh) | 一种usb扩展方法、装置、设备、存储介质及系统 | |
US8589954B2 (en) | Method and program for selective suspension of USB network device | |
US20160041607A1 (en) | System management controller | |
US20190310964A1 (en) | Speculative read mechanism for distributed storage system | |
CN113010470A (zh) | 边缘节点远程控制系统、方法、设备及存储介质 | |
WO2016197883A1 (zh) | 一种在线更新单片机程序的方法及系统 | |
CN114296808A (zh) | 一种引脚配置方法、装置、电子设备及存储介质 | |
CN111143068B (zh) | 文件操作方法、装置及嵌入式控制器 | |
CN102708079B (zh) | 应用于微控制器的控制数据传输的方法及系统 | |
US7945919B2 (en) | Information processing apparatus and device controller driving/controlling method | |
WO2012000240A1 (zh) | 下载数据的方法和终端设备 | |
CN104035900A (zh) | 一种共享pc的输入设备给安卓设备的方法及其装置 | |
CN104981814A (zh) | 安全协处理器引导性能 | |
CN115994111A (zh) | 数据处理电路、方法、芯片及电子设备 | |
CN101998691B (zh) | 一种数据传输的方法、系统和装置 | |
CN111427813A (zh) | 一种基于串口的核间通讯方法、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |