用于多硬件平台飞腾服务器的I2C总线的实现方法技术

技术编号:7718644 阅读:330 留言:0更新日期:2012-08-30 02:46
本发明专利技术公开了一种用于多硬件平台飞腾服务器的I2C总线的实现方法,实施步骤如下:1)在PCIe交换单元指定闲置的两个GPIO端口分别外接上拉电阻并作为I2C总线接口;2)初始化硬件时将PCIe交换单元的PCI内存空间映射为CPU虚拟地址空间;3)根据PCIe交换单元的类型信息获取前述两个GPIO端口在CPU虚拟地址空间中的映射端口地址;4)建立前述两个GPIO端口的GPIO驱动程序;5)使用I2C设备时I2C总线控制器驱动程序产生的I2C总线时序的指令通过GPIO驱动程序与I2C设备进行通信。本发明专利技术具有能够利用闲置GPIO端口、实施成本低、实现简单、使用方便、兼容性好的优点。

【技术实现步骤摘要】

本专利技术涉及飞腾服务器的计算机硬件应用平台,特指一种用于多硬件平台飞腾服务器的I2C总线的实现方法
技术介绍
飞腾服务器(FT服务器)是国防科大研制、基于FT1000处理器的服务器计算机平台,其中FT1000处理器是国防科大研制、兼容spare指令集的通用64位处理器。飞腾服务器目前已经有多种不同的硬件平台,这些不同的硬件平台虽然在硬件设计上有多种不同,但是它们都有一个共同的特点,即都会有一个PCIe交换单元来为系统提供PCIe设备的接入点,目前所有的FT服务器平台都使用下面三种PCIe交换单元中的一种,分别是PEX8664、PEX8648以及PEX8632。因此根据所使用PCIe交换单元的不同,可以把FT服务器平台分成3种使用PEX8664作为PCIe交换单元的硬件平台、使用PEX8648作为PCIe交换单元的硬件平台以及使用PEX8632作为PCIe交换单元的硬件平台。现有基于FT1000处理器的飞腾服务器中,通过处理器上集成的PCI-Express Unit (PEU: PCIe单元,它实现了 PCIe总线中的root complex)从而扩展出了 PCIe总线,PCI-Express Unit与PCIe交换单元(PCIeswitch)相连,PCIe switch后面则连有PCIe插槽或者具体的PCIe设备。对于飞腾服务器用GPIO模拟I2C总线的实现而言,目前PCIe交换单元都有片上集成的GP10,且大多未被使用,所以可以选取其中的两个分别作为12C总线的SDA线和SCL线。但是,不同的硬件平台采用的PCIe交换单元不同,因此控制GPIO的端口也不相同。如有些平台的PCIe交换单元采用PEX8664实现,有些平台的PCIe交换单元采用PEX8648实现,有些平台的PCIe交换单元采用PEX8632实现。目前飞腾服务器的基本输入输出系统和加载引导程序在系统启动检测和初始化硬件时把不同平台的PCIe交换单元的PCI内存空间映射到了同一片CPU物理地址空间。但是由于不同的硬件平台之间的采用的PCIe交换单元并不相同,最终导致其I2C总线的实现在软件上也各不相同,具体而言是所述的GPIO驱动程序并不相同,不同的硬件平台之间的I2C总线无法实现通用。飞腾服务器的不同硬件平台的硬件设计上的差异导致了不同平台上I2C总线软件实现上的差异,但是如果不同的飞腾服务器平台使用不同的针对各自硬件平台的实现I2C总线的软件,特别是本专利技术所要实现的I2C总线功能是要集成到操作系统中的,这将导致在不同的飞腾服务器平台上部署不同的操作系统,这将给飞腾服务器的用户带来不必要的麻烦和使用上的不便,大大降低飞腾服务器的用户体验,不利于飞腾服务器的推广。
技术实现思路
本专利技术要解决的技术问题是提供一种能够利用闲置GPIO端口、实施成本低、实现简单、使用方便、兼容性好的用于多硬件平台飞腾服务器的I2C总线的实现方法。为了解决上述技术问题,本专利技术采用的技术方案为一种用于多 硬件平台飞腾服务器的I2C总线的实现方法,其实施步骤如下 1)在飞腾服务器上PCIe交换单元的片上GPIO端口中指定闲置的两个GPIO端口分别外接上拉电阻并作为I2C总线接口的数据线接口和时钟线接口 ; 2)在初始化硬件时将PCIe交换单元的PCI内存空间映射为CPU虚拟地址空间; 3)获取PCIe交换单元的类型信息,根据所述PCIe交换单元的类型信息获取所述两个GPIO端口在CPU虚拟地址空间中的映射端口地址; 4)在操作系统中建立并注册用于操作所述两个GPIO端口对应映射端口地址的GPIO驱动程序模块; 5)在使用I2C设备前将设备连接到所述两个GPIO端口;在使用I2C设备时,操作系统中的I2C总线控制器驱动程序产生I2C总线时序的指令,且所述I2C总线时序的指令通过所述GPIO驱动程序模块与连接于所述两个GPIO端口上的I2C设备进行通信。作为本专利技术上述技术方案的进一步改进 所述步骤2)的详细步骤包括在飞腾服务器启动时首先PCIe交换单元的PCI内存空间映射为CPU物理地址空间,然后将所述CPU物理地址空间映射为CPU虚拟地址空间。所述GPIO驱动程序模块包括如下子模块 A)电平输入子模块,用于为读取指定GPIO端口的电平状态,如果所述电平状态为高电平则返回1,如果所述电平状态为低电平则返回0 ;所述电平输入子模块的实现方法为读取指定GPIO端口在CPU虚拟地址空间中映射端口地址中数据输入寄存器的值,并根据所述数据输入寄存器的值返回数值I或0 ; B)电平输出子模块,用于为配置指定GPIO端口的电平状态,如果配置值为I则输出高电平,如果配置值为0则输出低电平;所述电平输出子模块的实现方法为读取指定GPIO端口在CPU虚拟地址空间中映射端口地址中数据输出寄存器的值,并根据所述配置值配置指定GPIO端口的电平状态; C)配置输入方向子模块,用于配置指定GPIO端口的传输方向为输入;所述配置输入方向子模块的实现方法为读取指定GPIO端口在CPU虚拟地址空间中映射端口地址中方向寄存器的值,并根据所述配置值配置指定GPIO端口的方向为输入; D)配置输出方向子模块,用于配置指定GPIO端口的传输方向为输出并在配置方向后在指定GPIO端口上根据配置参数输出高电平或者低电平;配置输出方向子模块的实现方法为读取指定GPIO端口在CPU虚拟地址空间中映射端口地址中方向寄存器的值,并根据配置值配置指定GPIO端口的方向为输出,然后根据配置参数调用所述电平输出子模块输出闻电平或者低电平。本专利技术具有下述优点 I、本专利技术利用PCIe交换单元上闲置的GPIO资源来模拟I2C总线的数据线(SDA)和时钟线(SCL),从而能够为多硬件平台飞腾服务器扩展出一条或多条I2C总线,使飞腾服务器在不增加额外设备的前提具有外接I2C设备的能力,大大丰富了飞腾服务器所能实现的功能,扩展了飞腾服务器的应用范围,具有实施成本低、使用方便、实现简单的优点。2、本专利技术在初始化硬件时将PCIe交换单元的PCI内存空间映射为CPU虚拟地址空间,然后通过获取PCIe交换单元的类型信息、根据PCIe交换单元的类型信息获取GPIO端口在CPU虚拟地址空间中的映射端口地址,因此能够针对不同的PCIe交换单元的类型建立对应的GPIO驱动程序模块,根据不同的PCIe交换单元类型使用不同的虚拟地址访问PCIe交换单元的GPIO端口的寄存器,同时把GPIO驱动程序模块注册进操作系统,实现了对多种硬件平台飞腾服务器的I2C总线的一种支持,可以使在不同硬件平台上的飞腾服务器上部署同一套系统,具有兼容性好、使用方便、操作简单的优点,提高了飞腾服务器的用户体验,有利于飞腾服务器的推广。附图说明图I为本专利技术实施例一的基本实施流程示意图。图2为本专利技术实施例一的硬件框架结构示意图。图3为本专利技术实施例二的硬件框架结构示意图。图4为本专利技术实施例三的硬件框架结构示意图。 具体实施例方式实施例一 如图I所示,本实施例用于多硬件平台飞腾服务器的I2C总线的实现方法的实施步骤如下 1)在飞腾服务器上PCIe交换单元的片上GPIO端口中指定闲置的两个GPIO端口分别外接上拉电阻并作为I2C总线接口的数据线接口和时钟线接本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于多硬件平台飞腾服务器的I2C总线的实现方法,其特征在于其实施步骤如下 1)在飞腾服务器上PCIe交换单元的片上GPIO端ロ中指定闲置的两个GPIO端ロ分别外接上拉电阻并作为I2C总线接ロ的数据线接口和时钟线接ロ ; 2)在初始化硬件时将PCIe交换单元的PCI内存空间映射为CPU虚拟地址空间; 3)获取PCIe交换单元的类型信息,根据所述PCIe交换单元的类型信息获取所述两个GPIO端ロ在CPU虚拟地址空间中的映射端ロ地址; 4)在操作系统中建立并注册用于操作所述两个GPIO端ロ对应映射端ロ地址的GPIO驱动程序模块; 5)在使用I2C设备前将设备连接到所述两个GPIO端ロ;在使用I2C设备时,操作系统中的I2C总线控制器驱动程序产生I2C总线时序的指令,且所述I2C总线时序的指令通过所述GPIO驱动程序模块与连接于所述两个GPIO端口上的I2C设备进行通信。2.根据权利要求I所述的用于多硬件平台飞腾服务器的I2C总线的实现方法,其特征在于,所述步骤2)的详细步骤包括在飞腾服务器启动时首先PCIe交换单元的PCI内存空间映射为CPU物理地址空间,然后将所述CPU物理地址空间映射为CPU虚拟地址空间。3.根据权利要求I或2所述的用于多硬件平台飞腾服务器的I2C总线的实现方法,其特征在于,所述GPIO驱动程序...

【专利技术属性】
技术研发人员:戴华东孙立明邵立松董攀张卫华李振钊魏彦斌李真能
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1