SPI串口通信协议

合集下载

spi通信协议

spi通信协议

spi通信协议SPI(Serial Peripheral Interface)串行外设接口是一种同步的、全双工的通信协议,常用于单片机和外部设备之间的通信。

SPI协议定义了一种主从模式的通信方式,其中一个设备充当主设备,负责发起通信,而其他设备则充当从设备,负责接收和处理通信数据。

SPI通信协议由四根线组成:时钟线(CLK)、片选线(SS)、主设备发出数据(MOSI)和主设备接收数据(MISO)。

在SPI通信中,主设备通过时钟线提供时钟脉冲,通过片选线选择和控制不同的从设备。

在通信开始时,主设备将片选线拉低,选择需要通信的从设备。

然后,主设备在每个时钟脉冲中,通过MOSI线发送数据给从设备,同时从设备通过MISO线将数据发送回主设备。

SPI通信协议的通信方式为全双工,即主设备和从设备可以同时发送和接收数据。

在通信过程中,主设备和从设备通过时钟的同步来保持数据的一致性。

主设备在上升沿将数据发送到MOSI线上,而从设备在下降沿将数据从MISO线上读取。

通过时钟的同步,主从设备可以准确地发送和接收数据。

在SPI通信中,数据的传输是串行的,即每个数据位都按顺序传输。

通信的起始位和终止位可以由主设备和从设备约定。

通常情况下,通信的起始位由主设备发起,并在时钟上升沿进行传输。

终止位可以由主设备或从设备发起,并在时钟下降沿进行传输。

SPI通信协议的速度可以通过调整时钟频率来控制。

时钟频率越高,数据传输的速度越快。

然而,时钟频率的增加也会增加信号的噪声和功耗。

因此,在选择时钟频率时,需要权衡速度和可靠性的要求。

SPI通信协议还支持多个从设备的通信。

每个从设备都有一个独立的片选线,主设备可以通过选择不同的片选线来与不同的从设备进行通信。

这种多从设备的通信方式使SPI协议更加灵活,可以同时与多个外部设备进行数据交换。

综上所述,SPI通信协议是一种常用的串行通信协议,使用主从模式进行数据交换。

它具有简单、可靠、高速的特点,适用于单片机和外部设备之间的通信。

SPI协议解析高速串行通信的协议标准

SPI协议解析高速串行通信的协议标准

SPI协议解析高速串行通信的协议标准SPI(Serial Peripheral Interface)是一种高速串行通信协议,被广泛应用于各种数字设备的通信接口传输中。

本文将对SPI协议进行详细解析,介绍其协议标准,以及相关的特性和应用。

I. 介绍SPI协议是一种同步协议,常用于微控制器和外部外设之间的通信。

它通过四根信号线(时钟线、数据线、主从选择线、片选线)实现全双工通信,并且支持多主机和多从机的通信方式。

SPI协议具有高速传输、简单易用、灵活性强等特点,被广泛用于各种应用领域。

II. 协议标准SPI协议的通信规范主要包括以下几个方面:1. 时钟极性与相位SPI协议定义了两种类型的时钟极性和相位设置,分别为CPOL和CPHA。

CPOL用于控制时钟信号的极性,可以是低电平为开始(CPOL=0),或高电平为开始(CPOL=1)。

CPHA用于控制数据采样的时机,可以是时钟信号的上升沿采样(CPHA=0),或下降沿采样(CPHA=1)。

根据不同的设备要求,可以通过组合CPOL和CPHA来实现精确的时序控制。

2. 数据传输顺序SPI协议支持全双工传输,数据通信可以是单向的,也可以是双向的。

数据传输的顺序由设备的主从模式决定,主机先发送数据,然后从机进行响应。

在全双工通信中,数据可以同时双向传输,主机和从机同时发送和接收数据。

3. 主从设备选择SPI协议使用一根主从选择线(SS)来选择通信的主机或从机。

当某个从机被选中时,通过使能该从机的片选线,使其进入工作状态,其他从机则处于非工作状态。

主机可以通过控制主从选择线来选择不同的从机进行通信。

4. 数据帧格式SPI协议的数据传输是以数据帧的形式进行的。

每个数据帧由一个字节(8位)的数据组成,包括发送的数据和接收的数据。

数据帧可以是单向的,也可以是双向的。

5. 传输速率SPI协议支持各种传输速率,可以根据需要进行调整。

传输速率由时钟信号频率决定,可以通过调整时钟频率来达到不同的传输速率。

SPI协议及工作原理分析

SPI协议及工作原理分析

SPI协议及工作原理分析SPI(Serial Peripheral Interface)是一种基于同步串行通讯方式的通信协议,主要用于在嵌入式系统中连接多种外设,如存储器、传感器、显示器等。

SPI通过定义一系列的信号线路和操作规则,实现了不同设备之间的数据交换。

1.主设备与从设备之间通过多根信号线进行通信。

这些信号线包括:SCLK(串行时钟),MOSI(主设备输出,从设备输入),MISO(主设备输入,从设备输出),SS(片选信号)。

2.主设备为每一个从设备分配一个片选信号,以确定需要与哪个从设备进行通信。

3.通信开始时,主设备先拉低需要与之通信的从设备的片选信号。

然后,主设备向从设备发送数据,并通过MOSI线传输;从设备则通过MISO线将应答数据送回给主设备。

4.通过SCLK线,主设备生成的时钟信号驱动数据的传输。

时钟由主设备控制并为SCLK线提供。

5.一次传输的数据长度是8位,主设备从高位(MSB)开始发送,从设备也从高位开始接收。

传输结束后,主设备将片选信号拉高,与从设备断开连接。

1.高速传输:SPI协议在硬件层面上实现了双向全双工通信,可以同时发送和接收数据,因此传输速度相对较快。

2.灵活性:SPI协议可以支持多主设备和多从设备之间的通信。

每个设备都有独立的片选信号,可以选择与主设备进行通信。

3.简单实现:SPI协议的硬件实现相对简单,只需使用少量的引脚,并且不需要复杂的协议控制器。

4.低成本:SPI协议的硬件成本相对较低,适用于一些对成本敏感的应用场景。

5.可靠性:SPI协议通过硬件的时钟同步,可以提供可靠的数据传输,能够减少数据传输错误和丢失。

总结起来,SPI协议是一种简单、高效、灵活的通信协议,适用于各种嵌入式系统中不同设备的数据交换。

它通过定义一系列的信号线和操作规则,实现了主设备与从设备之间的同步串行通信。

SPI协议的设计使得数据传输效率比较高,并能够实现多个设备之间的并行通信,因此得到了广泛应用。

SPI、I2C、UART三种串行总线协议的区别

SPI、I2C、UART三种串行总线协议的区别

SPI、I2C、UART三种串行总线协议的区别串口进行通信的方式有两种:同步通信方式和异步通信方式1 串行通信的概念所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。

这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。

由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。

在数据输入过程中,数据1位1位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。

CPU从“数据输入寄存器”中读取接收到的字符。

(并行读取,即D7~D0同时被读至累加器中)。

“接收移位寄存器”的移位速度由“接收时钟”确定。

在数据输出过程中,CPU把要输出的字符(并行地)送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据1位1位地送到外设。

“发送移位寄存器”的移位速度由“发送时钟”确定。

接口中的“控制寄存器”用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式。

“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。

例如,用状态寄存器的D5位为“1”表示“数据输出寄存器”空,用D0位表示“数据输入寄存器满”,用D2位表示“奇偶检验错”等。

能够完成上述“串<- ->并”转换功能的电路,通常称为“通用异步收发器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550.******第一个区别当然是名字:SPI(Serial Peripheral Interface:串行外设接口);I2C(INTER IC BUS:意为IC之间总线)UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上:SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。

spi通讯协议

spi通讯协议

spi通讯协议SPI(Serial Peripheral Interface)是一种同步串行通信协议,常用于连接微控制器和外部设备,如传感器、存储器、显示器等。

它采用主从结构,通过时钟信号和数据线进行双向通信,具有高速传输、简单灵活的特点,广泛应用于各种嵌入式系统。

SPI通信协议使用四根线进行通信:CLK(时钟线)、MOSI (主输出从输入线)、MISO(主输入从输出线)和SS(从选择线)。

时钟线由主设备产生,用于同步数据传输。

MOSI和MISO线负责数据传输,MOSI线由主设备输出数据,MISO线由从设备输出数据。

SS线由主设备控制,用于选择特定的从设备进行通信。

SPI通信协议是一种全双工通信方式,数据可以同时在MOSI和MISO线上传输。

通信过程中,主设备通过产生时钟信号控制数据传输的时序,每个时钟周期传输一个比特位。

主设备将数据送入MOSI线上,并将其与时钟信号同步,从设备通过MISO线上的数据响应主设备。

SPI通信协议中可以有多个从设备存在,但每个从设备都需要一个单独的片选信号控制。

主设备通过拉低某个从设备的片选信号(SS线),来选择特定的从设备进行通信。

通信结束后,主设备释放片选信号,并选择其他从设备进行通信。

这样可以实现多个从设备与一个主设备之间的并行通信。

SPI通信协议的速度可以根据实际需求进行调整,由主设备产生的时钟信号决定了数据传输的速率。

时钟信号的频率可以在主设备中设置,通常可以选择几十kHz至几十MHz的范围。

通信速度越快,数据传输的速率越高,但同时也会增加功耗和干扰的风险。

SPI通信协议具有以下优点:首先,它具有高速传输的优势,可以满足大部分实时性要求较高的应用场景。

其次,SPI通信协议的硬件实现比较简单,可以使用几个GPIO口实现。

最后,SPI通信协议支持全双工通信,可以同时进行数据的发送和接收,提高通信效率。

综上所述,SPI通信协议是一种快速、灵活且简单的串行通信协议,广泛应用于各种嵌入式系统。

UARTIICSPI通信协议

UARTIICSPI通信协议

UARTIICSPI通信协议UART(Universal Asynchronous Receiver Transmitter)是一种异步串行通信协议,它使用简单的电气和物理接口。

UART通信是双向的,即可以同时发送和接收数据。

在UART通信中,发送和接收数据的设备之间没有共享的时钟信号,所以数据传输的速率由设备的时钟精度和波特率决定。

UART通信只使用两根线来传输数据,分别是数据线(TX、RX)和地线。

UART通信广泛应用于各种串口设备,如计算机、微控制器、传感器等。

UART通信的简洁性和广泛适用性是它最大的优点,但它也有一些缺点,比如传输速率相对较低。

I2C(Inter-Integrated Circuit)是一种串行通信协议,用于连接微控制器和外围设备。

I2C通信是双向的,可以同时发送和接收数据。

在I2C通信中,数据传输通过两根线来完成,分别是串行数据线(SDA)和串行时钟线(SCL)。

I2C通信需要主设备和从设备之间的时钟同步,因此从设备无需使用独立的时钟源。

I2C通信具有多主机和多从机的能力,可以连接多个设备。

I2C通信广泛应用于各种外围设备,如传感器、存储器、显示屏等。

I2C通信的主要优点是使用的线数较少,可以连接多个设备,但传输速率较慢。

SPI(Serial Peripheral Interface)是一种串行通信协议,用于连接微控制器和外围设备。

SPI通信是全双工的,可以同时发送和接收数据。

在SPI通信中,数据传输通过四根线来完成,分别是主设备输出线(MOSI)、主设备输入线(MISO)、串行时钟线(SCK)和片选线(CS)。

SPI通信中的主设备通过片选线来选择从设备。

SPI通信可以实现高速数据传输,适用于要求实时性的应用。

SPI通信广泛应用于各种存储设备、显示器件和传感器等。

SPI通信的主要优点是传输速率较快,但需要的线数较多。

总的来说,UART、I2C和SPI是三种常用的串行通信协议,各自具有不同的特点和优缺点。

SPII2CUART三种串行总线协议及其区别

SPII2CUART三种串行总线协议及其区别

SPII2CUART三种串行总线协议及其区别SPI(Serial Peripheral Interface)是一种常见的串行总线协议,主要用于单片机和外部设备之间的通信。

SPI协议需要同时使用多个信号线,包括时钟信号、主从选择信号、数据输入信号和数据输出信号。

SPI协议是一种全双工的通信方式,数据可以双向传输。

SPI通信协议的特点包括以下几点:1.时钟信号:SPI协议中的设备之间使用了共享的时钟信号,时钟信号用于同步数据传输。

时钟信号由主设备控制,并且时钟频率可以根据需要调整。

SPI协议没有固定的时钟频率限制,可以根据实际需求进行调整。

2.主从选择信号:SPI协议中的从设备需要通过主从选择信号进行选择。

主设备通过拉低从设备的主从选择信号来选择与之通信的从设备。

可同时与多个从设备通信。

3.数据传输:SPI协议是一种由主设备控制的同步通信协议,数据在时钟的边沿上升移位。

主设备在时钟的上升沿将数据发送给从设备,从设备在时钟的下降沿将数据发送给主设备。

SPI协议的优势在于速度快、可靠性高,适合于需要高速传输的应用,如存储器、显示器驱动等。

I2C(Inter-Integrated Circuit)是一种常见的串行总线协议,主要用于集成电路之间的通信。

I2C协议仅需要两根信号线:序列时钟线(SCL)和串行数据线(SDA)。

I2C协议是一种半双工通信方式,数据只能单向传输。

I2C通信协议的特点包括以下几点:1.序列时钟线(SCL):SCL是在主设备和从设备之间共享的信号线,用于同步数据传输。

主设备通过拉高和拉低SCL来控制数据传输的时钟频率。

2.串行数据线(SDA):SDA负责数据的传输。

数据在SCL的上升沿或下降沿变化时,主设备或从设备将数据写入或读取出来。

3.地址寻址:I2C协议使用7位或10位的地址寻址,从设备可以根据地址进行选择。

I2C协议的优势在于可以连接多个设备,节省了引脚,适用于多设备之间的通信,如传感器、温度传感器、压力传感器等。

STM32的SPI通信总结(含DMA)

STM32的SPI通信总结(含DMA)

STM32---SPI(DMA)通信的总结(库函数操作)本文主要由7项内容介绍SPI并会在最后附上测试源码供参考:1.SPI的通信协议2.SPI通信初始化(以STM32为从机,LPC1114为主机介绍)3.SPI的读写函数4.SPI的中断配置5.SPI的SMA操作6.测试源码7.易出现的问题及原因和解决方法一、SPI的通信协议SPI(Serial Peripheral Interface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。

SPI 接口一般由4根线组成,CS片选信号(有的单片机上也称为NSS),SCLK时钟信号线,MISO数据线(主机输入从机输出),MOSI数据线(主机输出从机输入),CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟信号来发起通讯。

通讯时主机的数据由MISO输入,由MOSI 输出,输入的数据在时钟的上升或下降沿被采样,输出数据在紧接着的下降或上升沿被发出(具体由SPI的时钟相位和极性的设置而决定)。

二、以STM32为例介绍SPI通信1.STM32f103 带有3个SPI模块其特性如下:2SPI 初始化初始化SPI 主要是对SPI要使用到的引脚以及SPI通信协议中时钟相位和极性进行设置,其实STM32的工程师已经帮我们做好了这些工作,调用库函数,根据自己的需要来修改其中的参量来完成自己的配置即可,主要的配置是如下几项:引脚的配置SPI1的SCLK, MISO ,MOSI分别是PA5,PA6,PA7引脚,这几个引脚的模式都配置成GPIO_Mode_AF_PP 复用推挽输出(关于GPIO的8种工作模式如不清楚请自己百度,在此不解释),如果是单主单从, CS引脚可以不配置,都设置成软件模式即可。

通信参数的设置1.SPI_Direction_2Lines_FullDuplex把SPI设置成全双工通信;2.在SPI_Mode 里设置你的模式(主机或者从机),3.SPI_DataSize是来设置数据传输的帧格式的SPI_DataSize_8b是指8位数据帧格式,也可以设置为SPI_DataSize_16b,即16位帧格式4.SPI_CPOL和SPI_CPHA是两个很重要的参数,是设置SPI通信时钟的极性和相位的,一共有四种模式在库函数中CPOL有两个值SPI_CPOL_High(=1)和SPI_CPOL_Low ( =0). CPHA有两个值SPI_CPHA_1Edge (=0) 和SPI_CPHA_2Edge(=1)CPOL表示时钟在空闲状态的极性是高电平还是低电平,而CPHA则表示数据是在什么时刻被采样的,手册中如下:我的程序中主、从机的这两位设置的相同都是设置成1,即空闲时时钟是高电平,数据在第二个时钟沿被采样,实验显示数据收发都正常。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。
那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。
(1)SDO –主设备数据输出,从设备数据输入
(2)SDI –主设备数据输入,从设备数据输出
数据方向和通信速度
SPI传输串行数据时首先传输最高位。波特率可以高达5Mbps,具体速度大小取决于SPI硬件。例如,Xicor公司的SPI串行器件传输速度能达到5MHz。
1.3 SPI
SPI总线包括1根串行同步时钟信号线以及2根数据线。
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL="0",串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI接口时序如图3、图4所示。
SPI(Serial Peripheral Interface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS决定了唯一的与主设备通信的从设备,如没有CS信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由SDO输出,SDI输入,数据在时钟的上升或下降沿由SDO输出,在紧接着的下降或上升沿由SDI读入,这样经过8/16次时钟的改变,完成8/16位数据的传输。
1.4
下面是SPI读写协议的移位过程,每个CLK都是按照四种模式要求的边沿触发方式,来移位的。下表就是每一个CLK,主机SBUFF传输数据的移位过程。
表1.
这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来。
SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
SPI
1 SPI
SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
SPI:高速同步串行口。3~4线接口,收发独立、可同步进行.
(3)SCLK –时钟信号,由主设备产生
(4)CS –从设备使能信号,由主设备控制
其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。
接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。
SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200.
SPI的片选可以扩充选择16个外设,这时PCS输出=NPCS,说NPCS0~3接4-16译码器,这个译码器是需要外接4-16译码器,译码器的输入为NPCS0~3,输出用于16个外设的选择。同步外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EEPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。
在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
以AT91RM9200为例说明串口通信的全过程。
AT91RM9200的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO是主机的输入,从机的输出。/SS是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。SPI总线可以配置成单主单从,单主多从,互为主从。
要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。
1.2 SPI
该总线通信基于主-从配置。它有以下4个信号:
MOSI:主出/从入
MISO:主入/从出
SCK:串行时钟
SS:从属选择
芯片上“从属选择”(slave-select)的引脚数决定了可连到总线上的器件数量。
在SPI传输中,数据是同步进行发送和接收的。数据传输的时钟基于来自主处理器的时钟脉冲,摩托罗拉没有定义任何通用SPI的时钟规范。然而,最常用的时钟设置基于时钟极性(CPOL)和时钟相位(CPHA)两个参数,CPOL定义SPI串行时钟的活动状态,而CPHA定义相对于SO-数据位的时钟相位。CPOL和CPHA的设置决定了数据取样的时钟沿。
相关文档
最新文档