一种基于BMCSPI接口的TCM控制系统及方法与流程

文档序号:11250822阅读:1210来源:国知局
一种基于BMCSPI接口的TCM控制系统及方法与流程

本发明涉及bmc领域,尤其涉及一种基于bmcspi接口的tcm控制系统及方法。



背景技术:

bmc是服务器主板上的基板管理控制器,其作用是利用虚拟的键盘、界面、鼠标、电源等为服务器提供远程管理功能。用户利用bmc监视服务器的物理特征,如各部件的温度、电压、风扇工作状态、电源供应以及机箱入侵等。bmc作为服务器中相对独立的管理控制单元本身存在着安全风险,例如被植入恶意代码,此外用户在使用bmc对服务器进行远程管理时,可能因安全配置不当,如未使用专用网络、密码复杂度低等不安全操作,造成运行过程中的安全风险。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种基于bmcspi接口的tcm控制系统,包括:bmc模块,tcm控制器,tcm模块;

bmc模块设有arm处理器,tcm控制器集成至bmc模块上,tcm控制器与arm处理器连接;tcm模块与tcm控制器连接。

优选地,tcm控制器采用采用spi接口与tcm模块连接;tcm控制器利用硬件vhdl语言,通过amba总线连接到bmc模块的arm处理器。

优选地,tcm控制器设有sclk连接端,sdo连接端,sdi连接端,cs连接端;

tcm模块设有clk引脚,wr引脚,rd引脚,sel引脚;

tcm控制器sclk连接端与tcm模块的clk引脚连接,作为spi总线的时钟输出信号,控制tcm的时序;

tcm控制器sdo连接端与tcm模块的wr引脚连接,作为spi总线的数据输出信号,向tcm发送数据;

tcm控制器sdi连接端与tcm模块的rd引脚连接,作为spi总线的数据输入信号,从tcm接收数据;

tcm控制器cs连接端与tcm模块的sel引脚连接,作为spi总线的使能信号,用于选中tcm,使数据操作有效。

优选地,tcm控制器包括命令寄存器、长度寄存器、控制寄存器和ram数据变换区;

命令寄存器的长度为8bit,用于存放对tcm操作的不同命令参数;命令参数包括:读、写、擦除;

长度寄存器的长度为8bit,用于存放需要读取或写入tcm的数据长度,单位为字节;

控制寄存器的长度为8bit,通过设置控制寄存器相应的状态位控制tcm模块的操作。

优选地,控制寄存器的第0位是start,置1表示启动tcm控制器开始工作,清0表示停止tcm控制器工作;第1位是p_c,由tcm控制器设置,当ram变换区由并行数据转换成串行数据完成后,p_c置1;第2位是c_p,由tcm控制器设置,当ram变换区由串行数据转换成并行数据完成后,c_p置1;第3位是finish_flag,置1表示数据传输完成,清0表示数据传输未完成。

优选地,ram数据变换区设置ram区的大小为1kb(8bit*1024),该ram变换区用于把待发送到tcm模块的数据,由并行的8bit转换成串行数据,以便通过sdo数据线发送到tcm模块;当读取tcm模块数据时,该ram变换区能够把通过sdi数据线读取的tcm串行数据组成并行数据供arm处理器读取。

优选地,tcm控制器采用了有限状态机方法,包括:空闲状态idle、开始状态begin、写命令字状态wr_cmd、写长度状态wr_len、写数据状态wr_data、并-串转换状态p_ccon、读数据状态rd_data、串-并转换状态c_pcon和完成状态finish。

一种基于bmcspi接口的tcm控制方法,控制方法包括:

s1、系统上电复位后tcm控制器进入空闲状态idle,等待arm处理器下一步的操作;当arm处理器设置控制寄存器的第0位start为1后,tcm控制器开始工作,状态机进入begin状态;

s2、在begin状态,tcm控制器使sclk、sdo与sdi信号同步,之后状态机进入写命令字状态wr_cmd;

s3、在wr_cmd状态,tcm控制器向命令寄存器写入读取tcm模块的命令字,之后状态机进入写长度状态wr_len;

s4、在wr_len状态,tcm控制器向长度寄存器写入需要读取的tcm模块数据长度,单位为字节,之后状态机进入写数据状态wr_data;

s5、在wr_data状态,tcm控制器把读取tcm模块的命令字写入ram区,之后状态机进入并-串转换状态p_ccon;

s6、在p_ccon状态,状态机把ram区中的数据由按字节输入的格式转换为按bit位输出的方式,通过sdo信号线输出,之后状态机进入等待状态wait;

s7、在rd_data状态,tcm控制器通过sdi信号线读取tcm模块的数据,并把数据写入ram区,之后进入串-并转换状态c_pcon;

s8、在c_pcon状态,状态机把读取的ram区的数据由bit位组合为字节格式,以便于arm处理器读取,之后进入完成状态finish;

s9、在finish状态,tcm控制器清除控制寄存器的第0位start为0,设置控制寄存器第3位的完成标志位finish_flag为1,之后由arm处理器接管控制权,arm处理器可以再次启动tcm控制器对tcm进行操作,过程同上。

从以上技术方案可以看出,本发明具有以下优点:

本发明提出了基于bmcspi接口的tcm控制系统及方法,在bmc模块中利用tcm控制器与tcm模块进行交互,在bmc模块启动运行过程中利用tcm模块对各个功能组件进行完整性的度量,确保程序的完整性和没有被植入恶意代码,从而保证了系统平台执行环境的可信。本发明实现对tcm模块的控制,对bmc模块进行安全加固。tcm控制器采用spi接口,利用硬件描述语言vhdl设计而成,通过amba总线连接到bmc模块中的arm处理器。

附图说明

为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为基于bmc的tcm控制系统的整体示意图;

图2为spi接口的tcm控制器工作的状态机转移图;

图3为基于bmcspi接口的tcm控制方法流程图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

本实施例提供一种基于bmc的tcm控制系统,如图1所示,包括:bmc模块1,tcm控制器2,tcm模块3;bmc模块1设有arm处理器4,tcm控制器集成至bmc模块1上,tcm控制器2与arm处理器4连接;tcm模块3与tcm控制器2连接。

tcm是国产的可信密码模块,作为系统平台的信任根、具备对称、非对称密码算法、密码杂凑算法、密钥生成与存储等功能。

tcm控制器2采用采用spi接口与tcm模块3连接;tcm控制器2利用硬件vhdl语言,通过amba总线连接到bmc模块1的arm处理器4。

在本实施例中,tcm控制器2设有sclk连接端,sdo连接端,sdi连接端,cs连接端;tcm模块设有clk引脚,wr引脚,rd引脚,sel引脚;

tcm控制器sclk连接端与tcm模块的clk引脚连接,作为spi总线的时钟输出信号,控制tcm的时序;tcm控制器sdo连接端与tcm模块的wr引脚连接,作为spi总线的数据输出信号,向tcm发送数据;tcm控制器sdi连接端与tcm模块的rd引脚连接,作为spi总线的数据输入信号,从tcm接收数据;tcm控制器cs连接端与tcm模块的sel引脚连接,作为spi总线的使能信号,用于选中tcm,使数据操作有效。

tcm控制器2包括命令寄存器、长度寄存器、控制寄存器和ram数据变换区;

命令寄存器的长度为8bit,用于存放对tcm操作的不同命令参数;命令参数包括:读、写、擦除;长度寄存器的长度为8bit,用于存放需要读取或写入tcm的数据长度,单位为字节;控制寄存器的长度为8bit,通过设置控制寄存器相应的状态位控制tcm模块的操作。

控制寄存器的第0位是start,置1表示启动tcm控制器开始工作,清0表示停止tcm控制器工作;第1位是p_c,由tcm控制器设置,当ram变换区由并行数据转换成串行数据完成后,p_c置1;第2位是c_p,由tcm控制器设置,当ram变换区由串行数据转换成并行数据完成后,c_p置1;第3位是finish_flag,置1表示数据传输完成,清0表示数据传输未完成。

ram数据变换区设置ram区的大小为1kb(8bit*1024),该ram变换区用于把待发送到tcm模块的数据,由并行的8bit转换成串行数据,以便通过sdo数据线发送到tcm模块;当读取tcm模块数据时,该ram变换区能够把通过sdi数据线读取的tcm串行数据组成并行数据供arm处理器读取。

tcm控制器采用了有限状态机方法,如图2所示,包括:空闲状态idle、开始状态begin、写命令字状态wr_cmd、写长度状态wr_len、写数据状态wr_data、并-串转换状态p_ccon、读数据状态rd_data、串-并转换状态c_pcon和完成状态finish。

本发明还提供一种基于bmcspi接口的tcm控制方法,如图3所示,控制方法包括:

s1、系统上电复位后tcm控制器进入空闲状态idle,等待arm处理器下一步的操作;当arm处理器设置控制寄存器的第0位start为1后,tcm控制器开始工作,状态机进入begin状态;

s2、在begin状态,tcm控制器使sclk、sdo与sdi信号同步,之后状态机进入写命令字状态wr_cmd;

s3、在wr_cmd状态,tcm控制器向命令寄存器写入读取tcm模块的命令字,之后状态机进入写长度状态wr_len;

s4、在wr_len状态,tcm控制器向长度寄存器写入需要读取的tcm模块数据长度,单位为字节,之后状态机进入写数据状态wr_data;

s5、在wr_data状态,tcm控制器把读取tcm模块的命令字写入ram区,之后状态机进入并-串转换状态p_ccon;

s6、在p_ccon状态,状态机把ram区中的数据由按字节输入的格式转换为按bit位输出的方式,通过sdo信号线输出,之后状态机进入等待状态wait;

s7、在rd_data状态,tcm控制器通过sdi信号线读取tcm模块的数据,并把数据写入ram区,之后进入串-并转换状态c_pcon;

s8、在c_pcon状态,状态机把读取的ram区的数据由bit位组合为字节格式,以便于arm处理器读取,之后进入完成状态finish;

s9、在finish状态,tcm控制器清除控制寄存器的第0位start为0,设置控制寄存器第3位的完成标志位finish_flag为1,之后由arm处理器接管控制权,arm处理器可以再次启动tcm控制器对tcm进行操作,操作可以包括写、擦除等,过程同上。

在实施例中,所述设备中的一个或多个设备的部分或所有功能或处理由计算机程序实现或支持,计算机程序由计算机可读程序代码形成并且被包括在计算机可读介质中。本发明中由计算机实现了程序代码,可以为计算机可读程序代码,具体包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。还包括实现本发明功能的计算机可读介质,具体包括能够被计算机访问的任何类型的介质,诸如只读存储器(rom)、随机存取存储器(ram)、硬盘驱动器、光盘(cd)、数字视频盘(dvd)、或任何其他类型的存储器。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参考即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1