掌桥专利:专业的专利平台
掌桥专利
首页

一种SMBus slave数字模块设计方法及装置

文献发布时间:2024-04-18 19:54:45


一种SMBus slave数字模块设计方法及装置

技术领域

本申请涉及芯片数据传输技术领域,具体而言,涉及一种SMBus slave数字模块设计方法及装置。

背景技术

SMBus是一种应用于移动PC或者桌面PC系统中的低速率通讯。它主要是通过一条廉价并且功能强大的总线(由两条线组成)来控制主板上的设备并收集相应的信息。SMBus为系统和电源管理这样的任务提供了一条控制总线,使用SMBus的系统,设备之间发送和接收消息都是通过SMBus,而不是使用单独的控制线,这样可以节省设备的管脚数。

目前asic芯片设计普遍实现的是Synopsys Design Ware生成的带AMBA APBslave接口的SMBus模块,相对于其他SMBus设备,它是一个SMBus master。也有asic芯片设计实现了SMBus模块,但是其支持的访问格式比较简单、读写效率比较低,也没有实现AMBA2.0规范的AHB接口,把SMBus总线接收到的数据通过AHB接口发出去,如果芯片内有其他master模块也要对芯片内的寄存器进行访问,则无法配合符合AMBA 2.0规范的仲裁模块做好访问的仲裁。

发明内容

本申请的目的在于,为了克服现有的技术缺陷,提供了一种SMBus slave数字模块设计方法及装置,通过master设备通过SMBus接口去访问芯片内的各个寄存器的内容,不一定要通过JTAG或者SWD接口,还能够支持读写多个word,有效提高SMBus读写寄存器的访问效率。

本申请目的通过下述技术方案来实现:

第一方面,本申请提出了一种SMBus slave数字模块设计方法,其特征在于,所述方法应用于chip芯片中的SMBus slave数字模块,所述chip芯片与master设备连接,所述SMBus slave数字模块与所述chip芯片中的多个片内模块连接,包括:

所述SMBus slave数字模块接收master设备发送的设备地址、读写地址和读数据;

所述SMBus slave数字模块将所述读写地址和所述读数据转换为AHB bus总线信息;

所述SMBus slave数字模块根据所述AHB bus总线信息访问所述chip芯片中的多个片内模块;

所述SMBus slave数字模块接收所述多个片内模块返回的反馈数据。

可选的,所述SMBus slave数字模块包括SMBus控制部件和AHB_CTRL控制部件,所述SMBus slave数字模块将所述读写地址和所述读数据转换为AHB bus总线信息的步骤包括:

所述SMBus控制部件通过ADDR总线将接收的所述读写地址发送至所述AHB_CTRL控制部件;

所述SMBus控制部件通过WDATA总线将接收的所述读数据发送至所述AHB_CTRL控制部件;

所述AHB_CTRL控制部件将所述读写地址和所述读数据转换为AHB bus总线信息。可选的,所述AHB bus总线信息符合AMBA 2.0时序规范。

可选的,所述SMBus slave数字模块接收master设备发送的设备地址、读写地址和读数据的步骤,包括:

所述master设备发送启动指令使得所述SMBus slave数字模块启动;

所述master设备发送设备地址至所述SMBus slave数字模块,所述SMBus slave数字模块反馈ACK信号;

若所述设备地址中的读写位为0则表明要进行写操作,所述master设备发送命令码,所述SMBus slave数字模块反馈ACK信号;

所述master设备发送字节计数码,所述SMBus slave数字模块反馈ACK信号;

所述master设备发送读写地址,所述SMBus slave数字模块反馈ACK信号;

若所述设备地址中的读写位1则表明要进行读操作,所述SMBus slave数字模块反馈ACK信号;

所述AHB_CTRL控制部件根据所述master设备发送的读写地址向多个片内模块发起读请求得到读数据。

可选的,在所述master设备发送命令码,所述SMBus slave数字模块反馈ACK信号之后还包括:

若所述命令码中的校验位为1,则所述master设备发出校验码,所述SMBus slave数字模块反馈ACK信号。

第二方面,本申请还提出了一种SMBus slave数字模块设计装置,所述装置应用于chip芯片中的SMBus slave数字模块,所述chip芯片与master设备连接,所述SMBus slave数字模块与所述chip芯片中的多个片内模块连接,包括:

所述SMBus slave数字模块接收master设备发送的设备地址、读写地址和读数据;

所述SMBus slave数字模块将所述读写地址和所述读数据转换为AHB bus总线信息;

所述SMBus slave数字模块根据所述AHB bus总线信息访问所述chip芯片中的多个片内模块;

所述SMBus slave数字模块接收所述多个片内模块返回的反馈数据。

第三方面,本申请还提出了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如第一方面任一项所述的SMBus slave数字模块设计方法。

第四方面,本申请还提出了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如第一方面任一项所述的SMBusslave数字模块设计方法。

上述本申请主方案及其各进一步选择方案可以自由组合以形成多个方案,均为本申请可采用并要求保护的方案;且本申请,(各非冲突选择)选择之间以及和其他选择之间也可以自由组合。本领域技术人员在了解本申请方案后根据现有技术和公知常识可明了有多种组合,均为本申请所要保护的技术方案,在此不做穷举。

本申请的有益效果在于:

第一、本申请实施例提出的SMBus slave数字模块,使得芯片外的master设备能够访问到芯片内SMBus slave数字模块和各个片内模块中寄存器的内容,不一定要通过JTAG或者SWD接口。

第二、本申请实施例提出的SMBus slave数字模块能够支持多种访问格式,芯片外的master设备能够通过下发不同的命令码(command code)来决定访问1个还是多个word,有效提高SMBus读写寄存器的访问效率。

第三、由于存在AMBA 2.0规范的AHB接口,通过AHB接口传输数据,如果芯片内有其他master模块也要对芯片内的寄存器进行访问,可以配合符合AMBA 2.0规范的仲裁模块做好访问的仲裁。

附图说明

图1示出了现有技术中的SMBus模块与其他模块的连接关系。

图2示出了本申请实施例提出的SMBus slave数字模块与master设备的连接示意图。

图3示出了本申请实施例提供的SMBus slave数字模块的内部示意图。

图4示出了master设备读取SMBus slave数字模块中的寄存器1个word示意图。

图5示出了function=011的访问格式示意图。

图6示出了function=100的访问格式示意图。

图7示出了function=101的访问格式示意图。

图8示出了function=110的访问格式示意图。

图9示出了function=111的访问格式示意图。

具体实施方式

以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1示出了现有技术中的SMBus模块与其他模块的连接关系,现有技术中的chip芯片内SMBus相对于片外SMBus设备为一个slave模块,片外SMBus设备相对于片内SMBus为一个slave设备,二者的主从关系为以片内SMBus为主,然后再片外SMBus设备为从,芯片内其他模块通过APB总线接口配置了该SMBus模块,然后该SMBus主动向芯片外的其他SMBus设备发起了访问请求。相对于其他SMBus设备,片外SMBus设备其支持的访问格式比较简单、读写效率比较低。此外由于片内SMBus使用的是APB bus接口与chip芯片的各个片内模块进行通信,不能实现AMBA 2.0规范的AHB接口。把SMBus总线接收到的数据通过AHB接口发出去,如果芯片内有其他master模块也要对芯片内的寄存器进行访问,则无法配合符合AMBA 2.0规范的仲裁模块做好访问的仲裁。

因此为了解决上述的问题,本申请提出了一种SMBus slave数字模块设计方法,使得片内Bus模块相对于芯片外的SMBus设备是一个SMBus slave数字模块,以芯片外的SMBus设备为主,以片内Bus模块为从,与现有技术的主从关系进行调换,不仅支持多种访问格式,还能有效提高主机通过SMBus对芯片内其他模块的读写效率,并且实现了AMBA 2.0规范的AHB接口,接下来对SMBus slave数字模块设计方法进行详细说明。

请参考图2,图2示出了本申请实施例提出的SMBus slave数字模块与master设备的连接示意图,chip芯片包括SMBus slave数字模块,SMBus slave数字模块利用数据线和时钟线与chip芯片的SMBus总线接口相连,接口的另一端连接master设备,master设备为其他SMBus设备,片内SMBus slave数字模块还与chip芯片中的多个片内模块连接通过AHBbus连接,SMBus slave数字模块设计方法包括以下步骤:

SMBus slave数字模块接收master设备发送的设备地址、读写地址和读数据;

SMBus slave数字模块将读写地址和读数据转换为AHB bus总线信息;

SMBus slave数字模块根据AHB bus总线信息访问chip芯片中的多个片内模块;

SMBus slave数字模块接收多个片内模块返回的反馈数据。

基于图2,请参照图3,图3示出了本申请实施例提供的SMBus slave数字模块的内部示意图,SMBus slave数字模块包括SMBus控制部件和AHB_CTRL控制部件,SMBus控制部件和AHB_CTRL控制部件之间通过ADDR总线、读数据总线和写数据总线连接。将读写地址和读数据转换为AHB bus总线信息的步骤包括:

SMBus控制部件通过ADDR总线将接收的读写地址发送至AHB_CTRL控制部件;

SMBus控制部件通过WDATA总线将接收的读数据发送至AHB_CTRL控制部件;

AHB_CTRL控制部件将读写地址和读数据转换为AHB bus总线信息。

芯片外的Smaster设备利用数据线和时钟线与chip芯片的SMBus总线接口发过来读写地址、读数据,通过AHB_CTRL控制部件转换成符合AMBA 2.0时序规范的AHB bus总线信息,然后再AHB bus总线信息访问chip芯片中的多个片内模块,而片内模块会反馈读到的数据,通过SMBus slave数字模块传递到SMBus总线接口,直至最终到master设备。

可选的,SMBus slave数字模块接收master设备发送的设备地址、读写地址和读数据的子步骤包括:

master设备发送启动指令使得SMBus slave数字模块启动;

master设备发送设备地址至SMBus slave数字模块,SMBus slave数字模块反馈ACK信号;

若设备地址中的读写位为0则表明要进行写操作,master设备发送命令码,SMBusslave数字模块反馈ACK信号;

master设备发送字节计数码,SMBus slave数字模块反馈ACK信号;

master设备发送读写地址,SMBus slave数字模块反馈ACK信号;

若设备地址中的读写位1则表明要进行读操作,SMBus slave数字模块反馈ACK信号;

AHB_CTRL控制部件根据master设备发送的读写地址向多个片内模块发起读请求得到读数据。

若命令码中的校验位为1,则master设备发出校验码,SMBus slave数字模块反馈ACK信号。

值得说明的是,本申请实施例提出的SMBus slave数字模块能够支持多种访问格式,片外SMBus设备能够通过下发不同的命令码(command code)来决定访问1个word(32bits)、2个word(64bits)、4个word(128bits)或者是多个word,请参考图4,图4示出了master设备读取SMBus slave数字模块中的寄存器1个word示意图,并结合表1,表1示出了命令代码(command code)对应的字段。

表1

图4中的白色背景数据是master设备下发的,灰色背景数据是SMBus slave数字模块反馈给master设备的。表2示出了另一种命令代码(command code)对应的字段:

表2

结合图4、表1以及表2,接下来以FUCTION=3’b110为例,其访问格式的流程如下:

1、master设备发起START启动指令使得SMBus slave数字模块启动;

2、master设备将设备地址slave address(7’h20)至SMBus slave数字模块,SMBusslave数字模块向master设备反馈ACK信号;

3、由于读写位(W/R位)为0则表明要进行写操作,此时master设备发送8位命令码(command code),命令码的第0位END位为0,第1位START位为1,表示跨多个事务的命令中的第一个事务,第2位至第4位表示FUCTION=010进行短格式读字操作,第7位PEC校验为1,master设备发出校验码,SMBus slave数字模块反馈ACK信号;

4、master设备发送8位字节计数码(byte count)至SMBus slave数字模块,SMBusslave数字模块反馈ACK信号;

5、master设备发送4个8位读写地址(offset byte)至SMBus slave数字模块,SMBus slave数字模块每接收到1个8位读写地址便反馈ACK信号;

6、由于master设备发送8位命令码中第7位PEC校验为1,master设备继续向SMBusslave数字模块发出8位pec校验码,SMBus slave数字模块反馈ACK信号。

7、master设备发送STOP指令。

8、由于master设备发送8位命令码的第2位至第4位表示FUCTION=010进行短格式读字操作,master设备发起START启动指令使得SMBus slave数字模块启动;

9、设备地址slave address(7’h20)至SMBus slave数字模块,SMBus slave数字模块向master设备反馈ACK信号;

10、读写位(W/R位)为0则表明要进行写操作,此时master设备发送8位命令码(command code),命令码的第0位END位为1,第1位START位为0,表示横跨多个事务的命令中的最后一个事务,第2位至第4位表示FUCTION=010进行短格式读字操作,第7位PEC校验为1,master设备发出校验码,SMBus slave数字模块反馈ACK信号;

11、master设备发起START启动指令使得SMBus slave数字模块启动

12、master设备将设备地址slave address(7’h20)至SMBus slave数字模块,SMBus slave数字模块向master设备反馈ACK信号;

13、读写位(W/R位)为1则表明要进行读操作,SMBus slave数字模块反馈ACK信号;

14、SMBus slave数字模块将第5步中的4个8位读写地址(offset byte)通过AHBCTRL控制部件发起AHB读请求至chip芯片中的多个片内模块,得到对应的32位读数据RDATA并对其进行存储;

15、SMBus slave数字模块将第4步中的8位字节计数码(byte count)发送至master设备,master设备反馈ACK信号;

16、SMBus slave数字模块将存储的32位读数据RDATA发送至master设备,每发送到1个8位读数据RDATA便能收到master设备反馈ACK信号。

17、重复步骤14,SMBus slave数字模块将32位读写地址加4,通过AHB CTRL控制部件发起AHB读请求至chip芯片中的多个片内模块,得到对应的32位读数据RDATA并对其进行存储,SMBus slave数字模块将存储的32位读数据RDATA发送至master设备,每发送到1个8位读数据RDATA便能收到master设备反馈ACK信号。

18、重复步骤14,SMBus slave数字模块将32位读写地址加8,通过AHB CTRL控制部件发起AHB读请求至chip芯片中的多个片内模块,得到对应的32位读数据RDATA并对其进行存储,SMBus slave数字模块将存储的32位读数据RDATA发送至master设备,每发送到1个8位读数据RDATA便能收到master设备反馈ACK信号。

19、重复步骤14,SMBus slave数字模块将32位读写地址加12,通过AHB CTRL控制部件发起AHB读请求至chip芯片中的多个片内模块,得到对应的32位读数据RDATA并对其进行存储,SMBus slave数字模块将存储的32位读数据RDATA发送至master设备,每发送到1个8位读数据RDATA便能收到master设备反馈ACK信号。

20、由于master设备发送8位命令码中第7位PEC校验为1,master设备继续向SMBusslave数字模块发出8位pec校验码,SMBus slave数字模块反馈ACK信号。

21、master设备发送STOP指令。

此外,由于FUCTION有不同的字段,图5至图9示出了不同FUCTION字段下的访问格式示意图,图5示出了function=011的访问格式示意图,master设备写SMBus slave数字模块内的寄存器1个word;图6示出了function=100的访问格式示意图,master设备连续读取SMBus slave数字模块内的寄存器2个word;图7示出了function=101的访问格式示意图,master设备连续写SMBus slave数字模块内的寄存器2个word;图8示出了function=110的访问格式示意图,master设备连续读取SMBus slave数字模块内的寄存器4个word;图9示出了function=111的访问格式示意图,master设备连续写SMBus slave数字模块内的寄存器4个word,该访问格式的流程如上述所示,在此不再进行赘述。

与现有技术相比,本申请实施例具有以下有益效果:

第一、本申请实施例提出的SMBus slave数字模块,使得芯片外的master设备能够访问到芯片内SMBus slave数字模块和各个片内模块中寄存器的内容,不一定要通过JTAG或者SWD接口。

第二、本申请实施例提出的SMBus slave数字模块能够支持多种访问格式,芯片外的master设备能够通过下发不同的命令码(command code)来决定访问1个还是多个word,有效提高SMBus读写寄存器的访问效率。

第三、由于存在AMBA 2.0规范的AHB接口,通过AHB接口传输数据,如果芯片内有其他master模块也要对芯片内的寄存器进行访问,可以配合符合AMBA 2.0规范的仲裁模块做好访问的仲裁。

此外,本申请实施例还提供了一种SMBus slave数字模块设计装置,该装置应用于chip芯片中的SMBus slave数字模块,chip芯片与master设备连接,SMBus slave数字模块与chip芯片中的多个片内模块连接。

SMBus slave数字模块接收master设备发送的设备地址、读写地址和读数据;

SMBus slave数字模块将读写地址和读数据转换为AHB bus总线信息;

SMBus slave数字模块根据AHB bus总线信息访问chip芯片中的多个片内模块;

SMBus slave数字模块接收多个片内模块返回的反馈数据。

本申请实施例提供了一种计算机设备,该计算机设备可以实现本申请实施例所提供的SMBus slave数字模块设计方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的SMBus slave数字模块设计方法的有益效果,详见前面的实施例,在此不再赘述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的SMBus slave数字模块设计方法中任一实施例的步骤。

其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一SMBusslave数字模块设计方法实施例中的步骤,因此,可以实现本申请实施例所提供的任一SMBus slave数字模块设计方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。

技术分类

06120116381374