各总线及接口介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常见接口电路介绍
一、I2C总线简介
1. 什么是I2C( INTER IC BUS)
NXP 半导体(原Philips 半导体)于20 多年前发明了一种简单的双向二线制串行通信总线,这个总线被称为Inter-IC 或者I2C 总线。目前I2C 总线已经成为业界嵌入式应用的标准解决方案,被广泛地应用在各式各样基于微控器的专业、消费与电信产品中,作为控制、诊断与电源管理总线。多个符合I2C 总线标准的器件都可以通过同一条I2C 总线进行通信,而不需要额外的地址译码器。由于I2C 是一种两线式半双工串行总线,因此简单的操作特性成为它快速崛起成为业界标准的关键因素。
2. I2C总线的基本概念
1)发送器(Transmitter):发送数据到总线的器件;
2)接收器(Receiver):从总线接收数据的器件;
3)主机(Master):初始化发送、产生时钟信号和终止发送的器件;4)从机(Slave):被主机寻址的器件;
其线路结构图如下:
如上图示,I2C 总线具有如下特点:
1)I2C 总线是双向传输的总线,因此主机和从机都可能成为发送器和接收器。不论主机是发送器还是接收器,时钟信号SCL 都要由主机来产生;
2)只需要由两根信号线组成,一根是串行数据线SDA,另一根是串行时钟线SCL;
3)SDA 和SCL 信号线都必须要加上拉电阻Rp(Pull-Up Resistor)。上拉电阻一般取值3~10KΩ;
4)SDA 和SCL 管脚都是漏极开路(或集电极开路)输出结构;
3. I2C总线的信号传输
1)3种速率可选择
标准模式100kbps、快速模式400kbps、最高速率3.4Mbps;
2)具有特定的传输起始、停止条件
a)起始条件:当SCL 处于高电平期间时,SDA 从高电平向低电平跳变时产生起始条件。
起始条件常常简记为S;
b)停止条件:当SCL 处于高电平期间时,SDA 从低电平向高电平跳
变时产生停止条件。
停止条件简记为P;
3)数据传输从确定从机地址开始
a)多个从机可连接到同一条I2C 总线上,它们之间通过各自唯一的器件地址来区分;
b)一般从机地址由7 位地址位和一位读写标志R/W 组成,7 位地址占据高7 位,读写位在最后。读写位是0,表示主机将要向从机写入数据;读写位是1,则表示主机将要从从机读取数据;
4)以字节为单位的数据传输方式
a)I2C 总线以字节(Byte)为单位收发数据,主机总是先发地址再发数据;
b)在I2C 总线传输数据过程中,每传输一个字节,都要跟一个应答状态位。遵循“谁接收谁产生”的原则,即总是由接收器产生应答位,应答位为0 表示接收器应答(ACK);为1 则表示非应答(NACK);c)如果接收器在接收完最后一个字节的数据,或者不能再接收更多
的数据时,应当产生非应答来通知发送器;
4. I2C总线数据传输时序图示
1)传输格式图示
(灰色为主机的工作时隙,白色为从机的工作时隙)S:起始位(START);
SA:从机地址(Slave Address),7 位从机地址;W:写标志位(Write),1 位写标志;
R:读标志位(Read),1 位读标志;
A:应答位(Acknowledge),1 位应答;
A:非应答位(Not Acknowledge),1 位非应答M;D:数据(Data),每个数据都必须是8 位;
P:停止位(STOP);
2)传输时序示例
5. I2C总线的常见应用
所应用范围包括:摄像头、调频收音机芯片、音频编解码芯片、模拟电视、光电鼠标等,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。
二、SPI总线简介
1.什么是SPI
串行外围设备接口SPI(serial peripheral interface_串行外设接口)总线技术是Motorola 公司推出的一种同步串行接口,Motorola 公司生产的绝大多数MCU(微控制器)都配有SPI 硬件接口。
SPI 用于CPU 与各种外围器件进行全双工、同步串行通讯,通信波特率可以高达几Mbps,但具体速度大小取决于SPI硬件。SPI接口具有全双工操作,操作简单,数据传输速率较高的优点,但也存在没有指定的流控制,没有应答机制确认是否接收到数据的缺点。
单工、半双工、全双工
单工数据传输只支持数据在一个方向上传输;
半双工数据传输允许数据在两个方向上传输,但是,在某一时刻,只允许数据
在一个方向上传输,它实际上是一种切换方向的单工通信;
全双工数据通信允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。
同步通信原理:
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。
采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。
同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。
异步通信原理:
异步通信是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。