【技术实现步骤摘要】
基于BMC芯片实现控制器接口拓展的方法及系统
[0001]本专利技术涉及BMC
,具体涉及一种基于BMC芯片实现控制器接口拓展的方法及系统。
技术介绍
[0002]服务器的BMC(Baseboard Management Controller,基板管理控制器系统),是部署于服务器的具有独立供电、独立IO接口的控制单元,用于实现对服务器的运行状态进行监控,可执行获取服务器详细运行信息、软硬件资源控制、网络配置、软件部署、用户管理、安全管理等功能和控制操作。
[0003]BMC需要丰富的外围接口满足对服务器主板的监测功能的需求,而目前通用BMC芯片难以满足不同服务器所需接口数量以及种类的要求;故现有的接口拓展方案中,各设备接口需要在Linux应用层构建接口对应的协议以区分拓展的总线与外部设备的类型,即对每一个外拓总线上的设备无法单独提供一个标准的Linux外设驱动节点,也就无法兼容第三方应用程序对外拓接口的使用。
技术实现思路
[0004]本专利技术的主要目的是提供一种基于BMC芯片实现控制器接口拓展的方法及系统,旨在现有的接口拓展方案中,对每一个外拓总线上的设备无法单独提供一个标准的Linux外设驱动节点,也就无法兼容第三方应用程序对外拓接口的使用的问题。
[0005]本专利技术提出的技术方案为:一种基于BMC芯片实现控制器接口拓展的方法,所述方法应用于接口扩展系统;所述系统包括服务器、BMC模块和FPGA模块;BMC模块部署于服务器;FPGA模块与BMC模块通过SPI总线通信连接 ...
【技术保护点】
【技术特征摘要】
1.一种基于BMC芯片实现控制器接口拓展的方法,其特征在于,所述方法应用于接口扩展系统;所述系统包括服务器、BMC模块和FPGA模块;BMC模块部署于服务器;FPGA模块与BMC模块通过SPI总线通信连接;BMC模块包括Linux应用层、Linux内核层和SPI主控制器接口;Linux内核层设置有Linux内核和SPI主控制器驱动;FPGA模块设置有SPI从控制器接口、SPI从控制器驱动、逻辑外拓接口驱动和多个逻辑外拓接口;逻辑外拓接口用于通信连接外部设备;所述方法,包括:当需要发送数据给指定外部设备,且接口扩展系统满足第一条件时,BMC模块获取需要发送的数据,并标记为第一数据,其中,第一条件为:SPI主控制器驱动之上构建并注册有虚拟总线控制器驱动,以使虚拟总线控制器驱动与逻辑外拓接口一一对应,且虚拟总线控制器驱动之上还构建并注册有虚拟设备驱动层;虚拟总线控制器驱动获取与指定外部设备对应的通信协议,并标记为目标协议,并采用目标协议对第一数据进行解析并附加私有化协议段,然后提交给SPI主控制器驱动;SPI主控制器驱动将第一数据从SPI主控制器接口通过SPI总线发送至SPI从控制器接口;FPGA模块通过SPI从控制器接口获取第一数据,并对第一数据进行协议解析后发送至SPI从控制器驱动;SPI从控制器驱动通过逻辑外拓接口驱动将第一数据经过对应的逻辑外拓接口发送至指定外部设备。2.根据权利要求1所述的一种基于BMC芯片实现控制器接口拓展的方法,其特征在于,所述SPI从控制器驱动通过逻辑外拓接口驱动将第一数据经过对应的逻辑外拓接口发送至指定外部设备,之后还包括:当指定外部设备响应第一数据的请求时,FPGA模块基于逻辑外拓接口驱动从对应的逻辑外拓接口中获取响应数据,并标记为第二数据,然后对第二数据进行协议打包;SPI从控制器驱动将第二数据从SPI从控制器接口通过SPI总线发送至SPI主控制器接口;SPI主控制器驱动从SPI主控制器接口接收第二数据,并将第二数据提交给虚拟总线控制器驱动进行私有数据协议解析并封装成对应的虚拟设备驱动层所需数据格式,然后返回给对应的虚拟设备驱动层。3.根据权利要求2所述的一种基于BMC芯片实现控制器接口拓展的方法,其特征在于,所述FPGA模块还设置有逻辑控制核心层;所述方法,还包括:FPGA模块将每一个逻辑外拓接口抽象为初始化、发送和接收数据的结构,以注册控制器核心层;当FPGA模块上电后,逻辑控制核心层对FPGA模块进行初始化;SPI主控制器驱动将第一数据从SPI主控制器接口通过SPI总线发送至SPI从控制器接口,之后还包括:逻辑控制核心层调用SPI从控制器驱动获取第一数据,然后基于目标协议,对第一数据进行解析,并根据目标协议创建数据处理线程;数据处理线程将第一数据分发到指定外部设备对应的逻辑外拓接口驱动;逻辑外拓接口驱动对第一数据进行私有化处理,并通过逻辑外拓接口发送至指定外部
设备。4.根据权利要求3所述的一种基于BMC芯片实现控制器接口拓展的方法,其特征在于,所述逻辑外拓接口驱动对第一数据进行私有化处理,并通过逻辑外拓接口发送至指定外部设备,之后还包括:当指定外部设备响应第一数据的请求时,FPGA模块基于逻辑外拓接口驱动从对应的逻辑外拓接口中获取响应数据,并标记为第三数据,然后对第三数据进行协议打包;逻辑控制核心层将打包后的第三数据提交给响应队列,并监听不同响应队列的第三数据以将第三数据通过SPI总线异步发送至BMC模块。5.根据权利要求1所述的一种基于BMC芯片实现控制器接口拓展的方法,其特征在于,还包括:当需要发送数据给指定外部设备,且接口扩展系统不满足第一条件时,BMC模块获取需要发送的数据,并标记为第四数据;Linux应用层将第四数据经过协议打包后发送至到Linux内核层的SPI主控制器驱动;SPI主控制器驱动将第四数据从SPI主控制器接口通过SPI总线发送至SPI从控制器接口;FPGA模块通过SPI从控制器接口获取第四数据,并对第四数据进行协议解析后发送至SPI从控制器驱动;SPI从控制器驱动通过逻辑外拓接口驱动将第四数据经过对应的逻辑外拓接口发送至指定外部设备;当指定外部设备响应第四数据的发送请求并发出响应数据时,FPGA模块基于逻辑外拓接口驱动从对应的逻辑外拓接口中获取响应数据,并标记为第五数据,然后对第五数据进行协议打包...
【专利技术属性】
技术研发人员:江旭,
申请(专利权)人:湖南博匠信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。