SPI总线的工作方式是怎样的

spi,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为pcb的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。spi是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
spi总线是motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线sck,一条数据输入线mosi,一条数据输出线miso;用于 cpu与各种外围器件进行全双工、同步串行通讯。spi主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
spi总线有四种工作方式(sp0, sp1, sp2, sp3),其中使用的最为广泛的是spi0和spi3方式。spi模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(cpol)对传输协议没有重大的影响。如果cpol=0,串行同步时钟的空闲状态为低电平;如果cpol=1,串行同步时钟的空闲状态为高电平。时钟相位(cpha)能够配置用于选择两种不同的传输协议之一进行数据传输。如果 cpha=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果cpha=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。
spi主模块和与之通信的外设音时钟相位和极性应该一致。
spi时序详解---spi接口在模式0下输出第一位数据的时刻spi接口有四种不同的数据传输时序,取决于cpol和cphl这两位的组合。图1中表现了这四种时序,时序与cpol、cphl的关系也可以从图中看出。
图1
cpol是用来决定sck时钟信号空闲时的电平,cpol=0,空闲电平为低电平,cpol=1时,空闲电平为高电平。cpha是用来决定采样时刻的,cpha=0,在每个周期的第一个时钟沿采样,cpha=1,在每个周期的第二个时钟沿采样。由于我使用的器件工作在模式0这种时序(cpol=0,cpha=0),所以将图1简化为图2,只关注模式0的时序。
图2
我们来关注sck的第一个时钟周期,在时钟的前沿采样数据(上升沿,第一个时钟沿),在时钟的后沿输出数据(下降沿,第二个时钟沿)。首先来看主器件,主器件的输出口(mosi)输出的数据bit1,在时钟的前沿被从器件采样,那主器件是在何时刻输出bit1的呢?bit1的输出时刻实际上在sck信号有效以前,比sck的上升沿还要早半个时钟周期。bit1的输出时刻与ssel信号没有关系。再来看从器件,主器件的输入口miso同样是在时钟的前沿采样从器件输出的bit1的,那从器件又是在何时刻输出bit1的呢。从器件是在ssel信号有效后,立即输出bit1,尽管此时sck信号还没有起效。
从这张图就可以很清楚的看出主从器件的bit1是怎样输出的。

比特币25天跌近37% 盘中跌破13000美元
物联网转售产业迎来实质性突破
小米移动有望成为中国民营电信运营商的代表品牌
人工智能驱动数字化转型升级
wms仓库管理对企业的重要性
SPI总线的工作方式是怎样的
浅析天线与波长的关系
混合电动车MH-Ni电源系统的应用
FORESEE MCP系列重构智能移动终端存储组合
三星S8+屏幕增至6.2寸 屏占比轻松秒iPhone 7P
智能型浊度传感器的特点及原理是怎样的
Acrel-6000/B厂房电气火灾监控系统的应用
无线电频谱资源概念
解析嵌入式系统的定义、应用及趋势
人工智能是怎样影响着音乐行业的
高通 5nm 芯片骁龙 875 参数曝光:2.84GHz 主频,「1+3+4」八核心
快舟一号开启航天商用新时代!“一箭三星”发射圆满成功
直流电机制作的自助吹气球
十年前的酷睿i7-2600K放到现在到底什么水平
魏德米勒电源是根据理想化直流电源而设计的吗