无人直升机在STM32基础上的数据采集系统构建研究
第 1 章 绪论
1.1 课题背景
无人直升机技术是当今直升机技术发展的一个重要分支,由于具有体积小、机上没有人员,因此可完成许多载人直升机无法完成的任务[1]。本项目任务来源于无人直升机研制过程中的一个环节。即数据的采集、存储、通信和监测。
在没有人为参与的情况下,系统的输入输出信号的准确度大大降低,必须进行实时监测,但是在系统的实现过程中还存在以下问题。
第一、开关量和模拟量经过相应电路处理后,送入处理器单元,对于模拟量,需要进行 AD 转化操作,转化成可查询的数字信号。
第二、通过数据采集器,经过转换后的数据保存在一个暂存单元中,以便飞控计算机进行查询,受采样频率的限制,所需要的暂存单元的内存会超过 STM32的系统内存,所以必须对其内存进行扩展。
第三、传输操作,飞控计算机如何通过查询的方式,和数据采集器进行联系,以实现对无人直升机中各个信号的监测。
本项目即设计模块式数据采集器,实现数据采集器和飞控计算机之间的连接,从而构成无人直升机的数据采集传输系统,同时进行实时监测。飞控计算机发送查询代码到数据采集器,数据采集器接收查询代码,根据查询代码将数据采集器经过采集后储存在暂存单元的数据返回给飞控计算机。通过本系统的设计,在无人直升机上,飞控计算机可以实时的监测到各个数据,如果发现异常,可以及时处理。
...............................
1.2 国内外研究现状及发展动态
1.2.1 国内外研究现状
数据采集系统就是指通过把安装在所需要的机器设备上的不同种传感器所监测到的信号以及机器设备上的各种电气信号作为数据采集的输入,通过识别、记录,并配合上位机程序设计的不同种测量分析技术和的各种形式的显示格式所构成的一种用对于数据的采集检测系统[2]。数据采集系统既具有对数据的实时采集,现场记录,数据分析功能,同时又具有可以离线分析设备现实数据的显著功能。目前数据采集系统技术已经应用到在机器设备上进行定期的设备现实检测等众多领域。通过将数据采集系统和我们的计算机共同组合成一个机器设备监测系统,用以辅助计算机对机器设备的现实进行有效的故障诊断提供了有效的途径。
1.2.1.1 国外数据采集系统的现状
目前,数据采集系统正在朝着越来越智能化的方向发展、而且模块化的特点也日益显著[3]。在国外市场上,数据采集系统的发展已初见规模,对于各种不同型号的数据采集系统,它们的基本功能大体相同,现在我们就将截止到目前已经成功地运用在国外市场的三种数据采集系统的的性能简易的做下对比:
(1)第一种是以英国Schlumberger公司的IMP3595为典型代表。这一系列数据采集系统主要应用于工业环境和其他恶劣条件下,对多通道,温度、压力、流量、应变等慢变化的模拟信号实时不间断的数据监测,以及模拟量的输出,从而实现对生产过程中数据的采集和控制[4]。这一系列的数据采集系统在生产过程中不仅具有对数据测量精度高,抗干扰性强、可靠性高的特点,而且还具有能够在各种恶劣环境下工作,使用功耗低,完成效率高,安装方便的特性;
(2)英国ACIC的DATASCAN7000系列,这一系列的数据采集系统在功能实现方面和第一种数据采集系统也相似,同时还具有在采集信号的选择范围上较为广泛,采集到的数据精度也高的优点[5]。但是不同的是,DATASCAN7000系列的可以选择的网络功能方面会更强大一些;
(3)希蒙电子国际有限公司的ALPHA900系列,这一系列数据采集系统和本文描述的无人直升机数据采集系统功能相近,它是一种广泛的用于工业上对过程监测、条件监测或加工监测的经济实用型智能化方式。它利用将RS485网络与系统主机相连通,通过485总线向主机系统提供包括温度值、压力值、电阻值、应变系数以及数字化事件和频率数据测量值,从而来实现对数据进行的采集[6]。
1.2.1.2 国内数据采集系统的现状
对于数据采集技术的发展我国是开始于上世纪80年代,截止到20世纪90年代初,在内地的一些仪器仪表工厂已经成功的研制出多种不同的数据采集系统,在这些数据采集系统中单通道的有SP201、SC247型,这种单通道的数据采集系统数据采集速度快,双通道的有EG3300、YE5938型,这种数据采集系统所使用的硬件多,成本高些以及超小型的有911、902、和921型数据采集系统[7]。在这其中最具有典型代表性的是具有能够成功采集静态信号的SMC-9012型,为了使这种数据采集系统适应机器设备能够完成在一般状况下能够监测和故障诊断工作,系统里特意的配套了包括了设备维修管理和基本频谱分析的这两大部分的软件包,实现对设备的运用形态进行分析、维护管理的工作。目前,这类系统的性能在国内处于较为领先的水平。但是,现在我国的数据采集技术基本同国外的数据采集技术发展的初期水平基本相当[8]。
....................................
第 2 章 系统方案设计及关键技术介绍
2.1 系统总体方案设计
本系统所设计的数据采集系统功能结构。系统运行模式为:无人直升机模拟电气信号通过滤波、隔离放大后,转换成最大为 3.3V 的无高频干扰的电气信号,经过预处理的模拟信号经过 ADC 单元转换成数字信号。22 路数字电气信号和模拟电气信号一同被送到处理器单元。处理器采集来的数据按照固定规则组合在一起,根据当前的系统时间,将这些数据存储在相应的存储位置。
系统利用通讯模块与飞控计算机联络,利用外部扩展存储器暂存所采集的数据。监测模块全程监测整个系统的运行现实,当发现某个模块有故障时,立即启动故障处理程序,同时通过拉低现实信号向飞控计算机报告故障。
系统所要采集的电气信号如表 2-1 所示。
如表 2.1 所示,系统所要采集的无人直升机上的电气信号总共有 30 个,其中前 8 个为模拟信号,后面的 22 个为数字信号,主处理器 STM32 采集到这些数据,在系统内存中进行数据整理,制作成数据块,存到系统的暂存单元中。图2-1 中给出了系统的整体设计方案。
.................................
2.2 单元设计方案
2.2.1 采集单元
输入信号必须经过预处理才能送到处理的的输入口。模拟量信号经过精密电阻和隔离运算放大器分压、整理,形成 0-3.3V 的输入信号送到处理器的 ADC 模拟输入口。22 路开关量(地/开)经过限流处理、滤除高频脉冲,一起送到处理器的数字输入口。
从无人直升机输出的电气信号大部分要经过调理才能进入数据采集设备。信号调理的功能是对一些可能会对系统产生干扰的信号去除,保留有用信号。一般方法是放大、隔离、滤波、激励和数字信号调理等。接下来介绍一些常用的信号调理模块。
(1)放大
为了实现将输入系统的信号能量放大,一般需要使用放大器,放大器的作用,是实现信号的前置放大,并缓冲输入信号,提高信号的分辨率,在经过信号调理单元,调整成和A/D的电压范围相匹配的电压范围[16]。当传感器或者信号源产生信号之后,应该不经过任何处理直接进入放大电路,这样就能有效地避免把系统传输过程中的环境噪声放大。
(2)隔离
隔离主要针对的是采集系统的地与信号地之间的电位差,如果在这方面没有采用隔离处理的方法,就会有误差,隔离的作用使数据采集系统读出来的数据不受地电位和输入模式的影响[17]。另一方面,就是从安全角度考虑,隔离能使被测系统和数据采集系统间传递的电气信号避免直接的电连接,不会系统的整体精度产生影响,隔离的方法一般是使用变压器或者电容耦合等。
(3)滤波
采集过程中因为存在噪声,信号的质量将会受到影响,的存在使得信号质量变差,所以在信号调理电路中,必须要加入滤波操作,去除信号噪声,提高模拟输入信号的信噪比,滤波,就是通过低通或者高通滤波器,从系统的输入信号中剔除不需要的频率成分,这些不必要的成分相对于有用信号,称之为噪声,另外通过使用抗混叠滤波器可以来滤除信号中需要的最高频率上的频率分量[18]。
(4)激励
在数据采集系统中,激励在信号调理电路中的作用是不容忽视的,在信号输入到系统的过程中,所需要的激励信号就是通过之前设计的信号预处理模块设计的,比如热敏电阻需要外界电源或电流激励信号[19]。
(5)数字信号调理
并非只有模拟信号需要进行信号调理,对于直接输入系统数字信号,如果不经过预处理直接输入到系统,也会对系统产生干扰。所以除了对模拟信号进行必要的操作之外,针对数字信号,系统还有专门的解决措施[20],即设计数字信号调理模块,针对不同的系统中数字电路的电平标准和建立时间、保持时间等数字信号质量对无人直升机输出的数字电气信号进行调整,以满足后续数字电路的要求。
....................................
第 3 章 系统软硬件设计........................................16
3.1 系统硬件设计........................................16
3.1.1 STM32F103XX 芯片简介 ..........................................16
3.1.2 数据存储芯片设计.....................................16
3.1.3 模拟器的设计.............................................18
3.1.4 系统 PCB 设计 .........................................19
3.1.5 系统硬件布局........................................20
3.2 系统软件设计................................................21
3.2.1 采集单元程序....................................21
3.2.2 通讯单元程序........................................24
3.2.3 存储单元程序....................................25
3.3 本章小结..........................................26
第 4 章 上位机程序设计.......................................27
4.1 Windows API 简介 ...........................................27
4.2 串口库的实现......................................27
4.2.1 建立串口函数.....................................28
4.2.2 写串口函数....................................29
4.2.3 读串口函数..................................29
4.3 上位机程序的整体框架.........................................30
4.4 本章小结.......................................31
第 5 章 系统测试
系统按照原理图设计把原件焊接到 PCB 板上,分别对系统的各个硬件和软件功能模块和整体功能进行测试,以便能够顺利快速的发现存在的缺陷和错误,从而找到解决方法,完善系统功能和性能[41],提高系统的可靠性和稳定性。本章给出了系统的部分硬件和软件测试方法和测试结果,并进行了可靠性测试、电磁兼容测试,而且,对测试所得到结果进行了具体的分析和整理。如图 5-1 所示,是系统的实物图,右边的两个连接器分别是电源接口和通讯接口,左边的是信号输入接口。
5.1 硬件测试和软件测试
5.1.1 硬件连接测试
硬件连接测试的主要目的是检查元器件焊接的过程中是否有虚焊,芯片之间连线是否正确,通过检查也只能检查一些简易的错误[42],在实际应用中有些错误必须通过一定的测试手段才能检查出来,测试方法是编写一些简易的程序拉高或拉低 I/O 管脚,为了在调试过程中遇到困难时缩小故障范围,焊接过程中应尽可能的从简易到复杂,分模块焊接的方式。在调试过程中,应先确定电路没有短路,才能通电调试。在数据采集系统的开发过程中,通过模仿 CPU 产生时序信号,在输入到系统中。通过进行系统硬件的调试及故障定位,完成系统硬件故障的检查[43]。
5.1.2 电源模块测试
对电源模块进行调试,在断电情况下,检测电气连接是否正确,确定连接无误后上电。接上稳压电源 5V 的电压后,检查输入端,如果是 5V,则说明电源模块已经供电[44],再测其他需要供电模块引脚上的电压,如果电压都正常,则电源模块供电正常。
5.1.3 采集模块测试
通过模拟器上位机分别改变专用模拟器各个端口的输出量,观察调试计算机显示的相关变量是否同步变化。将各通道输入及采集功能测试记录。如下表 5-1:
..................................
总结与展望
本文设计了一种采集无人直升机上电气信号的数据采集系统,系统以STM32 芯片作为主控制芯片控制电气信号的采集,组装,存储以及通讯。本系统主要实现以下功能:
1.无人直升机的发电机电压信号,发电机电流信号,24V 蓄电池电压信号,24V 蓄电池电流信号,12V 蓄电池电压信号,12V 蓄电池电流信号,以及两个备用的模拟量信号经过系统的信号输入接口进入系统,通过采集单元采集,经过预处理单元,转化成正常的模拟信号输入到系统的主处理器。
2.在无人直升机上还有许多数字电气信号,如相连接触器故障,启动器故障,过压故障以及欠压故障等,这些电气信号可以直接通过系统的输入接口进入系统,在经过系统的预处理单元,通过滤波、去噪等一系列操作转化成正常的数字信号送到主处理器。
3.主处理器通过定时器定时读取 AD 转换的模拟信号和直接输入的数字信号,经过数据组装,制作数据块,存放到系统的存储单元。
4.存储单元采用的是 NAND FLASH 芯片,用并行方式传输数据,不需要定时刷新数据块,相对于其他的外部存储扩展方式,具有控制逻辑简易,可以直接随机访问数据,因此具有更高的可靠性和读写速度。
5.通过上位机应用程序,是系统通过串口和上位机进行通讯。上位机发送查询命令,系统返回采集数据,通过计算,得到采集精度。通过程序调节,将误差降至最低。
..............................
参考文献(略)