raincorn 发布的文章

本项目的设计目的是借助nRF7002-DK的板载NFC功能实现卡片模拟,当手机靠近NFC天线时能读取到卡片中存储的字符信息,板卡同时点亮LED1灯表示NFC通信正在进行;板载的按键可以在纯文本传输与启动APP之间切换,板卡通过LED2指示当前的工作模式。

硬件信息

nRF7002-DK板载三颗MCU芯片,其中一片nRF5340用作接口MCU,刷写有Jlink固件提供调试下载与虚拟串口的功能;一片nRF5340用作主MCU,用于用户逻辑的实现;一片nRF7002用作协同MCU,处理Wi-Fi相关的事务,并与主MCU之间通过QSPI进行通信。

上图即为本板卡的俯视图,其中U2为接口MCU,U1为主MCU,U8为协同MCU。同样地,板卡上板载了三个天线接口J1 J5 J7与两个板载陶瓷天线A1 A2。其中J5为NFC天线接口、J1为WiFi天线接口、J7为蓝牙天线接口、A1为2.4G/5G双频天线、A2为2.4G单频天线,用户可以根据需求配置射频选择器来选择天线使用。

本设计中的关键内容是NFC部分的硬件连接与配置,通过查阅硬件手册的4.13章节得知NFC天线默认连接在P0.02与P0.03两个引脚。这对引脚的默认功能被配置为NFC,如需使用为GPIO需要配置prj.conf并修改硬件电路。相关电路图如下所示,在此只使用NFC功能不对硬件做修改。

- 阅读剩余部分 -

本文为鄙人的本科毕业设计,在此对文章略作摘录记录于此。本设计存在诸多不成熟的地方,参考时请务必仔细甄别&思考,欢迎讨论。

摘要

本设计拟在STM32上通过软件无线电平台实现一个射频无线电收发平台,该平台可以用于无线电信号的调制与解调,最终确定了发送端的零中频架构与接收端的低中频架构,并同时确定了发送板、核心板、接收板的系统结构。

​硬件设计部分主要涉及滤波器设计、阻抗匹配、信号屏蔽与信号调理电路。最终选用巴特沃斯滤波器作为接收机的前端滤波器,RC滤波器作为ADC的抗混叠滤波器;对于阻抗匹配主要涉及微带线与共面波导两种结构,文中分别予以介绍与计算;对于信号屏蔽部分主要介绍了合理接地与可靠退耦两种方法,通过良好的设计来保证信号的可靠传输;信号调理部分涉及外部输入输出信号的阻抗、功率与频率匹配,本设计中主要通过运算放大器来实现调理。

​软件设计部分主要包括信号的调制解调、下采样、滤波与人机交互。其中FM信号的解调通过差分近似微分实现,信号的调制通过控制PWM输出定时器的自动重装载值实现,下采样通过定点取均值实现,滤波器通过FIR滤波器实现。人机交互部分使用到OLED、按键、扬声器、3.5mm耳机孔等外设,通过软件逻辑实现合理的人机交互。

在课题的最后,还使用到了示波器、频谱仪、信号发生器与网络分析仪来对设计进行分析。通过分析输出信号频谱、滤波器幅频特性、天线驻波比与解调路径波形频谱等指标,最终确定本设计的总体性能指标。通过方案设计、软硬件实现、测试验证等步骤,本课题最终实现了设计的全部流程。但受限于成本、仪器指标、开发周期的限制,本设计仍有诸多不足之处。

- 阅读剩余部分 -

概要

在本项目中,为了降低数字信号处理过程中的主控制器成本,我们不得不使用MCU(微控制器)来替代传统的FPGA与DSP。然而对于MCU而言,实时的数字信号处理是一项非常艰巨的任务。因为每执行一次运算都要重复取指、译码、执行等操作,这些操作累加起来将会消耗非常多的时间。但是只要思想不滑坡,方法总比困难多!

举一个最简单的例子,在STM32F103C8T6上,使用定时器来触发进入中断的最小间隔为3us(HAL库)。这就意味着如果需要在这样的中断里面更新DAC的数值,它的最大采样率就仅为333Ksps,远小于手册标称1Msps。但是好在STM32为我们提供了非常多方便的外设可供调用。在上面的例子中,我们可以使用DMA+DAC的架构从数组中直接更新DAC的取值,实测采样率一直到4Msps都可以提供较好的波形。

借助DMA我们实现了传统MCU架构中无法实现的高速信号搬移(外设->内存、内存->外设、内存->内存),但是信号的实时处理仍然是一个很头疼的问题。然而这个问题已经由ARM的工程师解决了,他们在CMSIS-DSP包中提供了非常多的快速的数学运算方法,包括基本数学运算、矩阵运算、滤波、DSP、统计运算等等。直接使用这些最聪明的工程师的成果,会帮助你实现最快的运算速度与最好的兼容性(所有的ARM类型处理器都可使用)。

在本文中,我们将会介绍一个产生信号并采集滤波的例子:

  • 调制波输出:使用STM32内置的DAC输出一个50Hz、100Hz与1KHz等幅度叠加的调制信号,使用DMA更新数据,采样率为100Ksps。
  • 调制波采集:使用内置ADC1对上述产生的数据通过DMA进行乒乓操作采集处理,并将其通过串口发送到电脑分析,采样率为5Ksps。
  • 降采样:数据采集完成后,对其进行5倍的降采样,使其采样率变为1Ksps。
  • FIR滤波:再对上述降采样的信号进行一次FIR滤波,滤除200Hz的信号,仅保留50Hz的信号。
  • FFT分析:在STM32上运行一个实时的FFT运算,离线分析降采样后的数据在频域表现如何。

- 阅读剩余部分 -

综述

本文将介绍如何将DesignStart Eval的示例SoC移植到FPGA上,该SoC使用M0内核。在开始之前,简明阐述本文实现思路,移植可分为两部分:硬件与软件。

  • 硬件移植:Verilog代码的移植、综合、布局布线与调试;在DesignStart Eval的包文件中,...\systems\cortex_m0_mcu\verilog文件夹下实现的有一参考示例,复制所需文件即可。
  • 软件移植:基于CMSIS与参考代码制作自己的库函数,寄存器的配置均需要与RTL中配置的保持一致。

移植该项目时,参考了许多官方文档与第三方书籍,其中最有价值的列举如下:

  • DUI0926B_cortex_m0_designstart_eval_guide.pdf,该手册介绍了示例SoC的结构与细节,用于硬件搭建。
  • DDI0479C_cortex_m_system_design_kit_r1p0_trm.pdf,该手册介绍了CMSDK系统模块,在后期构建库函数时颇有用处。
  • AMBA总线规范中文版V2.0.pdf,介绍了AMBA规范下各个接口的协议。
  • ARM Cortex-M0全可编程SoC原理及实现.pdf,总体上描述了M0的技术细节。

- 阅读剩余部分 -

设计目标

在本文中,我们将在XO2-4000HC开发平台上,借助外部高速DAC实现:

  • DC~20MHz的正弦波,方波,三角波,锯齿波
  • 通过旋转编码器控制产生的信号频率与幅度(1 Vpp)
  • 波形的信息可以实时通过OLED显示屏查看

DDS发生器

DDS原理及实现

DDS全称为直接数字式频率合成计(Direct Digital Synthesizer),将需要输出的数据储存在ROM中,按照一定的频率去读取后通过DAC输出即可。一个完整的DDS模块应当包括:查找表、相位控制器、DAC、外部滤波器,后文将详细叙述。如果希望更加直观地了解到DDS的工作原理以及设计细节,可以访问ADI DDS仿真器,在该在线工具中你可以直观地看到每个周期的采样过程以及后置滤波器的原理。

DDS实现信号发生器需要以下参数:

  • 信号的采样率:根据奈奎斯特采样定理$f_s\ge2f_h$,理论上每个周期采样两个点即可恢复原始波形。但是请注意,以正弦波为例采样波形此时为三角波,这就对滤波器的设计提出了很高的要求。因为在实际应用中我们常常会在一周期采样多个点,本设计中采样率为120MHz,即一个周期采样6个点。
  • 相位控制字宽度:相位控制字决定了信号采样的增量间隔,理论上一个信号的最小分辨率$res=\frac{f_s}{2^n}$,在本设计中取28 bit以达到0.447Hz左右的频率分辨率。
  • 相位控制字增量:在上文中我们确定了频率的分辨率,将频率与分辨率相除即可得到单位增量。

ADI DDS仿真器

- 阅读剩余部分 -