电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 接口/总线/驱动 > 详细信息
接口/总线/驱动:基于Verilog的SMBus总线控制器的设计与实现
来源:   时间: 2007-4-28 11:42:58    

摘要: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)主控发出结束条件,结束整个传输。

图2

在SMBus上传输的每一个数据包括8个数据位和一个确认位,所以需要9个SCL时钟。主控确认位时释放总线,由从器件来驱动SDA。

1.3 SMBus的总线仲裁

一个主控开始一个传输时并不知道是否还有其它主控也想进行传输。当CLK为高电平时将在SDA线上进行仲裁。当一个主控发送高电平而有其它的主控发送低电平时,这个主控将失去总线控制权。

如果一个主控同时具有检测目标器件的功能,那当它失去总线控制权时,它仍将检测总线上实际传送的地址,以确定掌握总线控制的主控进行操作的目标。

2 SMBus控制器设计

本文将SMBus控制器分为两个模块:与SMBus的接口模块和与μC的接口模块。与SMBus的接口模块输出SDA和SCL两个信号;与μC的接口模块输出ADDR[7:0]、DATA[7:0]及若干控制信号。

为了便于μC对控制器的操作,与μC的接口模块中定义了四个8位寄存器,分别是数据寄存器(DR)、地址寄存器(AR)、状态寄存器(SR)和控制寄存器(CR)。DR存放传送或接收的数据;AR存放控制器的本地地址;SR存放当前控制器的状态;CR存放控制器配置和操作命令。SR是只读的,其它寄存器都可以被μC进行读写。

与SMBus的接口模块又分成下列几个分模块:SCL看门狗、开始/结束信号检测、仲裁检测、开始/结束信号生成、SCL生成状态机和主状态机等模块。

看门狗模块用来处理SMBus协议规定的正常SCL和SDA不可以出现的两种情况:

(1)SCL低电平超过25ms。一旦超过,所有器件必须重置。在本设计中,一旦检测到SCL下降沿就开始计时,25ms内出现上升沿则计数器清零。在计数超过时限则把控制寄存器中的RESET位置位。

(2)SCL和SDA高电平超过50ms。一旦超过,所有器件都认为总线处于空闲状态。这时会将状态寄存器中的BB(Bus Busy)位清零。

图3

SCL生成状态机模块用来控制SCL线。当SMBus处于主控模式时,它就要在传输期间一直控制SCL线。SCL的频率可以从10kHz到100kHz不等,可以通过对系统时钟进行分频得到。程序中定义了一些常量,如HIGH_COUNT、LOW_COUNT、HOLD等,用来设定计数器的上界,这样不仅使信号频率满足要求,而且也满足了SMBus对信号的一些电气要求,比如数据维持时间、开始结束信号维持时间等。有了这些量,修改总线频率也非常方便。

从对图2时序的分析可以看出,控制器只在有限的几个状态之间控制转换,所以在与SMBus接口的模块中采用有限状态机进行设计是合适的。图3为SMBus将制器的状态机图示及状态之间转换的条件。本示意图是读/写一个字节的状态机,是整个状态机的主体框架,其它命令格式只需在这个状态机上进行简单的修改即可。

下面以从器件为例分析一下主状态机。处于空闲状态时,若检测到开始信号,则进入接收地址状态。收完8位后,前7位和内部地址寄存器前7位进行比较,若相同则确认(拉低SDA),不同则不响应,因为主控找的不是自己。地址相同确认后开始接收命令,收完8位后确认。然后对命令解码,根据命令时入相应状态。当数据传送结束时,确认或被确认转到结束状态,一个时钟后返回空闲状态。

其它模块处理一些简单的事件,在此从略。

3 仿真

(1)从器件地址为1110010,主器件写11001101,写一个字节,命令为00000110。

(2)从器件地址为1110010,内部数据为10001100,主器件读一个字节,命令为00000111。

用modelsim6.0进行前仿真,波形图如图4所示。

图4

从仿真结束上看,总线波形满足SMBus总线的时序要求(符合图2的格式)。

用Altera公司的quartus II 4.0综合后,下载到Altera eplk30 FPGA芯片上进行测试,测试结果一切功能正常。

4 实际应用

本文设计的SMBus总线控制器应用于PCI-EXPRESS桥接芯片中,框图如图5所示。

在芯片初使化阶段,外围器件需要向桥接芯片的配置表内写入关于外围器件的一些属性(attribute),这样桥接芯片才能正常工作。因为这些信息比较特殊,所以用SMBus总线传输比较合适,而这正是在该芯片中应用SMBus控制器的原因。

5 注意事项

(1)SDA和SCL都定义为双向口,既要接收数据也要发送数据。在双向口的使用上,要注意读数据时要将双向口置为高阻态。

(2)状态机采用两个always块设计,一个时序slways块和一个组合always块。这样写不但易于综合,而且清楚明了,便于实现。

本文采用有限状态机的方法,将SMBus控制器分为与SMBus接口的模块和与μC接口的模块两个模块,从而实现SMBus总线控制器的设计。并将其应用于PCIPCI-EXPRESS桥接芯片中,通过软件及在altera公司的eplk-30 FPGA芯片上进行仿真测试,结果表明该方法是稳定有效的。



相关信息
发表评论
打印本页 关闭本页
针对DSP应用设计的系统存储器
  摘要  在使用数字信号处理器(DSP)的内嵌式设计中,DSP是从它内部的高速存储器中把应用程序取出来来执行。这个存储器通常是SRAM。然而,SRAM属於易失性存储器,所以需要用一只放在外面的非易失性存储器存放应用程序,在接通电源时,并在以後调用程序时,把应用程序装到内部的SRAM中。  DSP系统存储器(DSM)是针对使用DSP的嵌入式设计而推出的系统存储器解决方案,其中集成了系统内...
>>详细内容
基于单片机89C52与CPLD的数字语音存储与回放系统(CY62256)
  本系统以89C52单片机和MAX7000S系列EPM7128SLC84-15的CPLD器件为主控制器,实现将语音信号经脉冲编码调制、增量调制、"插值法"后压缩存储与回放的系统,用户可以通过按键选择录、放音的模式,同时液晶显示屏显示提示信息、录、放音的时间长度信号。 总体设计 系统组成框图如图1所示,主要由语音处理前向通道、A/D转换模块、单片机控制兼数据处理模块、D/A转换模块、键盘显示模块及后...
>>详细内容
AT89C2051和TLP521-2在自动窗控制器中的应用(图)
  引言---目前,国内外广泛使用PVC塑料窗体型材,其良好的隔热、保温、密封、隔音、节能、节木、保护环境等众多优点,使其日趋成为建筑用窗的主流材料。我国塑窗制造业的现状存在规模大、品级低、功能差、无高档、产能过剩、低水平等一系列问题,提高窗体产品质量和技术含量是塑窗业发展的主要方向。自动窗作为一种新兴技术,与电子、通信、光、IT技术组合,形成自动开启、关闭的新...
>>详细内容
ARMv7的Cortex系列微处理器技术特点
  引 言 随着嵌入式技术应用领域的不断扩展,对嵌入式系统的要求越来越高,而作为嵌入式系统核心的微处理器也面临日益严竣的挑战。ARM公司从成立以来,一直以知识产权(IP,Intelligence Property)提供者的身份出售知识产权,在32位RISC CPU开发领域中不断取得突破,其设计的微处理器结构已经从v3发展到现在的v7。Cortex系列处理器是基于ARMv7架构的,分为Cortex-M、Cortex-R和Cortex-A三类...
>>详细内容
汽车HID电子镇流器中逆变电路设计与分析
  1 引 言目前,HID汽车前照灯以其光效高,显色性好,寿命长等优点得到了广泛关注。与之配套的电子镇流器也成为当前电源研究中的一个热点。由于大部分汽车HID灯是交流灯,因此电子镇流器必须提供交流电流和交流电压。大多数两级式的电子镇流器均采用逆变电路作为输出级。 为了抑制HID灯,特别是短弧金属卤化物灯的声共振问题,经常采用低频交流方波供电[1-3]的策略,但为了快速点灯以及维...
>>详细内容
三星65nm 4Gb NAND闪存剖析
  在NAND闪存和DRAM这两个最重要的半导体存储器件市场,三星已稳坐头把交椅,分别占有52.9%和32.1%的份额,相应地是第二名的两倍多和接近两倍。即便如此,该公司也并未被外界看到有丝毫懈怠。三星继续积极采用更先进的工艺来生产其存储器件,这也是该公司得以获得当前强势市场地位的一个法宝。 三星成功的秘诀在于采取积极进取的战略,以尽可能快的速度将最先进的工艺技术用于产品制造。...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com