当前位置: 首页 > 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模块的程序移植,并实现卡的选卡、读卡、写卡的相关功能。

http://www.xdnf.cn/news/654337.html

相关文章:

  • 宫格导航--纯血鸿蒙组件库AUI
  • 树莓派超全系列教程文档--(47)如何使用内核补丁
  • QT中常用的类
  • Cesium 实战 26 - 自定义纹理材质 - 实际应用之飞线(抛物线)
  • 并发的产生及对应的解决方案之服务架构说明
  • 第1章第1节:安全运维基础思维与体系建设-安全运维的定义与核心目标
  • Ext系列文件系统
  • 分布式缓存:证明分布式系统的 CAP 理论
  • [闲谈]C语言的面向对象
  • 易境通WMS系统:赋能快消品海外仓高效管理
  • 完美解决Docker镜像无法拉取问题(转载)
  • 服务器的IP是什么东西?
  • uniapp-商城-69-shop(2-商品列表,点击商品展示,商品的详情, vuex的使用,rich-text使用)
  • ESP8266_AP机械手 第三篇Uniapp遥控器
  • ElasticSearch--DSL查询语句
  • 信创 CDC 实战 | OGG、Attunity……之后,信创数据库实时同步链路如何构建?(以 GaussDB 数据入仓为例)
  • FreeRTOS 在物联网传感器节点的应用:低功耗实时数据采集与传输方案
  • 综合实现案例 LVS keepalived mysql 等
  • 《基于Keepalived+LVS+Web+NFS的高可用集群搭建》
  • MPI实现大数据Ring Broadcast逻辑
  • 关于 SSE(Server-Sent Events)过程的简要解剖
  • 07-后端Web实战(部门管理)
  • Prometheus、Exporter 和 Grafana:性能分析铁三角
  • 卷积神经网络(CNN)模型
  • 在 Spring Boot 项目中如何合理使用懒加载?
  • Anaconda 安装 PyTorch 的详细步骤(2025年最新版)
  • uniapp开发 H5端使用百度地图
  • Python 里没有接口,如何写设计模式
  • C语言| 拷贝传递(指针控制内存单元)
  • Hadoop常用端口号和配置文件