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

相关推荐
努力学习的小廉1 小时前
深入了解linux系统—— 库的制作和使用
linux·运维·单片机
淘晶驰AK4 小时前
电机控制选 STM32 还是 DSP?技术选型背后的现实博弈
stm32·单片机·嵌入式硬件
Fxrain5 小时前
[嵌入式实验]实验二:LED控制
stm32·单片机·嵌入式硬件
~夕上林~6 小时前
单片机——keil5
单片机·嵌入式硬件
电子科技圈7 小时前
XMOS以全新智能音频及边缘AI技术亮相广州国际专业灯光音响展
人工智能·嵌入式硬件·mcu·物联网·自然语言处理·音视频·边缘计算
promising-w8 小时前
【stm32开发板】原理图设计(电源部分)附:设计PCB流程
stm32·单片机·嵌入式硬件
XINVRY-FPGA8 小时前
XCVP1902-2MSEVSVA6865 Xilinx FPGA Versal Premium SoC/ASIC
嵌入式硬件·安全·阿里云·ai·fpga开发·云计算·fpga
文弱书生65611 小时前
ElectronBot复刻-电路测试篇
嵌入式硬件
似是燕归来11 小时前
STM32 HAL库函数学习 GPIO篇
stm32·单片机·学习
FakeOccupational13 小时前
【电路笔记 TMS320F28335DSP】McBSP 从源时钟得到 生成时钟 CLKG & 帧同步信号 FSG
笔记·单片机·fpga开发