CN115576439A - 一种cpu控制器的扩展方法及装置 - Google Patents

一种cpu控制器的扩展方法及装置 Download PDF

Info

Publication number
CN115576439A
CN115576439A CN202211230720.8A CN202211230720A CN115576439A CN 115576439 A CN115576439 A CN 115576439A CN 202211230720 A CN202211230720 A CN 202211230720A CN 115576439 A CN115576439 A CN 115576439A
Authority
CN
China
Prior art keywords
cpu
mcu
controller
expansion
controllers
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.)
Pending
Application number
CN202211230720.8A
Other languages
English (en)
Inventor
麻长葆
黄章良
陈小军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Lubangtong IoT Co Ltd
Original Assignee
Guangzhou Lubangtong IoT Co Ltd
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 Guangzhou Lubangtong IoT Co Ltd filed Critical Guangzhou Lubangtong IoT Co Ltd
Priority to CN202211230720.8A priority Critical patent/CN115576439A/zh
Publication of CN115576439A publication Critical patent/CN115576439A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

本发明公开了一种CPU控制器的扩展方法,在CPU侧将MCU上每个需要扩展的控制器虚拟成与其功能相对应的虚拟控制器,然后CPU就可通过虚拟控制器来驱动连接到MCU的扩展控制器的外设,扩展非常快捷灵活;同时,还提供了一种CPU控制器的扩展装置;其技术方案:一种CPU控制器的扩展方法,包括以下步骤:将MCU连接到CPU上,所述MCU上设有多个需要的扩展控制器;在CPU侧虚拟出与MCU上的扩展控制器一一对应的虚拟控制器,所述CPU通过虚拟控制器驱动连接到MCU上的扩展控制器的外设,属于计算机技术领域。

Description

一种CPU控制器的扩展方法及装置
技术领域
本发明属于计算机技术领域,更具体而言,涉及一种CPU控制器的扩展方法及装置。
背景技术
现有的嵌入式计算机系统通常需要通过CPU的内置控制器及其接口与外部通信,常用的控制器有SPI、I2C、UART、GPIO、ADC、CAN等。但并不是所有的CPU都会支持如此丰富的控制器,即便有支持,部分控制器的数量未必能满足实际需求。特别是物联网网关设备领域的专用CPU,其内置的控制器种类和数量较为有限,为了丰富控制器接口获取更多的原始数据,所以需要对CPU的控制器进行扩展,通常有两者方法:
第一种方法是直接使用专用IC来扩展控制器,如常见的用I2C转GPIO的IC来扩展IO控制器,用USB转UART的IC来扩展UART控制器,用USB转SPI的IC来扩展SPI控制器。专用IC厂商通常提供扩展控制器驱动,使用起来非常方便。但如果是要扩展多个类型的控制器就需要多个专用IC,甚至可能还需要增加USB HUB IC,硬件成本会大增。
第二种方法是通过增加外置协处理器MCU来扩展CPU的控制器,这种方式下,CPU要访问连接到MCU上的扩展控制器的外设时,需要在应用层先将访问请求封装再通过双机通信发给MCU,MCU解封装后再由访问代理程序来实现对扩展控制器实际的访问,访问代理程序还需要集成外设驱动程序;MCU访问代理程序接收到数据后先封装再通过双机通信发给CPU,CPU解封后才能得到实际的数据。该方法涉及CPU和MCU两侧多个软件模块,交互较为繁琐;还需要为不同的外设类型,不同的数据交互类型定义数据结构封装,可扩展性非常差;上层应用程序需要针对同一功能的扩展控制器和CPU的内置控制器区分处理,同时MCU侧还需要提供额外的外设驱动程序,严重影响代码复用。
发明内容
本发明的主要目的在于提供一种CPU控制器的扩展方法,通过在CPU侧将MCU上每个需要扩展的扩展控制器虚拟成与其功能相对应的虚拟控制器,在CPU侧通过虚拟控制器来驱动连接到MCU的扩展控制器的外设,扩展非常快捷灵活;同时,还提供了一种CPU控制器的扩展装置。
根据本发明的第一方面,提供了一种CPU控制器的扩展方法,包括以下步骤:
将MCU连接到CPU上,所述MCU上设有多个需要的扩展控制器;
在CPU侧虚拟出与MCU上的扩展控制器一一对应的虚拟控制器,所述CPU通过虚拟控制器驱动连接到MCU上的扩展控制器的外设。
上述的CPU控制器的扩展方法中,所述CPU是通过驱动程序将MCU上各个扩展控制器虚拟成与其功能对应的虚拟控制器。
上述的CPU控制器的扩展方法中,所述MCU是通过USB接口与CPU连接。
上述的CPU控制器的扩展方法中,所述CPU使用Linux系统。
根据本发明的第二方面,提供了一种用于实现上述第一方面所述方法的CPU控制器的扩展装置,包括CPU和MCU,所述MCU上设有多个需要的扩展控制器;
所述CPU和MCU通过通信单元实现通信连接;
所述CPU上设有虚拟单元,所述虚拟单元在CPU侧虚拟出与MCU上的扩展控制器一一对应的虚拟控制器,所述CPU通过虚拟控制器驱动连接到MCU上的扩展控制器的外设。
上述的CPU控制器的扩展装置中,所述虚拟单元包括设置在CPU上的驱动程序。
上述的CPU控制器的扩展装置中,所述通信单元包括设置在CPU上的USB Host接口、设置在MCU上的USB Device接口,所述USB Host接口和USB Device接口之间通过USB总线连接。
本发明上述技术方案中的一个技术方案至少具有如下优点或有益效果之一:
本发明中,在CPU侧将MCU上每个需要扩展的扩展控制器虚拟成与其功能相对应的虚拟控制器,在CPU通过虚拟控制器来驱动连接到MCU上扩展控制器的外设;虚拟控制器的操作方法完全兼容CPU相同功能的内置控制器,MCU上的扩展控制器和内置控制器从CPU的上层看来是完全一致的,在MCU侧只需要实现需要扩展的控制器层面的操作接口,无需实现外设驱动,后续的外设扩展并不涉及MCU上的软件变更,扩展非常快捷灵活。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1是本发明一实施例示出的CPU控制器的扩展方法的流程图;
图2是本发明一实施例示出的CPU控制器的扩展装置的示意图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
通过增加外置协处理器MCU来扩展CPU的控制器,这种方式下,CPU要访问连接到MCU上的扩展控制器的外设时,需要在应用层先将访问请求封装再通过双机通信发给MCU,MCU解封装后再由访问代理程序来实现对扩展控制器实际的访问,访问代理程序还需要集成外设驱动程序;MCU访问代理程序接收到数据后先封装再通过双机通信发给CPU,CPU解封后才能得到实际的数据。
该方法涉及CPU和MCU两侧多个软件模块,交互较为繁琐;还需要为不同的外设类型,不同的数据交互类型定义数据结构封装,可扩展性非常差;上层应用程序需要针对同一功能的扩展控制器和CPU的内置控制器区分处理,同时MCU侧还需要提供额外的外设驱动程序,严重影响代码复用。
参照图1所示,本发明一个实施例中,提供了一种CPU控制器的扩展方法,其在CPU侧将MCU上每个需要扩展的扩展控制器虚拟成与其功能相对应的虚拟控制器,在CPU侧就可通过虚拟控制器来驱动连接到MCU的扩展控制器的外设,而在MCU侧只需要实现控制器相关操作接口,不涉及MCU与其外设的具体交互过程,扩展非常快捷灵活。
该CPU控制器的扩展方法,包括以下步骤:
将MCU连接到CPU上,所述MCU上设有多个需要的扩展控制器;
在CPU侧虚拟出与MCU上的扩展控制器一一对应的虚拟控制器,所述CPU通过虚拟控制器驱动MCU上的扩展控制器的外设。
外设属于计算机术语,本实施例中,外设指通过MCU上的扩展控制器来连接的外设设备,通常不同的扩展控制器连接不同的外设。
本实施例中,CPU是通过驱动程序将MCU上各个需要扩展的控制器虚拟成与其功能对应的虚拟控制器;并使虚拟控制器的操作方法完全兼容CPU相同功能的内置控制器,这样MCU的扩展控制器的外设就可以在CPU侧复用系统自带的设备驱动来驱动;MCU上的扩展控制器和内置控制器从CPU的应用层看来是一致的,后续的外设扩展并不涉及MCU上的软件变更,扩展非常快捷灵活。
本申请的扩展方法是基于Linux系统运行,CPU是通过Linux上的驱动程序将MCU上各个扩展控制器虚拟成与其功能对应的虚拟控制器;当然,本申请的扩展方法也可以基于windows系统运行,只需要根据不同的OS环境编写相应的驱动程序即可。
本实施例中,MCU是通过USB接口与CPU连接;将MCU侧的多个扩展控制器功能抽象为一个多功能的USB Device,不做任何外设的访问逻辑,该MCU仅通过单一USB接口连接到CPU的USB Host;
USB连接较为简单,且USB接口是一个很通用的接口,使用USB接口来扩展MCU使得本申请的扩展方法不仅可用于扩展嵌入式CPU,也适用于扩展更为复杂的x86 CPU。
以CPU通过MCU扩展I2C控制器和SPI控制器为例,从CPU来看MCU上的I2C控制器和SPI控制器便是扩展出来的扩展控制器。I2C控制器可以单独连接EEPROM,也可以单独连接温度传感器LM75,也可以同时连接两个,EEPROM和温度传感器LM75便是I2C控制器的外设;SPI控制器的外设可以是SPI Flash或者SPI Sensor。
MCU上的USB接口以Device形式连接到CPU的USB Host上,其中USB Device的Interface0用于扩展I2C控制器,Interface1用于扩展SPI控制器;
CPU上的USB Host枚举到MCU的USB Device后就将该USB Device的Interface0与虚拟I2C控制器驱动绑定并生成虚拟的i2c_adapter;Interface1与虚拟SPI控制器驱动绑定并生成虚拟的spi_master。虚拟控制器通过usb endpoint与MCU的扩展控制器交互。
这样上层对虚拟I2C/SPI控制器的访问便转换成对MCU上I2C/SPI控制器的USB访问,最后通过MCU上I2C/SPI控制器完成对外设的访问;
这里面实现的虚拟I2C/SPI控制器,有效地屏蔽了底层控制器扩展的细节实现,让访问温度传感器LM75、EEPROM或者SPI Flash的应用层看起来就像是通过CPU内置控制器访问一样方便;
同时,CPU侧有效地重用了控制器层之上的代码和框架,MCU侧需要关注控制器的操作接口实现,无需实现外设驱动,简化了MCU侧软件;
后续MCU侧的I2C控制器挂接更多外设,有了CPU侧的I2C设备驱动层软件复用,MCU侧的软件无需做任何更改,就可以非常快捷灵活地访问。
基于与上述实施例同一发明构思,本申请实施例的第二方面,参照图2所示,提供了一种CPU控制器的扩展装置,其包括CPU和MCU,MCU上设有多个需要的扩展控制器;
CPU和MCU通过通信单元实现通信连接;
CPU上设有虚拟单元,虚拟单元在CPU侧虚拟出与MCU上的扩展控制器一一对应的虚拟控制器,CPU通过虚拟控制器驱动连接到MCU上的扩展控制器的外设;
使得虚拟控制器的操作方法完全兼容CPU相同功能的内置控制器,内置控制器和MCU上的扩展控制器从CPU的应用层看来是一致的,在MCU侧只需要实现控制器相关操作接口,无需涉及MCU与其外设的具体交互过程,后续的外设扩展并不会再涉及MCU上的软件变更,扩展非常快捷灵活。
虚拟单元包括设置在CPU上的驱动程序,CPU是通过驱动程序将MCU上各个扩展控制器虚拟成与其功能对应的虚拟控制器。
通信单元包括设置在CPU上的USB Host接口、设置在MCU上的USB Device接口,USBHost接口和USB Device接口之间通过USB总线连接;将MCU侧的多个扩展控制器功能抽象为一个多功能的USB Device,不做任何外设的访问逻辑,只通过USB接口通信连接。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (7)

1.一种CPU控制器的扩展方法,其特征在于,包括以下步骤:
将MCU连接到CPU上,所述MCU上设有多个需要的扩展控制器;
在CPU侧虚拟出与MCU上的扩展控制器一一对应的虚拟控制器,所述CPU通过虚拟控制器驱动连接到MCU上的扩展控制器的外设。
2.根据权利要求1所述的CPU控制器的扩展方法,其特征在于,所述CPU是通过驱动程序将MCU上各个需要扩展控制器虚拟成与其功能对应的虚拟控制器。
3.根据权利要求1所述的CPU控制器的扩展方法,其特征在于,所述MCU是通过USB接口与CPU连接。
4.根据权利要求1所述的CPU控制器的扩展方法,其特征在于,所述CPU使用Linux系统。
5.一种用于实现权利要求1-4任一所述方法的CPU控制器的扩展装置,其特征在于,包括CPU和MCU,所述MCU上设有多个需要的扩展控制器;
所述CPU和MCU通过通信单元实现通信连接;
所述CPU上设有虚拟单元,所述虚拟单元在CPU侧虚拟出与MCU上的扩展控制器一一对应的虚拟控制器,所述CPU通过虚拟控制器驱动连接到MCU上的扩展控制器的外设。
6.根据权利要求5所述的CPU控制器的扩展装置,其特征在于,所述虚拟单元包括设置在CPU上的驱动程序。
7.根据权利要求5所述的CPU控制器的扩展装置,其特征在于,所述通信单元包括设置在CPU上的USB Host接口、设置在MCU上的USB Device接口,所述USB Host接口和USBDevice接口之间通过USB总线连接。
CN202211230720.8A 2022-10-09 2022-10-09 一种cpu控制器的扩展方法及装置 Pending CN115576439A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211230720.8A CN115576439A (zh) 2022-10-09 2022-10-09 一种cpu控制器的扩展方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211230720.8A CN115576439A (zh) 2022-10-09 2022-10-09 一种cpu控制器的扩展方法及装置

Publications (1)

Publication Number Publication Date
CN115576439A true CN115576439A (zh) 2023-01-06

Family

ID=84584855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211230720.8A Pending CN115576439A (zh) 2022-10-09 2022-10-09 一种cpu控制器的扩展方法及装置

Country Status (1)

Country Link
CN (1) CN115576439A (zh)

Similar Documents

Publication Publication Date Title
JP5608243B2 (ja) 仮想化環境においてi/o処理を行う方法および装置
US8856781B2 (en) Method and apparatus for supporting assignment of devices of virtual machines
US8387043B2 (en) USB port shared control method in a plurality of virtual machines
US8830228B2 (en) Techniques for enabling remote management of servers configured with graphics processors
US9454380B2 (en) Computing platform performance management with RAS services
US9880867B2 (en) Method and subsystem for data exchange between a guest operating system and a virtualization layer
US8595723B2 (en) Method and apparatus for configuring a hypervisor during a downtime state
US20090265708A1 (en) Information Processing Apparatus and Method of Controlling Information Processing Apparatus
US9940291B2 (en) Assigning processors to memory mapped configuration
US11494221B2 (en) Hardware control core controlling operation of hardware devices by executing device drivers within the hardware control core used by virtual machine cores via shared memory having an uplink and downlink memory
US20160239321A1 (en) Supporting multiple operating system environments in computing device without contents conversion
CN111857840B (zh) 基本输入输出系统bios启动方法及装置
US10140214B2 (en) Hypervisor translation bypass by host IOMMU with virtual machine migration support
WO2021218935A1 (zh) 计算机设备上的虚拟机的管理方法、装置、介质和系统
WO2012100498A1 (zh) 一种usb设备的端口切换方法和系统
JP4692912B2 (ja) リソース割り当てシステム、及びリソース割り当て方法
CN103729219A (zh) 一种uefi bios架构方法及系统
CN116719613B (zh) 基于虚拟监控器实现Linux下PCIe物理设备隔离的方法
CN110795373B (zh) 一种i2c总线到并行总线的转换方法、终端及存储介质
CN115576439A (zh) 一种cpu控制器的扩展方法及装置
CN116521240A (zh) 一种设备驱动管理方法
CN100361104C (zh) 中断共享机制下的自定中断信号响应处理方法及系统
CN115686889A (zh) Jailhouse基于ACPI使用Ivshmem的方法
CN104021006A (zh) 可延伸韧体接口外接显示卡、主机系统、及相关开机方法
CN110750476A (zh) 一种spi总线与并行总线的桥接方法、设备、系统及介质

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