CN111930582A - ***管理总线检测平台、处理器及***管理总线检测方法 - Google Patents

***管理总线检测平台、处理器及***管理总线检测方法 Download PDF

Info

Publication number
CN111930582A
CN111930582A CN202010825541.3A CN202010825541A CN111930582A CN 111930582 A CN111930582 A CN 111930582A CN 202010825541 A CN202010825541 A CN 202010825541A CN 111930582 A CN111930582 A CN 111930582A
Authority
CN
China
Prior art keywords
data
driver
smbus
tested
state
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
CN202010825541.3A
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.)
Chengdu Haiguang Microelectronics Technology Co Ltd
Original Assignee
Chengdu Haiguang Microelectronics Technology 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 Chengdu Haiguang Microelectronics Technology Co Ltd filed Critical Chengdu Haiguang Microelectronics Technology Co Ltd
Priority to CN202010825541.3A priority Critical patent/CN111930582A/zh
Publication of CN111930582A publication Critical patent/CN111930582A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请提供一种***管理总线检测平台、处理器及***管理总线检测方法,平台包括:序列存储器和驱动器,序列存储器用于存储多种测试序列和与每种测试序列对应的数据包;待测SMBus连接有至少一个辅助测试组件;驱动器在***管理总线检测平台处于主动模式时,获取序列存储器中存储的多个测试序列的每个测试序列;根据每个测试序列对应的传输协议,向待测SMBus发送与传输协议对应的数据包中的数据,以使待测SMBus传递给至少一个辅助测试组件;接收至少一个辅助测试组件通过待测SMBus返回的反馈信号,并根据反馈信号,确定对应的测试序列是否正确。通过对序列存储器中存储的测试序列进行测试便可以实现对待测SMBus的检测,与现有技术相比,降低复杂度,提高效率。

Description

***管理总线检测平台、处理器及***管理总线检测方法
技术领域
本申请涉及计算机领域,具体而言,涉及一种***管理总线检测平台、处理器及***管理总线检测方法。
背景技术
***管理总线(System Management Bus,简称SMBus)是一种二进制总线接口。***和设备之间都可以通过SMBus发送和接收信息,与使用单独的控制线发送和接收信息相比,可以减少管脚的数量。
在SMBus中,数据的传输支持多种数据传输协议,对于每种数据传输协议均需要大量的测试序列来验证数据传输协议的正确性。如果采用传统的测试方法进行验证,复杂性较高,验证效率较低。
发明内容
本申请实施例的目的在于提供一种***管理总线检测平台、处理器及***管理总线检测方法,用以改善传统方法验证复杂度高、验证效率低的问题。
第一方面,本申请实施例提供了一种***管理总线检测平台,用于对待测***管理总线SMBus进行检测,所述平台包括:序列存储器和驱动器,所述序列存储器用于存储多种测试序列和与每种所述测试序列对应的数据包,每种所述测试序列分别对应一种传输协议,数据包为根据传输协议的格式将多个字段封装获得;所述待测SMBus连接有至少一个辅助测试组件;所述驱动器用于在所述***管理总线检测平台处于主动模式时,获取所述序列存储器中存储的多个测试序列的每个测试序列;根据所述每个测试序列对应的每个传输协议,向所述待测SMBus发送与传输协议对应的数据包中的数据,以使所述待测SMBus传递给所述至少一个辅助测试组件;接收所述至少一个辅助测试组件通过所述待测SMBus返回的反馈信号,并根据所述反馈信号,确定对应的测试序列是否正确。
在上述的实施方式中,在***管理总线检测平台处于主动Master模式的情况下,驱动器可以从序列存储器中获取一测试序列,并根据该测试序列对应的传输协议,向待测SMBus发送与传输协议对应的数据包中的数据,待测SMBus可以将上述数据传递给辅助测试组件,辅助测试组件返回与上述数据对应的反馈信号,反馈信号经待测SMBus传递给驱动器。驱动器可以根据反馈信号的具体信号类型,确定上述的测试序列是否正确。且驱动器可以通过相同的步骤对序列存储器中存储的测试序列均进行一次测试,在序列存储器中存储的测试序列均正确的情况下,判定待测SMBus处于正常状态。本申请实施例通过对序列存储器中存储的测试序列进行测试便可以实现对待测SMBus的检测,与现有技术对每种数据传输协议均需要大量的测试序列来验证数据传输协议的正确性相比,降低了复杂度,提高了效率。
在一个可能的设计中,所述驱动器用于在发送数据包中的数据时,对发送的数据进行计数;当发送的数据的数量达到对应的传输协议设置的数量后,从所述传输协议获取对应的状态标志位,并向所述待测SMBus发送,以使与所述待测SMBus连接的至少一个辅助测试组件切换工作状态。
在上述的实施方式中,数据包中不存储状态标志位,但在确定的传输协议中,状态标志位出现的位置是相对固定的,因此可以通过驱动器对发送的数据进行计数,在发送了固定数量的数据,需要发送状态标志位时,驱动器再从传输协议获取状态标志位。通过数据包与传输协议的配合,可以使得驱动器更加顺畅地发送数据。
在一个可能的设计中,所述驱动器包括第一状态机;所述第一状态机还用于在从传输协议获取到RESTART状态标志位时,向所述待测SMBus发送RESTART标志位;所述第一状态机用于在从传输协议获取到STOP状态标志位时,切换至停止状态,并向所述待测SMBus发送STOP标志位,在发送STOP标志位后切换至空闲状态。
在上述的实施方式中,状态标志位包括RESTART状态标志位和STOP状态标志位,驱动器内部的第一状态机在从传输协议获取到状态标志位时,可以将自身调整成与状态标志位对应的状态,并可以根据获取到的状态标志位改变与待测SMBus连接的辅助测试组件的状态,从而更好地向待测SMBus发送数据,或接收来自待测SMBus的数据。
在一个可能的设计中,所述驱动器包括第一状态机;若所述驱动器发送数据包中的数据的过程中获取到读标志位,所述第一状态机切换至收取状态;所述驱动器用于在所述第一状态机处于收取状态时,等待从与所述待测SMBus连接的至少一个辅助测试组件读取数据;若所述驱动器发送数据包中的数据的过程中获取到写标志位,所述第一状态机切换至发送状态;所述驱动器用于在所述第一状态机处于发送状态时,将数据或地址发送向所述待测SMBus,以使所述待测SMBus传递给所述至少一个辅助测试组件。
在上述的实施方式中,数据包中除了封装有字段,还可以封装有指示驱动器的读写动作的动作标志位,包括读标志位R和写标志位W。第一状态机在驱动器从数据包获取数据并发送的过程中,如果获取到读标志位R,则确定第一状态机切换为收取状态,从而等待接收从与所述待测SMBus连接的至少一个辅助测试组件发送的数据。如果驱动器获取到写标志位W,则确定第一状态机切换为发送状态,从而使驱动器向待测SMBus发送地址信息或数据信息。通过动作标志位的指示灵活地切换第一状态机的状态,提高驱动器以及与待测SMBus连接的辅助测试组件之间的数据传输效率。
在一个可能的设计中,所述驱动器包括第一状态机;所述第一状态机在所述***管理总线检测平台处于从动模式时,处于等待开始标志位状态,并实时检测是否接收到START标志位;在接收到START标志位时,切换为等待接收数据的状态;在每接收到单位数量的数据时,切换为发送回馈信息状态,向所述待测SMBus返回一个回馈信息,并对接收到的数据的单位数量进行计数;在计数的累计数量小于预设数量时,切换回等待接收数据的状态;用于在计数的累计数量大于或等于所述预设数量时,切换为等待接收停止标志位状态。
在上述的实施方式中,第一状态机在***管理总线检测平台处于从动Slave模式时,可以根据辅助测试组件发送的数据和状态标志位,调整自身的工作状态,从而灵活地应对与待测SMBus连接的辅助测试组件之间的数据传输。
在一个可能的设计中,第一状态机接收到单位数量的数据,并将所述单位数量的数据发送给驱动器;所述驱动器用于将接收到的数据与预先存储的数据进行比对;若所述接收到的数据与所述预先存储的数据不一致,则所述驱动器报错。
在上述的实施方式中,在***管理总线检测平台处于Slave模式时,驱动器接收到的数据包对应的传输协议较为单一,驱动器接收到的数据也较为固定。因此,驱动器中可以预先存储有与传输协议对应的数据。驱动器通过将接收到的数据与预先存储的数据进行比对,便可以判断待测SMBus是否异常。若驱动器报错,则可以判定待测SMBus异常。
在一个可能的设计中,所述驱动器用于通过双向接口与待测SMBus连接,所述平台还包括监控器;所述监控器用于从所述双向接口获取完整的数据包,并对所述数据包进行奇偶校验,获得第一奇偶校验值;将所述第一奇偶校验值与从所述驱动器获取的相同数据包的第二奇偶校验值进行比对,若两者不一致,则确定待测SMBus存在异常。
在上述的实施方式中,监控器还可以从双向接口处获取完整的数据包,并进行奇偶校验,得到第一奇偶校验值。驱动器在将数据包的数据发出时,也会计算出一个奇偶校验值。因此,驱动器可以从驱动器处获得相同的数据包的第二奇偶校验值,并将两者进行比对。若两者不一致,则表示数据的发出环节存在异常。
第二方面,本申请实施例提供了一种处理器,包括第一方面以及第一方面的任一可能的设计中的***管理总线检测平台。
第三方面,本申请提供一种***管理总线检测方法,用于通过***管理总线检测平台对待测***管理总线SMBus进行检测,所述平台包括:序列存储器和驱动器,所述序列存储器存储多种测试序列和与每种所述测试序列对应的数据包,每种所述测试序列分别对应一种传输协议,数据包为根据传输协议的格式将多个字段封装获得;所述待测SMBus连接有至少一个辅助测试组件;所述方法包括:当所述***管理总线检测平台处于主动模式时,所述驱动器获取所述序列存储器中存储的多个测试序列的每个测试序列;所述驱动器根据所述每个测试序列对应的每个传输协议,向所述待测SMBus发送与传输协议对应的数据包中的数据,以使所述待测SMBus传递给所述至少一个辅助测试组件;所述驱动器接收所述至少一个辅助测试组件通过所述待测SMBus返回的反馈信号,并根据所述反馈信号,确定对应的测试序列是否正确。
在上述的实施方式中,在***管理总线检测平台处于主动Master模式的情况下,驱动器可以从序列存储器中获取一测试序列,并根据该测试序列对应的传输协议,向待测SMBus发送与传输协议对应的数据包中的数据,待测SMBus可以将上述数据传递给辅助测试组件,辅助测试组件返回与上述数据对应的反馈信号,反馈信号经待测SMBus传递给驱动器。驱动器可以根据反馈信号的具体信号类型,确定上述的测试序列是否正确。且驱动器可以通过相同的步骤对序列存储器中存储的测试序列均进行一次测试,在序列存储器中存储的测试序列均正确的情况下,判定待测SMBus处于正常状态。本申请实施例通过对序列存储器中存储的测试序列进行测试便可以实现对待测SMBus的检测,与现有技术对每种数据传输协议均需要大量的测试序列来验证数据传输协议的正确性相比,降低了复杂度,提高了效率。
在一个可能的设计中,所述驱动器根据所述每个测试序列对应的每个传输协议,向所述待测SMBus发送与传输协议对应的数据包中的数据,包括:所述驱动器在发送数据包中的数据时,对发送的数据进行计数;当发送的数据的数量达到对应的传输协议设置的数量后,所述驱动器从所述传输协议获取对应的状态标志位,并向所述待测SMBus发送,以使与所述待测SMBus连接的至少一个辅助测试组件切换工作状态。
在上述的实施方式中,数据包中不存储状态标志位,但在确定的传输协议中,状态标志位出现的位置是相对固定的,因此可以通过驱动器对发送的数据进行计数,在发送了固定数量的数据,需要发送状态标志位时,驱动器再从传输协议获取状态标志位。通过数据包与传输协议的配合,可以使得驱动器更加顺畅地发送数据。
在一个可能的设计中,所述驱动器包括第一状态机;所述驱动器从所述传输协议获取对应的状态标志位,并向所述待测SMBus发送,包括:所述第一状态机在从传输协议获取到RESTART状态标志位时,向所述待测SMBus发送RESTART标志位;所述第一状态机在从传输协议获取到STOP状态标志位时,处于停止状态,并向所述待测SMBus发送STOP标志位,在发送STOP标志位后处于空闲状态。
在上述的实施方式中,状态标志位包括RESTART状态标志位和STOP状态标志位,驱动器内部的第一状态机在从传输协议获取到状态标志位时,可以将自身调整成与状态标志位对应的状态,并可以根据获取到的状态标志位改变与待测SMBus连接的辅助测试组件的状态,从而更好地向待测SMBus发送数据,或接收来自待测SMBus的数据。
在一个可能的设计中,所述驱动器包括第一状态机;若所述驱动器发送数据包中的数据的过程中获取到读标志位,所述第一状态机切换至收取状态;所述驱动器在所述第一状态机处于收取状态时,等待从与所述待测SMBus连接的至少一个辅助测试组件读取数据;若所述驱动器发送数据包中的数据的过程中获取到写标志位,所述第一状态机切换至发送状态;所述驱动器在所述第一状态机处于发送状态时,将数据或地址发送向所述待测SMBus,以使所述待测SMBus传递给所述至少一个辅助测试组件。
在上述的实施方式中,数据包中除了封装有字段,还可以封装有指示驱动器的读写动作的动作标志位,包括读标志位R和写标志位W。第一状态机在驱动器从数据包获取数据并发送的过程中,如果获取到读标志位R,则确定第一状态机切换为收取状态,从而等待接收从与所述待测SMBus连接的至少一个辅助测试组件发送的数据。如果驱动器获取到写标志位W,则确定第一状态机切换为发送状态,从而使驱动器向待测SMBus发送地址信息或数据信息。通过动作标志位的指示灵活地切换第一状态机的状态,提高驱动器以及与待测SMBus连接的辅助测试组件之间的数据传输效率。
在一个可能的设计中,所述驱动器包括第一状态机;所述方法还包括:当所述***管理总线检测平台处于从动模式时,所述第一状态机处于等待开始标志位状态,并实时检测是否接收到START标志位;所述第一状态机在接收到START标志位时,切换为等待接收数据的状态;所述第一状态机在每接收到单位数量的数据时,切换为发送回馈信息状态,向所述待测SMBus返回一个回馈信息,并对接收到的数据的单位数量进行计数;所述第一状态机在计数的累计数量小于预设数量时,切换回等待接收数据的状态;用于在计数的累计数量大于或等于所述预设数量时,切换为等待接收停止标志位状态。
在上述的实施方式中,第一状态机在***管理总线检测平台处于从动Slave模式时,可以根据辅助测试组件发送的数据和状态标志位,调整自身的工作状态,从而灵活地应对与待测SMBus连接的辅助测试组件之间的数据传输。
在一个可能的设计中,所述方法还包括:第一状态机接收单位数量的数据,并将所述单位数量的数据发送给驱动器;所述驱动器将接收到的数据与预先存储的数据进行比对;若所述接收到的数据与所述预先存储的数据不一致,则所述驱动器报错。
在上述的实施方式中,在***管理总线检测平台处于Slave模式时,驱动器接收到的数据包对应的传输协议较为单一,驱动器接收到的数据也较为固定。因此,驱动器中可以预先存储有与传输协议对应的数据。驱动器通过将接收到的数据与预先存储的数据进行比对,便可以判断待测SMBus是否异常。若驱动器报错,则可以判定待测SMBus异常。
在一个可能的设计中,所述驱动器用于通过双向接口与待测SMBus连接,所述平台还包括监控器;所述方法还包括:所述监控器从所述双向接口获取完整的数据包,并对所述数据包进行奇偶校验,获得第一奇偶校验值;所述监控器将所述第一奇偶校验值与从所述驱动器获取的相同数据包的第二奇偶校验值进行比对,若两者不一致,则确定待测SMBus存在异常。
在上述的实施方式中,监控器还可以从双向接口处获取完整的数据包,并进行奇偶校验,得到第一奇偶校验值。驱动器在将数据包的数据发出时,也会计算出一个奇偶校验值。因此,驱动器可以从驱动器处获得相同的数据包的第二奇偶校验值,并将两者进行比对。若两者不一致,则表示数据的发出环节存在异常。
为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的***管理总线检测平台的示意性结构框图;
图2示出了时间信号线SMBCLK和数据信号线SMBDAT的波形图;
图3示出了本申请实施例提供的***管理总线检测方法的流程示意图;
图4示出了步骤S120的一种具体实施方式的流程示意图;
图5示出了***管理总线检测平台处于从动模式时的部分步骤的流程示意图;
图6示出了测试序列的一种具体实施方式的示意图;
图7示出了测试序列的另一种具体实施方式的示意图;
图8示出了DPI模块中的库函数与序列存储器中的测试序列的对应关系的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参见图1,图1示出了本申请实施例提供的***管理总线检测平台的示意性结构框图,该***管理总线检测平台100包括:驱动器110、序列传输器120、序列存储器130、字段存储器140、监控器150、平台配置单元160以及参数定义单元170。***管理总线检测平台通过双向接口180与待测SMBus 200连接。
驱动器110通过双向接口180与待测SMBus 200连接,用于根据测试序列,发送数据到待测SMBus 200,由待测SMBus 200传递给与待测SMBus200连接的辅助测试组件;或用于接收从待测SMBus 200传递过来的数据,待测SMBus 200传递来的数据来自于与其连接的辅助测试组件。
序列传输器120用于将序列存储器130中存储的多个测试序列传递到驱动器110。
序列存储器130用于存储多种测试序列,多种测试序列中的每种测试序列均封装有对应的一种传输协议。
可选地,传输协议包括网络层数据传输协议和地址解析协议。
网络层数据传输协议包括send byte协议、receive byte协议、write byte/word协议、read byte/word协议、block read协议以及block write协议等。
其中,send byte协议被用户封装于send byte测试序列,receive byte协议被用户封装于receive byte测试序列,write byte/word协议被用户封装于write byte/word测试序列,read byte/word协议被用户封装于read byte/word测试序列,block read协议被用户封装于block read测试序列,block write协议被用户封装于block write测试序列。
地址解析协议包括:SMBus Host Notify protocol协议、Prepared to ARP协议、Assign address协议、Reset device协议、Get UDID(general)协议等。
其中,SMBus Host Notify protocol协议被用户封装于SMBus Host Notifyprotocol测试序列;Prepared to ARP协议被用户封装于Prepared to ARP测试序列;Assign address协议被用户封装于Assign address测试序列;Reset device协议被用户封装于Reset device测试序列;Get UDID(general)协议被用户封装于Get UDID(general)测试序列。
序列存储器130中还存储有多种数据包,数据包与传输协议一一对应。可以由用户根据传输协议的协议格式,将多个字段进行封装,获得数据包。
例如,对于send byte协议,根据其格式,send byte协议依次由Slave_addr字段、写标志位W以及Databyte字段组成,因此,可以将上述字段和写标志位按照上述顺序进行封装,得到与send byte协议对应的数据包。
对于receive byte协议,根据其格式,receive byte协议依次由Slave_addr字段、读标志位R组成,因此,可以将上述字段和读标志位按照上述顺序进行封装,得到与receivebyte协议对应的数据包。
对于write byte协议,根据其格式,write byte协议依次由Slave_addr字段、写标志位W、CMD_WR_BYTE字段以及Databyte字段组成,因此,可以将上述字段和写标志位按照上述顺序进行封装,得到与write byte协议对应的数据包。
对于read byte协议,根据其格式,read byte协议依次由Slave_addr字段、写标志位W、CMD_RD_BYTE字段、Slave addr字段和读标志位R组成,因此,可以将上述字段和写标志位以及读标志位按照上述顺序进行封装,得到与read byte协议对应的数据包。
对于block write协议,根据其格式,block write协议依次由Slave_addr字段、写标志位W、CMD_LD_ADDR字段、Byte Count字段以及四个Addr字段组成,因此,可以将上述字段和写标志位按照上述顺序进行封装,得到与block write协议对应的数据包。
对于block read协议,根据其格式,block read协议依次由Slave_addr字段、写标志位W、CMD_RD_DATA字段、Slave_addr字段、读标志位R组成,因此,可以将上述字段和写标志位以及读标志位按照上述顺序进行封装,得到与block read协议对应的数据包。
上述的字段可以由用户根据使用需求进行定义。其中,以CMD开头的字段均为command code字段。
字段存储器140用于存储组成数据包的多个字段。
监控器150用于与双向接口180连接,在驱动器110通过双向接口180发送数据到待测SMBus 200时,从双向接口180获取到驱动器110发送给待测SMBus 200的完整数据包,并对该完整数据包进行解析和验证。
平台配置单元160用于配置是否创建驱动器110、序列传输器120以及监控器150,还可以控制驱动器110是否通过接口port与序列传输器120连接。
双向接口180是***管理总线检测平台与待测SMBus 200之间的接口。其中,待测SMBus 200是使用硬件描述语言Verilog开发,接口信号是动态类型;***管理总线检测平台是使用system Verilog开发,接口信号是静态数据类型,因此,两者可以通过双向接口180连接。可选地,请参见图2,上述的双向接口180可以为时间信号线SMBCLK和数据信号线SMBDAT,数据可以在数据信号线SMBDAT上以1bit为单位数量发送,且在时钟信号线处于上升沿的时候,数据信号线SMBDAT发送1bit的数据。
参数定义单元170用于定义驱动器110、监控器150中的状态机的状态名称,并且还可以定义数据在双向接口180传输的时间参数,例如,请参见图2,定义STOP状态标志位与START状态标志位之间的空闲时间tBUF、在START状态的保持时间tHD,STA、时钟SMBCLK为低电平的时间tLOW、时钟SMBCLK为高电平的时间tHIGH、数据保持时间tHD,DAT、数据建立时间tSU,DAT、以及在STOP状态的建立时间tSU,STO。上述的时间参数均可以由用户根据检测SMBus的需要进行设置。
可选地,该***管理总线检测平台还可以包括控制接口,该控制接口可以被输入进控制信号,以使整个***管理总线检测平台根据控制信号切换工作模式,例如,控制信号为1,对应主动工作模式,简称Master模式;控制信号为0,对应从动工作模式,简称Slave模式。控制接口的控制信号可以由用户人为发出,也可以按照预先设置的时间间隔发出,还可以由与待测SMBus连接的辅助测试组件来决定,控制信号的具体发送方式不应该理解为是对本申请的限制。
在***管理总线检测平台处于Master模式时,驱动器110可以通过序列传输器120,从序列存储器130中获取测试序列,并根据测试序列对应的传输协议,向待测SMBus200发送与传输协议对应的数据包中的数据。待测SMBus 200会将数据继续传递给与待测SMBus 200连接的辅助测试组件。辅助测试组件在接收到数据时,会返回反馈信号。驱动器110接收辅助测试组件返回的反馈信号,并依据反馈信号判断测试序列是否正确。
可选地,驱动器110在发送数据包中的数据时,对发送的数据进行计数;当发送的数据的数量达到对应的传输协议设置的数量后,从所述传输协议获取对应的状态标志位,并向所述待测SMBus 200发送,以使与所述待测SMBus 200连接的至少一个辅助测试组件切换工作状态。
状态标志位为表示设备的运行状态的标志位,状态标志位可以包括START状态标志位,在数据传输过程中以S表示;RESTART状态标志位,在数据传输过程中以Sr表示;STOP状态标志位,在数据传输过程中以P表示。
可选地,驱动器110可以包括第一状态机,驱动器110从传输协议获取对应的状态标志位,并向所述待测SMBus 200发送,具体可以包括如下情况:
驱动器110从传输协议获取START状态标志位,第一状态机处于发送数据状态SM_SEND,第一状态机处于SM_SEND状态时,驱动器110向待测SMBus 200发送数据。驱动器110每发送若干数量的数据,会收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号。反馈信号包括确认位ACK信号和非确认位NACK信号。若驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送数据;若驱动器110接收到的是NACK信号,则令第一状态机切换到停止状态SM_STOP。
驱动器110从传输协议获取到RESTART状态标志位时,向待测SMBus200发送RESTART标志位。
驱动器110从传输协议获取到STOP状态标志位时,或驱动器110接收到的是NACK信号时,令第一状态机切换到停止状态SM_STOP,并向待测SMBus 200发送STOP标志位,在发送完STOP标志位后,令第一状态机切换到空闲状态SM_IDLE。
若驱动器110再次从传输协议获取START状态标志位,第一状态机重新由SM_IDLE状态切换到SM_SEND状态。
可选地,在驱动器110发送数据包中的数据的过程中,也会发送到存储在数据包中的动作标志位,动作标志位为指示驱动器110的读写动作的标志位,包括读标志位R和写标志位W。
在驱动器110发送数据包中的数据的过程中,发送到数据包中的读标志位R时,第一状态机处于收取状态SM_RECEIVE,等待从与待测SMBus200连接的至少一个辅助测试组件读取数据。
在驱动器110发送数据包中的数据的过程中,发送到数据包中的写标志位W时,第一状态机处于发送状态,将数据或地址发送向所述待测SMBus200,以使所述待测SMBus 200传递给所述至少一个辅助测试组件。
监控器150用于在***管理总线检测平台处于Master模式时,从双向接口180获取完整的数据包,并对数据包进行奇偶校验,获得第一奇偶校验值;将第一奇偶校验值与从驱动器110获取的相同数据包的第二奇偶校验值进行比对,若两者不一致,则确定待测SMBus200存在错误。
监控器150从双向接口180获取完整的数据包可以通过如下方式实现:监控器150在双向接口180监测是否出现START状态标志位;若出现,则监控器150从START状态标志位开始读取数据,直到在双向接口180监测到出现STOP状态标志位为止。监控器150获取到以START状态标志位为始,以STOP状态标志位为止的全部数据,上述的全部数据可作为一个完整的数据包。
监控器150可以仅通过采样双向接口180上的数据,进行数据解析从而实现验证过程。因此,在更复杂的验证环境中,本申请实施例提供的监控器150可以被复用。
可选地,监控器150对数据包进行奇偶校验可以通过如下方式进行:
监控器150可以获取该完整的数据包中的command code字段,并根据commandcode字段以及监控器150自身存储的多种传输协议类型,判断该数据包对应的传输协议类型,并根据传输协议和数据包中的具体数值计算数据包的数据包出错检测(Packet ErrorChecking,简称PEC)值,根据PEC值进行奇偶校验。
在***管理总线检测平台处于Slave模式时,第一状态机处于等待开始标志位状态RCV_ARP_GET_START,并实时监测是否接收到START标志位。
在接收到START标志位时,第一状态机切换为等待接收数据的状态RCV_ARP_GET_BYTE。第一状态机在每接收到单位数量的数据时,切换为发送回馈信息状态RCV_ARP_SEND_ACK,向待测SMBus 200返回一个回馈信息,并对接收到的数据的单位数量进行计数。在计数的累计数量小于预设数量时,第一状态机切换回等待接收数据的状态RCV_ARP_GET_BYTE;在计数的累计数量大于或等于预设数量时,第一状态机切换为等待接收停止标志位状态RCV_ARP_GET_STOP。第一状态机在接收到STOP标志位时,切换回空闲状态,等待接收下一次的START标志位。
可选地,判断是否接收到START标志位,可以通过如下方式进行:
驱动器110检测双向接口180SMBCLK和SMBDAT的信号保持情况,若SMBCLK维持高电平1,且SMBDAT从1翻转到0,则可以判定接收到START标志位。
在另一种具体实施方式中,也可以将SMBCLK和SMBDAT的其他信号保持情况定义为判定接收到START标志位,例如,可以将SMBCLK维持低电平0,且SMBDAT从0翻转到1定义为判定接收到START标志位。判定接收到START标志位的具体方式不应该理解为是对本申请的限制。
可选地,判断是否接收到STOP标志位,可以通过如下方式进行:
驱动器110检测双向接口180SMBCLK和SMBDAT的信号保持情况,若SMBCLK维持高电平1,且SMBDAT从0翻转到1,则可以判定接收到STOP标志位。
在另一种具体实施方式中,也可以将SMBCLK和SMBDAT的其他信号保持情况定义为判定接收到STOP标志位,例如,可以将SMBCLK维持低电平0,且SMBDAT从1翻转到0定义为判定接收到START标志位。判定接收到STOP标志位的具体方式不应该理解为是对本申请的限制。
可选地,第一状态机接收到单位数量的数据,并将所述单位数量的数据发送给驱动器110;所述驱动器110用于将接收到的数据与预先存储的数据进行比对;若所述接收到的数据与所述预先存储的数据不一致,则所述驱动器110报错。上述的单位数量可以是1byte,即8bit,当然,也可以为其他值,单位数量的具体值不应该理解为是对本申请的限制。
在***管理总线检测平台处于Slave模式时,驱动器110接收到的数据包对应的传输协议较为单一,驱动器110接收到的数据也较为固定。因此,驱动器110中可以预先存储有与传输协议对应的数据。驱动器110通过将接收到的数据与预先存储的数据进行比对,便可以判断待测SMBus 200是否异常。若接收到的数据与预先存储的数据两者不一致,驱动器110报错,表示待测SMBus 200异常。
可选地,在一种具体实施方式中,本申请实施例提供的***管理总线检测平台还可以包括直接编程接口(Direct Programming Interface,简称DPI)模块。DPI模块可以与图1示出的序列存储器130连接。DPI模块中封装有如下库函数:smbus_byte_reg_wr、smbus_byte_reg_rd、smbus_reg_wr、smbus_reg_rd、smbus_pre_to_arp、smbus_get_did_gen。DPI模块中的库函数与序列存储器130中的测试序列的对应关系如图8所示。DPI模块用于被其他测试环境中的驱动器110调用,以使本申请实施例提供的测试序列可应用于其他测试环境中。
本申请实施例还提供了一种处理器,该处理器可以包括上述的***管理总线检测平台,处理器可以是中央处理器(Central Processing Unit,CPU)、加速处理器(Accelerated Processing Unit)等,也还可以是其他类型的处理器,如网络处理器(Network Processor,NP)、应用处理器,当然在某些产品中,应用处理器就是CPU。处理器的具体类型不应该理解为是对本申请的限制。
请参见图3,图3示出了本申请实施例提供的***管理总线检测方法的流程示意图,该方法可以通过上述的***管理总线检测平台对待测***管理总线SMBus进行检测,该方法具体包括如下步骤S110至步骤S130:
步骤S110,当所述***管理总线检测平台处于主动模式时,所述驱动器110获取所述序列存储器130中存储的多个测试序列的每个测试序列。
步骤S120,驱动器110根据所述每个测试序列对应的每个传输协议,向所述待测SMBus 200发送与传输协议对应的数据包中的数据,以使所述待测SMBus 200将所述数据包中的数据传递给所述至少一个辅助测试组件。
***管理总线检测平台处于主动模式,即Master模式时,驱动器110能够向待测SMBus 200发送数据。因此,驱动器110可以获取序列存储在中存储的测试序列,并根据测试序列对应的传输协议,向待测SMBus 200发送数据包中的数据。其中,数据包中封装有多种字段,数据包中封装的字段可以根据传输协议的格式确定。
可选地,请参见图4,图4示出了步骤S120的一种具体实施方式的流程示意图,具体包括如下步骤S121至步骤S122:
步骤S121,驱动器110在发送数据包中的数据时,对发送的数据进行计数。
步骤S122,当发送的数据的数量达到对应的传输协议设置的数量后,所述驱动器110从所述传输协议获取对应的状态标志位,并向所述待测SMBus 200发送所述状态标志位,以使与所述待测SMBus 200连接的至少一个辅助测试组件根据所述状态标志位切换工作状态。
驱动器110在发送数据包中的数据时,是根据传输协议进行发送。某一固定的传输协议其格式是固定的,例如,不妨设a bit数据后,对应b状态标志位。因此,驱动器110在根据传输协议向待测SMBus 200发送数据时,可以对发送的数据进行计数:每发出1bit数据,便在累积量的基础上加一。当累积量达到a bit时,则需要向待测SMBus 200发送状态标志位,驱动器110可以从传输协议获取到b状态标志位,并将b状态标志位发送向待测SMBus200。
其中,驱动器110从所述传输协议获取对应的状态标志位,并向所述待测SMBus200发送,包括:第一状态机在从传输协议获取到RESTART状态标志位时,向所述待测SMBus200发送RESTART标志位;第一状态机在从传输协议获取到STOP状态标志位时,处于停止状态SM_STOP,并向所述待测SMBus 200发送STOP标志位,在发送STOP标志位后处于空闲状态SM_IDLE。
驱动器110内部的第一状态机在从传输协议获取到状态标志位时,可以将自身调整成与状态标志位对应的状态,并可以根据获取到的状态标志位改变与待测SMBus 200连接的辅助测试组件的状态,从而更好地向待测SMBus 200发送数据,或接收来自待测SMBus200的数据。
可选地,在一种具体实施方式中,驱动器110在发送数据包中的数据时,同时还会发送存储在数据包中的读写状态位,具体包括如下步骤:若所述驱动器发送数据包中的数据的过程中获取到读标志位,所述第一状态机切换至收取状态;所述驱动器在所述第一状态机处于收取状态时,等待从与所述待测SMBus连接的至少一个辅助测试组件读取数据;若所述驱动器发送数据包中的数据的过程中获取到写标志位,所述第一状态机切换至发送状态;所述驱动器在所述第一状态机处于发送状态时,将数据或地址发送向所述待测SMBus,以使所述待测SMBus传递给所述至少一个辅助测试组件。
第一状态机在驱动器110从数据包获取数据并发送的过程中,如果获取到读标志位R,则确定第一状态机切换为收取状态,从而等待接收从与所述待测SMBus 200连接的至少一个辅助测试组件发送的数据。
如果驱动器110获取到写标志位W,则确定第一状态机切换为发送状态,从而使驱动器110向待测SMBus 200发送地址信息或数据信息。通过动作标志位的指示灵活地切换第一状态机的状态,提高驱动器110以及与待测SMBus 200连接的辅助测试组件之间的数据传输效率。
步骤S130,驱动器110接收所述至少一个辅助测试组件通过所述待测SMBus 200返回的反馈信号,并根据所述反馈信号,确定对应的测试序列是否正确。
驱动器110在将测试序列对应的数据包中的数据发送给辅助测试组件的过程中,辅助测试组件也会对接收到的数据进行计数,并且在接收到的数据超过设定数量后,辅助测试组件对数据进行解析并返回反馈信号。
驱动器110接收辅助测试组件返回的反馈信号,并确定对应的测试序列是否正确。若驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送数据;若驱动器110接收到的是NACK信号,则令第一状态机切换到停止状态SM_STOP。在驱动器110接收到的反馈信号均是ACK信号时,可以确定对应的测试序列正确;若驱动器110接收到的反馈信号中存在NACK信号,则可以确定对应的测试序列错误。
不妨以具体例子对上述步骤S110至步骤S130进行说明:
请参见图6,图6中的I和II分别示出了驱动器110连续发送向待测SMBus 200的两个测试序列。其中,I属于block write测试序列,II属于block read测试序列。block write协议被用户封装于block write测试序列,block read协议被用户封装于block read测试序列。
对于图6中的I:
驱动器110向待测SMBus 200依次发送START状态标识位S、Slave_addr[6:0]字段以及写标志位W,并在发送完写标志位W后,收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的I中写标志位W与CMD_LD_ADDR字段之间的A。
驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送CMD_LD_ADDR字段,并在发送完CMD_LD_ADDR字段后,接收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的I中CMD_LD_ADDR字段与Byte Count=4字段之间的A。
驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送Byte Count=4字段,并在发送完Byte Count=4字段后,接收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的I中Byte Count=4字段与Addr[31:24]字段之间的A。
驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送Addr[31:24]字段,并在发送完Addr[31:24]字段后,接收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的I中Addr[31:24]字段与Addr[23:16]字段之间的A。
驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送Addr[23:16]字段,并在发送完Addr[23:16]字段后,接收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的I中Addr[23:16]字段与Addr[15:8]字段之间的A。
驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送Addr[15:8]字段,并在发送完Addr[15:8]字段后,接收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的I中Addr[15:8]字段与Addr[7:0]字段之间的A。
驱动器110接收到的是ACK信号,且驱动器110已完成四组地址字段:Addr[31:24]字段、Addr[23:16]字段、Addr[15:8]字段、Addr[7:0]字段的发送,因此根据block write协议,驱动器110向待测SMBus 200发送STOP状态标志位P,从而实现了图6中I对应的测试序列:block write测试序列的检测。由于在图6中,待测SMBus 200传递回来的辅助测试组件返回的反馈信号均是ACK信号,因此,可以判定该block write测试序列正确。
其中,上述的Byte Count=4字段中的4仅为示意,其具体值可以根据辅助测试组件的支持情况进行设置,可以为4,其后会跟随有四组地址字段;也可以是8,其后会跟随有八组地址字段。Byte Count的具体数量不应该理解为是对本申请的限制。
对于图6中的II:
驱动器110向待测SMBus 200依次发送START状态标识位S、Slave_addr[6:0]字段以及写标志位W,并在发送完写标志位W后,收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的II中写标志位W与CMD_RD_DATA字段之间的A。
驱动器110接收到的是ACK信号,则令第一状态机继续保持SM_SEND状态,并且驱动器110继续向待测SMBus 200发送CMD_RD_DATA字段,并在发送完CMD_RD_DATA字段后,接收到待测SMBus 200传递回来的辅助测试组件返回的反馈信号:ACK信号,即图6的II中CMD_RD_DATA字段与RESTART状态标志位Sr之间的A。
驱动器110在发送Slave_addr[6:0]字段、写标志位W以及CMD_RD_DATA字段的过程中,对发送的数据进行着记数。其中,Slave_addr[6:0]字段对应7bit,写标志位W对应1bit,CMD_RD_DATA字段对应8bit,即当发送完CMD_RD_DATA字段后,驱动器110中的累积量为7+1+8=16bit。
根据block read协议的规定,当达到累积量16bit,且收到辅助测试组件经待测SMBus返回的ACK信号时,会对应状态标志位Sr,因此,驱动器110可以从block read协议获取到状态标志位Sr,并将状态标志位Sr发送向待测SMBus 200。若收到辅助测试组件经待测SMBus返回的NACK信号,则会在此处终止,第一状态机进入SM_STOP状态,驱动器发送状态标志位P。
根据block read协议的规定,驱动器110在发送完状态标志位Sr后,又依次发送了Slave addr[6:0]字段以及读标志位R。在驱动器110从数据包获取到读标志位R时,第一状态机处于收取状态,驱动器110等待从与待测SMBus 200连接的至少一个辅助测试组件读取数据。
与待测SMBus 200连接的至少一个辅助测试组件返回与读标志位R对应的ACK信号和Byte Count=4字段,其中,ACK信号为图6中的II的读标志位R与Byte Count=4字段之间的A。上述的Byte Count=4由辅助测试组件返回,其具体数值可以是4,也可以是其他任意正整数值,该值表示后续返回的数据的byte的数量,即Byte Count=m,则表示辅助测试组件后续要返回m bype的数据,驱动器在接收到满足Byte Count的数目的数据后,可以发出状态标志位P。
驱动器110返回与Byte Count=4字段对应的ACK信号,并依次接收到与待测SMBus200连接的至少一个辅助测试组件返回的RdData[31:24]字段、RdData[23:16]字段、RdData[15:8]字段以及RdData[7:0]字段。驱动器110每接收到一个字段,并返回与字段对应的ACK信号。
驱动器110已完成接收四组地址字段:RdData[31:24]字段、RdData[23:16]字段、RdData[15:8]字段以及RdData[7:0]字段,因此根据block read协议,驱动器110向待测SMBus 200发送STOP状态标志位P,从而实现了图6中II对应的测试序列:block read测试序列的检测。由于在图6中,待测SMBus 200传递回来的辅助测试组件返回的反馈信号以及驱动器110发送的反馈信号均是ACK信号,因此,可以判定该block read测试序列正确。
可选地,在一种具体实施方式中,所述方法还可以包括:监控器150从所述双向接口180获取完整的数据包,并对所述数据包进行奇偶校验,获得第一奇偶校验值;所述监控器150将所述第一奇偶校验值与从所述驱动器110获取的相同数据包的第二奇偶校验值进行比对,若两者不一致,则确定待测SMBus 200存在错误。
监控器150还可以从双向接口180处获取完整的数据包,并进行奇偶校验,得到第一奇偶校验值。驱动器110在将数据包的数据发出时,也会计算出一个奇偶校验值。因此,驱动器110可以从驱动器110处获得相同的数据包的第二奇偶校验值,并将两者进行比对。若两者不一致,则表示数据的发出环节存在异常。
请参见图5,图5示出了***管理总线检测平台处于从动模式时的部分步骤的流程示意图,具体包括如下步骤S210至步骤S240:
步骤S210,当所述***管理总线检测平台处于从动模式时,所述第一状态机处于等待开始标志位状态,并实时检测是否接收到START标志位。
步骤S220,第一状态机在接收到START标志位时,切换为等待接收数据的状态。
步骤S230,第一状态机在每接收到单位数量的数据时,切换为发送回馈信息状态,向所述待测SMBus 200返回一个回馈信息,并对接收到的数据的单位数量进行计数。
步骤S240,第一状态机在计数的累计数量小于预设数量时,切换回等待接收数据的状态;用于在计数的累计数量大于或等于所述预设数量时,切换为等待接收停止标志位状态。
第一状态机在***管理总线检测平台处于从动Slave模式时,可以根据辅助测试组件发送的数据和状态标志位,调整自身的工作状态,从而灵活地应对与待测SMBus 200连接的辅助测试组件之间的数据传输。
可选地,在一种具体实施方式中,***管理总线检测平台处于从动模式时,***管理总线检测方法还可以包括:在所述第一状态机接收到单位数量的数据时,所述驱动器110将接收到的数据与预先存储的数据进行比对;若所述接收到的数据与所述预先存储的数据不一致,则所述驱动器110报错。
在***管理总线检测平台处于Slave模式时,驱动器110接收到的数据包对应的传输协议较为单一,驱动器110接收到的数据也较为固定。因此,驱动器110中可以预先存储有与传输协议对应的数据。驱动器110通过将接收到的数据与预先存储的数据进行比对,便可以判断待测SMBus 200是否异常。若驱动器110报错,则可以判定待测SMBus 200异常。
请参见图7,不妨以驱动器110接收到SMBus Host Notify protocol协议对应的数据包为例进行说明:
***管理总线检测平台处于Slave模式时,驱动器110接收辅助测试组件经待测SMBus 200传递过来的数据。其中,辅助测试组件根据SMBus Host Notify protocol协议向驱动器110发送与SMBus Host Notify protocol协议对应的数据包中的数据。
辅助测试组件先发送START标志位,即图7中的S,驱动器110接收START标志位,第一状态机由空闲状态切换成等待接收数据的状态RCV_ARP_GET_BYTE。
辅助测试组件根据SMBCLK的波形,通过SMBDAT向驱动器110发送数据。可选地,可以每逢SMBCLK的上升沿,向驱动器110发送1bit的数据。驱动器110的第一状态机也随之1bit、1bit的接收数据,在驱动器110接收到8bit的数据时,状态机可以切换成发送回馈信息状态RCV_ARP_SEND_ACK,向待测SMBus 200返回一个回馈信息ACK信息。
请参见图7,图7中示出的Notify_ARP_MST_SLV_ADDR、NOTIFY_ARP_MST_DEV_ADDR、NOTIFY_ARP_MST_BYTE_LOW以及NOTIFY_ARP_MST_BYTE_HIGH均为8bit;即在驱动器110接收到Notify_ARP_MST_SLV_ADDR后,会返回一个ACK信息,即图7中的Notify_ARP_MST_SLV_ADDR与NOTIFY_ARP_MST_DEV_ADDR之间的A。同时,驱动器110对接收到的数据进行累加,记为1。驱动器110判断接收的数据的数据量是否大于或等于预设数量4,当前1小于预设数量4,因此第一状态机切换回等待接收数据的状态RCV_ARP_GET_BYTE,继续接收数据。
在驱动器110接收到Notify_ARP_MST_SLV_ADDR后,会返回一个ACK信息,即图7中的NOTIFY_ARP_MST_DEV_ADDR与NOTIFY_ARP_MST_BYTE_LOW之间的A。同时,驱动器110对接收到的数据进行累加,记为2。驱动器110判断接收的数据的数据量是否大于或等于预设数量4,当前2小于预设数量4,因此第一状态机切换回等待接收数据的状态RCV_ARP_GET_BYTE,继续接收数据。
驱动器110接收到NOTIFY_ARP_MST_BYTE_LOW后,会返回一个ACK信息,即图7中的NOTIFY_ARP_MST_BYTE_LOW以及NOTIFY_ARP_MST_BYTE_HIGH之间的A。同时,驱动器110对接收到的数据进行累加,记为3。驱动器110判断接收的数据的数据量是否大于或等于预设数量4,当前3小于预设数量4,因此第一状态机切换回等待接收数据的状态RCV_ARP_GET_BYTE,继续接收数据。
驱动器110接收到NOTIFY_ARP_MST_BYTE_HIGH后,会返回一个ACK信息,即图7中的NOTIFY_ARP_MST_BYTE_HIGH与STOP标志位之间的A。同时,驱动器110对接收到的数据进行累加,记为4。驱动器110判断接收的数据的数据量是否大于或等于预设数量4,当前4等于预设数量4,第一状态机切换为等待接收停止标志位状态RCV_ARP_GET_STOP。第一状态机在接收到STOP标志位时,切换回空闲状态,等待接收下一次的START标志位。
驱动器110中可以预先存储有与SMBus Host Notify protocol协议对应的数据包中的字段:Notify_ARP_MST_SLV_ADDR、NOTIFY_ARP_MST_DEV_ADDR、NOTIFY_ARP_MST_BYTE_LOW以及NOTIFY_ARP_MST_BYTE_HIGH。驱动器110通过将接收到的字段与预先存储的字段进行比对,便可以判断待测SMBus 200是否异常。若接收到的字段与预先存储的字段的内容不一致,驱动器110报错,表示待测SMBus200异常。
在本申请所提供的实施例中,应该理解到,所揭露设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种***管理总线检测平台,其特征在于,用于对待测***管理总线SMBus进行检测,所述平台包括:序列存储器和驱动器,所述序列存储器用于存储多种测试序列和与每种所述测试序列对应的数据包,每种所述测试序列分别对应一种传输协议,数据包为根据传输协议的格式将多个字段封装获得;所述待测SMBus连接有至少一个辅助测试组件;
所述驱动器用于在所述***管理总线检测平台处于主动模式时,获取所述序列存储器中存储的多个测试序列的每个测试序列;根据所述每个测试序列对应的每个传输协议,向所述待测SMBus发送与传输协议对应的数据包中的数据,以使所述待测SMBus将所述数据包中的数据传递给所述至少一个辅助测试组件;接收所述至少一个辅助测试组件通过所述待测SMBus返回的反馈信号,并根据所述反馈信号,确定对应的测试序列是否正确。
2.根据权利要求1所述的***管理总线检测平台,其特征在于,
所述驱动器还用于在发送数据包中的数据时,对发送的数据进行计数;当发送的数据的数量达到对应的传输协议设置的数量后,从所述传输协议获取对应的状态标志位,并向所述待测SMBus发送所述状态标志位,以使与所述待测SMBus连接的至少一个辅助测试组件根据所述状态标志位切换工作状态。
3.根据权利要求2所述的***管理总线检测平台,其特征在于,所述驱动器包括第一状态机;
所述第一状态机用于在从传输协议获取到RESTART状态标志位时,向所述待测SMBus发送RESTART标志位;
所述第一状态机还用于在从传输协议获取到STOP状态标志位时,切换至停止状态,并向所述待测SMBus发送STOP标志位;在发送STOP标志位后切换至空闲状态。
4.根据权利要求1所述的***管理总线检测平台,其特征在于,所述驱动器包括第一状态机;
在所述驱动器发送数据包中的数据的过程中获取到读标志位时,所述第一状态机切换至收取状态;
所述驱动器用于在所述第一状态机处于收取状态时,等待从与所述待测SMBus连接的至少一个辅助测试组件读取数据;
在所述驱动器发送数据包中的数据的过程中获取到写标志位时,所述第一状态机切换至发送状态;
所述驱动器用于在所述第一状态机处于发送状态时,将数据或地址发送向所述待测SMBus,以使所述待测SMBus传递给所述至少一个辅助测试组件。
5.根据权利要求1所述的***管理总线检测平台,其特征在于,所述驱动器包括第一状态机;
所述第一状态机用于:在所述***管理总线检测平台处于从动模式时,处于等待开始标志位状态,并实时检测是否接收到START标志位;在接收到START标志位时,切换为等待接收数据的状态;在每接收到单位数量的数据时,切换为发送回馈信息状态,向所述待测SMBus返回一个回馈信息,并对接收到的数据的单位数量进行计数;在计数的累计数量小于预设数量时,切换回等待接收数据的状态;在计数的累计数量大于或等于所述预设数量时,切换为等待接收停止标志位状态。
6.根据权利要求5所述的***管理总线检测平台,其特征在于,
第一状态机用于接收单位数量的数据,并将所述单位数量的数据发送给驱动器;
所述驱动器用于将接收到的数据与预先存储的数据进行比对;若所述接收到的数据与所述预先存储的数据不一致,则所述驱动器报错。
7.根据权利要求1所述的***管理总线检测平台,其特征在于,所述驱动器用于通过双向接口与待测SMBus连接,所述平台还包括监控器;
所述监控器用于从所述双向接口获取完整的数据包,并对所述数据包进行奇偶校验,获得第一奇偶校验值;将所述第一奇偶校验值与从所述驱动器获取的相同数据包的第二奇偶校验值进行比对,若两者不一致,则确定待测SMBus存在异常。
8.一种处理器,其特征在于,包括权利要求1-7任一项所述的***管理总线检测平台。
9.一种***管理总线检测方法,其特征在于,用于通过***管理总线检测平台对待测***管理总线SMBus进行检测,所述平台包括:序列存储器和驱动器,所述序列存储器存储多种测试序列和与每种所述测试序列对应的数据包,每种所述测试序列分别对应一种传输协议,数据包为根据传输协议的格式将多个字段封装获得;所述待测SMBus连接有至少一个辅助测试组件;所述方法包括:
当所述***管理总线检测平台处于主动模式时,所述驱动器获取所述序列存储器中存储的多个测试序列的每个测试序列;
所述驱动器根据所述每个测试序列对应的每个传输协议,向所述待测SMBus发送与传输协议对应的数据包中的数据,以使所述待测SMBus将所述数据包中的数据传递给所述至少一个辅助测试组件;
所述驱动器接收所述至少一个辅助测试组件通过所述待测SMBus返回的反馈信号,并根据所述反馈信号,确定对应的测试序列是否正确。
10.根据权利要求9所述的方法,其特征在于,所述驱动器根据所述每个测试序列对应的每个传输协议,向所述待测SMBus发送与传输协议对应的数据包中的数据,包括:
所述驱动器在发送数据包中的数据时,对发送的数据进行计数;
当发送的数据的数量达到对应的传输协议设置的数量后,所述驱动器从所述传输协议获取对应的状态标志位,并向所述待测SMBus发送所述状态标志位,以使与所述待测SMBus连接的至少一个辅助测试组件根据所述状态标志位切换工作状态。
11.根据权利要求10所述的方法,其特征在于,所述驱动器包括第一状态机;
所述驱动器从所述传输协议获取对应的状态标志位,并向所述待测SMBus发送,包括:
所述第一状态机在从传输协议获取到RESTART状态标志位时,向所述待测SMBus发送RESTART标志位;
所述第一状态机在从传输协议获取到STOP状态标志位时,切换至停止状态,并向所述待测SMBus发送STOP标志位;在发送STOP标志位后切换至空闲状态。
12.根据权利要求9所述的方法,其特征在于,所述驱动器包括第一状态机;
所述向所述待测SMBus发送与传输协议对应的数据包中的数据,包括:
在所述驱动器发送数据包中的数据的过程中获取到读标志位时,所述第一状态机切换至收取状态;
所述驱动器在所述第一状态机处于收取状态时,等待从与所述待测SMBus连接的至少一个辅助测试组件读取数据;
在所述驱动器发送数据包中的数据的过程中获取到写标志位时,所述第一状态机切换至发送状态;
所述驱动器在所述第一状态机处于发送状态时,将数据或地址发送向所述待测SMBus,以使所述待测SMBus传递给所述至少一个辅助测试组件。
13.根据权利要求9所述的方法,其特征在于,所述驱动器包括第一状态机;所述方法还包括:
当所述***管理总线检测平台处于从动模式时,所述第一状态机处于等待开始标志位状态,并实时检测是否接收到START标志位;
所述第一状态机在接收到START标志位时,切换为等待接收数据的状态;
所述第一状态机在每接收到单位数量的数据时,切换为发送回馈信息状态,向所述待测SMBus返回一个回馈信息,并对接收到的数据的单位数量进行计数;
所述第一状态机在计数的累计数量小于预设数量时,切换回等待接收数据的状态;用于在计数的累计数量大于或等于所述预设数量时,切换为等待接收停止标志位状态。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
第一状态机接收单位数量的数据,并将所述单位数量的数据发送给驱动器;
所述驱动器将接收到的数据与预先存储的数据进行比对;若所述接收到的数据与所述预先存储的数据不一致,则所述驱动器报错。
15.根据权利要求9所述的方法,其特征在于,所述驱动器用于通过双向接口与待测SMBus连接,所述平台还包括监控器;所述方法还包括:
所述监控器从所述双向接口获取完整的数据包,并对所述数据包进行奇偶校验,获得第一奇偶校验值;
所述监控器将所述第一奇偶校验值与从所述驱动器获取的相同数据包的第二奇偶校验值进行比对,若两者不一致,则确定待测SMBus存在异常。
CN202010825541.3A 2020-08-17 2020-08-17 ***管理总线检测平台、处理器及***管理总线检测方法 Pending CN111930582A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010825541.3A CN111930582A (zh) 2020-08-17 2020-08-17 ***管理总线检测平台、处理器及***管理总线检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010825541.3A CN111930582A (zh) 2020-08-17 2020-08-17 ***管理总线检测平台、处理器及***管理总线检测方法

Publications (1)

Publication Number Publication Date
CN111930582A true CN111930582A (zh) 2020-11-13

Family

ID=73310986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010825541.3A Pending CN111930582A (zh) 2020-08-17 2020-08-17 ***管理总线检测平台、处理器及***管理总线检测方法

Country Status (1)

Country Link
CN (1) CN111930582A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112417798A (zh) * 2020-11-27 2021-02-26 成都海光微电子技术有限公司 一种时序测试方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441347A (zh) * 2002-02-26 2003-09-10 微软公司 ***管理总线通知
CN101727375A (zh) * 2008-10-22 2010-06-09 英业达集团(天津)电子技术有限公司 新世代周边连接接口的测试***及其测试方法
CN102073568A (zh) * 2009-11-20 2011-05-25 英业达股份有限公司 ***管理总线的测试方法
CN102368224A (zh) * 2011-06-29 2012-03-07 奇智软件(北京)有限公司 一种硬件检测的处理方法及装置
CN103473161A (zh) * 2013-09-16 2013-12-25 浪潮电子信息产业股份有限公司 一种内存smbus信号测试的发包方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1441347A (zh) * 2002-02-26 2003-09-10 微软公司 ***管理总线通知
CN101727375A (zh) * 2008-10-22 2010-06-09 英业达集团(天津)电子技术有限公司 新世代周边连接接口的测试***及其测试方法
CN102073568A (zh) * 2009-11-20 2011-05-25 英业达股份有限公司 ***管理总线的测试方法
CN102368224A (zh) * 2011-06-29 2012-03-07 奇智软件(北京)有限公司 一种硬件检测的处理方法及装置
CN103473161A (zh) * 2013-09-16 2013-12-25 浪潮电子信息产业股份有限公司 一种内存smbus信号测试的发包方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112417798A (zh) * 2020-11-27 2021-02-26 成都海光微电子技术有限公司 一种时序测试方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN100366029C (zh) 通信控制器、主机端控制器、通信设备、通信***和方法
CN105703883B (zh) 在统一协议通信中交换错误信息的装置、方法和***
CN101399654B (zh) 一种串行通信方法和装置
CA1315008C (en) System permitting peripheral interchangeability
CN100365994C (zh) 用于调试以太网的方法和装置
CN105700510A (zh) Can通信***的错误分散检测方法及can通信***
CN112272243B (zh) 地址分配方法
CN101123485B (zh) iSCSI报文处理方法和装置、错误恢复方法和装置
CN110941218A (zh) 一种can总线控制器测试方法
CN111104272A (zh) 一种基于rx和tx的can总线控制器测试方法
US20030226065A1 (en) Controller area network controller for making a self-diagnosis of a function
CN105446837A (zh) 检测iic接口器件是否连接的方法、装置以及***
CN112422485B (zh) 一种传输控制协议的通信方法及装置
CN111930582A (zh) ***管理总线检测平台、处理器及***管理总线检测方法
CN116414752A (zh) 数据传输方法、装置、设备及介质
US20020128986A1 (en) Communication system for franking system
CN101800672A (zh) 设备检测方法和设备
CN109547274A (zh) 一种维护板切换方法、装置及第一网络设备
JP4034572B2 (ja) 遠隔割り込み信号の処理方法、システムおよびネットワークインターフェースシステム
CN102215145A (zh) 一种上报链路连通状态检测结果的方法和装置
US20230367508A1 (en) Complex programmable logic device and communication method
US8554966B2 (en) Method for data exchange
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
CN111460745B (zh) 一种设备芯片间连通性检测方法
AU599260B2 (en) Peripheral repeater box

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