一种通过CPLD解析SGPIO的系统及方法与流程

文档序号:12801919阅读:1798来源:国知局
一种通过CPLD解析SGPIO的系统及方法与流程

本发明属于存储硬盘阵列的管理和监控技术领域,具体涉及一种通过cpld解析sgpio的系统及方法。



背景技术:

sgpio总线在服务器和存储产品中使用很多;主要用来进行硬盘灯的控制。而根据sgpio总线协议描述,sload信号被置1后,会有4个比特位的信息携带着vendor-specificpattern(供应商具体模式),与target端交流驱动无关的信息。而这四个比特位的信息对sgpio的解析带来了一定的麻烦,很多芯片厂商都会不使用这四个比特位,都置为0。这很大程度上降低了sgpio解析的复杂度,但是如果按照这种方式解析使用vendor-specificpattern比特位厂商的芯片sgpio信号时,会出现混乱。此为现有技术的不足之处。

因此,本发明针对现有技术中的上述缺陷,提供设计一种通过cpld解析sgpio的系统及方法,以避免解析出现错误。



技术实现要素:

本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种通过cpld解析sgpio的系统及方法,以解决上述技术问题。

为实现上述目的,本发明给出以下技术方案:

一种通过cpld解析sgpio的系统,它包括sgpioinitiator端,其特征在于,所述的sgpioinitiator端通过sgpio总线连接有sgpiotarget端,所述的sgpiotarget端连接有寄存器;

所述的sgpioinitiator端为不同的厂家芯片,提供sgpio的sclock信号、sload信号和sdataout信号,并接收sgpiotarget端发出的sdatain信号;

所述的sgpiotarget端为cpld芯片,解析由sgpioinitiator端发出的sdataout信号;

所述的寄存器内设置有寄存器变量sload,对6比特位的sload信号进行移位存储。

作为优选,当sload置1且前五个比特位都为0时,认定为此时的sload置1为上个比特流结束的标志;并将上个比特流sgpioinitiator端发出的sdataout存入寄存器中,进行硬盘灯的控制。

作为优选,当sload置1,但是前5个比特位中不全是0,则认定为该比特位的1位vendor-specificpattern,不进行将sdataout信息作为一个比特流存入寄存器的操作。

cpld根据sdataout写入寄存器的比特流信息对硬盘灯进行相应的控制。

一种通过cpld解析sgpio的方法,包括以下步骤:

步骤1):cpld对reset,sclock,sload,sdataout四个信号进行解析,当cpld检测到reset有效时,转到步骤2),否则转到步骤3);

步骤2):对硬盘灯控制的寄存器以及sdataout,sload缓存寄存器进行复位操作,并转到步骤1);

步骤3):判断sclock是否有效,如果有效转到步骤4),否则转到步骤1);

步骤4):分别收集该比特位的sload和sdataout信号值,检测sload是否满足比特流结束标志(即000001),如果满足,则转到步骤5);否则转到步骤6);

步骤5):将sdataout缓存的信息赋值给控制硬盘灯的寄存器,sload信息进行移位缓存,以进行相应控制;并转到步骤1;

步骤6):将sdataout和sload信息进行移位缓存,不写入控制硬盘的寄存器,寄存器中信息保存原来的数据;并转到步骤1。

本发明的有益效果在于,通过cpld监控sgpioinitiator端的sload信号,区别真正的比特流结束的高电位与vendor-specificpattern中的高电位,增加了cpld解析sgpio的准确性,可作为标准模块对不同厂家的sgpio信号进行解析。此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

图1是本发明提供的一种通过cpld解析sgpio的系统的原理框图。

图2是本发明提供的一种通过cpld解析sgpio的方法的解析流程图。

其中,1-sgpioinitiator端,2-sgpoi总线,3-sgpiotarget端,4-寄存器。

具体实施方式

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。

如图1所示,本发明提供的一种通过cpld解析sgpio的系统,它包括sgpioinitiator端1,所述的sgpioinitiator端1通过sgpoi总线2连接有sgpiotarget端3,所述的sgpiotarget端3连接有寄存器4;

所述的sgpioinitiator端为不同的厂家芯片,提供sgpio的sclock信号、sload信号和sdataout信号,并接收sgpiotarget端发出的sdatain信号;

所述的sgpiotarget端为cpld芯片,解析由sgpioinitiator端发出的sdataout信号;

所述的寄存器内设置有寄存器变量sload,对6比特位的sload信号进行移位存储。

本实施例中,当sload置1且前五个比特位都为0时,认定为此时的sload置1为上个比特流结束的标志;并将上个比特流sgpioinitiator端发出的sdataout存入寄存器中,进行硬盘灯的控制。

当sload置1,但是前5个比特位中不全是0,则认定为该比特位的1位vendor-specificpattern,不进行将sdataout信息作为一个比特流存入寄存器的操作。

cpld根据sdataout写入寄存器的比特流信息对硬盘灯进行相应的控制。

如图2所示,本发明提供的一种通过cpld解析sgpio的方法,包括以下步骤:

步骤1):cpld对reset,sclock,sload,sdataout四个信号进行解析,当cpld检测到reset有效时,转到步骤2),否则转到步骤3);

步骤2):对硬盘灯控制的寄存器以及sdataout,sload缓存寄存器进行复位操作,并转到步骤1);

步骤3):判断sclock是否有效,如果有效转到步骤4),否则转到步骤1);

步骤4):分别收集该比特位的sload和sdataout信号值,检测sload是否满足比特流结束标志(即000001),如果满足,则转到步骤5);否则转到步骤6);

步骤5):将sdataout缓存的信息赋值给控制硬盘灯的寄存器,sload信息进行移位缓存,以进行相应控制;并转到步骤1;

步骤6):将sdataout和sload信息进行移位缓存,不写入控制硬盘的寄存器,寄存器中信息保存原来的数据;并转到步骤1。

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有1条留言
  • 138500... 来自[中国] 2022年02月23日 10:31
    提供CPLD參考代碼,馬上付費 下載
    0
1