文章目录[隐藏]
1 通信方式(主从通信)
1.1 什么是主从通信
主从式通信一般有一台主机和多台从机(可仅存一台)。主机发送的信息可以传送到多台从机或指定从机,而从机发送的信息只能传送到主机,各从机之间不能直接通信。从机好比“舔狗”,沟通主动权永远把握在被舔对象,并且不会清楚与他类似的人还存在多少。
1.2 主从通信如何实现
1.2.1 相关控制引脚介绍
一般芯片存在四种类型的引脚引脚:MOSI、MISO、PCS、SCK,通过四个引脚共同实现主从机之间的通信。MOSI、MISO用于数据传输,PCS用于从机选择、SCK用于从机通信时钟输入。
备注: 引脚命令名可能存在不一致的情况,但是基本功能与此对应
MOSI——主机输出/从机输入
英文全称Master Outout Slave Input,根据此含义可以直观看出: SPI模块配置为主机时,该引脚用于发送数据;SPI模块配置为从机时,该引脚用于接收数据。
MISO——主机输入/从机输出
英文全称Master Input Slave Output,根据此含义可以直观看出: SPI模块配置为主机时,该引脚用于接收数据;SPI模块配置为从机时,该引脚用于发送数据。
PCS——外设芯片选择引脚
英文全称Peripheral Chip Select,SPI配置为主机时,该引脚用于向其他从机发送一个片选信号;SPI配置为从机时,该引脚用于接收片选信号。
SCK——串行时钟引脚
引文全称为Serial Clock,SPI配置为主机时,该引脚用于输出传输数据的时钟,SPI配置为从机时,该引脚为接收时钟信号。
1.2.2 如何通过控制引脚实现主从通信
主机与从机通信实现:
1)、确定与哪一个从机进行通信:通过外设芯片片选引脚进行选择,同一个SPI通道(芯片可能存在多个SPI通道) 只能与一个外设芯片进行通信(打个比方来说,多个人同时对你说话,是否会造成脑子混乱。本质原因,共用通信引脚、时钟信号以及内部寄存器)
2)、时钟信号由主机进行输出,从机进行接收,即主机基于此时钟进行信号发送,从机基于此时钟信号进行信号接收以及发送。打个比方,湖南人发音为“fu nan”,而普通话则发音为“hu nan”,沟通时,说话的人得让别人知道他说的是湖南话,而对方得知道这是湖南话,否则将无法对信息进行解析。
3)、信号输入与输出如前文描述。
2 通信数据交换方式
硬件上只有一个移位寄存器和两个缓冲器(发送缓冲器和接收缓冲器),主模式:移位寄存器会先从发送缓冲器读出数据,然后通过MOSI引脚一位一位地将数据发出去,在发送的过程中,移位寄存器的数据会左移/右移(取决于配置,从机某些芯片有明确要求),并且会从MISO引脚读入数据填补移位寄存器左移/右移后的空缺。传输8比特数据后,移位寄存器再把数据并行写入接收缓冲寄存器。
3 通信数据传输模式
时钟极性(CPOL): 表示空闲时时钟电平为高电平或者低电平
时钟相位(CPHA):SPI数据采样在电平跳变的边沿进行,此参数表示采样在第一个边沿或者第二个边沿进行(不是直接指定的上升沿或者下降沿,与时钟极性相关)
根据上面描述可以知道,存在四种传输组合(如何选择取决于Slave节点控制方式):
1)、CPOL = 0,CPHA = 0: 空闲电平为低电平,上升沿采样(空闲电平为低电平,因此第一个跳变沿必然为上升沿)
2)、CPOL = 0,CPHA = 1: 空闲电平为低电平,下升沿采样(空闲电平为低电平,因此第二个跳变沿必然为下升沿)
3)、CPOL = 1,CPHA = 0: 空闲电平为高电平,下升沿采样(空闲电平为低电平,因此第一个跳变沿必然为下升沿)
4)、CPOL = 1,CPHA = 1: 空闲电平为低电平,上升沿采样(空闲电平为低电平,因此第二个跳变沿必然为上升沿)
4 通信主从机连接方式
1)、一主多从(主机控制其与从机之间进行通信,从机之间无数据传输): 主机采用同一个SPI通信通道,因此要求从机时钟相位、时钟极性以及片选方式(高低电平)完全一致,同时SPI的帧格式尽量一致
#需要多个片选引脚分别控制数据传输,主节点需要避免同时选择多个从节点
2)、一主多从(主机控制其与从机之间进行通信,从机之间也存在数据传输,且需要同时唤醒所有从节点): 主机采用同一个SPI通信通道,因此要求从机时钟相位、时钟极性以及片选方式(高低电平)、帧格式完全一致
#正常情况从节点数据手册会存在相应描述,而且从节点基本使用同一芯片
5 基本操作模式(具体取决于使用芯片,并不一定支持)
操作模式主要取决于具体使用的芯片(某些会存在一些适用于低功耗的设计),以下描述为本人在使用中遇到的一些内容(仅作为使用中的参考)。
1)、运行模式:存在控制寄存器,可通过此寄存器控制SPI模块模式,不使用时可使其进入低功耗状态
2)、等待模式:控制寄存器存在控制位控制是否进入等待模式,处于不同模式处理不同(主从配置):
a)、配置为主模式时,时钟停止,进入低功耗模式
b)、配置为从模式时,取决于主机状态
3)、停止模式:禁用时钟,冻结数据
版权声明:本文为CSDN博主「摸鱼的攻城狮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012406840/article/details/121576997
1 通信方式(主从通信)
1.1 什么是主从通信
主从式通信一般有一台主机和多台从机(可仅存一台)。主机发送的信息可以传送到多台从机或指定从机,而从机发送的信息只能传送到主机,各从机之间不能直接通信。从机好比“舔狗”,沟通主动权永远把握在被舔对象,并且不会清楚与他类似的人还存在多少。
1.2 主从通信如何实现
1.2.1 相关控制引脚介绍
一般芯片存在四种类型的引脚引脚:MOSI、MISO、PCS、SCK,通过四个引脚共同实现主从机之间的通信。MOSI、MISO用于数据传输,PCS用于从机选择、SCK用于从机通信时钟输入。
备注: 引脚命令名可能存在不一致的情况,但是基本功能与此对应
MOSI——主机输出/从机输入
英文全称Master Outout Slave Input,根据此含义可以直观看出: SPI模块配置为主机时,该引脚用于发送数据;SPI模块配置为从机时,该引脚用于接收数据。
MISO——主机输入/从机输出
英文全称Master Input Slave Output,根据此含义可以直观看出: SPI模块配置为主机时,该引脚用于接收数据;SPI模块配置为从机时,该引脚用于发送数据。
PCS——外设芯片选择引脚
英文全称Peripheral Chip Select,SPI配置为主机时,该引脚用于向其他从机发送一个片选信号;SPI配置为从机时,该引脚用于接收片选信号。
SCK——串行时钟引脚
引文全称为Serial Clock,SPI配置为主机时,该引脚用于输出传输数据的时钟,SPI配置为从机时,该引脚为接收时钟信号。
1.2.2 如何通过控制引脚实现主从通信
主机与从机通信实现:
1)、确定与哪一个从机进行通信:通过外设芯片片选引脚进行选择,同一个SPI通道(芯片可能存在多个SPI通道) 只能与一个外设芯片进行通信(打个比方来说,多个人同时对你说话,是否会造成脑子混乱。本质原因,共用通信引脚、时钟信号以及内部寄存器)
2)、时钟信号由主机进行输出,从机进行接收,即主机基于此时钟进行信号发送,从机基于此时钟信号进行信号接收以及发送。打个比方,湖南人发音为“fu nan”,而普通话则发音为“hu nan”,沟通时,说话的人得让别人知道他说的是湖南话,而对方得知道这是湖南话,否则将无法对信息进行解析。
3)、信号输入与输出如前文描述。
2 通信数据交换方式
硬件上只有一个移位寄存器和两个缓冲器(发送缓冲器和接收缓冲器),主模式:移位寄存器会先从发送缓冲器读出数据,然后通过MOSI引脚一位一位地将数据发出去,在发送的过程中,移位寄存器的数据会左移/右移(取决于配置,从机某些芯片有明确要求),并且会从MISO引脚读入数据填补移位寄存器左移/右移后的空缺。传输8比特数据后,移位寄存器再把数据并行写入接收缓冲寄存器。
3 通信数据传输模式
时钟极性(CPOL): 表示空闲时时钟电平为高电平或者低电平
时钟相位(CPHA):SPI数据采样在电平跳变的边沿进行,此参数表示采样在第一个边沿或者第二个边沿进行(不是直接指定的上升沿或者下降沿,与时钟极性相关)
根据上面描述可以知道,存在四种传输组合(如何选择取决于Slave节点控制方式):
1)、CPOL = 0,CPHA = 0: 空闲电平为低电平,上升沿采样(空闲电平为低电平,因此第一个跳变沿必然为上升沿)
2)、CPOL = 0,CPHA = 1: 空闲电平为低电平,下升沿采样(空闲电平为低电平,因此第二个跳变沿必然为下升沿)
3)、CPOL = 1,CPHA = 0: 空闲电平为高电平,下升沿采样(空闲电平为低电平,因此第一个跳变沿必然为下升沿)
4)、CPOL = 1,CPHA = 1: 空闲电平为低电平,上升沿采样(空闲电平为低电平,因此第二个跳变沿必然为上升沿)
4 通信主从机连接方式
1)、一主多从(主机控制其与从机之间进行通信,从机之间无数据传输): 主机采用同一个SPI通信通道,因此要求从机时钟相位、时钟极性以及片选方式(高低电平)完全一致,同时SPI的帧格式尽量一致
#需要多个片选引脚分别控制数据传输,主节点需要避免同时选择多个从节点
2)、一主多从(主机控制其与从机之间进行通信,从机之间也存在数据传输,且需要同时唤醒所有从节点): 主机采用同一个SPI通信通道,因此要求从机时钟相位、时钟极性以及片选方式(高低电平)、帧格式完全一致
#正常情况从节点数据手册会存在相应描述,而且从节点基本使用同一芯片
5 基本操作模式(具体取决于使用芯片,并不一定支持)
操作模式主要取决于具体使用的芯片(某些会存在一些适用于低功耗的设计),以下描述为本人在使用中遇到的一些内容(仅作为使用中的参考)。
1)、运行模式:存在控制寄存器,可通过此寄存器控制SPI模块模式,不使用时可使其进入低功耗状态
2)、等待模式:控制寄存器存在控制位控制是否进入等待模式,处于不同模式处理不同(主从配置):
a)、配置为主模式时,时钟停止,进入低功耗模式
b)、配置为从模式时,取决于主机状态
3)、停止模式:禁用时钟,冻结数据
版权声明:本文为CSDN博主「摸鱼的攻城狮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012406840/article/details/121576997
暂无评论