PC机与单片机的SMBUS底层通讯实现

PC机与单片机的SMBUS底层通讯实现

ID:37639596

大小:440.21 KB

页数:9页

时间:2019-05-27

PC机与单片机的SMBUS底层通讯实现_第1页
PC机与单片机的SMBUS底层通讯实现_第2页
PC机与单片机的SMBUS底层通讯实现_第3页
PC机与单片机的SMBUS底层通讯实现_第4页
PC机与单片机的SMBUS底层通讯实现_第5页
资源描述:

《PC机与单片机的SMBUS底层通讯实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、http://www.paper.edu.cnPC机与单片机的SMBus底层通信实现罗冰南京理工大学计算机系,南京(210094)E-mail:luobing4365@163.com摘要:SMBus是一种高效率的同步串行总线。本文简要介绍了SMBus协议的相关知识,并在分析通讯协议的基础上,认为采用SMBus通讯协议作为无操作系统支持的PC机和单片机间的通信协议,是非常经济实用的技术选择。最后,以G31ME和C8051F32x为例,给出了具体实现方案和程序流程。关键词:底层通信;SMBus;从接收器;复合格式中图分类号:TP3

2、991.引言SMBus是1995年由Intel提出的一种双线通信专利技术,它完全符合系统管理总线规范1.1版,与I2C串行总线兼容。与当前流行的高速串行协议相比,SMBus的速度比较慢,但因其使用硬件少,支持此协议的产品非常多,在当前的计算机行业仍然有很大的应用面。目前对SMBus的使用大部分集中于嵌入式和工业控制领域,比如智能电池、双单片机间的通信等。虽然在PC机上很早以前就采用SMBus来采集系统硬件的信息,但是关于单片机和PC机间SMBus通信的研究非常少。笔者在实际工程开发过程中,需要实现PC机与MCU间的通信连接。因

3、传输的数据量比较小,速度要求不高,SMBus协议就非常适合这样的要求。实际的开发过程中,笔者选用的单片机是C8051F32x,PC机的主板选用了富士康生产的G31ME。大部分的C8051的单片机都集[1]成了SMBus总线,开发的时候就可以直接使用芯片中提供的各种功能。单片机部分是使用C语言编写的代码,对于PC机部分的代码,因为对时序要求较高,为便于控制硬件,使用的是C语言嵌入汇编的形式编写的。2.SMBus协议简介2.1标准概述SMBus标准是以Philips公司的I2C总线为基础,面向于不同系统间的通信。随着其标准的不断完

4、善与更新,它已经广泛的应用于IT产品之中。从2.0开始,SMBus又被规范到7层OSI[2]网络模型的前三层物理层、数据链层和网络层之中。2.2SMBus配置如图1,给出了一个典型的SMBus配置。数据线SDA和时钟线SCL都是双向的。SMBus接口的工作电压可以在3.0V和5.0V之间,总线上不同器件的工作电压可以不同。SCL(串行时钟)和SDA(串行数据)线是双向的,必须通过一个上拉电阻或等效电路将它们连到电源电压。连接在总线上的每个器件的SCL和SDA都必须是漏极开路或集电极开路的,因此当总线空闲时,这两条线都被拉到高电

5、平。SMBus的标准传输速率是1OOKHz~200KHz。但实际上最-1-http://www.paper.edu.cn大可达系统时钟频率的十分之一。这取决于用户的设置。当总线上接有不同速度的器件时。[3]可以采用延长SCL低电平时间的方法来同步它们之间的通讯。图1典型SMBus配置2.3SMBus操作有两种可能的数据传输类型:从主发送器到所寻址的从接收器(写)和从被寻址的从发送器到主接收器(读)。两种数据传输是都由主器件启动,主器件还在SCL上提供串行时钟。SMBus接口可以工作在主方式或从方式,总线上可以有多个主器件。如果

6、两个或多个主器件同时启动数据传输,仲裁机制将保证有一个主器件会赢得总线。协议规定:任何一个发送起始条件(START)和从器件地址的器件就成为该次数据传输的主器件。一次典型的SMBus数据传输包括一个起始条件(START)、一个地址字节(位7-1:7位从地址;位0:R/W方向位)、一个或多个字节的数据和一个停止条件(STOP)。每个接收的字节(由一个主器件或从器件)都必须用SCL高电平期间的SDA低电平(见图16.3)来确认(ACK)。如果接收器件不确认,则发送器件将读到一个“非确认”(NACK),这用SCL高[3]电平期间的S

7、DA高电平表示。方向位(R/W)在地址字节的最低位给出。方向位被设置为逻辑1表示“读”(READ)操作,方向位为逻辑0表示“写”(WRITE)操作。所有的数据传输都由主器件启动,可以寻址一个或多个目标从器件。主器件产生一个起始条件,然后发送地址和方向位。如果本次数据传输是一个从主器件到从器件的写操作,则主器件每发送一个数据字节后等待来自从器件的确认。如果是一个读操作,则由从器件发送数据并等待主器件的确认。在数据传输结束时,主器件产生一个停止条件,结束数据交换并释放总线。图2示出了一次典型的SMBus数据传输过程。图2SMBus

8、数据传输2.4总线仲裁及超时规定SMBus的仲裁机制是非破坏性的,总有一个器件赢得总线,不会发生数据丢失。一个-2-http://www.paper.edu.cn主器件只能在总线空闲时启动一次传输。在一个停止条件之后或SCL和SDA保持高电平已经超过了指定时间,则总线是空闲的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。