当前位置: 首页 > news >正文

毕业设计网站建设流程免费查找资料的网站

毕业设计网站建设流程,免费查找资料的网站,网站推广南京公司,北京外贸网站制作公司1.SPI简介 SPI#xff0c;是英语Serial Peripheral Interface的缩写#xff0c;顾名思义就是串行外围设备接口。SPI#xff0c;是一种高速的#xff0c;全双工#xff0c;同步的通信总线#xff0c;并且在芯片的管脚上只占用四根线#xff0c;节约了芯片的管脚#xf…1.SPI简介 SPI是英语Serial Peripheral Interface的缩写顾名思义就是串行外围设备接口。SPI是一种高速的全双工同步的通信总线并且在芯片的管脚上只占用四根线节约了芯片的管脚同时为PCB的布局上节省空间提供方便正是出于这种简单易用的特性现在越来越多的芯片集成了这种通信协议。 SPI 是一种用于在数字设备之间进行通信的串行通信协议。与UART和I2C相比SPI 在一些方面具有独特的优势 SPI 的主要特点包括 高速传输SPI 通常可以实现更高的传输速率因为它是同步的且没有像 UART 那样的起始位和停止位也没有像 I2C 那样的地址字节。这使得 SPI 在需要快速数据传输的应用中非常有用。 全双工通信SPI 支持全双工通信这意味着数据可以在同一时刻在两个方向上传输。这种特性对于需要同时进行数据读取和写入的应用非常有用。 硬件依赖性SPI 在一些硬件上实现简单且成本较低。SPI 总线通常只需要3n根线如时钟线、数据线和选择线因此在硬件资源有限的情况下SPI 可能是更好的选择。 多主设备支持SPI 支持多主设备的通信这意味着多个设备可以同时连接到同一个 SPI 总线上并能够协调使用总线进行通信。 应用广泛SPI 在许多领域得到广泛应用包括嵌入式系统、传感器、存储器等等。由于其高速和灵活性SPI 是许多数字系统中的首选通信协议之一。 2.物理层 MOSI主机输出/从机输入——主机向从机发送数据的线 master slave MISO主机输入/从机输出——从机向主机发送数据的线 SCLK时钟——时钟信号线 SS/CS从机选择/芯片选择——用于主机选择给哪个从机发送数据的线 把这个线置位就可以选择主机跟哪个从机通信 SPI 通讯使用3 条总线及片选线3 条总线分别为SCK、MOSI、MISO片选线为SS/CSSPI可以一个主机连接单个或多个从机每个从机都使用一个引脚进行片选。 一主一从 一主多从 片选线SS Slave Select 从设备选择信号线常称为片选信号线也称为NSS、CS、SS以下用SS 表示。 当有多个SPI 从设备与SPI 主机相连时设备的其它信号线SCK、MOSI 及MISO 同时并联到相同的SPI 总线上即无论有多少个从设备都共同只使用这3 条总线。而每个从设备都有独立的这一条SS 信号线本信号线独占主机的一个引脚即有多少个从设备就有多少条片选信号线。I2C 协议中通过设备地址来寻址、选中总线上的某个设备并与其进行通讯。 而SPI 协议中没有设备地址而是使用SS 信号线来寻址当主机要选择从设备时把该从设备的SS 信号线设置为低电平该从设备即被选中即片选有效接着主机开始与被选中的从设备进行SPI 通讯。所以SPI 通讯以SS 线置低电平为开始信号以SS 线被拉高作为结束信号。 SCK (Serial Clock) 时钟信号线用于通讯数据同步。它由通讯主机产生决定了通讯的速率不同的设备支持的最高时钟频率不一样如STM32 的SPI 时钟频率最大为fpclk/2两个设备之间通讯时通讯速率受限于低速设备。 MOSI (Master OutputSlave Input) 主设备输出/从设备输入引脚。主机的数据从这条信号线输出从机由这条信号线读入主机发送的数据即这条线上数据的方向为主机到从机。 MISO(Master Input,Slave Output) 主设备输入/从设备输出引脚。主机从这条信号线读入数据从机的数据由这条信号线输出到主机即在这条线上数据的方向为从机到主机。 3.协议层 与I2C 的类似SPI 协议定义了通讯的起始和停止信号、数据有效性、时钟同步等环节。 3.1 SPI基本通讯过程 这是一个主机的通讯时序。NSS、SCK、MOSI 信号都由主机控制产生而MISO 的信号由从机产生主机通过该信号线读取从机的数据。MOSI 与MISO 的信号只在NSS 为低电平的时候才有效在SCK 的每个时钟周期MOSI 和MISO 传输一位数据。 3.2 起始和停止信号 NSS 信号线由高变低是SPI 通讯的起始信号。NSS 是每个从机各自独占的信号线当从机在自己的NSS 线检测到起始信号后就知道自己被主机选中了开始准备与主机通讯。如图NSS 信号由低变高是SPI 通讯的停止信号表示本次通讯结束从机的选中状态被取消。 3.3数据有效性 SPI 使用MOSI 及MISO 信号线来传输数据使用SCK 信号线进行数据同步。MOSI 及MISO 数据线在SCK 的每个时钟周期传输一位数据且数据输入输出是同时进行的。 观察下图MOSI 及MISO 的数据在SCK 的上升沿期间变化红色框图在SCK 的下降沿时被采样绿色框图。即在SCK 的下降沿时刻MOSI 及MISO 的数据有效高电平时表示数据“1”为低电平时表示数据“0”。 在其它时刻数据无效MOSI 及MISO 为下一次表示数据做准备。SPI 每次数据传输可以8 位或16 位为单位每次传输的单位数不受限制。 MSB:高位在前 LSB低位在前 3.4 CPOL/CPHA 及通讯模式 上文讲的例程只是SPI 中的其中一种通讯模式SPI 一共有四种通讯模式它们的主要区别是总线空闲时SCK 的时钟状态以及数据采样时刻。在此引入“时钟极性CPOL”和“时钟相位CPHA”的概念。 CPOL和CPHA分别都可以是0或时1对应的四种组合就是 时钟极性CPOL 是指SPI 通讯设备处于空闲状态时SCK 信号线的电平信号(即SPI 通讯开始前、NSS 线为高电平时SCK 的状态)。CPOL0 时SCK 在空闲状态时为低电平CPOL1 时则相反。 时钟相位CPHA 是指数据的采样的时刻当CPHA0 时MOSI 或MISO 数据线上的信号将会在SCK 时钟线的“奇数边沿”被采样。当CPHA1 时数据线在SCK 的“偶数边沿”采样。 时钟和相位会决定你发过来的数据怎么解析 拿《STM32F4xx参考手册》举例 分析上图 CPHA1时说明是在SCK偶数边沿采样 CPOL1时SCK在空闲状态为高电平也就是说开始信号有效后SCK肯定是高电平到低电平的跳变。 在这个搭配下有效数据如上图所示其他三种模式也是类似可查看《STM32F4xx参考手册》图 273. 数据时钟时序图 下面列举了四种情况 CPOL0,CPHA0 CPOL0,CPHA1 CPOL1,CPHA0 CPOL1,CPHA1 在实际操作过程中我们怎么设置SPI的极性和相位呢 由SPI从设备硬件决定 SPI从设备具体是什么模式需要查看对应的模块手册 SPI从设备在空闲的时候是高电平还是低电平即决定了CPOL是0还是1 然后再找到关于设备是在上升沿还是下降沿去采样数据对应着可以推算出CPHA是0还是1了。 由软件自己设定 如果四种模式都支持那就随便。 4.STM32 的SPI外设 STM32 的SPI 外设可用作通讯的主机及从机支持最高的SCK 时钟频率为fpclk/2 (STM32F407 型 号的芯片默认fpclk1APB142MHzfpclk2APB2 为84MHz)完全支持SPI 协议的4 种模式数据帧长度可设置 为8 位或16 位可设置数据MSB 先行或LSB 先行 它还支持双线全双工(前面小节说明的都是这种模式)、双线单向以及单线模式。其中双线单向模式可以同时使用MOSI 及MISO 数据线向一个方向传输数据可以加快一倍的传输速度。而单线模式则可以减少硬件接线当然这样速率会受到影响。不过这些模式用的比较少还是双线全双工模式最常用。 4.1 通讯引脚 STM32 芯 片有多个SPI 外设它们的SPI 通讯信号引出到不同的GPIO 引脚上使用时必须配置到这些指 定的引脚 STM32F4xx 的SPI 引脚 其中SPI1、SPI4、SPI5、SPI6 是挂在APB2 上的设备最高通信速率达42Mbtis/s SPI2、SPI3 是挂在APB1 上的设备最高通信速率为21Mbits/s。其它功能上没有差异。 4.2 时钟 SCK 线的时钟信号由波特率发生器根据“控制寄存器CR1”中的BR[0:2] 位控制该位是对fpclk时钟的分频因子对fpclk 的分频结果就是SCK 引脚的输出时钟频率。 4.3 数据逻辑控制 SPI 的MOSI 及MISO 都连接到数据移位寄存器上数据移位寄存器的内容来源于接收缓冲区及发送缓冲区以及MISO、MOSI 线。 当向外发送数据的时候数据移位寄存器以“发送缓冲区”为数据源把数据一位一位地通过数据线发送出去 当从外部接收数据的时候数据移位寄存器把数据线采样到的数据一位一位地存储到“接收缓冲区”中。 其中数据帧长度可以通过“控制寄存器CR1”的“DFF 位”配置成8 位及16 位模式配置“LSBFIRST 位”可选择MSB 先行还是LSB 先行。 4.4 状态和控制部分 SR是通信过程中的寄存器 基本的控制参数包括前面提到的SPI 模式、波特率、LSB 先行、主从模式、单双向模式等等。在外设工作时控制逻辑会根据外设的工作状态修改“状态寄存器(SR)”我们只要读取状态寄存器相关的寄存器位就可以了解SPI 的工作状态了。除此之外控制逻辑还根据要求负责控制产生SPI 中断信号、DMA 请求及控制NSS 信号线。 实际应用中我们一般不使用STM32 SPI 外设的标准NSS 信号线而是更简单地使用普通的GPIO软件控制它的电平输出从而产生通讯起始和停止信号。 4.5 通讯过程 STM32 使用SPI 外设通讯时在通讯的不同阶段它会对“状态寄存器SR”的不同数据位写入参数我们通过读取这些寄存器标志来了解通讯状态。 (1) 控制NSS 信号线产生起始信号(图中没有画出) (2) 把要发送的数据写入到“数据寄存器DR”中该数据会被存储到发送缓冲区此操作会将 TXE 标志清零。 (3) 通讯开始SCK 时钟开始运行。MOSI 把发送缓冲区中的数据一位一位地传输出去MISO 则把数据一位一位地存储进接收缓冲区中 (4) 当发送完一帧数据的时候“状态寄存器SR”中的“TXE 标志位”会被置1表示传输完一帧发送缓冲区已空类似地当接收完一帧数据的时候“RXNE 标志位”会被置1表示传输完一帧接收缓冲区非空 (5) 等待到“TXE 标志位”为1 时若还要继续发送数据则再次往“数据寄存器DR”写入数据即可等待到“RXNE 标志位”为1 时通过读取“数据寄存器DR”可以获取接收缓冲区中的内容。假如我们使能了TXE 或RXNE 中断TXE 或RXNE 置1 时会产生SPI 中断信号进入同一个中断服务函数。 5.SPI初始化结构体 typedef struct{uint16_t SPI_Direction; /* 设置SPI 的单双向模式*/uint16_t SPI_Mode; /* 设置SPI 的主/从机端模式*/uint16_t SPI_DataSize; /* 设置SPI 的数据帧长度可选8/16 位*/uint16_t SPI_CPOL; /* 设置时钟极性CPOL可选高/低电平*/uint16_t SPI_CPHA; /* 设置时钟相位可选奇/偶数边沿采样*/uint16_t SPI_NSS; /* 设置NSS 引脚由SPI 硬件控制还是软件控制 */uint16_t SPI_BaudRatePrescaler; /* 设置时钟分频因子fpclk/分频数fSCK */uint16_t SPI_FirstBit; /* 设置MSB/LSB 先行*/uint16_t SPI_CRCPolynomial; /* 设置CRC 校验的表达式*/} SPI_InitTypeDef;6
http://www.hkea.cn/news/14303447/

相关文章:

  • 天津品牌网站建设好处哈尔滨建站优化定制
  • 网站开发费怎么做会计分录网站开发的后台开发工具
  • 网站开发ckplayer加载失败wordpress子页面怎么修改密码
  • 自己建网站做电商还赚钱吗网线制作过程图片
  • seo查询官方网站天津住房与城乡建设厅网站首页
  • 滨州市住房和城乡建设局网站wordpress主题页脚信息修改
  • 做好的网站做html的软件
  • 绿茵足球网站建设网站域名如何注册
  • 知名网站建设定制广告牌设计
  • 如何自己开发一个自己的网站什么是线上营销和线下营销
  • 网站制作公司哪儿济南兴田德润有活动吗阿里企业邮箱下载
  • 网站开发有关书籍做刷网站怎么赚钱
  • 做外贸在什么网站最好电子商务网页制作
  • 汕头潮南网站建设在网上做企业网站怎么做
  • 大众服务器网站定制版软件
  • 网站建设 客户拜访腾讯wordpress 建站
  • 用自己电脑建网站拓者设计吧账号
  • 新建网站如何让百度收录酒店加盟
  • 福州网站大全深圳广告公司集中在哪里
  • 那个网站做视频能挣钱服务器机房托管价格
  • 2017最佳网站设计wordpress 转 ios app
  • 网站页面背景基金会网站建设方案
  • 遵义城乡和住房建设厅网站网站开发的技术问题
  • 百度推广需要备案的网站吗微信小程序研发
  • 网站空间租赁合同wordpress .mo文件编辑
  • 域名注册好了如何做网站有没有免费看的视频
  • 有没有免费做网站的8个公开大数据网站
  • 学网站建设网站建设相关岗位名称
  • wordpress站群代淘宝电脑版登录网页入口
  • 提示网站建设中wordpress页面顶部