一、spi简介
spi,即serial peripheral interface的英文缩写。从字面意思看就是串行外部设备接口,是一种全双工、高速、同步的通信总线。
spi最早是摩托罗拉公司开发的全双工同步串行总线,用于微控制器(mcu)连接外部设备之间的同步串行通信,主要应用于flash、数模转换器、信号处理器、控制器、eeprom存储器等外设中。
spi总线属于一主多从接口,和i2c不同的是,spi 采用cs片选来控制主机与从机通信。现在的单片机几乎都支持spi总线,其已经成为一种高速、同步、双工的通用标准,在iot产品中得到广泛应用。
二、spi有几根线?
spi通常有4根线(四线制),可实现全双工通信
【sck】: 串行时钟(serial clock)
【mosi】:主发从收信号(master output, slave input)
【miso】:主收从发信号(master input, slave output
【cs/cs】:片选信号(slave select)
spi应用也有3根线(三线制),实现半双工通信。
三、spi通信原理
spi模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,通过cpha(时钟相位)、cpol(时钟极性)来控制设备的通信模式。
时钟极性cpol是用来配置sck的电平在哪种状态时是有效状态或者空闲状态。时钟相位cpha是用来配置数据采样是在哪个边沿:
cpha=0,数据采样是在第1个边沿,数据发送在第2个边沿
cpha=1,数据采样是在第2个边沿,数据发送在第1个边沿
cpol=0,当sclk=0时处于空闲态,有效状态就是sclk处于高电平时
cpol=1,当sclk=1时处于空闲态,有效状态就是sclk处于低电平时
cpha=0、cpol=0:此时空闲态时,sck处于低电平,数据采样是在第1个边沿,就是sck由低电平到高电平的跳变,所以数据采样是在上升沿(准备数据),(发送数据)数据发送是在下降沿。
cpha=0、cpol=1:此时空闲态时,sck处于高电平,数据采集是在第1个边沿,即sck由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿。
cpha=1、cpol=0:此时空闲态时,sck处于低电平,数据发送是在第1个边沿,即sck由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
cpha=1、cpol=1:此时空闲态时,sck处于高电平,数据发送是在第1个边沿,即sck由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。
另外,分享个时序图识图方法。交叉线:数据允许发生改变,但不一定要变。平行线:数据不允许发生改变,必须稳定发送。
再细说传输时序。spi接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在sclk的下降沿上数据改变,上升沿一位数据被存入移位寄存器。spi接口没有指定的流控制,没有应答机制确认是否接收到数据。
通过以上spi总线常识的简单描述,我们大致可以了解到spi具有高速、同步、全双工、总线结构、主从通信模式等优势,但也存在无指定流控制,也没有应答机制确认等短板。
小米米家对讲机2体验 比市面上普通的对讲机更智能也更易用
用6V电源驱动20个白光LED的电路图
贾跃亭的FF91融资10亿 第二架大飞机C919上海浦东首飞
工信部指导和规范运营商的5G建设工作
如果医疗诊断可以通过机器学习和人工智能实现自动化?
SPI有几根线,SPI通信原理
STM32中国技术狂欢周来袭 米尔与您共赴嵌入式盛会
马丁代尔耐磨仪如何正确进行起毛起球测试
继电器的可靠性影响因素和测量方法
特斯拉semi兆瓦级充电技术详解
红米Note5什么时候上市?红米Note5携手红米Note5A一起发布,MIUI9+骁龙630再战千元,卖1099可好?
LED灯有噪声的原因及解决
机器人排查发热 助力社区工作人员统计数据
适用于初学者的DIY RepRap 3D 打印机教程—第3部分:代码
英特尔在移动芯片为何衰败,看完此文豁然开朗
科创板心脉医疗董事曲列锋介绍、履历信息
明基亮彩4K投影机TK850 升级家庭影音娱乐
山西:到2025年底公共充电桩桩车比不低于1:8
华为P10和华为P10plus详细区别对比
高精度定位助NOA从高速到城市跃迁