全日制普通本科生毕业设计
基于 MATLAB 实时串口数据采集与曲线显示
REAL-TIME SERIAL DATAACQUISITION AND FIGURE SHOW
BASED ON MATLAB
学生姓名:
学
号:
年级专业及班级:
指导老师及职称:
学
院:
提交日期:2011 年 5 月
全日制普通本科生毕业论文(设计)
诚 信 声 明
本人郑重声明:所呈交的本科毕业论文(设计)是本人在指导老师的
指导下,进行研究工作所取得的成果,成果不存在知识产权争议。除文中
已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写
过的作品成果。对本文的研究做出重要贡献的个人和集体在文中均作了明
确的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。
毕业论文(设计)作者签名:
年 月 日
目
录
摘 要 … … … … … … … … … … … … … … … … … … … … … … … … … … … … … 1
关 键 词 … … … … … … … … … … … … … … … … … … … … … … … … … … … … 1
1 前言………………………………………………………………………………2
1.1 Matlab 实时串口数据采集研究现状及发展趋势……………………………2
1.2 研究的目的和意义 …………………………………………………………4
1.3 论文的组织结构……………………………………………………………5
2 Matlab 下实时串口数据采集概要……………………………………………5
2.1 Matlab 的 Serial 类……………………………………………………………5
2 . 2 数 据 采 集 … … … … … … … … … … … … … … … … … … … … … … … … … 6
2 . 3 曲 线 显 示 … … … … … … … … … … … … … … … … … … … … … … … … … 7
3 实时串口数据采集与曲线显示的实现……………………………………………8
3.1 实时串口通信的实现………………………………………………………………8
3.2 数据采集的实现……………………………………………………………9
3.3 曲线显示 GUI 的实现……………………………………………………………10
4 基于 MATLAB 的实时串口数据采集与曲线显示的具体做法……………………12
4 . 1 数 据 采 集 的 一 般 流 程 … … … … … … … … … … … … … … … … … … … 1 2
4.1.1 创建接口对象并设置属性……………………………………………………12
4.1.2 打开串口设备对象…………………………………………………………12
4.1.3 读写串口操作……………………………………………………………13
4.1.4 关闭并清除设备对象……………………………………………………13
4.2 基于 Matlab 中断方式的实时串行通信编程…………………………………13
4.3 绘制采集数据的曲线波形和数据显示………………………………………14
4.3.1 绘制曲线波形……………………………………………………………14
4. 3 . 2 数 据显 示 … …… …… …… …… …… …… …… …… …… …… …… … 15
4. 3 . 3 采 集图 像 … …… …… …… …… …… …… …… …… …… …… …… … 15
4.4 扩展功能——发送数据……………………………………………………17
5 结论………………………………………………………………………………17
参考文献 ………………………………………………………………………18
致 谢 … … … … … … … … … … … … … … … … … … … … … … … … … … … 1 9
附 录 … … … … … … … … … … … … … … … … … … … … … … … … … … … … 1 9
附 录 1 … … … … … … … … … … … … … … … … … … … … … … … … … … … 2 0
基于 MATLAB 实时串口数据采集与曲线显示
摘 要:数据采集是获取信息的基本手段,数据采集技术作为信息科学的一个重要分支,它
研究信息数据的采集、存储、处理及控制等作业,具有很强的实用性,与传感器、信号测量与处理、
微型计算机等技术为基础而形成的一门综合应用技术。本设计是在 Matlab R2008a 版本中以串口通
信实时接收目标系统数据,将采集的数据进行时间同步和字对齐处理,并在 MATLAB 的数据采集
工具箱支持下,利用图形界面 GUI 的设计,直观的实时显示数据曲线。设计得重点在于在 Matlab
上实现串口数据同步采集与处理,接收数据的时间同步和字对齐,同时扩展了发送数据的功能。
关键词:MATLAB;GUI;实时串口;数据采集;曲线显示;
Real-time Serial Data Acquisition and Figure Show Based on Matlab
Abstract: Data acquisition is the basic means of access to information, this technology as an
important branch of information science, research information data collection, storage, treatment and
control operations, and highly practical. Data acquisition technology with sensor data acquisition, signal
measurement and processing, micro-computers and other technology formed the basis of a comprehensive
application technology. This design version use Matlab R2008a serial communication to the target system
to receive real-time data, the data will be collected for time synchronization and word alignments, and
Matlab’s Data Acquisition Toolbox in support of using the graphical user interface GUI design, intuitive
display real-time data curve. Focus designed to achieve the Matlab serial data synchronization acquisition
and processing, receive data synchronization and word alignment, expanding the function of sending data.
.Key words: MATLAB; GUI;Real-time serial; Data acquisition; Figure show;
1 前言
1.1 MATLAB 实时串口数据采集研究现状及发展趋势
随着科学技术的发展,数据采集系统得到了越来越广泛得应用,同时人们对数据
采集系统的各项技术指标,如:采样率、线性度、精度、输入范围、控制方法以及抗
干扰能力等提出了越来越高的要求,特别是精度和采样率更是使用者和设计者所共同
1
关注的重要问题,于是,高速及超高速数据采集系统应运而生并且得到了快速发展。
今天,数据采集技术己经在雷达、水声、振动工程、无损监测、智能仪器、自动控制
以及生物工程等众多领域得到广泛的应用并且收到了良好的效果。高速数据采集系统
在国防、航天、边缘科学研究中及国民经济的各个领域的成功的应用,进一步引起了
各方的关注,推动了它的研制和发展。随着科学技术的发展,数据采集系统得到了越
来越广泛的应用。目前,国外很多公司与厂商都投入巨资进行数据采集系统的研制开
发与生产销售,其中比较著名的有 NEFF, NI、HP,TEK 等。
从数据采集系统产品来看,各大公司提供的系列产品都包括了完成数据采集的诸
如信号放大、滤波、多路开关、模数转换和接口等各种模块。现有的高速数据采集器
件和开发的产品中,目前还没有完全实现高速、高分辨率。在雷达、通信、谱分析、
瞬态分析、等应用领域,为满足实时检测和高速采集的日益更新的需要,实现数据采
集的高速、高分辨率已成为数据采集系统的一个发展方向。现有的高速 ADC 器件和
产品价格都比较昂贵,有些高速、高分辨率的器件本身还存在着不稳定性,因此,在
数据采集系统向高速、高分辨率发展的同时,开发和研制的器件和产品应不断地提高
可靠性,降低,提高性价比,以便使之得到更广泛的应用。
数据采集与分析一直是生产实践研究与应用领域的一个热点和难点。随着微制造
工艺水平的飞速提高及数据分析理论的进一步完善与成熟,目前国内外对数据采集系
统的高性能方面的研究上取得了很大的成就。就 A/D 转换的精度、速度和通道数来说,
采样通道从单通道发展到双通道、多通道,采样频率、分辨率、精度逐步提高,为分
析功能的加强提供了前提条件。而在数据分析的微处理器上,最初的数据采集系统以 8
位单片机为核心,随着微电子技术的不断发展,新兴单片机的不断问世,十六位、三
十二位单片机也为数据采集系统研制厂家所采用,近年来采用具有 DSP 功能的数据采
集系统也己投入市场。同时,通用 PC 机的 CPU 用于数据处理也较为常见。总之,
伴随着高性能微处理器的采用和用户技术要求的不断提高,数据采集系统的功能也越
来越完善。
数据采集系统的发展主要体现在以下几个趋势:
首先,在专业测控方面,基于 PC 计算机的数据采集系统越来越成熟和智能化。
在过去的二十年中,开放式架构 PC 机的处理能力平均每十八个月就增强一倍。为了
充分利用处理器速度的发展,现代开放式测量平台结合了高速总线接口,如 PCI 和
PXI/Compact PCI,以便获得性能的进一步提升。计算机的性能提升和由此引起的基于
计算机的测量技术的创新,正在持续不断地模糊传统仪器和基于计算机的测量仪器之
2
间的界线。
其次,在通用测控方面,采用嵌入式微处理器的方案也由早期的采用 A/D 器件和
标准单片机组成应用系统发展到在单芯片上实现完整的数据采集与分析,即目前极为
热门的 SOC (System On Chip)。通常在一块芯片上会集成一个,可以采样多路模拟信
号的 A/D 转换子系统和一个硬 CPU 核(比如增强型 80_52 内核),而且其 CPU 的运
算处理速度和性能也较早期的标准 CPU 内核提高了数倍,而且有着极低的功耗。这
种单芯片解决方案降低了系统的成本和设计的复杂性。
此外,为了解决 SOC 方案中数据处理性能的不足,采用 DSP 作为数据采集系统
的 CPU 的研究与应用目前也逐渐引起业内重视。但是这类产品目前仅仅处于发展的
初级阶段,在精度、速度或其它性能指标上并不能很好的满足要求。因此,国内外以 DSP
作为数据采集系统的采样控制和分析运算的研究与应用正在展开。
近年来随着芯片技术、计算机技术和网络技术的发展,数据采集技术取得了许多
新的技术成果,市场上推出了繁多的新产品。高速数据采集技术的发展一方面是提高
采集速率,另一方面不断向两端延伸。一端是输入的信号调理,另一端是采集后的数
字化信号的实时处理与事后处理。20 世纪 90 年代末,随着数字技术快速发展,数据采
集技术已向着并行、高速、大量存储、实时分析处理、集成化等方向发展。
Matlab 是 Mathworks 公司推出的一套高性能数值计算和可视化软件,是目前控制
系统数据处理较为实用有效的工具。它不仅能解决测试与控制系统中存在的大量的数
值计算和矩阵运算,而且将图像与图形、显示及处理、图形界面设计集于一身。同时,
它还提供了强有力的工具箱支持,极大地方便了研究人员的学习与开发。软件开发采
用 Matlab 语言编程,利用 Matlab 中控制工具箱及仿真工具混合开发的方法,使其编
写的程序更精练,软件功能更强大,开发周期更短,软件形式灵活、易于扩展,用户
使用起来更容易、更方便。因此,许多工程技术人员把 Matlab 软件作为数据离线处理
的工具。
业内领先的工具箱极大的扩展了 Matlab 的应用领域,所以 Matlab 自推出以来就受
到广泛的关注,数据采集工具箱就是其中之一。它是为简化和加快数据采集工作而设
计的,使用该工具箱更容易将实验测量得到的数据进行分析和可视化操作。利用该数
据采集工具箱可以方便地建立数据采集系统。通过建立一个串口接口对象,可以使用
Matlab 命令直接和外部设备进行通信。
1.2 研究的目的和意义
在近几十年来 IC 技术和技术的高速发展,为数据采集与分析提供了非常良好与
3
可靠的科学技术基础,也提出了更高的要求和强有力的推动。随着现代工业技术的迅
猛发展,生产规模的不断壮大,生产过程和制作工艺的日趋复杂,对自动测试和各种
信息集成的要求也就越来越高。在当今社会各个领域,包括科研和实验研究,数据采
集系统有着不可代替的作用,数据采集和处理进行得越及时,工作效率就越高,取得
的经济效益就越大。数据采集系统性能的好坏主要取决于它的精度和速度,在保证精
度的条件下,还要尽可能地提高采样速度,以满足实时采集、实时处理和实时控制的
要求。
数据采集系统的好坏将直接影响自动测试系统的可靠性和稳定性,为了满足不同
的测试需求,以及减少对资源的浪费,在系统的设计上应该尽量满足通用性和可扩展
性。在高度发展的当今中,科学技术的突飞猛进和生产过程的高度自动化已成为人所
共知的必然趋势,而它们的共同要求是必须建立在有着不断发展与提高的信息工业基
础上。人们只有从外界获取大量准确、可靠的信息经过一系列的科学分析、处理、加
工与判断,进而认识和掌握自然界与科学技术中的各种现象与其相关的变化规律,并
通过相应的系统和方法实现科学实验研究与生产过程的高度自动化。换言之,生产过
程的自动化面临的第一个问题就是必须根据从各种传感器得到的数据来检测、监视现
场,以保证现场设备的正常工作。所以对现场进行数据采集是重要的前期基础工作,
然后再对现场数据进行传输和相应的处理工作,以满足不同的需要。
如果要对大量的实验数据利用 Matlab 的数据分析处理功能进行处理,则首先要将
实验数据转换成 Matlab 的数据格式,这无疑是一件十分繁杂的任务。若能直接从 Matlab
环境下采集实验数据,无疑对与实验分析和数据处理都是有益的。Matlab(Version 7.0)
的数据采集箱 DAQ (Data Acquisition Toolbox) 为此提供一个实现直接数据采集的平
台。利用该工具箱配以适当的数据采集卡不仅可以进行实时数据采集,而且还可以进
行实时显示和控制,由此还可以组建成为自动测试分析系统。利用该数据采集工具箱
可以方便地建立数据采集系统。
基于 MATLAB 实时串口数据采集,将采集的数据进行时间同步和字对齐处理,并在
Matlab 的工具箱支持下实时显示数据曲线,具有重要的意义。
1.3 论文的组织结构
摘要。阐述了此次设计的总思路,利用 MATLAB 接收目标系统串口通信实时数据,
将采集的数据进行时间同步和字对齐处理,并在 MATLAB 的工具箱支持下实时显示数
据曲线。
1.前言。介绍了 MATLAB 实时串口数据采集的研究现状及发展趋势、研究的目的
4