首页 / USB转换接口装置

USB转换接口装置有效专利 发明

技术领域

[0001] 本发明涉及FPGA应用领域,尤其涉及一种USB转换接口装置。

相关背景技术

[0002] 在物联网方案中,微控制器(Micro-controllerUnit,以下简称MCU)扮演核“芯”角色。但随着物联网智能化的提升和迭代,为了满足性能、可扩展以及集成的要求,微控制器也在从单独的芯片向着更加高度集成的器件即“MCU+”的趋势发展。
[0003] 利用现场可编程门阵列(Field Programmable Gate Array,以下简称FPGA)可编程的特点,通过引入FPGA与微控制器实现的片上系统(System on Chip,SoC)架构,能根据不同应用场景自由扩展外部设备,具有良好的扩展性,满足不同应用领域的需求,可以用于各种计算设备、智能设备、移动设备或互联网设备等产品或者系统平台,现已成为一个技术热点。
[0004] 在基于MCU和FPGA的片上系统架构中,采用不同的接口及协议连接相应的接口设备,但是,不同接口设备之间由于应用的是不同通信协议,彼此之间无法在片内进行通信,需要另外设置专用控制芯片进行通信,导致用户设计复杂度提高,成本也较高。

具体实施方式

[0029] 传统基于MCU与FPGA的片上系统架构直接采用FPGA和CPU的分立器件进行工作,性能方面越来越难以满足日益庞大、多样化的数据处理需求,因而目前逐渐向以嵌入式微处理器为核心的嵌入式片上系统解决方案发展,但是,如背景技术所述,现有基于MCU和FPGA的片上系统架构中,不同接口设备之间由于应用的是不同通信协议,彼此之间无法在片内进行通信,导致用户设计复杂度提高,并且成本也较高。
[0030] 为了解决上述问题,本发明提供一种USB转换接口装置,所述USB转换接口装置包括通过系统总线交互的MCU模块和FPGA模块,其中,所述USB转换接口装置利用所述MCU模块和所述FPGA模块的软硬件资源进行协议转换,实现USB接口设备与指定接口设备之间的互联。所述USB转换接口装置可以解决了USB接口设备与采用其它通讯协议的接口设备之间无法直接通信的问题,扩宽了基于MCU和FPGA的片上系统的应用场景,有助于提高设计灵活性,降低用户设计的复杂度,降低成本。
[0031] 以下结合附图和具体实施例对本发明的USB转换接口装置作进一步详细说明。根据下面的说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
[0032] 图1和图2分别是本发明一实施例中的USB转换接口装置的结构示意图。参见图1和图2,所述USB转换接口装置包括通过系统总线30交互的MCU模块10和FPGA模块20。所述USB转换接口装置可通过USB协议与USB接口设备连接,另外,根据配置需要,所述USB转换接口装置还可通过其它指定协议与指定接口设备连接。所述指定协议例如为通过I2C协议交互的I2C接口设备,或者是通过I3C协议交互的I3C接口设备,还可以是通过SPI协议交互的SPI接口设备。USB(Universal Serial Bus,通用串行总线)接口具有数据流传输速率高、即插即用、支持热插拔等优点,被广泛的应用在个人电脑、数码相机、图像设备等各类设备。I2C(Inter-Integrated Circuit,也可缩写为I2C)总线是一种简单、双向二线制的同步串行总线,它能够支持多个设备,是微电子通信控制领域广泛采用的一种总线标准。I3C(ImprovedInterIntegrated Circuit,也可缩写为I3C)是MIPI(Mobile Industry Processor Interface,移动产业处理器接口)联盟提出的标准规范,具有允许指定接口设备启动带内中断,支持热接入、动态寻址、向后兼容I2C等特性,能够有效减少集成电路芯片系统的物理端口,支持低功耗、高数据速率和其它已有端口协议。SPI是串行外设接口(SerialPeripheral Interface)的缩写,它是一种高速、全双工、同步的四线通信总线。但本发明不限于上述列出的指定协议及接口设备,实施例所描述的USB转换接口装置的构思也可以用在USB接口设备与其它指定接口设备之间的互联。
[0033] 本发明实施例的USB转换接口装置可具有多个外设接口,用来连接USB接口设备及指定接口设备。可以利用FPGA具有可编程处理资源的特点,利用FPGA模块20的资源配置外设接口,并通过FPGA模块20的资源连接至FPGA模块20的管脚而与片外的指定接口设备连接。FPGA模块20的通用资源包括LCB(Logical ControlBlock,逻辑控制区块,如显示查找表、加法器、寄存器、多路选择器等)、时钟网络资源、时钟处理单元、块随机存储器(BlockRAM)、DSP(数字信号处理)核和接口资源等。
[0034] 参见图1和图2,本发明实施例中,所述USB转换接口装置可包括缓存存储器40,所述缓存存储器40用于存储来自所述USB接口设备和指定接口设备(如上述I2C接口设备、I3C接口设备、SPI接口设备等)的数据(可以是临时数据),在上述USB接口设备与指定接口设备进行数据流传输时,所述缓存存储器40可起到数据中转站的功能。例如,MCU模块10可以将来自USB接口设备的数据存储在缓存存储器40中,然后再转换为其它协议(如I2C、I3C、SPI等协议)的数据格式并发送给指定接口设备,对于指定接口设备发送给MCU模块10的数据,也可以先存储在缓存存储器40中,然后再向USB接口设备发送。所述缓存存储器40可以由所述FPGA模块20的块随机存储器资源实现,所述缓存存储器40挂载在所述系统总线30上,受所述MCU模块10的控制。
[0035] 此外,所述FPGA模块20上可设置有USB控制器21以及与所述USB控制器21连接的外设USB接口22,所述外设USB接口22通过USB协议与所述USB接口设备进行数据交互。在不同接口设备之间的互联通信中,所述USB接口设备和指定接口设备之间的一个可以作为上位机设备,另一个作为下位机设备。所述USB控制器21可采用内嵌的USB phy芯片实现,但不限于此,USB控制器21也可以通过FPGA模块20上的内核资源实现。
[0036] 所述USB控制器21进一步可包括USB数据识别单元(未示出),所述USB数据识别单元配置为在所述MCU模块10的控制下,对来自所述USB接口设备的数据进行USB协议解析,识别出外设USB接口22使用的USB协议信息(USB标准),并将所述USB协议信息通过所述系统总线30发送给所述MCU模块10。所述MCU模块10可以通过系统总线30控制所述USB控制器21,以通过将缓存存储器40的指定数据通过系统总线30发送给所述USB控制器21,并进而通过外设USB接口22发送至USB接口设备,所述USB控制器21也可以在MCU模块10的控制下,将来自USB接口设备的数据映射至系统总线30,进而存储至缓存存储器40。所述MCU模块10接收到所述USB控制器21发送的协议信息以及数据流读写信息后,通过所述系统总线发出命令控制所述USB控制器进行数据流传输。
[0037] 参见图1和图2,一实施例中,USB转换接口装置可包括程序单元50,用于存储所述MCU模块10的可执行指令。所述程序单元50可以是固设于所述MCU模块10中的闪存,程序单元50可以通过内部总线连接MCU模块10的内核,MCU模块10的内核读取程序单元50中的指令来执行操作。所述程序单元50也可以通过FPGA模块20的内核资源实现,此时可以挂载在所述系统总线30上以由所述MCU模块10控制,MCU模块10可以读取程序单元50中的指令。
[0038] 本发明实施例中,所述程序单元50中存储有协议转换指令,当MCU模块执行所述协议转换指令时,则从软件层面或者控制FPGA模块20的内核资源来实现协议转换。具体说明如下。
[0039] 参见图1,所述程序单元50可存储有第一协议转换指令,所述第一协议转换指令用于使所述MCU模块10执行相应的软件程序,将USB接口设备的数据转换为符合指定协议的数据格式。则,当所述MCU模块10执行所述程序单元50中的第一协议转换指令时,所述MCU模块10将存储在所述缓存存储器40中的来自所述USB接口设备的数据在软件层面处理为符合指定协议的数据格式,并通过所述FPGA模块20的资源发送给所述指定接口设备。此处所述的在软件层面处理,指的是MCU模块20通过执行相应的软件程序,直接对存储在所述缓存存储器40中的来自所述USB接口设备的数据进行处理,模拟出要实现的指定协议所要求的信号,并利用FPGA模块20的通用传输功能进行传输即可,FPGA模块20上不需要设置指定协议的控制器。
[0040] 作为示例,MCU模块10在获得来自USB接口设备的USB数据之后,先将其存储到缓存存储器40。然后,根据第一协议转换指令,USB转换接口装置要通过MCU模块10在软件层面实现USB转I2C的协议转换,或者USB转I3C的协议转换,并将数据按照I2C协议或者I3C协议发送给相应的指定接口设备。具体的,所述MCU模块在软件层面实现所述I2C协议或所述I3C协议时,可以利用延迟函数实现时钟线SCL,并通过读取所述缓存存储器40存储的来自所述USB接口设备的数据,转换为支持所述I2C协议或所述I3C协议的格式,以实现数据线SDA,并控制所述时钟线SCL和所述数据线SDA的信号同步向相应的所述指定接口设备发送。
[0041] 另一示例中,MCU模块10在获得来自USB接口设备的USB数据,将其存储到缓存存储器40后,根据第一协议转换指令,过MCU模块10在软件层面实现USB转SPI的协议转换,并将数据按照SPI协议发送给相应的指定接口设备。具体的,所述MCU模块在软件层面实现所述SPI协议时,可以利用延迟函数实现时钟线SCLK,并通过读取所述缓存存储器存储的来自所述USB接口设备的数据,转换为支持SPI协议的格式,以实现数据输入线MOSI,并控制所述时钟线SCLK和所述数据输入线MOSI的信号同步向相应的所述指定接口设备发送。
[0042] 本发明的USB转换接口装置也可以通过FPGA模块20实现协议转换。参见图2,所述FPGA模块20上可设置有协议转换单元60,所述协议转换单元60利用FPGA模块20上的可编程资源(如FPGA的四位查找表、D类型触发器等)实现,主要用于执行协议转换功能。所述程序单元50可以存储有第二协议转换指令,当所述MCU模块10执行所述程序单元50中的第二协议转换指令时,所述MCU模块利用所述协议转换单元60将存储在所述缓存存储器40中的来自所述USB接口设备的数据处理为符合指定协议的数据格式,并通过所述FPGA模块20的资源发送给所述指定接口设备。
[0043] 作为示例,为了使USB接口设备与采用I2C协议、I3C协议或SPI协议的指定接口设备之间进行互联,上述协议转换单元60进一步可包括I2C协议单元、I3C协议单元及SPI协议单元中的至少一个,所述I2C协议单元、I3C协议单元和SPI协议单元分别用于将存储在所述缓存存储器40中的来自所述USB接口设备的数据处理为符合I2C协议、I3C协议及SPI协议的数据格式,并在所述MCU模块10的控制下发送给相应的所述指定接口设备。
[0044] 图3是本发明一实施例的USB转换接口装置中I3C协议单元的架构示意图。图4是本发明一实施例的I3C协议单元中I3C控制器和外设I3C端口的连接示意图。图5是本发明一实施例的外设I3C端口的结构示意图。参见图3至图5,一实施例中,上述FPGA模块20上配置有I3C协议单元,所述I3C协议单元包括利用所述FPGA模块20的可编程资源实现的总线I3C接口25、I3C控制器24以及若干外设I3C端口23(图3中用外设I3C端口(1)、外设I3C端口(2)、外设I3C端口(3)表示)。上述系统总线30通过FPGA模块20的内部边界延伸到FPGA模块20内。所述MCU模块通过所述系统总线30以及所述MCU总线接口25将所述缓存存储器40中的来自所述USB接口设备的数据发送给所述I3C控制器24,或者获得所述I3C控制器24发送的数据,并存储至缓存存储器40。
[0045] 参见图3至图5,每个所述外设I3C端口23用于利用所述FPGA模块20的通用逻辑资源实现I3C总线协议,其中,所述外设I3C端口25依照I3C总线协议与外部的指定接口设备进行数据交互。
[0046] I3C控制器24连接若干个外设I3C端口23,所述I3C控制器24包括两个以上的寄存器组,对应于每个所述外设I3C端口23,I3C控制器24均设置有一个读指令寄存器组和一个写指令寄存器组,所述读指令寄存器组和所述写指令寄存器组具有公用的控制寄存器、状态寄存器、指令寄存器以及分频寄存器,并且,所述读指令寄存器组另外还包括读数据寄存器,所述写指令寄存器还包括写数据寄存器。所述I3C控制器24还可包括组合逻辑电路,所述组合逻辑电路连接所述控制寄存器、状态寄存器和指令寄存器,用于根据所述控制寄存器、状态寄存器和指令寄存器的信息生成中断信号,所述中断信号被发送给所述MCU模块10的中断向量表。
[0047] 进一步的,各个所述外设I3C端口23均可包括片内I3C交互接口、逻辑部分以及片外I3C交互接口,所述逻辑部分配置为利用所述FPGA模块20的逻辑资源实现I3C总线协议,所述片内I3C交互接口配置为一一对应地将相应的所述寄存器组的各个寄存器与所述逻辑部分的端口信号进行映射,所述片外I3C交互接口通过所述FPGA模块20上配置的引脚(如GPIO引脚)实现,用于连接相应的指定接口设备。所述逻辑部分可包括控制类引脚、状态类引脚、指令类引脚、读数据信号引脚、写数据信号引脚以及时钟分频引脚,以与相应的所述寄存器组的各个寄存器进行映射,所述逻辑部分还可包括时钟信号端口和复位信号端口,所述时钟信号端口用于接收所述MCU模块10的时钟信号,所述复位信号端口用于接收所述MCU模块10的复位信号。
[0048] 总线I3C接口25用来与上述系统总线30连接,从而对所述MCU模块10的外设地址空间进行解析,以在所述MCU模块10中映射外设I3C端口23。所述总线I3C接口25可包括寄存器解析单元、内核地址计算单元以及内核指令解析单元,所述寄存器解析单元配置为根据动态配置的所述外设I3C端口23的数量,依次解析所述I3C控制器24中映射有上述逻辑部分的端口信号的寄存器组的地址深度;所述内核地址计算单元配置为依次计算各个所述逻辑部分需要使用的MCU模块10的外设地址块的深度,其中,计算得到的每个外设设备地址块用于映射相应的逻辑部分;所述内核指令解析单元配置为对所述MCU模块10发出的指令进行解析,识别所述MCU模块要连接的外设I3C端口23对应的外设地址块,并判断是读指令还是写指令,若是读指令,则根据所识别的外设地址块选择所述I3C控制器24中相应的读指令寄存器组,若是写指令,则根据所识别的地址块选择所述I3C控制器24中相应的写指令寄存器组。
[0049] 对于读指令来说,在相应的读指令寄存器组被选择后,当前执行任务的特性等控制信息映射于读指令寄存器组中的控制寄存器,并进一步映射至相应外设I3C端口的逻辑部分;当前任务的指令信息映射于读指令寄存器组中的指令寄存器,并进一步映射至所述逻辑部分;由外设I3C端口发送的时钟分频信号映射于读指令寄存器组中的分频寄存器中,并进一步映射至系统总线30;由外设I3C端口发送的读数据信号映射于读指令寄存器组中的读数据寄存器中,并进一步映射至系统总线30;由外设I3C端口发送的体现当前指令执行结果的各种状态信息映射于读指令寄存器组中的状态寄存器中,并进一步映射至系统总线30。MCU模块20通过系统总线30获得来自所选择的外设I3C端口23的信息,将数据存储到缓存存储器40,从而完成读数据操作。
[0050] 对于写指令来说,在I3C控制器24相应的写指令寄存器组被选择后,当前执行任务的特性等控制信息映射于写指令寄存器组中的控制寄存器,并进一步映射至相应外设I3C端口23的逻辑部分;当前任务的指令信息映射于写指令寄存器组中的指令寄存器,并进一步映射至所述逻辑部分;由外设I3C端口23发送的时钟分频信号映射于写指令寄存器组中的分频寄存器中,并进一步映射至系统总线30;由系统总线30传输的待写数据映射于写指令寄存器组中的写数据寄存器中,并进一步映射至外设I3C端口23;由系统总线30传输的体现当前指令执行结果的各种状态信息映射于写指令寄存器组中的状态寄存器中,并进一步映射至外设I3C端口23。外设I3C端口23对获得数据进行处理,形成符合I3C总线协议的格式,并通过片外I3C交互接口发送给片外的指定接口设备。从而,MCU模块10完成了写数据操作。
[0051] 图6是本发明实施例的USB转换接口装置的数据流交互示意图。参见图6,其中虚线框内的部分可看作本发明实施例的USB转换接口装置的主要功能架构,其分别连接USB接口设备和指定接口设备,并可以实现在USB接口设备和指定接口设备之间的数据流传输。其中,USB接口可包括如图1和图2所示的USB控制器21以及外设USB接口22,图6中指定协议接口根据协议转换方式不同而具有不同的配置,当主要通过MCU模块10在软件层面进行协议转换时,所述指定协议接口不需要配置指定协议控制器,利用FPGA模块20的通用资源设置外设接口连接相应指定接口设备即可,当主要通过FPGA模块20的可编程资源实现协议转换时,所述指定协议接口还包括协议转换单元60,协议转换单元60在MCU模块10的控制下进行协议转换并通过相应的外设接口与相应的指定接口设备进行数据交互。
[0052] 以USB接口设备为上位机设备(即主设备)为例,利用本发明实施例的USB转换接口装置执行主从通信操作时,根据USB接口设备发送的请求,MCU模块10控制FPGA模块20执行相应的写操作或读操作,对于写操作来说,通过USB控制器21获得的有效数据(即要传输给支持不同协议的指定接口设备的数据)被存储在缓存存储器40,并通过执行程序单元50中存储的第一协议转换指令或第二协议转换指令,进行协议格式的转换,以将USB数据转为指定协议数据,通过相应的指定协议外设接口发送给指定接口设备。当执行读操作时,所述MCU模块10利用指定协议从相应的指定接口设备获取数据,将数据存储在缓存存储器40,然后通过系统总线30控制USB控制器21获得数据并通过外设USB接口22发送给USB接口设备。USB控制器21获取存储在所述缓存存储器40中的来自所述USB接口设备的数据可以不需要再进行协议转换,即在MCU模块10的控制下可以直接将缓存存储器40的数据映射到外设USB接口22。
[0053] 参见图1和图2,本发明实施例的USB转换接口装置还可设置有由所述FPGA模块20配置且由所述MCU模块10和FPGA模块20共用的时钟和复位系统70,在工作时,时钟信号由片外振荡器或FPGA内部振荡器提供,并提供给所述MCU模块10。所述时钟和复位系统70可以为所述MCU模块10提供上电复位信号和系统复位信号。
[0054] 本发明实施例的USB转换接口装置,利用所述MCU模块和所述FPGA模块的软硬件资源进行协议转换来实现USB接口设备与指定接口设备之间的互联,可以解决USB接口设备与采用其它通讯协议的接口设备之间无法直接通信的问题。所述USB转换接口装置扩宽了基于MCU和FPGA的片上系统的应用场景,有助于提高设计灵活性,降低用户设计的复杂度,降低成本。
[0055] 上述描述仅是对本发明较佳实施例的描述,并非对本发明权利范围的任何限定,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。

当前第1页 第1页 第2页 第3页