Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10787
  • 博文数量: 11
  • 博客积分: 492
  • 博客等级: 下士
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 14:08
文章分类
文章存档

2010年(11)

我的朋友
最近访客

分类: 嵌入式

2010-04-09 14:11:06

1、SPI(Serial Peripheral Interface串行外围接口):高速、全双工、同步串行口。
三或四个信号用于数据交换:
SIMO:从进,主出
SOMI:从出,主进
UCLK:时钟,由主机驱动,从机用它发送和接收数据
STE:从机发送允许,用于四线模式中控制多主从系统中的多个从机

三线SPI组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。
SPI总线可以实现多个SPI设备互相连接。
提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。

主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。四线SPI模式用附加控制线,来允许从机数据的发送和接收,它由主机控制。
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信。
    如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

UART需要固定的波特率,而SPI则无所谓,因为它是有时钟的协议。
SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

2、I2C(Inter IC Bus)接口定义:
I2C总线是双向两线(SCL——串行时钟、SDA——串行数据线)制同步串行总线,具有竞争检测和仲裁机制,可使多个主机任意同时发送数据而不破坏总线上的数据信息。非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
特点:
A、每个连到总线上的器件都可由软件唯一的地址寻址,并建立简单的主从关系。主器件既可作为发送器,又可作为接收器。
B、同步时钟允许器件通过总线以不同的波特率进行通信
C、同步时钟可以作为停止和重新启动串行口发送的握手方式
D、连接到同一总线上的集成电路器件数只受400PF的总大总线电容的限制
    如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。

注:组成I2C总线的串行数据线SDA和串行时钟线SCL必须经过上拉电阻Rp接到正电源上,连接到总线上的器件的输出极必须为“开漏”或“开集”的形式,以便完成“线与”的功能。

I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。

各种接口之间的区别如下:

1、UART和USART两个别区说不出来,USART是新出的,不过区别在什么地方我也搞不清楚。UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快。在多机通信上面用的最多。

2、SPI接口和上面UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。

3、I2C接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。一般单片机系统里主要用来和24C02等小容易存储器连接。

原文地址http://blog.21ic.com/user1/5473/archives/2009/55336.html

阅读(368) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:SPI简介

给主人留下些什么吧!~~