引言
当您将微控制器连接到传感器,显示器或其他模块时,您是否考虑过这两种设备如何相互通信?他们到底在说什么?他们如何互相了解?
电子设备之间的通信就像人类之间的通信。双方都需要说相同的语言。在电子学中,这些语言称为 通信协议。对我们来说幸运的是,在构建大多数DIY电子产品项目时,我们只需要知道一些通信协议即可。
首先,我们将从有关电子通信的一些基本概念开始,然后详细说明SPI的工作原理。
SPI,I2C和UART比USB,以太网,蓝牙和WiFi等协议要慢很多,但它们更简单,使用的硬件和系统资源也更少。SPI,I2C和UART非常适用于微控制器之间以及不需要传输大量高速数据的微控制器与传感器之间的通信。
正文
串行与并行通信
电子设备 通过物理连接在设备之间的电线发送数据位来相互通信 。有点像单词中的字母,除了不是26个字母(英语字母中的字母)外,位是二进制的,只能是1或0。通过电压的快速变化,位从一个设备转移到另一个设备。在以5 V工作的系统中,0位作为0 V的短脉冲进行通信,而1位通过5 V的短脉冲进行通信。
数据位可以并行或串行形式传输。在并行通信中,数据位通过一条单独的导线同时全部发送。下图显示了二进制(01000011)中字母“ C”的并行传输:
在串行通信中,位通过单根线一一发送。下图显示了二进制(01000011)中字母“ C”的串行传输:
SPI通信简介
SPI是许多不同设备使用的通用通信协议。例如, SD卡模块, RFID卡读取器模块和 2.4 GHz无线发送器/接收器 均使用SPI与微控制器通信。
SPI的一个独特优势是可以无中断传输数据。可以在连续流中发送或接收任意数量的位。使用I2C和UART,数据以数据包的形式发送,限制为特定位数。开始和停止条件定义了每个数据包的开始和结束,因此数据在传输过程中被中断。
通过SPI通信的设备处于主从关系。主设备是控制设备(通常是微控制器),而从设备(通常是传感器,显示器或存储芯片)从主设备获取指令。SPI的最简单配置是一个单主机,一个从机系统,但是一个主机可以控制多个从机(下面有更多介绍)。
MOSI(主机输出/从机输入) –主机将数据发送到从机的线路。
MISO(主机输入/从机输出) –从机将数据发送到主机的线路。
SCLK(时钟) –时钟信号线。
SS / CS(从站选择/芯片选择) –主站用于选择向其发送数据的从站的线路。
实际上,从站的数量受系统负载电容的限制,这降低了主机在电压电平之间准确切换的能力。
SPI如何运作?
时钟
时钟信号将主设备的数据位输出同步到从设备的位采样。每个时钟周期传输一位数据,因此数据传输的速度取决于时钟信号的频率。由于主机配置并生成时钟信号,因此SPI通信始终由主机启动。
设备共享时钟信号的任何通信协议都称为 同步。 SPI是一种同步通信协议。还有一些 异步 方法不使用时钟信号。例如,在UART通信中,双方都设置为预先配置的波特率,该波特率决定了数据传输的速度和时序。
可以使用时钟极性和时钟相位的属性来修改SPI中的时钟信号。这两个属性共同定义了何时输出位以及何时对其进行采样。主机可以设置时钟极性,以允许在时钟周期的上升沿或下降沿输出和采样位。可以设置时钟相位,以便在时钟周期的第一沿或第二沿进行输出和采样,而不管它是上升还是下降。
从机选择
主机可以通过将从机的CS / SS线设置为低电压电平来选择要与之通信的从机。在空闲,非传输状态下,从选择线保持在高电压电平。主机上可能有多个CS / SS引脚,这允许多个从机并行连接。如果仅存在一个CS / SS引脚,则可以通过菊花链将多个从机连接到主机。
多个从机
可以将SPI设置为与单个主机和单个从机一起运行,并且可以与由单个主机控制的多个从机一起设置。有两种方法可以将多个从站连接到主站。如果主机具有多个从机选择引脚,则从机可按以下方式并联:
如果只有一个从设备选择引脚可用,则可以通过以下方式菊花链连接从设备:
MOSI和MISO
主机通过MOSI线以串行方式将数据发送到从机。从机通过MOSI引脚接收主机发送的数据。从主机发送到从机的数据通常先发送最高有效位。
从机也可以通过MISO线串行将数据发送回主机。从从机发送回主机的数据通常先发送最低有效位。
SPI数据传输步骤
主机输出时钟信号:
主机将SS / CS引脚切换到低电压状态,从而激活从机:
主机沿着MOSI线一次将数据发送给从机。从站读取接收到的位:
如果需要响应,则从机沿着MISO线一次将数据返回一位给主机。主机读取接收到的位:
SPI的优缺点
使用SPI有一些优点和缺点,如果在不同的通信协议之间进行选择,则应根据项目要求知道何时使用SPI:
优点
没有起始位和停止位,因此数据可以连续流传输而不会中断
没有像I2C这样复杂的从站寻址系统
数据传输速率比I2C更高(几乎快两倍)
分开的MISO和MOSI线路,因此可以同时发送和接收数据
缺点
使用四根线(I2C和UART使用两根线)
没有确认已成功接收数据的确认(I2C拥有此功能)
没有任何形式的错误检查,如UART中的奇偶校验位
只允许一个主机
上一篇:什么是单片机,什么叫单片机?
下一篇:MCU如何在扩展的SDRAM上运行程序?
推荐阅读最新更新时间:2024-11-10 17:06
推荐帖子
- 在电源应用中,用SiC还是GaN比较好?来聊聊实际需要考虑的因素
- 在电源应用中,是用SiC还是GaN?是不是其中一种可以完全替代另外一种?在实际应用中,需要考虑哪些因素呢?在往下看往下聊之前,小伙伴们可以自己先投个票,说一说直观感受下你觉得选哪个比较好,还可以跟帖说说你的理由。大家一起来聊一聊:选择使用GaN还是SiC器件,从实际应用要关注的角度来看,主要取决于四个关键因素:可靠性、性能、成本和产能。从可靠性来讲的话:SiC有它自身的一些缺陷问题,但是也已经取得了基本的可靠性水准,而GaN的可靠性水平跟Si的差不多。管管找来了这样
- okhxyyo 电源技术
- DS18B20温度传感器的proteus仿真
- 温度最小分辨率为0.5度;显示范围为零下10度至零上50度;用LED显示当前温度值;可通过键盘设定温度上、下限,超限报警。 DS18B20温度传感器的proteus仿真先感谢了顶一下顶一下:D谢谢啦正用得着!!!!!顶!!顶一个,找了很久了,正好需要,谢谢楼主了楼主有Protus软件么,拿出来给大家分享哈最右边的3个KEY,是什么意思呢?内容不错,收藏啦!谢了还差一枚芯币,这回应该可
- historyarea 单片机
- NIOSII那些事儿REV7.0
- NIOSII那些事儿REV7.0谢谢楼主,无私分享
- 陌路绝途 FPGA/CPLD
- 分享:胶囊机器人的天线设计资料(英文)
- 胶囊机器人的天线设计资料(英文)分享:胶囊机器人的天线设计资料(英文)
- qwqwqw2088 RF/无线
- 请教SD卡启动NK.bin
- 小弟遇到难题,请教各位前辈!分都用完了,还请各位前辈帮帮我。问题:在eboot启动后,添加从SD(fatorfat32)卡直接启动NK的工作。目前进展,nk.nb0已经可以读到ram,ce也已经起来了。目前需要使nk.bin也可以这样放到SD卡里面启动。不知道nk.bin写入ram的时候怎么解析,请各位前辈指点一二。谢谢大家了~!请教SD卡启动NK.bin参照ms的eboot代码就可以了,直接搬过来就行引用2楼veabol的回复:\\WINCE500\\PUBLIC\\
- Feeeee 嵌入式系统
- 关于Windows 2000的电源管理 (转载)
- 电源管理 Windows2000对系统的电源管理功能进行了极大的扩展。比如,可以设置当按下机箱上的电源按钮时,系统执行挂起、快速关机(当然是安全关机,绝不是突然断电)等操作,而这项功能以前可是HP等原装机的专利。不过要使用该功能有一个条件,就是你的主板必须支持ACPI规范,否则这项功能选项不会出现,不过现有的主板几乎都支持该规范。调出这项功能的步骤为:在“控制面板”中打开“电源管理”,再选择“高级”标签,然后就可以在其中选择当按下电源按钮时系统要执行的动作了。 Windows
- zbz0529 电源技术
设计资源 培训 开发板 精华推荐
- 来自 24V 壁式适配器和铅酸电池的 LTC3126EUFD 3.3V/2.5A 电源的典型应用电路
- 使用 ROHM Semiconductor 的 BA60BC0WT 的参考设计
- Si4825-A,入门级轮调 AM/FM/SW 接收器,单声道音频设计
- L6390,适用于工业应用的高压半桥栅极驱动器
- LTM4608AIV 2.7V 至 5.5Vin、1.2V 输出 DC/DC 稳压器在扩频操作中的典型应用电路
- EVAL-AD5343DBZ,用于评估 AD5343 12 位双通道电压输出数模转换器 (DAC) 的评估板
- 用于仪表的 16 位 1 通道 DAC
- AM1D-4812D-RZ ±12V 1 瓦 DC/DC 转换器的典型应用
- 555定时器
- 使用 Analog Integrations Corporation 的 AIC16 的参考设计
- TI机器人系统学习套件,低成本开启你的电子工程课程实战之旅
- 注册有礼|看安富利人工智能云会展,赢京东卡啦!
- 揭秘正确选择探头的5大要素 (泰克原装探头促销,高贵不贵,199元起)
- 答题有礼|一起学习 Mentor PCB 手册
- 2023 DigiKey KOL 系列——将TinyML融入IoT物联网应用中
- 助人为乐,打榜领奖: EEWORLD月度问答榜换新推出~
- 英飞凌开发板618大促:爆款清单揭秘,有好礼!
- 【1月14日 技术直播】工程师请就位,Keysight计量专家开讲啦 ~电子仪器计量校准基础知识与校准周期探讨
- 【备战国赛】超多电赛干货资料等你下载!盖楼助力电赛赢积分
- 电源技术专辑第2期:从零开始 DIY 双向高效 DC-DC!