如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛SMBus协议分析及其在双MCU通讯中的应用SMBusProtocolAnalyseandItsUsingintheCommunicationbetween2MCU崔健,鲁志平CuiJian,LuZhiping摘要:SMBus是一种高效率的同步串行总线。本文在分析其通讯协议的基础上,认为采用SMBus通2SMBus协议分析讯协议作为双MCU间的通讯协议可以达到既节省引脚又减少时钟周期的效果。最后,以C8051F310为例,给出了具体实现方案和程序流程。2.1标准概述关键字:SMBus;双MCU系统;通讯协议Abstract:SMBusisakindofsynchronousserialbusSMBus标准最早由Intel公司于1995年withhighefficiency.Inthispaper,itsprotocolis发布,它以Philips公司的I2C(Inter-IC)总analysesed,andagoodeffectwithlittleneedofpin线为基础,面向于“不同系统组成芯片与系magnitudeandclocktimecanbeseeninthe统其他部分间的通讯”[文献2]。目前SMBuscommunicationbetween2MCUviaSMBus.A的最新版本是2.0版。随着其标准的不断完programflowchartonthecommunicationisalso善与更新,SMBUS已经广泛应用于IT产品provide,asanexampleusingC8051F310viaSMBus.之中,另外在智能仪器、仪表和工业测控领Keyword:SMBus;DoubleMCUsystem;域也得到了越来越多的应用。SMBus的广泛communicationprotocol应用与它卓越的硬件标准和简便的软件协议是分不开的。1引言在最新的Version2.0中,SMBus又被规范到7层OSI网络模型的前三层物理层在双MCU系统中,2片MCU之间的(physicallayer)、数据链层(datalinklayer)通讯能否达到协调简易是一个必须考虑的和网络层(networklayer)之中。问题。文献1中介绍了传统的通讯方案,有采用并口的直接通讯,使用UART的异步2.2通讯系统的结构串行通讯,使用SPI的同步串行通讯以及使用双口RAM的新方案。但是这些方案不图1所示的是一个典型的SMBus通讯是占用硬件资源多就是软件实现繁琐,甚至系统。数据线SMBDAT和时钟线SMBCLK成本偏高。而本文所要讨论的采用二线总线都是双向的。这是个5V的SMBus系统,包的SMBus(SystemManagementBus)则能括一个由总线V内部供电的器件1和一个满足绝大多数情况下对传输速率、信号稳定DD自供电的器件2。R是上拉电阻,另外按照性、电路结构以及软件开发的需求,是目前pSMBus的标准,器件的SCL端和SDA端都单片机技术发展的一种趋势。必须是漏极开路或集电极开路的,因而当总线在空闲时,这两条线总能保持高电平,以便器件能够检测到总线的空闲状态。SMBus的标准传输速率是100KHz~200KHz,但实际上最大可达系统时钟频率的十分之一,这取决于用户的设置。当总线上接有不同速度的器件时,可以采用延长SCL低电平时间http://www.elecfans.com电子发烧友http://bbs.elecfans.com电子技术论坛的方法来同步它们之间的通讯。图2给出了一次典型通讯的时序。它包括一个起始条件START,一个7位的从地2.3协议中的信号定义址,一个1位的R/W信号,一个或多个字节的数据内容和一个停止条件STOP。按照协议,每传输一个数据字节(8位)必须紧使用固定电平来定义总线上的SMBus跟一个应答信号,该应答信号由该字节的接逻辑“”和逻辑“”。对于这两种逻辑信01收端发出。若发出的是NACK,则该次通讯的号,上的电平只有在为SMBDATSMBCLK主器件必须要产生一个停止条件以终止该高电平时才有意义,也只有在为SMBCLK次通讯。具体的,主器件产生一个起始条件低电平时SMBDAT上才能发生电平转换。(并产生SMBCLK上的时钟信号),然后对于其他情况,被协议用来表示如下的控制发送地址和R/W位(也称作方向位)。如条件:通讯起始条件和通讯停止条START果是写操作,则主器件每发送一个数据字节件。STOP便等待来自从器件的确认