SPI,全程Serial Peropheral Interface,译为串行外围设备接口,是一种高速的、全双工的、同步通信总线。
SPI常用于单片机和E2PROM、FLASH、实时时钟、数字信号处理器等器件的通信。SPI通信原理主要是主从方式通信,这种模式通常只有一个主机和一个或多个从机。
标准的SPI有4根线,分别是SSEL、SCLK、MISO、MOSI。
SSEL:从设备片选使能信号。若从设备为低电平使能,则当此引脚拉低后,从设备被选中,主机同被选中的从机进行通信。
SCLK:时钟信号。 由主机产生,类似于I2C中的SCL。
MOSI:主机给从机发送指令或者数据的通道。
MISO:主机读取从机的状态或者数据的通道。
实际应用中,存在只使用2根或3根线的SPI。用户可以根据自己的实际需求,取舍SPI功能线。
SPI的读写时序过程有四种模式。在接触他们之前,需要学习两个名词。
CPOL:Clock Polarity,时钟的极性。整个通信过程分为空闲时刻和通信时刻。若在数据发送之前和之后SCLK的空闲状态是高电平,则CPOL = 1,若为低电平,则CPOL = 0;
CPHA :Clock Phase,时钟相位。
同步通信的一个特点是所有数据的变化和采集都伴随着时钟沿进行。一个时钟周期必定包括一个上升沿和一个下降沿。数据从产生到稳定需要一定时间,故一般来说同一个周期内,上升沿产生的数据,在下降沿收集,下降沿产生的数据,在上升沿收集。
CPHA = 1,表示在一个时钟周期的第一个沿上,进行数据输出。CPOL = 1,该沿是下降沿。CPOL = 0,该沿是上升沿。
CPHA = 0,表示在一个时钟周期的第一个沿上,进行数据采集。CPOL = 1,该沿是下降沿。CPOL = 0,该沿是上升沿。
这里可能出现这样的情况:在第一个时钟沿就采集了第一帧数据传输的第一个bit,这个数据是何时输出的呢?情况有二:一在SSEL使能的边沿,二上一帧数据的最后一个时钟沿。有时两种情况会同时生效。
以下是这四种模式的通信时序图:
上一篇:#51单片机#DS18B20硬件原理以及通信的工作时序
下一篇:#51单片机# I2C时序初步认识和寻址模式
推荐阅读
史海拾趣
随着技术的不断发展和市场的日益成熟,CSB公司意识到单纯依靠技术创新已无法满足企业长远发展的需求。于是,公司开始加强市场拓展和品牌建设。通过积极参加行业展会、加大广告宣传力度、优化销售渠道等方式,CSB公司成功提升了品牌知名度和美誉度。同时,公司还注重与合作伙伴建立长期稳定的合作关系,共同开拓市场,实现互利共赢。
随着环保意识的日益增强,电子行业对环保的要求也越来越高。EQCOLOGIC公司积极响应环保号召,将环保理念贯穿于产品研发、生产和销售的各个环节。公司采用环保的生产工艺和材料,减少污染物的排放;同时,还开展了一系列环保宣传活动,提高员工和消费者的环保意识。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。
随着公司的不断发展和壮大,Advanced Analog开始积极拓展国际市场。公司在全球范围内设立了多个分支机构和销售网络,与众多国际知名企业和品牌建立了长期稳定的合作关系。通过参与国际电子展会和交流活动,Advanced Analog的产品和技术得到了更广泛的认可和赞誉,进一步提升了公司在国际市场的知名度和影响力。
在数字化转型的大趋势下,Bivar公司也积极拥抱新技术,推动公司的数字化转型。公司引入了先进的生产管理系统和数据分析工具,实现了生产过程的智能化和精细化管理。同时,公司还加强了线上销售和客户服务渠道的建设,提升了客户体验和满意度。这些数字化转型的举措使得Bivar公司在激烈的市场竞争中保持了领先地位。
请注意,以上故事都是基于虚构和假设的,并不代表Bivar公司的真实发展历程。如果您需要了解Bivar公司的真实情况,建议您查阅该公司的官方网站、新闻报道或行业分析报告等权威渠道。
Eclipse的成功离不开其强大的社区支持。Eclipse社区拥有众多的开发者、测试者和用户,他们共同为Eclipse的发展贡献力量。通过举办开发者大会、在线论坛和邮件列表等方式,Eclipse社区为开发者们提供了一个交流学习的平台。在这个平台上,开发者们可以分享经验、解决问题,共同推动Eclipse的发展。
本帖最后由 paulhyde 于 2014-9-15 09:47 编辑 1、基本仪器清单 20MHz普通示波器(双通道,外触发输入,有X轴输入,可选带Z轴输入) 60MHz双通道数字示波器 低频信号发生器(1Hz~1MHz) 高频信号发生器(1MHz~40MHz) 函数发生器 低频毫伏表 ...… 查看全部问答∨ |
|
Covers Google’s Android Platform and its fundamental APIs, from basic concepts such as Android resources, intents, and content providers to advanced topics such as OpenGL 3D graphics Apress, 2009 At a high level, this book is a ...… 查看全部问答∨ |
|
PINSEL0 = 0x00; /* 设置P0.0~P0.15都为GPIO */ 这个我明白 请帮忙分析如下三个语句是如何操作的,尤其是等号后面的“&”“|”操作的作用? PINSEL0 = PINSEL0 & 0xFFFFFFFC; /* 设置P0.0为GPIO */ 这个地方是如何操作的,实现设定P0.0为GP ...… 查看全部问答∨ |
Senior Software Engineer (Driver) Responsibilities: 1. Develop Windows Driver. 2. Develop PC-TV driver and product. 3. &n ...… 查看全部问答∨ |
我用visual stdio 的template建了个pda的os project 在这个project下面加了个 用于播放wave file的subproject 可以通过build 但是运行这个subproject的时候没有反应 没有任何声音播放 (我是在windows ce command prompt下面 输入s Subproject1 ...… 查看全部问答∨ |
系统为XP+EVC4.0+SP4+PPC2003SE+SQL CE 编写ADOCE 访问Access数据库 建立并打开了数据库,可是不能执行建表SQL语句,代码如下: void CADOAccessDlg::OnBtnexec() { HRESULT hr; V ...… 查看全部问答∨ |
现在想实现在一个控件里既可以写文字,又可以插入图片,但是EVC下不能使用RichEdit控件。所以想问一下 EVC下类似与richedit的控件是什么? 主要是给一个PDA做一个便笺,可插入图片的,如果没有的话,谁能给推荐一个现成的,在WIN ce4.2下能用的。 ...… 查看全部问答∨ |
写数据都返回成功了,用WriteFile()函数写,而且也返回实际写的字节数了,但USB设备就没什么反应,请教各位大虾是应用程序的问题呢还是驱动程序的原因,驱动是自动生成的,没做改动 … 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 中秋芯币兑大礼
- 从终端到架构,TE Connectivity(TE)助你连接5G高速未来 看视频答题赢好礼!
- MPS电机研究院 让电机更听话的秘密! 第一站:电机应用知识大考!
- Mouser 新用户大礼包:你购物,我5折返E金币!
- Deyisupport博文阅读季:推荐你喜欢的放大器博文,抢楼赢好礼!
- 新年芯币竞价第三期——图书竞价
- EEWorld邀你来拆解(第7期)——拆拆减肥利器,看看跳绳里都有什么
- 安森美半导体移动、消费及汽车应用图像稳定方案下载有礼!
- 汽车VCU知识问答第一站:了解VCU系统框图和功能清单
- Littelfuse 高效 • 可靠 • 精准的功率控制和电路保护方案在工业、交通、通讯、医疗及新能源中的应用