基于ARM的便携式数字示波器设计

2018-07-28 07:12郭宏伍马东吉黄金成刘明雪肖寒
科技视界 2018年12期

郭宏伍 马东吉 黄金成 刘明雪 肖寒

【摘 要】本文提出了一种基于ARM开发平台的便携式示波器系统设计,该系统通过DMA与D/A转换器产生一路1KHz方波信号,用于信号校准;通过一路A/D转换器对待测信号进行采集,将采集的信号首先进行IIR滤波,滤除干扰信号[1],然后通过定时器、中断测得其电压有效值及其频率,将数据显示至LCD显示屏上,同时将当前时间及测得数据存入至SD卡中,并通过蓝牙无线传输至上位机,对所测得的数据进行备份。该方案解决了传统示波器笨重、不易携带、价格高昂等弊端的同时,大大提高了在复杂工作环境下进行信号检测的效率。

【关键词】ARM;D/A转换器;A/D转换器;IIR滤波;蓝牙传输

中图分类号: TM935.37 文献标识码: A 文章编号: 2095-2457(2018)12-0243-002

DOI:10.19694/j.cnki.issn2095-2457.2018.12.114

Design of Portable Digital Oscilloscope Based on ARM

GUO Hong-wu MA Dong-ji HUANG Jin-cheng LIU Ming-xue XIAO Han

(Beihua University College of Electrical and Information Engineering, Jilin 132021, China)

【Abstract】This paper presents a portable oscilloscope system based on ARM development platform, which generates 1KHz square wave signal along the way through DMA and D/A converter for signal calibration; Through the A/D converter along the way to collect the measurement signal, the collected signal is first filtered by IIR to filter out the interference signal, and then the effective voltage value and its frequency are measured by the timer and interrupt, and the data is displayed on the LCD display. At the same time, the current time and measured data are stored in the SD card and transmitted wirelessly to the upper computer via Bluetooth to back up the measured data. The scheme solves the disadvantages of traditional oscilloscopes such as heavy, difficult to carry, and high price, and greatly improves the efficiency of signal detection in complex working environments.

【Key words】ARM; D/A Converter; A/D Converter; IIR filtering; Bluetooth Transmission

0 引言

仪器的飞速发展在为我们生活提供便利的同时也面临着越来越严峻的考验。尤其部分设备长期工作在恶劣环境下,为设备的检测维修带来极大困难。该便携式信号检测系统正是基于此背景下研发设计的。该系统主控芯片选用ARM公司生产的stm32f103zet6的32位单片机,与传统单片机相比因其具有低功耗、高性价比等优势,已经成为嵌入式系统开发的主流平台。对于信号的检测方面采用单片机内部12位A/D转换器进行采样,在保证信号检测的准确性的同时提高性价比;对于信号的存储使用内部DMA功能以提高数据存儲效率;另一方面,为了去除小信号干扰,本文还设计了一套数字滤波器。

1 系统方案设计

该系统的结构主要由stm32单片机、整形电路、显示、存储模块四部分构成。首先单片机通过DMA+D/A转换器产生一路1KHz的校准信号[2];待测信号通过A/D转换器转换后接入单片机,将转换过后的数字量通过IIR数字滤波器滤除干扰信号,同时测得待测信号的电压有效值。将滤波后的待测信号通过D/A转换器输出,接入外部整形电路,转换为方波信号。将转换后的信号接入单片机输入捕获I/O口,测得信号频率。将所测得频率、电压的有效值显示至LCD显示屏上、存储至SD卡、并通过蓝牙发送至上位机备份,以完成信号的检测、存储功能。系统结构框图如图1,程序流程图如图2。

2 工作原理

2.1 校验信号的产生

传统的信号产生方式大致有以下三种:(1)以运算放大器为核心设计硬件电路产生信号,(2)用CPU驱动DDS芯片产生信号,(3)用CPU外挂高速D/A转换器产生信号。以运算放大器为核心设计信号发生器产生的信号虽然具备频率及振幅较为稳定等优势,但是需要设计电路、焊接电路,工作较为复杂;驱动DDS信号发生器、驱动D/A芯片,虽然产生的信号具备频率范围大、高精度、宽频带、控制灵活等特点[3],但由于成本较高、且我们所需要的信号是固定低频信号,显然此方案也不是我们的首选。

我们最终选择的方案是基于高性能单片机STM32结合其内部12位D/A芯片的方法来实现信号的产生,通过CPU来控制分频、波形的选择、D/A转换及输出。本方案的优点是控制过程方便稳定,而且通过DMA加DAC的方式能够最简单高效地实现任务需求。

2.2 数字滤波器的设计

传统的数字滤波器有IIR滤波器与FIR滤波器两种,在对相位要求严格的数字系统中,应该选择FIR滤波器。IIR滤波器和FIR滤波器相比,IIR滤波器可以用比较低的阶数获得比较高的选择性,而且所用的存储单元也较少[4]。但是它相位的非线性现象比较严重,有时需要添加相位校正网络。本文由于CPU的性能问题,我们选择设计IIR数字滤波器来实现滤波功能。

stm32单片机可以通过调用dsp库的方式实现IIR滤波功能,首先我们应该通过Matlab 计算滤波参数。打开matlab程序之后,进入滤波器设计对话框,配置低通滤波器(IIR滤波器、2阶、低通、截止频率1K),如图3所示。滤波器配置完成之后点击Analysis Filter Coefficients,即可生成滤波器系数。

得到滤波系数后,我们需要编写C语言用Stm32 实现滤波功能。首先将iir_stm32.c文件添加到stm32工程中,在iir_stm32.c文件中编写void iir_biquad_stm32(float *y, float *x, float *IIRCoeff, u16 ny)函数,其中y参数表示输出数组指针,x参数表示输入数组指针,IIRCoeff表示IIR滤波器系数数组指针,iir_biquad_stm32函数编写完毕之后,只需将Maltab获得的参数配置至函数float IIRCoeff[5]={}中即可,然后调用void iir_biquad_stm32函数即可实现滤波功能,y[n]数组中存放的即是滤波后的离散数据,将y[n]数组中的数据送至D/A转换器输出,即可得到滤波之后的信号。滤波前波形如图4所示,滤波后波形如图5所示。

2.3 整形电路的设计

对于信号频率的测量我们采用的方案是通过单片机内部定时器输入捕获功能来实现的,故需要设计整形电路,将滤波后的正弦信号转换为方波信号进行测量。整形电路所选择的芯片为LM393AD,該芯片具有低功耗、高性价比等优势。

2.4 数据无线传输的设计

无线传输我们选用的是HC—05无线蓝牙模块,该模块具有成本低、操作简单等优点。首先进入AT指令集进行蓝牙间的数据配对,设置传输主从、数据传输格式等。配对结束后退出AT指令集,上电后即可自行配对连接,完成单片机与PC机之间的通信,以达到数据的传输、备份的目的。

3 结论

本文主要设计了一款便携式的信号产生、检测装置。可产生校验信号;可对待测信号进行数字滤波,并对其电压有效值及其频率进行测量。经实验测试,对信号的频率的测量基本准确,但对待测信号的电压有效值测量存在细微误差,后经研究发现主要原因是stm32内部A/D转换器精度较低,可通过外挂高精度A/D转换器解决此问题[5]。

【参考文献】

[1]赵树忠,李书娜.在Labview下实现数字信号处理[J].华北理工大学学报,2017,3:88-92.

[2]庞湘萍.基于89C52单片机的微电压信号源设计[J].仪表技术.2004,1:26-27.

[3]胡虎斌,胡仁杰.基于MSP430单片机和直接数字合成技术的信号发生器[J].江苏电器.2018,11:38-40.

[4]郝小江,唐宇.IIR数字滤波器设计及DSP实现[J].工业控制计算机,2008,9:91-92.

[5]王睿,汪雨冰,王德宣.逐次逼近型模数转换器原理实验方案研究[J].科教导刊.2015,25:69-70.