位置:51电子网 » 技术资料 » 显示光电

基于Verilog的SMBus总线控制器的设计与实现

发布时间:2007/8/23 0:00:00 访问次数:1293


作者:陈宇杰 付安新

        摘要:SMBus是一种高效的同步串行总线。通过分析SMBus总线协议,提出了一种运行于基于PCI-Express技术的桥接芯片上的SMBus控制器的设计方案,并且用Verilog语言描述,最后在Altera公司的FPGA上得以实现。通过仿真测试,证明该方法是稳定有效的。

        关键词:SMBus 多μC通讯系统 Verilog

        SMBus是Intel公司于1995年发布的一种双向两线串行通讯总线标准,具有接口线少、通讯效率高等特点。应用于多μC(microcontroller)通讯系统中,可以满足绝大多数情况下对传输速率、信号稳定性等性能的要求,且相对于并行总线节省了大量的硬件资源。因此多μC通讯系统采用SMBus总线来实现是一种很好的解决方案。

        本文提出一种基于Verilog的SMBus总线控制器的设计方法。该方法将总线控制器用有限状态机来实现,并将其应用于基于PCI-Express技术的桥接芯片中。通过仿真测试,证明该方法是稳定有效的。

        1 SMBus规范分析

        SMBus由两根总线即串行数据线(SDA)和串行时钟线(SCL)构成。主要应用于主从系统。主器件控制总线操作,包括开始/结束传输、发送信息并产生SMBus总线系统时钟等。在整个传输过程中,所有的传送都通过主控的SCL来同步。为使总线有“线与”功能,所有器件的SMBus接口都必须是漏极开路或集电极开路的,并且通过上拉电阻使总线在空闲状态下为高电平状态。这种结构能使不同速度的器件同步运行。图1是典型的SMBus总线结构图。
        

        1.2 SMBus通讯时序

        总线上的所有器件都有一个唯一的地址,且都可以工作在传送或接收方式。因此,有四种工作模式,即主发送、主接收、从发送和从接收。SMBus总线还具有总线仲裁功能,保证在同一时间只有一个主器件在控制总线。

        图2是读/写一个字节的时序格式。图中白色块是主器件控制SDA线,灰度块是从器件控制SDA线,SCL线一直都由主器件控制。由图可见,传输由一个开始条件开始,并由一个结束条件中止。SDA上的数据在SCL高电平时必须保持稳定,不允许有电平跳变;SDA电平只有在SCL低电平时才可以改变。开始条件和结束条件是特殊的,可以在SCL高电平时改变SDA的电平,在SCL高是电平时,开始条件是把SDA从高电平拉到低电平,而结束条件则把SDA从低电平拉到高电平。开始条件和结束条件的这种定义方法可以避免电平与传输的数据相混淆。

        SMBus协议定义了十二种传输命令格式,其中以读/写一个字节命令格式最为重要。本文所设计的控制器主要用这两种命令格式,所以本文主要分析这两种格式,其它的与之类似,可以很容易地加以扩展,在此略过。

        下面分析图2的时序:

        1)总线空闲时,SCL和SDA保证为高电平,等待开始条件。

        2)主控产生开始条件,表明要发起传输。

        3)主控传送一个7位地址和一个写位,指定目标器件和写方式。

        4)目标器件应答。

        5)主控传送一个8位Command Code,指定本次操作类型。

        6)目标器件应答。

        7)如果是write byte,主控直接传送1byte数据;如果是read byte,则要产生restart条件,后跟目标地址和一个读位,然后开始接收目标数据。

        8)由接收方应答。

        9)主控发出结束条件,结束整个传输。


作者:陈宇杰 付安新

        摘要:SMBus是一种高效的同步串行总线。通过分析SMBus总线协议,提出了一种运行于基于PCI-Express技术的桥接芯片上的SMBus控制器的设计方案,并且用Verilog语言描述,最后在Altera公司的FPGA上得以实现。通过仿真测试,证明该方法是稳定有效的。

        关键词:SMBus 多μC通讯系统 Verilog

        SMBus是Intel公司于1995年发布的一种双向两线串行通讯总线标准,具有接口线少、通讯效率高等特点。应用于多μC(microcontroller)通讯系统中,可以满足绝大多数情况下对传输速率、信号稳定性等性能的要求,且相对于并行总线节省了大量的硬件资源。因此多μC通讯系统采用SMBus总线来实现是一种很好的解决方案。

        本文提出一种基于Verilog的SMBus总线控制器的设计方法。该方法将总线控制器用有限状态机来实现,并将其应用于基于PCI-Express技术的桥接芯片中。通过仿真测试,证明该方法是稳定有效的。

        1 SMBus规范分析

        SMBus由两根总线即串行数据线(SDA)和串行时钟线(SCL)构成。主要应用于主从系统。主器件控制总线操作,包括开始/结束传输、发送信息并产生SMBus总线系统时钟等。在整个传输过程中,所有的传送都通过主控的SCL来同步。为使总线有“线与”功能,所有器件的SMBus接口都必须是漏极开路或集电极开路的,并且通过上拉电阻使总线在空闲状态下为高电平状态。这种结构能使不同速度的器件同步运行。图1是典型的SMBus总线结构图。
        

        1.2 SMBus通讯时序

        总线上的所有器件都有一个唯一的地址,且都可以工作在传送或接收方式。因此,有四种工作模式,即主发送、主接收、从发送和从接收。SMBus总线还具有总线仲裁功能,保证在同一时间只有一个主器件在控制总线。

        图2是读/写一个字节的时序格式。图中白色块是主器件控制SDA线,灰度块是从器件控制SDA线,SCL线一直都由主器件控制。由图可见,传输由一个开始条件开始,并由一个结束条件中止。SDA上的数据在SCL高电平时必须保持稳定,不允许有电平跳变;SDA电平只有在SCL低电平时才可以改变。开始条件和结束条件是特殊的,可以在SCL高电平时改变SDA的电平,在SCL高是电平时,开始条件是把SDA从高电平拉到低电平,而结束条件则把SDA从低电平拉到高电平。开始条件和结束条件的这种定义方法可以避免电平与传输的数据相混淆。

        SMBus协议定义了十二种传输命令格式,其中以读/写一个字节命令格式最为重要。本文所设计的控制器主要用这两种命令格式,所以本文主要分析这两种格式,其它的与之类似,可以很容易地加以扩展,在此略过。

        下面分析图2的时序:

        1)总线空闲时,SCL和SDA保证为高电平,等待开始条件。

        2)主控产生开始条件,表明要发起传输。

        3)主控传送一个7位地址和一个写位,指定目标器件和写方式。

        4)目标器件应答。

        5)主控传送一个8位Command Code,指定本次操作类型。

        6)目标器件应答。

        7)如果是write byte,主控直接传送1byte数据;如果是read byte,则要产生restart条件,后跟目标地址和一个读位,然后开始接收目标数据。

        8)由接收方应答。

        9)主控发出结束条件,结束整个传输。

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!