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

STM32之SPI——外部FLASH和RFID

一、SPI协议的原理与应用

  • 基本概念

串行外设接口SPI(Serial Peripheral Interface)是由美国摩托罗拉公司最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行外设扩展接口。该接口是一种高速、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,为PCB的布局上节省空间。

  • 应用场景

SPI接口主要应用在访问高速设备,如spi flash、2.4G无线传输、lcd设备显示、电阻屏触控IC等。

  1. 2.4GHZ无线传输

  1. LCD显示设备

  1. 墨水屏设备

  1. 串行Flash存储IC

  1. RFID射频模块

  • 内部结构

SPI接口采用主从结构,SPI由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI接口由MOSI(串行数据输出)、MISO(串行数据输入)、SCLK(串行移位时钟)、/SS(从设备使能信号,/SS亦可为NSS)四种信号构成。

  • 工作模式

由于SPI接口采用同步通信,必须在SCK时钟线生成的脉冲信号期间完成数据的传输,对于SPI接口而言采用的是边沿同步的方式,所以就需要清楚时钟线SCK到底是哪个边沿进行同步。

MCU作为主机可以选择四种工作模式中的任何一种,但是选择工作模式的时候要以从机支持的模式为主,从机支持的工作模式必须要阅读从机的数据手册(大多数都是支持模式0)。

  1. 串行Flash存储IC的原理与应用
  • 基本概念

由于STM32F407ZET6这颗MCU内部只有512KB的Flash闪存容量,这512KB需要用于存储固件,剩余的空间可能不足以让用户使用了,所以需要额外的拓展存储IC,在GEC-M4开发板中集成了一颗串行Flash芯片,型号是W25Q128,容量是128Mbit,该存储IC采用SPI接口进行通信。

  • 内存分布

W25Q128是容量为128Mbit的SPI接口NOR Flash的器件,内部是按照Page、Sector、Block的结构来划分的,一个Page为256个Byte,一个Sector为16个Page也就是4KB,一个Block为16个Sector也就是64KB。相较于EEPROM而言,SPI Flash的存储空间更大,存取速度更快,广泛应用于嵌入式系统中数据、代码的固化。

  • 引脚说明

  • 工作模式

  • 指令分析

  • 程序设计

  1. 读取厂商/设备ID

  1. 写使能

  1. 读状态寄存器

  1. 写失能

  1. 擦除扇区

  1. 读数据

  1. 页编程

  • 验证结果

  • 时序模拟

如果想要提高程序的实时性以及程序的可移植性,则可以选择使用MCU的某些IO口生成SPI通信所需要的时序,从而摆脱硬件资源的限制。

用户只需要找到4个IO口作为SPI通信的SCK、MISO、MOSI、CS,可以设置SCK引脚为输出模式、MISO引脚为输入模式、MOSI引脚为输出模式、CS片选为输出模式即可。

作业:把模式3的时序设计出来,并进行测试,要求把IO口模拟模式0和模式3的函数背下来!

三、RFID射频模块的原理与应用

  • 基本概念

RFID技术也简称为射频识别技术,是20世纪40年代开始出现的一种自动识别技术。RFID通过无线射频信号获取物体的相关数据,并对物体加以识别,RFID技术不需要和被识别物体进行直接接触就可以完成物体信息的处理,也不需要人工干预,可以实现无接触式信息传递,能应用在各种较为恶劣的环境中。所以说RFID技术是一种快速、高效的采集和处理物体信息的自动识别技术。

随着计算机和互联网的发展,物联网的概念也被提出,而物联网想要实现的是“万物互联”物联网的核心思想是为全球每一个物品提供唯一的电子标签,而RFID可以实现无接触式的信息传递达到识别物体的目的。所以RFID技术也是实现物联网的关键技术之一。

  • 结构组成

RFID技术的实现离不开软件与硬件的支持,硬件一般包含应答器、天线和阅读器。软件一般包含数据管理系统。

电子标签也叫作应答器,一般是由集成电路芯片和内置天线组成的,芯片用来存储物体相关数据,内置天线用来收发无线电波。电子标签一般附着在物体上用来标识物体,每个标签具有唯一的电子编码。电子标签的种类有很多,比如低频标签、高频标签等,并且电子标签的样式也有多种,比如条型、卡片型、环型、纽扣型等。

而对于识读器而言,也称为阅读器或者读写器,是对电子标签信息读取和写入的设备。阅读器可以和计算机进行联网,作用一般是作为数据交换的媒介,阅读器一般由射频模块、控制模块和天线组成。也可以把阅读器理解为一个特殊的无线通信模块,它可以和电子标签通过天线进行无线通信。阅读器可以工作在一个或多个工作频段,也可以读写一种或多种电子标签,阅读器的种类有很多,比如手持式的、固定式的,使用起来非常方便。

  • 识别原理

  • 通信接口

本次使用的RFID模块采用的驱动IC型号是MFRC522,对于该芯片支持多种通信接口,比如支持UART、SPI、IIC.....,本次使用SPI接口进行通信。

  • 工作模式

可以知道,MFRC522和MCU使用SPI接口通信的时候,采用的SPI工作模式是模式0,所以主机就需要使用模式0。

  • 硬件接线

由于打算采用IO口模拟SPI时序的方案实现RFID模块的控制,所以从MCU中挑选4个引脚来作为SPI通信引脚。

  • 程序移植
  1. 获取源码

  1. 分析源码

  1. 拷贝文件

  1. 添加文件

  1. 修改源码

提示:一般移植传感器的程序时,只需要修改底层代码(和IO口相关的、和时序相关的),不需要修改应用层代码。

  1. 编译源码
  1. 下载源码
  1. 查看效果
  • 验证结果

作业:根据SPI的时序完成RFID模块的程序移植,并实现卡的选卡、读卡、写卡的相关功能。

相关文章:

  • 高阶数据结构——哈希表的实现
  • 数据结构第5章 树与二叉树(竟成)
  • 篇章三 数据结构——前置知识(三)
  • 1. 数据结构
  • 数据结构-图的应用,实现环形校验和拓扑排序
  • 【数据结构】哈希表的实现
  • 【数据结构】--二叉树--堆(上)
  • 如何用 SQL 找到最受欢迎的用户?
  • 数据结构第3章 线性表 (竟成)
  • Dify中的Extension插件开发例子:以neko为例
  • 二叉树遍历
  • RT-Thread源码阅读(3)——内核对象管理
  • ollama list模型列表获取 接口代码
  • Python打卡第37天
  • Redis与Lua脚本深度解析:原理、应用与最佳实践
  • 【DCCN】多模态情感分析解耦交叉属性关联网络
  • 【Redis】第1节|Redis服务搭建
  • 在Windows上,将 Ubuntu WSL 安装并迁移到 D 盘完整教程(含 Appx 安装与迁移导入)
  • FFmpeg 4.3 H265 二十二.4,使用计算机摄像头,通过VCL软件, 模拟 监控摄像头 的 RTSP 流
  • SDL2常用函数:SDL_BlitSurfaceSDL_UpdateWindowSurface 数据结构及使用介绍
  • 慈溪企业网站建设/广州seo服务
  • 创新的广州做网站/最近的疫情情况最新消息
  • 网站的关键词在哪里设置/项目推广
  • 手机建公司网站/郑州网站优化哪家好
  • 什么企业网站能自己做/无代码建站
  • 凡科的模板做网站/谷歌google下载