您的位置 首页 嵌入式

SPI UART TWI 三种串行总线协议的差异

1SPI(SerialPeripheralInterface:串行外设接口)管脚:SSSCKMOSI(SDO)MISO(SDI)结构:一个始终发生器、两个移位寄存器(主从各一个

1.SPI(Serial Peripheral Interface:串行外设接口)

管脚:SS/SCK/MOSI(SDO)/MISO(SDI)

结构:一个一向发生器、两个移位寄存器(主从各一个);

运用:初始化(完结对两器材器材SPI使能、主从设置、SCK设置、IO方向、采样沿);

编写数据读/写函数(只需发生一次数据传送,两器材的SPIF位就会置位,然后读写);

必要时参加中止程序;

留意:两个寄存器是互通的,其作业进程见网硬盘,从百度文库收集。因而主机读从机数据有必要发送两个字节,第一个是指令字节,告知从机要预备数据于从机SPDR中,第二个是恣意字节,这样发送了后就会把从机SPDR中的字节交流过来,然后完结数据交流。

扩展:

(2)I2C(INTER IC BUS)

管脚:SDA/SCL

结构:

UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)

RXD/TXD/GND;

(1) 特色

Master mode and slave mode

Bi-directional mode

Slave select output

Mode fault error flag with CPU interrupt capability

Double-buffered data register

Serial clock with programmable polarity and phase

Control of SPI operation during wait mode

SPI有两种形式,Normal Mode and Bidirectional Mode,包含以下几根线:

SSSlave Select

SCKSerial Clock

MOSI Master Output, Slave Input

MISO Master Input, Slave Output

MOMI Master Output, Master Input

SISOSlave Input, Slave Output

其间前四根线用于Normal Mode,常用的也是4根线的Normal Mode。

MOSI

This pin is used to transmit data out of the SPI module when it is configured as a Master and receive data

when it is configured as Slave.

MISO

This pin is used to transmit data out of the SPI module when it is configured as a Slave and receive data

when it is configured as Master.

SS

This pin is used to output the select signal from the SPI module to another peripheral with which a data

transfer is to take place when its configured as a Masterand its used as an input to receive the slave select

signal when the SPI is configured as Slave.

SCK

This pin is used to output the clock with respect to which the SPI transfers data or receive clock in case of

Slave.

SPI是一种答应一个主设备发动一个与从设备的同步通讯的协议,然后完结数据的交流。也便是SPI是一种规定好的通讯方法。这种通讯方法的长处是占用端口较少,一般4根就够根本通讯了。一起传输速度也很高。一般来说要求主设备要有SPI操控器(但可用模仿方法),就能够与根据SPI的芯片通讯了。

SPI的通讯原理很简略,它需求至少4根线,事实上3根也能够。也是一切根据SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。其间CS是操控芯片是否被选中的,也便是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有用。这就答应在同一总线上衔接多个SPI设备成为可能。

接下来就担任通讯的3根线了。通讯是经过数据交流完结的,这儿先要知道SPI是串行通讯协议,也便是说数据是一位一位的传输的。这便是SCK时钟线存在的原因,由SCK供给时钟脉冲,SDI,SDO则根据此脉冲完结数据传输。数据输出经过SDO线,数据在时钟上沿或下沿时改动,在紧接着的下沿或上沿被读取。完结一位数据传输,输入也运用相同原理。这样,在至少8次时钟信号的改动(上沿和下沿为一次),就能够完结8位数据的传输。

要留意的是,SCK信号线只由主设备操控,从设备不能操控信号线。相同,在一个根据SPI的设备中,至少有一个主控设备。

这样传输的特色:这样的传输方法有一个长处,与一般的串行通讯不同,一般的串行通讯一次接连传送至少8位数据,而SPI答应数据一位一位的传送,乃至答应暂停,由于SCK时钟线由主控设备操控,当没有时钟跳变时,从设备不收集或传送数据。也便是说,主设备经过对SCK时钟线的操控能够完结对通讯的操控。

SPI仍是一个数据交流协议:由于SPI的数据输入和输出线独立,所以答应一起完结数据的输入和输出。

不同的SPI设备的完结方法不尽相同,主要是数据改动和收集的时刻不同,在时钟信号上沿或下沿收集有不同界说,详细请参阅相关器材的文档。

I2C

只需求两条总线线路:一条串行数据线SDA一条串行时钟线SCL

每个衔接到总线的器材都能够经过仅有的地址和一向存在的简略的主机从机联系软件设定地址主机能够作为主机发送器或主机接纳器

它是一个真实的多主机总线假如两个或更多主机一起初始化数据传输能够经过抵触检测和裁定,避免数据被损坏

串行的8位双向数据传输位速率在规范形式下可达100kbit/s快速形式下可达400kbit/s高速形式下可达3.4Mbit/s

片上的滤波器能够滤去总线数据线上的毛刺波确保数据完好

衔接到相同总线的%&&&&&%数量只遭到总线的最大%&&&&&%400pF约束

UART

UART总线是异步串口,因而一般比前两种同步串口的结构要杂乱许多,一般由波特率发生器(发生的波特率等于传输波特率的16倍)、UART接纳器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接纳。

显着,假如用通用IO口模仿UART总线,则需一个输进口,一个输出口。

UART常用于操控计算机与串行设备的芯片。有一点要留意的是,它供给了RS-232C数据终端设备接口,这样计算机就能够和调制解调器或其它运用RS-232C接口的串行设备通讯了。

显着能够看出,SPI和UART能够完结全双工,但I2C不可

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/233614.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部