PC机及单片机的SMBUS底层通讯实现.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PC 机与单片机的SMBus 底层通信实现 罗冰 南京理工大学 计算机系 ,南京(210094) E-mail:luobing4365@163.com 摘 要: SMBus 是一种高效率的同步串行总线。本文简要介绍了SMBus 协议的相关知识, 并在分析通讯协议的基础上,认为采用SMBus 通讯协议作为无操作系统支持的PC 机和单 片机间的通信协议,是非常经济实用的技术选择。最后,以 G31ME 和 C8051F32x 为例, 给出了具体实现方案和程序流程。 关键词:底层通信;SMBus ;从接收器;复合格式 中图分类号:TP399 1. 引 言 SMBus是1995年由Intel提出的一种双线通信专利技术,它完全符合系统管理总线规范 1.1版,与I2C串行总线兼容。与当前流行的高速串行协议相比,SMBus的速度比较慢,但因 其使用硬件少,支持此协议的产品非常多,在当前的计算机行业仍然有很大的应用面。 目前对SMBus的使用大部分集中于嵌入式和工业控制领域,比如智能电池、双单片机间 的通信等。虽然在PC机上很早以前就采用SMBus来采集系统硬件的信息,但是关于单片机和 PC机间SMBus通信的研究非常少。 笔者在实际工程开发过程中,需要实现PC机与MCU间的通信连接。因传输的数据量比较 小,速度要求不高,SMBus协议就非常适合这样的要求。实际的开发过程中,笔者选用的单 片机是C8051F32x,PC机的主板选用了富士康生产的G31ME 。大部分的C8051 的单片机都集 成了SMBus总线,开发的时候就可以直接使用芯片中提供的各种功能[1] 。单片机部分是使用 C语言编写的代码,对于PC 机部分的代码,因为对时序要求较高,为便于控制硬件,使用 的是C语言嵌入汇编的形式编写的。 2. SMBus 协议简介 2.1 标准概述 SMBus标准是以Philips公司的I2C总线为基础,面向于不同系统间的通信。随着其标准 的不断完善与更新,它已经广泛的应用于IT产品之中。从2.0开始,SMBus又被规范到7层OSI [2] 网络模型的前三层物理层、数据链层和网络层之中 。 2.2 SMBus 配置 如图1,给出了一个典型的SMBus配置。数据线SDA和时钟线SCL都是双向的。SMBus 接口 的工作电压可以在3.0V 和5.0V 之间,总线上不同器件的工作电压可以不同。SCL (串行时 钟)和SDA (串行数据)线是双向的,必须通过一个上拉电阻或等效电路将它们连到电源电 压。连接在总线上的每个器件的SCL 和SDA 都必须是漏极开路或集电极开路的,因此当总线 空闲时,这两条线都被拉到高电平。SMBus的标准传输速率是1OOKHz~200KHz。但实际上最 - 1 - 大可达系统时钟频率的十分之一。这取决于用户的设置。当总线上接有不同速度的器件时。 [3] 可以采用延长SCL低电平时间的方法来同步它们之间的通讯 。 图1 典型SMBus配置 2.3 SMBus 操作 有两种可能的数据传输类型:从主发送器到所寻址的从接收器(写)和从被寻址的从发 送器到主接收器(读)。两种数据传输是都由主器件启动,主器件还在SCL 上提供串行时钟。 SMBus 接口可以工作在主方式或从方式,总线上可以有多个主器件。如果两个或多个主器件 同时启动数据传输,仲裁机制将保证有一个主器件会赢得总线。协议规定:任何一个发送起 始条件(START)和从器件地址的器件就成为该次数据传输的主器件。 一次典型的SMBus 数据传输包括一个起始条件(START)、一个地址字节(位7-1:7 位 从地址;位0:R/W 方向位)、一个或多个字节的数据和一个停止

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档