A N 113
S
ERIAL
C
沟通法
相关设备
本应用笔记适用于以下
设备:
C8051F000 , C8051F001 , C8051F002 ,
C8051F005 , C8051F006 , C8051F010 , C8051F011 ,
C8051F012 , C8051F020 , C8051F021 ,
C8051F022和C8051F023 。
与
SMB
美国
介绍
C8051F0xx设备都配备了一个SMBus
串行I / O设备,兼容的系统
管理总线规范1.1版,以及
作为我
2
C串行总线。在SMBus是一个双向方向
tional , 2线接口能够通信
与多个设备。 SMBus是一个商标
英特尔;我
2
C是飞利浦半导体公司的商标。
本应用笔记介绍了配置和
SMBus的操作。例如汇编和C
码给出:(1)接口的单个EEPROM中
用1个字节的地址空间中,在组件; ( 2 )跨
面临多重的EEPROM具有2个字节的地址
空间,在C ;和(3)对等体的对等通信
2 C8051F0xx设备之间,在C.
nizes它自己的地址,并响应,则成为
从设备的传输。要注意的是非常重要的
该分配一个指定的主设备不
有必要的。任何设备可以假定mas-的作用
器或从任何特定的传输。在该情况下
这两个设备尝试启动传输simul-
taneously ,仲裁机制迫使一个设备
放弃总线。该仲裁机制是非
破坏性的(一个设备胜无信息
丢失)。仲裁是深入了任意讨论
tration部分。
两条线均采用SMBus通信模式:
SDA(串行数据) ,和SCL (串行时钟) 。每
线是双向的,与方向取决于
什么模式的设备都在,主总是
提供SCL ;任一设备可以发送SDA上。
两线应连接到正电源
提供通过一个上拉电路。对所有设备
SMBus的线应该有一个漏极开路或开放协作
择器的输出,以使得线可以保持高
当总线空闲。的线被拉到低电平,如果一个或
更多的设备试图输出一个低电平信号。所有
设备必须输出一个高电平为线,以保持
高。一个典型的SMBus配置如图
图1 2页。
SMBus规范
本节介绍的SMBus的说明
协议。 SMBus的讨论开始,在未来
部分 - 使用SMBus的。
SMBus的结构
一个SMBus系统是一个2线的网络,其中每个
装置具有一个唯一的地址和数据,可
由网络上的任何其它设备。所有转移
由主设备发起;如果一个设备recog-
修订版1.3 12/03
版权所有2003 Silicon Laboratories公司
AN113-DS13
AN11 3
VDD = + 5V / + 3V
设备1
SDA
SCL
设备2
设备3
图1.典型的SMBus配置
握手
SMBus的使用不同的线路条件如手
设备之间的晃动。注意,数据期间
转让, SDA只允许更改级别
当SCL为低电平。 SDA上的改变,SCL为
高代表START和STOP信号时,按下列方法
低点:
START :
这将启动一个传输。它包括一个
在SDA下降沿同时SCL为高电平。
停止:
该结束的转移。它由一个上升的
SDA上边缘,而SCL为高电平。
当接收设备无法ACK ,发送
设备看到一个NACK 。在典型的班车,
收到NACK指示寻址从机
未准备好进行传送,或者是不存在于
总线。的接收主机可以发送NACK来
指示传输的最后一个字节。这两种静坐的
uations进一步在下一节中讨论。
图2示出了握手信号。
传输模式
两种类型的传输是可能的:一个写
(转自主到从)和读(反
从奴隶FER掌握) 。在一次转移,任何
设备可能承担的四个角色之一。这四个
作用解释如下。请注意, “从地址
+ R / W “指的是一个8位的传输(7地址, 1个R /
W).
应答:
也被称为一个ACK ,
这是由一个接收装置作为一则确认发送
息。例如, device_X接收后一
字节,则发送ACK ,以确认传输。
一个ACK包括在SDA上采样1 )主机发送一个低的水平:在这种模式下,器件
当SCL为高电平。
SDA上发送串行数据,并驱动时钟
在SCL 。该设备启动与转移
NOT_ACKNOWLEDGE :
也被称为启动条件,发送从地址+ W和
NACK ,这是一个高SDA ,SCL为高电平。等待来自从器件的确认。该ACK后,
SCL
SDA
SLA6
SLA5-0
读/写
D7
D6-0
开始
从地址+ R / W
确认
数据字节
NACK
停止
图2. SMBus的时序
2
修订版1.3
AN113
所述装置发送的数据的一个或多个字节,最后一个字节,主器件将发出NACK的跟着
每个字节由从ACK'ed 。最后一个字节后,并后跟一个STOP 。
该设备发送一个STOP 。
4 )从接收器:在此期间,设备接收到一个
2 )主接收器:在此期间,该设备接收起始条件和自身的从地址+ W
在SDA串行数据,而驾驶SCL时钟。从主设备。该设备发送一个ACK
该设备启动与START跟着转移并进入从机接收模式。现在该设备
由从机地址+ R。从收到的SDA和SCL上的时钟串行数据后钮。
的ACK的地址,该设备将输出的时钟的装置的ACK的每个字节之后被接收,并
在SCL和接收SDA上的数据。之后,主机发出停止条件后,最后退出从模式。
字节,该设备会发出NACK的后跟一个图3显示了典型的写入方案。 (1)
停止。
显示了一个成功的转移。
3 )从发送器:在此期间,设备输出
在SDA串行数据,并接收在SCL时钟。
该设备接收到开始,随后通过其自身
从地址+ R,则ACK的,并进入奴隶
发射模式。该设备发送串行数据
在SDA和每个字节后接收到ACK 。后
(2 ) ,发送后,主机接收到NACK
从地址+ W。这发生在一个从站
“离线” ,这意味着它不响应它自己的
地址。在这种情况下,主应发出
停止或重复启动。重试转让,
主之后,紧跟START和STOP(停止)
从地址+ W了。主会重复
( 1 )成功的写
二语习得+ W A
数据
A
数据
一P
( 2 ) SLA + W后收到NACK
一P
( 3)重复启动后发出应答
二语习得+ R A
(4)数据后收到NACK
一P
S = START
SLA =从地址( 7位)
W =写入(1比特)
R =读( 1位)
数据=串行数据(8比特)
A =应答
A =非应答
P = STOP
从主
为Slave
从机
掌握
数据
任何数量的数据
字节和承认
图3.典型的写入传输方案
修订版1.3
3
AN11 3
循环,直到它接收到ACK 。这被称为发送站后作为主收到NACK
“应答查询” 。
地址+ R。这种情况是在相同的处理
时尚如( 2 )写的讨论。该
(3 ) ,主机发出重复启动后,主机可以使用应答查询重试
ACK 。这个过程允许主机启动传输,也可以放弃转让。 (3 )显示
不放弃总线的新传输(以发送后,发送一个重复启动开关主
从写一个READ ,例如) 。数据的字节。这是相同的重复的起始状态
重复启动常用于EEPROM中的WRITE讨论。一个主可以发送
内存访问的应用程序,其中存储重复启动的任何数据字节之后,并可能ini-
READ必须直接前面tiate的写一个读或写操作之后的重复
所需的存储位置。重复START开始。一般重复START用于
证明在所有三个代码示例。
变化方向(R / W)或改变地址
(从设备) 。
在( 4)中,一个NACK的一个数据字节后接收。在典型
iCal中的SMBus系统,这是怎样的接收注意,读,写图显示
设备指示一个错误。主机发送一个STOP ,只有典型场景。总线错误,超时,
和重试传输作为在( 2)中,或者放弃和仲裁也是可能发生的。时间 -
传输。需要注意的是,使用NACK的不切口被用来检测时的转印已经停滞
受限于错误情况;应答水平,或当总线空闲。通常,一个设备可持有
是用户自定义的特性,可能会在SCL改变为低电平,直到它准备继续转移。这
不同的应用程序。
过程中允许低速从设备通信
泄漏了更快的掌握,因为拖延公交车
图4示出了典型的读取方案。 (1)有效地降低了SCL的频率。 SMBus接口
显示了一个成功的读操作。在( 2)中,该协议指定SMBus上的所有设备
( 1 )读取成功
二语习得+ R A
数据
A
数据
一P
( 2 ) SLA + R后收到NACK
一P
( 3 )重复开始ACK后发表
二语习得+ R A
S = START
SLA =从地址( 7位)
W =写入(1比特)
R =读( 1位)
数据=串行数据(8比特)
A =应答
A =非应答
P = STOP
从主
为Slave
从机
掌握
数据
任何数量的数据
字节和承认
图4.典型的阅读场景
4
修订版1.3
AN113
必须声明为更多保持低电平任何SCL信号
超过25毫秒的“超时” 。在这种情况下,所有的设备上
公交车必须重置通信。高SCL
也可能会出现超时。如果SDA和SCL
保持高电平的时间超过50微秒,公交车是沙漠
ignated免费。
通过SMBus
SMBus接口可以工作在主从操作
模式。硬件提供定时和移
控制串行传输;按字节控制
用户定义的。 SMBus的硬件执行
下面的应用程序无关的任务:
仲裁
定时控制:在主控模式下,硬件gen-
如果有多个主机在同一配置erates在SCL和同步时钟信号
SMBus的系统中,可能的是2将尝试在SDA上的数据。硬件方面也承认时间
以启动传输在同一时间。如果出现这样的情况出和总线错误。
笔,仲裁机制将保证给力
一个器件放弃总线。
串行数据传输:硬件控制所有
数据的转移和从SDA ,包括
什么方案是:两个大师继续传输应答水平。应答水平是用户自
麻省理工学院,直到其中一个,而另一个定义,如在寄存器定义解释一个高
尝试低电平。由于开漏总线上,下面。
设备在尝试低会赢得总线。该
高的设备放弃总线和其他设备从地址识别:硬件recog-
继续传递。注意,碰撞是不nizes从另一个设备的启动,并读出
破坏性:总会有一个器件获胜。
下面的从机地址。如果从机地址
相匹配的的SMBus地址的内容雷吉斯
它是如何工作的:假设device_X和device_Y之三(定义见下文) ,则硬件应答响应
争用总线。获胜者, device_X ,没有边缘的地址。请注意,此功能只
由仲裁不受影响。因为数据被使能,如果AA (地址应答)被置位。
移入SMBus的数据寄存器,因为它是移动
出, device_Y不会错过任何数据。图5
配置和控制
显示了两者之间的例子输出序列
仲裁过程中的设备。需要注意的是Device_Y SMBus的操作由内容确定
以下寄存器。
开始接收数据后,它放弃了公交车。
图5.仲裁序列
Device_X
1
Device_Y
1
可见在总线上
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
Device_Y
放弃
THE BUS
1
1
0
修订版1.3
5