目 录
1
基本协议
1)协议概括
2)协议举例
假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据
SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI接口时序如图3、图4所示。
2
用户逻辑
3
SPI原理
3种SPI的处理流程大同小异,以目前使用最多的SPI-4为例来说明SPI的原理。它在发送
接口
和接收接口都有各自的数据通道和流控状态信息通道,其数据通道和流控状态信息通道是独立的并且是
点对点通信
。数据是以包的形式发送,根据
数据包
中的内嵌地址可支持高达256个端口,以下分别说明基本协议及数据通道和流控状态信息的处理过程。
4
绩效指数
解决方案销售(Solution Selling®)
方法的唯一知识产权所有者——全球备受承认的销售培训可为销售人员和管理专业人士提供成熟、完整、端到端的专业发展计划。
SPI已在50个以上的国家内使用14种以上的语言为超过60万名的销售及管理专业人士提供过培训,具备足够的专业技能来为客户提供合适的解决方案,可帮助客户实现可衡量及可持续的收入增长和可执行的销售业绩提升。
5
多义性
软件过程
的改进。它是CMM(还有其他能力模型)中的一个重要概念,CMM模型的目的就是要改进一个组织的过程,提高过程能力,所以叫做SPI-
软件过程改进
。
接口
。满足某种服务标准的供应商提供的符合该标准的
应用程序
接口
,SPI应该和该服务的API标准是兼容的,应用程序一般应该是基于API编写,除非是SPI中包含API中没有提供的功能而又必须使用。
串行外围设备接口
,SPI是Motorola公司推出的一种同步
串行通讯
方式,是一种四线同步
总线
,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。
报文
中都携带该值。SPI、IP目的地址、安全协议号三者结合起来共同构成一个三元组,来唯一标识一个特定的 安全联盟(Security Association)。
记忆系统
的编码是串行的),PARALLEL(存储是并行的),INDEPENDENT(提取是独立的)的缩写。在1995年,由Tulving提出,试图将
记忆系统
和记忆过程的概念统一到一个更综合的框架中。
大豆分离蛋白
6
时序图
时钟信号
空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样,CPHA=1,在每个周期的第二个时钟沿采样。
7
通信 概念
2.1、SPI:高速同步串行口
串行外围设备接口
。是Motorola首先在其MC68HCXX系列处理器上定义的。
SPI接口
主要应用在 EEPROM,FLASH,
实时时钟
,AD
转换器
,还有
数字信号处理器
和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信
总线
,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种
通信协议
,比如AT91RM9200.
总线
系统是一种同步
串行外设接口
,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、
网络控制器
、LCD显示驱动器、
A/D转换器
和MCU等。SPI
总线
系统可直接与各个厂家生产的多种标准外围器件直接
接口
,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
数据输出
),SCLK(时钟),CS(
片选
)。
脉冲
,SDI,SDO则基于此脉冲完成数据传输。
数据输出
通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次
时钟信号
的改变(上沿和下沿为一次),就可以完成8位数据的传输。
控制信号
线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的
串行通讯
不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在
时钟信号
上沿或下沿采集有不同定义,具体请参考相关器件的文档。
2.2、接口的硬件连接示意图
2.3、性能特点
接口
主要由4个
引脚
构成:SPICLK、MOSI、MISO及 /SS,其中SPICLK是整个SPI
总线
的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO 是主机的输入,从机的输出。/SS是从机的标志管脚,在互相通信的两个SPI
总线
的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。SPI
总线
可以配置成单主单从,单主多从,互为主从。
2.4、SPI协议举例
寄存器
中的10101010左移一位,后面补入送来的一位未知数x,成了0101010x。下降沿到来的时候,sdi上的电平将锁存到
寄存器
中去,那么这时寄存器=0101010sdi,这样在 8个时钟
脉冲
以后,两个寄存器的内容互相交换一次。这样就完成了一个spi时序。
2.5、举例
脉冲
主机sbuff 从机sbuff sdi sdo
寄存器
8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于
主机
而言的。其中ss
引脚
作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为
片选
脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先
主机
要发送命令过去,然后从机根据主机的命令准备数据,主机在下一个8位
时钟周期
才把数据读回来。SPI
总线
是Motorola公司推出的三线
同步接口
,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MISO,一条
数据输出
线MOSI;用于CPU与各种外围器件进行全双工、同步
串行通讯
。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束 中断标志;写冲突保护;
总线竞争
保护等。下图示出SPI
总线
工作的四种方式,其中使用的最为广泛的是SPI0和SPI3方式 (实线表示):
SPI
总线
四种工作方式 SPI 模块为了和
外设
进行数据交换,根据
外设
工作要求,其输出串行
同步时钟
极性和相位可以进行配置,时钟极性(CPOL)对
传输协议
没有重大的影响。如果 CPOL=0,串行
同步时钟
的空闲状态为低电平;如果CPOL=1,串行
同步时钟
的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的
传输协议
之一进行数据传输。如果CPHA=0,在串行
同步时钟
的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行
同步时钟
的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设备时钟相位和极性应该一致。
同步时钟
极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设音时钟相位和极性应该一致。SPI
接口
时序如图3、图4所示。
2.6、性能补充
外设
来决定;其二,二者的配置应该保持一致,即主设备的SDO同从设备的SDO配置一致,主设备的SDI同从设备的SDI配置一致。因为主从设备是在SCLK的控制下,同时发送和接收数据,并通过2个双向
移位寄存器
来交换数据。工作原理演示如下图:
2.7、SPI协议心得
接口
时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。但要注意的是,由于主设备的SDO连接从设备的SDI,从设备的SDO连接主设备的SDI,从设备SDI接收的数据是主设备的SDO发送过来的,主设备SDI接收的数据是从设备SDO发送过来的,所以主设备这边SPI时钟极性的配置(即SDO的配置)跟从设备的SDI接收数据的极性是相反的,跟从设备SDO发送数据的极性是相同的。下面这段话是Sychip Wlan8100 Module Spec上说的,充分说明了时钟极性是如何配置的: